main
Name Last commit message Last updated
evidence 0.2.4: fab named as 3rd party fab in the routing skill and examples · John Lauer 6d ago
stills Add Fable 5.1 BQ25792 independent re-route example (side-by-side video, evidence, four shared skills) · John Lauer 28d ago
fable5-vs-adonis-net-by-net.mp4 Add Fable 5.1 BQ25792 independent re-route example (side-by-side video, evidence, four shared skills) · John Lauer 28d ago
README.md BQ25792 example: raw-file video/binary links, rounded coordinates, grouped DRC signature digits · John Lauer 28d ago

Worked example: an independent AI re-route of the BQ25792 charger, compared net by net with the hand-routed original

Claude Fable 5.1 (model claude-fable-5-1, verified from the session transcript) in Adom Hydrogen, driving Fusion 2705.1.11 on the laptop AdomLapper through Adom Bridge 2.1.60 and the Fusion routing bridge 1.10.0-dev.routing.5, 2026-09-07/08. Bridge caller name Fable 5 BQ25792 comparison. This page is reference data for other AIs: what was done, why, what failed, and every measured number with its file.

Side-by-side, 2 min 8 s: left Adonis's hand-routed reference, right the independent routing; every net highlighted with Fusion's native SHOW in both boards at the same scale, one fact line per side, narrated reasoning by net family. Composite of two native window recordings (postproduction).

The original board

  • Wiki page: adom/bq25792-charger (Adonis), commit 8e0f883e41cf327e9d33206be028c685a69cce40, package 0.1.85, Fusion v222.
  • BRD sha256 f560054f4a71ad0f829261fd65ac665f87604b7d0fb9ccfcaddac648475bfb19; 109 parts, 50 nets, 304 pads (216 SMD, 88 through-hole), copper layers 1/2/15/16, 50.4 x 26.4 mm; 587 routed segments, 88 vias, no pours, 3 airwires left on LDO_3V3.
  • The parallel Codex Astra run on the same board is documented in the adom/codex Astra/Fusion progression; none of its routes, plans or coordinates were inputs here.

Reference, all copper layers (own renderer)

What I set out to do, and how I thought about it

  1. Prove the starting point is identical and untouched. Same hash on the shared copy, the wiki clone and the host copy. Native DRC on the untouched reference: 1611 errors, 14 warnings. One inherited rule, an all-object "Same-net track spacing" of 0.25 mm, explains 1604 of them. On a diagnostic copy with only that rule disabled, 7 errors remain, all pad-to-pad clearances baked into footprints and placement (signature 5,1,f10227fd41e0ab5d among them). They are present on the stripped board too, so no routing can remove them.
  2. Strip natively and prove it. All copper layers displayed (RIPUP only acts on displayed layers), RIPUP of all 50 nets, refill, export: 0 segments, 0 vias, 194 airwires. That export, the schematic and the datasheets were the planner's only inputs.
  3. Read the circuit before routing. Two DC inputs through 10 mohm sense resistors and back-to-back MOSFET pairs into VBUS; the charger's switch nodes to the inductor; SYS and BAT outputs; an external ship FET (Q5) whose gate is SDRV; an AGND island tied at a jumper; I2C and status lines to machine pins; D+/D- only to machine pins (BC1.2 detect, not a high-speed pair). No operating currents were supplied, so a labelled provisional load contract (3 A charge, 3.3 A input, up to 5 A battery path) sized the copper; component ratings were not used as loads.
  4. Thermal inventory before allocating copper. The BQ25792 footprint used here has no exposed pad: the chip's heat leaves through pins 25-29 (SYS, SW2, PGND, SW1, PMID) and the VBUS/BAT pins. The five CSD17581 MOSFET tabs are custom polygon pads with seven plated holes each, on VAC1, VBUS, VBUS, VAC2 and VBAT, not ground. So: pours for SYS, VBUS, PMID, BAT and ground hang off the chip pins; bottom pours for the FET nets ride up through the tab holes; the switch nodes get no pour at all.
  5. Own planner, no autorouter. A grid A* on 0.05 mm with 0/45/90-degree moves, bend and via penalties, exact-disk clearance masks, the inherited same-net spacing enforced for non-connected copper, 0.15 mm pin stubs, reserved escape corridors per QFN pin, 0.4/0.2 mm signal vias and 0.6/0.3 mm power vias, rip-up/re-route for boxed-in pins, and a separate exact-geometry checker. Eighteen planner runs plus a finalizer stage were needed; the iteration table keeps every one, including the raster bug that dilated the exact raster twice and the search-state blow-up.
  6. Learn Fusion's connectivity rules the hard way. My exact checker said all nets were connected while Fusion still reported 80 airwires: Fusion joins wires only at coincident endpoints, at via centres, or when an endpoint lies inside a pad; through-hole pads and vias connect at their origin only; MOSFET tab copper needs the wire to end on an anchor pad. A conformance pass (split at crossed pads/vias, T-junction vertices, L-shaped extensions into pad origins and tab anchors) and a final loop driven by Fusion's own airwire list took it to zero. This is now eda-native-connectivity-conformance.
  7. Pours, then a deliberate expansion pass. Ground plane on L2, ground fills on L15/L16/L1 at lowest priority; disjoint power regions for VBUS, VAC1, VAC2, VBAT, SYS, BAT, PMID and the two FET source links on L16 and L1; stitching vias at bulk-cap pads and island vias where a bottom island sits under the same net's top pour; one bounded expansion pass that kept VAC1, VAC2, BAT and PMID growth and refused VBUS, VBAT and SYS because they would have taken area from neighbours. Ground copper lost to that is reported as a loss.
  8. Mask stays on. A first-order plate model on the actual connected copper (35 um, 65 C source, 25 C ambient, h = 3/5/10, finish emissivity) shows bare ENIG/HASL radiating far less than masked copper; details and omissions in thermal-comparison.md.

