AI Flow: Routing
Public Made by Adomby adom
The routing stage of AI Flow: routes a placed KiCad board connection by connection and reports what it made, what it could not and why. A guide, never a gate.
| Name | Last updated |
|---|---|
| before-after | 10h ago |
| boards | 10h ago |
| questions | 10h ago |
| ledger.jsonl | 10h ago |
| lessons.jsonl | 10h ago |
| README.md | 10h ago |
| results-icon.png | 10h ago |
| summary.json | 10h ago |
| table.json | 10h ago |
| table.png | 10h ago |
Results on public wiki boards
22 boards from public wiki pages were stripped of their tracks and vias and routed again with adom-aiflow-routing, then judged by KiCad's DRC with zones refilled, under each board's own rule values with clearance and open connections forced on. A board is clean when every connection is made, KiCad reports 0 open, and KiCad finds no copper error that the original does not also have.
First run: 9 of 22 clean. Current revision: 19 of 22 clean.

Before and after
Each picture shows the original, the first run and the current run, with the connections KiCad reports open ringed in red.
| Board | What changed in the router | Picture |
|---|---|---|
| amfm-receiver-molecule | pour pieces are stitched to their net; a last-mile repair searches the final joins deeper | before-after/amfm-receiver-molecule.png |
| carrier-fc-rp2350a-mini | a USB pair that could not be coupled was frozen as two stacked tracks, a wall on both layers; it is now movable and may not stack | before-after/carrier-fc-rp2350a-mini.png |
| combiner-molecule | no project file: the router now works to KiCad's own defaults | before-after/combiner-molecule.png |
| drone-motor-carrier-assembly | no project file: the router now works to KiCad's own defaults | before-after/drone-motor-carrier-assembly.png |
| drone-motor-carrier | a coupled pair's two tracks are now measured against each other at the pad entries | before-after/drone-motor-carrier.png |
| esc-g431 | vias without a track keep their net, a do-not-populate part is wired, thermal-relief cost. Still open: two layers, many small pours | before-after/esc-g431.png |
| rf-workcell-module | no project file: the router now works to KiCad's own defaults | before-after/rf-workcell-module.png |
| rp2350a-ads1220 | supply-pin-to-capacitor stubs are laid first; vias and tracks keep KiCad's polygon tolerance from mask openings | before-after/rp2350a-ads1220.png |
| tmf8829-molecule | no project file: the router now works to KiCad's own defaults (0.2 mm track and clearance, 0.5 mm edge) | before-after/tmf8829-molecule.png |

A board that is not good yet:

Every board beside its original
boards/ holds a picture of each board: the original on the left, the routed board on the right.
| Board | Parts | Connections made | Open in KiCad | Picture |
|---|---|---|---|---|
| coax-molecule-32x32 | 8 | 1 of 1 | 0 | boards/coax-molecule-32x32.png |
| coax-antennuator-molecule-32x32 | 9 | 2 of 2 | 0 | boards/coax-antennuator-molecule-32x32.png |
| coax-molecule-2ch-64x64 | 9 | 2 of 2 | 0 | boards/coax-molecule-2ch-64x64.png |
| rf-workcell-module | 9 | 14 of 14 | 0 | boards/rf-workcell-module.png |
| rf-scaffold-module | 11 | 2 of 2 | 0 | boards/rf-scaffold-module.png |
| teazzers-taprite-solonoid-638-0031-v2 | 12 | 5 of 5 | 0 | boards/teazzers-taprite-solonoid-638-0031-v2.png |
| i2s-carrier | 14 | 1 of 1 | 0 | boards/i2s-carrier.png |
| rf-mech-molecule-32x32 | 20 | 0 of 0 | 0 | boards/rf-mech-molecule-32x32.png |
| tmf8829-molecule | 20 | 37 of 37 | 0 | boards/tmf8829-molecule.png |
| tmf8829-adapter-molecule | 21 | 11 of 11 | 0 | boards/tmf8829-adapter-molecule.png |
| rp1-breakout-molecule-extended | 25 | 5 of 5 | 0 | boards/rp1-breakout-molecule-extended.png |
| combiner-molecule | 26 | 5 of 5 | 0 | boards/combiner-molecule.png |
| ranger-micro-breakout-molecule-extended | 27 | 6 of 6 | 0 | boards/ranger-micro-breakout-molecule-extended.png |
| teazzers-taprite-solonoid-638-0031-multicarrier | 33 | 20 of 20 | 0 | boards/teazzers-taprite-solonoid-638-0031-multicarrier.png |
| rf-mech-molecule-32x64 | 36 | 0 of 0 | 0 | boards/rf-mech-molecule-32x64.png |
| drone-motor-carrier | 41 | 32 of 32 | 0 | boards/drone-motor-carrier.png |
| drone-motor-carrier-assembly | 41 | 32 of 32 | 0 | boards/drone-motor-carrier-assembly.png |
| rf-mech-molecule-64x64 | 68 | 0 of 0 | 0 | boards/rf-mech-molecule-64x64.png |
| carrier-fc-rp2350a-mini | 80 | 74 of 74 | 0 | boards/carrier-fc-rp2350a-mini.png |
| rp2350a-ads1220 | 100 | 172 of 176 | 5 | boards/rp2350a-ads1220.png |
| esc-g431 | 149 | 207 of 239 | 24 | boards/esc-g431.png |
| amfm-receiver-molecule | 403 | 539 of 543 | 4 | boards/amfm-receiver-molecule.png |
Open questions with their pictures
| Question | Picture |
|---|---|
| What sizes a supply rail when the board has no current spec | questions/rail-width.png |
| RF lines, via fences and ground stitching, which the board file does not ask for | questions/rf-copper.png |
| A pair that cannot stay coupled under its class clearance | questions/pair-coupling.png |
Data
| File | What it holds |
|---|---|
| table.json | the table above as data |
| ledger.jsonl | two records per board, first run and current: connections made, the router's own check, KiCad's result on the original and on the routed board, the router's notes |
| lessons.jsonl | one record per lesson: what was found, what was changed in the router, how it was verified. Boards that are not public are described, not named |
Board files are not stored here; the pictures are renders of boards whose wiki pages are public.