Loads when you scroll to it. Unloads after 5 minutes in the background.
Contents

README

markdown

AFS_Adom flight computer molecule

An active fin stabilization (AFS) flight computer for a sounding rocket: an RP2350B reading four motion and pressure sensors and driving eight fin servos from a 2S LiPo, on a 4-layer 92 x 68 mm board. Every step was done by an AI through KiCad: the architecture, the 7-sheet schematic, the layout, the analyses, the silkscreen and the factory files. It started from one written brief.

The finished AFS_Adom board in the KiCad 3D viewer, isometric view: XT30 battery connector, USB-C, microSD, eight servo headers along the top edge, the RP2350B in the middle The finished board in KiCad's 3D viewer. Yellow block: the XT30 battery connector (placeholder body). Eight servo headers run along the top edge.

Why this project is interesting

This board is a clean-room copy of a real one: the flight computer used by the Rice Eclipse active fin stabilization subteam. Students on the subteam designed their version by hand in KiCad. This version was given the same job (the same sensors, servo count, battery, connectors and fab) and was designed end to end by an AI, Claude, driving KiCad through the Adom Bridge. The AI never saw the student design.

That makes it a fair side-by-side. One board is the work of strong college KiCad designers. The other shows where AI-driven PCB tools are today. Comparing the two answers practical questions: where the tool is already as good as a careful student, where it is better, and where a human is still clearly ahead.

What the AI did on its own, from one brief:

  • Architecture with reasons. It picked an ideal-diode OR of USB and battery so the MCU never resets when a source is swapped, and sized the 5 mOhm current shunt for an 8 A all-servo stall. It also chose bucks over LDOs: at 8.4 V an LDO would burn 5 W.
  • Footprints for parts with no library. It drew footprints from the datasheets for the ICM-45686, KX134, MMC5983MA, TMP117 and INA219.
  • The hard part of the layout. It escaped a 0.4 mm-pitch QFN-80 under PCBWay rules with a pre-routed fan-out. The 415 traces were then landed live in KiCad, one undo step each, ending at 0 DRC errors and 0 unconnected.
  • Physics, not just DRC. It solved current density and temperature on the real copper with Adom Fields and fixed what the solve found: necks in the 5 V and VSYS paths, a battery patch that blocked the ground return, missing stitching vias. It also ran ngspice simulations of the power path, the servo stall and both bucks.
  • A paper trail. A 48-entry iteration log records every failed attempt, budget change and tool bug, so a reviewer can see why each decision was made.

Compared with the student board

Both boards were run through the same checks from their KiCad files. The full write-up, with drawings, is on the comparison page.

AFS_Adom (AI) Rice Eclipse (students)
Size, assembly 92 x 68 mm, one side 50.8 x 87 mm, both sides
Routing 3.4 m of track, 508 vias 2.1 m of track, 228 vias
Power path ideal-diode OR, two 2 A bucks a TPS2121 mux per rail, battery buck or USB supply
DRC, same PCBWay rules 0 errors 25, all the USB pair's 0.120 mm spacing (fine at JLCPCB)
ERC 0 errors 14, all symbol typing (missing PWR_FLAGs and pin types)
Peak current density, same loads 59 A/mm2 415 A/mm2 at the servo header thermal spokes
Hottest part, same loads +27 C +57 C (bottom-side buck)
USB D+/D- plain pair coupled differential pair
Design time about 10 h of AI time not recorded

Temperature rise on both boards under the same loads and at the same scale Same loads, same scale, simulated. The student board is about 30 % smaller and narrow enough for the airframe. Its bottom-side buck runs about 30 C hotter because it has no ground vias under it.

Where a human still wins, honestly:

  • Judgment calls. Two budgets were loosened on the record: the thermal rise went from 30 to 35 C, and the steady-state servo current from 8 to 4 A sustained. Both have physical reasons, but they deserve a human's eye.
  • Silkscreen density. At PCBWay's 0.8 mm minimum, labels for some small parts would not fit.
  • The tool loop. Fixing the current-density screen took about a dozen land-solve-fix loops.
  • Nothing is proven until it is built. No board has been made yet.