Candidate, all layers with predicted fills (own renderer) Candidate, bottom layer

Net-by-net reasoning (what the video narrates)

Family Adonis Mine Why
Input path VIN/VAC/VBUS, source links 1.27 mm top traces; source links are bare pad bridges 1.0 mm traces plus L1/L16 pours through the tab holes; pours across the source links Full input current with copper on both sides; the drain tabs are the heat sink
Switch nodes SW1/SW2, bootstrap 8 vias per node under the chip 3 vias each, no pour High dv/dt copper stays small
SYS, BAT, VBAT, PMID traced narrower traces plus bottom pours (SYS/PMID/BAT partly islands, see limits) The chip has no thermal pad; these pours are its heatsink
PGND 45 top traces, 13 vias, no plane L2 plane plus fills on every layer Return path under all switching copper; price: the inherited same-net rule fires on every fill
REGN, TS, ILIM, PROG, gates 0.2-0.6 mm, longer 0.15 mm, shorter, dog-bone vias 0.4 mm pitch escapes need narrow stubs
I2C, /INT, /CE, /QON, D+/D- top-layer runs (D+ 30 segments) inner layer under the ground plane Shorter, referenced
LDO_3V3 and its pull-ups wide inner trace, 3 unfinished connections 0.25 mm inner net, 10 vias, complete Low current; finish the net

Stills from the comparison: VBUS · SW1 · PGND · D+ · LDO_3V3 · all nets. Per-net numbers behind every caption: net-facts.json.

Measured results

Item Reference Candidate (file) Recorded replay (live)
Nets routed 50/50 (3 airwires) 50/50 50/50
Segments / vias / pours 587 / 88 / 0 866 / 94 / 18 888 / 94 / 18
Native airwires after refill 3 0 0
DRC, untouched rules 1611 err, 14 warn 2408 overlap + 542 clearance + 7 same-rank, 83 warn 2522 + 633 + 12, 127 warn
DRC, diagnostic copy (only the same-net rule off) 7 (inherited) 1 inherited + 7 pour-outline 65 clearance + 12 same-rank (see below)
Off-angle segments n/a 0 0
Copper coverage L1 / L2 / L15 / L16 29 / 19 / 12 / 13 % 71 / 89 / 82 / 79 % predicted; 68 / 88 / 79 / 78 % native images same geometry

The live replay's extra 65 clearance errors have one cause found afterwards: the live VIA command takes only a diameter and a single CHANGE DRILL 0.3 applied to every via, so the 46 signal vias meant to be 0.4/0.2 mm were created 0.5 mm wide and collided with neighbours. The file candidate has the correct drills; the emitter now sets the drill per via. The 7 "polygons with same rank" errors between my power pours near the FET tabs are unresolved. Neither board is production qualified: no load, transient, EMI or thermal measurement was made.

Output files (this page)

Skills distilled from this example

eda-independent-reroute-comparison · eda-native-connectivity-conformance · eda-fine-pitch-fanout · eda-pour-planning-measurement.