app
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.
← Commit history
All-board run on public boards: pictures and data, part 1 of 5
8 files changed
+82
.adomignore+6docs/results/README.md+76docs/results/before-after/amfm-receiver-molecule.pngdocs/results/before-after/carrier-fc-rp2350a-mini.pngdocs/results/before-after/combiner-molecule.pngdocs/results/before-after/drone-motor-carrier-assembly.pngdocs/results/before-after/drone-motor-carrier.pngscreenshots/showcase.png.adomignoreadded+6@@ -0,0 +1,6 @@+target/+/results/+bench/boards/+*.kicad_pcb+*.kicad_pro+*.kicad_prl
docs/results/README.mdadded+76@@ -0,0 +1,76 @@+# 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](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](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](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](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](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](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](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](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](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](boards/coax-molecule-32x32.png) |+| coax-antennuator-molecule-32x32 | 9 | 2 of 2 | 0 | [boards/coax-antennuator-molecule-32x32.png](boards/coax-antennuator-molecule-32x32.png) |+| coax-molecule-2ch-64x64 | 9 | 2 of 2 | 0 | [boards/coax-molecule-2ch-64x64.png](boards/coax-molecule-2ch-64x64.png) |+| rf-workcell-module | 9 | 14 of 14 | 0 | [boards/rf-workcell-module.png](boards/rf-workcell-module.png) |+| rf-scaffold-module | 11 | 2 of 2 | 0 | [boards/rf-scaffold-module.png](boards/rf-scaffold-module.png) |+| teazzers-taprite-solonoid-638-0031-v2 | 12 | 5 of 5 | 0 | [boards/teazzers-taprite-solonoid-638-0031-v2.png](boards/teazzers-taprite-solonoid-638-0031-v2.png) |+| i2s-carrier | 14 | 1 of 1 | 0 | [boards/i2s-carrier.png](boards/i2s-carrier.png) |+| rf-mech-molecule-32x32 | 20 | 0 of 0 | 0 | [boards/rf-mech-molecule-32x32.png](boards/rf-mech-molecule-32x32.png) |+| tmf8829-molecule | 20 | 37 of 37 | 0 | [boards/tmf8829-molecule.png](boards/tmf8829-molecule.png) |+| tmf8829-adapter-molecule | 21 | 11 of 11 | 0 | [boards/tmf8829-adapter-molecule.png](boards/tmf8829-adapter-molecule.png) |+| rp1-breakout-molecule-extended | 25 | 5 of 5 | 0 | [boards/rp1-breakout-molecule-extended.png](boards/rp1-breakout-molecule-extended.png) |+| combiner-molecule | 26 | 5 of 5 | 0 | [boards/combiner-molecule.png](boards/combiner-molecule.png) |+| ranger-micro-breakout-molecule-extended | 27 | 6 of 6 | 0 | [boards/ranger-micro-breakout-molecule-extended.png](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](boards/teazzers-taprite-solonoid-638-0031-multicarrier.png) |+| rf-mech-molecule-32x64 | 36 | 0 of 0 | 0 | [boards/rf-mech-molecule-32x64.png](boards/rf-mech-molecule-32x64.png) |+| drone-motor-carrier | 41 | 32 of 32 | 0 | [boards/drone-motor-carrier.png](boards/drone-motor-carrier.png) |+| drone-motor-carrier-assembly | 41 | 32 of 32 | 0 | [boards/drone-motor-carrier-assembly.png](boards/drone-motor-carrier-assembly.png) |+| rf-mech-molecule-64x64 | 68 | 0 of 0 | 0 | [boards/rf-mech-molecule-64x64.png](boards/rf-mech-molecule-64x64.png) |+| carrier-fc-rp2350a-mini | 80 | 74 of 74 | 0 | [boards/carrier-fc-rp2350a-mini.png](boards/carrier-fc-rp2350a-mini.png) |+| rp2350a-ads1220 | 100 | 172 of 176 | 5 | [boards/rp2350a-ads1220.png](boards/rp2350a-ads1220.png) |+| esc-g431 | 149 | 207 of 239 | 24 | [boards/esc-g431.png](boards/esc-g431.png) |+| amfm-receiver-molecule | 403 | 539 of 543 | 4 | [boards/amfm-receiver-molecule.png](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](questions/rail-width.png) |+| RF lines, via fences and ground stitching, which the board file does not ask for | [questions/rf-copper.png](questions/rf-copper.png) |+| A pair that cannot stay coupled under its class clearance | [questions/pair-coupling.png](questions/pair-coupling.png) |++## Data++| File | What it holds |+|---|---|+| [table.json](table.json) | the table above as data |+| [ledger.jsonl](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](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.
docs/results/before-after/amfm-receiver-molecule.pngadded⋯ 1 unchanged line ⋯
docs/results/before-after/carrier-fc-rp2350a-mini.pngadded⋯ 1 unchanged line ⋯
docs/results/before-after/combiner-molecule.pngadded⋯ 1 unchanged line ⋯
docs/results/before-after/drone-motor-carrier-assembly.pngadded⋯ 1 unchanged line ⋯
docs/results/before-after/drone-motor-carrier.pngadded⋯ 1 unchanged line ⋯
screenshots/showcase.pngadded⋯ 1 unchanged line ⋯