Top view of the AFS_Adom board in 3D Top face. Power on the left (XT30, TVS, shunt, the two bucks and their inductors), RP2350B in the middle, the sensor cluster to the right away from the inductors, microSD lower right, USB-C bottom centre.

Bottom view of the AFS_Adom board in 3D, showing the back-face silkscreen with header pinouts and the test point key Bottom face. This side is the service manual: every through-hole header and molecule contact is named, plus a key from test point to net and what the board is.

Close-up of the RP2350B QFN-80 with its decoupling capacitors and the 12 MHz crystal The RP2350B (QFN-80, 0.4 mm pitch) with its decoupling ring, the 12 MHz crystal and the core regulator inductor.

The full PCB layout in the KiCad PCB editor The routed board in KiCad's PCB editor: 4 layers, 2190 track segments, 508 vias.

Adom Fields heat view: heat flow in the copper with each hot part labelled with its temperature rise Heat flow in the copper with each hot part's rise: both bucks about +27 C, the shunt +25 C, the ideal-diode FET +23 C, the RP2350 +19 C, in still air.

Adom Fields 3D current view: current density in every layer, stacked Current density in all four layers, exploded. Every loaded net stays under the 60 A/mm2 screen; the worst is 59 A/mm2 on VSYS.

The full gallery has more views: the side profile, the VSYS and ground nets, the schematic, the temperature map, the current-density drawing and the three ngspice simulations. See docs/gallery.md.

How the AI built it (narrated)

The run's own cut, assembled by adom-aiflow from the clips recorded at every step, with captions. Every step clip, including the failed attempts, is on the clips page. The run's timeline is on the run page.

What is on the board

Block Parts
MCU RP2350B (QFN-80), 12 MHz crystal, W25Q128 16 MB QSPI flash, BOOTSEL and RESET buttons
Sensors, SPI1 ICM-45686 6-axis IMU, KX134-1211 +-64 g accelerometer, MMC5983MA magnetometer, MS5611 barometer; each has its own CS and interrupt
Sensors, I2C0 TMP117 temperature, INA219A pack current and voltage on a 5 mOhm shunt
Power XT30 2S LiPo 6-8.4 V or USB-C 5 V, joined by two LTC4359 ideal diodes; AP63205 5 V and AP63203 3.3 V bucks, 2 A each
Servos 8 x 1x3 headers: signal at 5 V through a 74AHCT541, power straight from the pack
I/O microSD (SPI, card detect), JST-PH headers for SWD, UART0, I2C0, I2C1, spare SPI, 4 spare GPIO, 3V3 and 5V outputs
Adom molecule 4 corner machine pins, 14 edge contacts (battery, servo rail, rails, RUN, UART, SWD)

Files

What Where
Engineering datasheet (5 pages) design/AFS_Adom-datasheet.pdf
Schematic (7 sheets) design/AFS_Adom-schematic.pdf
KiCad 10 project kicad/
Gerbers and drill (PCBWay 4-layer, ENIG) manufacturing/AFS_Adom-gerbers.zip
Pick-and-place, BOM manufacturing/AFS_Adom-pos.csv, manufacturing/AFS_Adom-bom.csv
3D 3d/AFS_Adom.step, 3d/AFS_Adom-copper.glb
Design notes, reviewer checklist design/DESIGN_NOTES.md
Every attempt, including the failed ones design/ITERATION_LOG.md
Board audit design/audit.md
Comparison with the Rice Eclipse student board docs/eclipse-comparison.md, raw results in design/eclipse-analysis/
Rice Eclipse student board (KiCad 9, read-only copy) kicad/eclipse/
Generators and simulations gen/, sim/

Status: rev A, design complete, not yet fabricated. Every electrical and thermal figure here is a design limit or a simulation; nothing has been measured yet. One BOM line, the XT30PW-M, is LCSC-only; the owner accepted it.

Loads when you scroll to it. Unloads after 5 minutes in the background.
Download PDF