AFS_Adom flight computer molecule
Public Unreviewedby ae007
Active fin stabilization flight computer for a sounding rocket, a clean-room AI redesign of the Rice Eclipse AFS board: RP2350B, ICM-45686, KX134-1211, MMC5983MA, MS5611, TMP117, INA219A, 8 servos, 2S LiPo, USB-C; 4-layer Adom molecule, designed end to end by Claude through KiCad and adom-aiflow
3D Model
Open in new tab ↗
Loads when you scroll to it. Unloads after 5 minutes in the background.
Contents
README
markdownAFS_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 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 |
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.
Gallery
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 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.
The RP2350B (QFN-80, 0.4 mm pitch) with its decoupling ring, the 12 MHz crystal and the core regulator inductor.
The routed board in KiCad's PCB editor: 4 layers, 2190 track segments, 508 vias.
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.
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.