PCB design, bring-up and test Internship · completed
Archer Aviation
Cooling flow on an inverter test stand was set by hand. I built the board that sets it over the network and closes the loop on measured flow.
- Flow sensor0–10 V out
- 24 V stand supply
What I did
I owned the board end to end: architecture, Altium schematic and two-layer layout, fabrication outputs, sourcing, assembly, firmware and bring-up.
I also wired a 1000 V reliability stand for three inverters, automated instrument and CAN-FD gateway setup, and corrected a reliability test plan.
Result
- Validated the 0–10 V command and feedback paths with injected voltages and ADC readback; three boards went onto inverter test stands.
- Replaced a four-stage manual CAN-FD gateway setup with one Python script, checked against reference configurations.
- Corrected a Coffin-Manson acceleration factor from 12.7 to 7.7 and derived a roughly 43-day chamber schedule.
- The 43-day schedule is a plan, not a completed qualification campaign.
- Diagrams are generalised; no internal schematics or bench details are shown.
Debugging
A 0.9 Ω short across the 24 V input
The first board measured 0.9 Ω from 24 V to ground. A copper-clearance rule had been entered in the wrong units, so the ground pour reached through-hole pads. I traced it from the measurement to the rule and specified the corrected revision.
More detail
Why the stand needed it
The old controller was a potentiometer and a local display. The new board runs from the 24 V stand supply and drives an external valve driver; it never powers the valve itself.
A hardwired E-STOP stops the stand. The firmware only decides what happens when the network goes quiet.
Signal chain and firmware
A W5500 Ethernet controller passes setpoints to an ATmega328P. PWM through an RC filter gives 0–5 V, and an LM358 stage with a gain of two makes the 0–10 V valve command.
Flow feedback is divided into the ADC range. The firmware runs feedback control with anti-windup, reports telemetry and drops a stale command after 5 s without communication. Loop tuning was not finished as a response optimisation.
Other bring-up and test work
Firmware review caught a revision written for a different Arduino MCU family, with a different SPI map and watchdog behaviour.
Supply control wrote, read back and verified every channel before enabling outputs.
The reliability plan had applied the worst-case temperature swing to every service cycle and used a board that was not the worst thermal case. Fixing both changed the acceleration factor.
Other design decisions
PWM and an RC filter instead of a DAC
Filter an MCU timer output into an analog level. Instead of: a separate DAC.
Fewer parts, but ripple and settling time tie the PWM rate, filter corner and loop rate together.
A gain stage between MCU and valve
A nominal 2× op-amp stage from 0–5 V to 0–10 V. Instead of: rescaling at the driver.
Matches the driver's range, but full scale depends on amplifier headroom and loading.
A communication fail-safe
Drop the setpoint after 5 s of silence. Instead of: holding the last value.
A stale command can't hold a valve open; it complements the hardwired interlocks rather than replacing them.