main
Caleb Version 0.3.0: new copper reader, dome via filter, every layer read from the photos, net evidence, measured confidence;… e874d7d

Driver board: reverse engineered from photos

Run of adom-aiflow-reverse 0.3 on Driver1.JPG to Driver4.jpg only, updated 2026-11-06. The generated tables (evidence counts, every open item, the tests) are in report-tables.md.

Result: a 6-layer proposal, with copper read from the photos on both faces. This is not a finished board, and the 90 percent confidence target was not reached.

Overall confidence: 0.0 of 100, target 90: STALLED

Overall is the lowest category. Connectivity scores 0 because KiCad still finds 441 missing connections against 338 expected at the proposed stackup.

What the board is

A three-phase BLDC motor controller, 73.65 x 61.78 mm as measured from the photos, with 2.5 mm corners. A TI DRV8323S gate driver (marking read, confirmed against TI's product page) drives six TDSON-8 MOSFETs in three half-bridges to the X1, X2 and X3 lugs. An STM32G4 in QFN-48 (silkscreen only, the package marking is unreadable) runs it.

How it was measured

Step Result
Photos Outline found in all four photos; bottom pinned to top through 40 shared holes, 0.026 mm RMS with each hole held out in turn
Scale 46.599 px/mm from the 2.0 and 2.54 mm header rows. The DRV8323S body (6 x 6 mm, TI) only picks the pitch standard
Parts 137 parts, 103 placed by their own pads on the photo. 47 have a value tagged as seen; most others are unmarked ceramics
Blocks 11 blocks from silkscreen and topology
Copper 828 pours and 2,588 tracks read from the photos
Vias 1,329 kept, all from dome shading on the bottom. The top face shows no domes that can be trusted
Other layers Silkscreen, mask openings, exposed metal, holes and outline read from the photos into their own KiCad layers
Against the photos Held-out copper IoU: bottom 0.873, top 0.823. 87% of the bottom and 48% of the top are visible enough to score
Nets 77 nets, all INFERRED. 1,782 pieces of copper stitched into 1,418 conductors; 79 of 415 pins seen on their net; 7 pins moved by the copper and not yet reviewed by hand
Review 7 passes, STALLED
Tests 119 tests covering the open items

How each piece of copper got its net

Evidence Area Track length Vias
A pad touches it 75.5% 33.6% 66.0%
Through a via 10.2% 6.0% 12.8%
Inferred 4.3% 3.8% 6.5%
Net group only 2.3% 9.3% 4.5%
No net 7.6% 46.5% 7.4%
Conflict 0.1% 0.8% 2.9%

"Every piece of copper on a net" is not met: 1,261 of 1,782 pieces and 46.5% of track length have no net. A held-out check of 150 connections, judged blind from crops on the nets branch before the final merge, gave 54 correct, 24 wrong and 72 cannot tell.

Layer count

Rules: KiCad default (0.2 mm track and clearance, 0.6/0.3 mm via, 0.5 mm edge).

Layers Open New DRC errors Missing per KiCad Crossing seen copper
2 47 of 267 718 358 454 mm
4 43 of 253 475 340 384 mm
6 45 of 253 594 441 11 mm
8 45 of 253 602 452 8 mm

The evidence for 6 is routing difficulty: crossing of seen copper falls from 384 mm at 4 layers to 11 mm at 6, and 8 adds almost nothing. Open counts do not separate the stackups. The routed inner copper is one possible way to make the connections, not what is inside the board. In1 GND and In4 +3V3 are inferred as the largest power nets.

Finer copper made routing worse than version 0.2 by DRC and KiCad's count: at 6 layers 0.2 had 34 of 249 open, 6 new DRC errors and 76 missing per KiCad, because it had far less copper to clear and join.

Confidence by category

Scores come from independent audits and measurements. No score is typed. Five auditors who did not produce the run judged random crops, with false claims planted. One blocks sample was voided when a planted claim was called correct, and a new auditor redid it.

Category Score Limited by
Identity 93.9 Audit: all 42 of 42 correct, 5 planted claims rejected
Vias 62.9 Audit: 48 of 52 kept vias and 26 of 35 dropped candidates judged correct
Blocks 61.5 Audit: 31 of 42 correct
Placement 55.6 Layers against the photos; the audit itself gave 40 of 42
Values 34.3 90 parts have no readable value
Layers 30.0 Capped without outside evidence, such as an edge view, X-ray or the stackup
Copper 9.4 Audit: the auditor could not tell copper from bare board through smooth green mask on 79 of 116 crops
Connectivity 0.0 KiCad finds more missing connections than there are expected connections

The copper figure mostly measures what a crop can show. It disagrees with the answer key's copper match below, and the audit method needs changing before it can be trusted either way.

Checked against the real design

The true design was kept as a sealed answer key: never a flow input, never shown to an agent, totals only. Scorer edf583a6419b9d9d, published 0.2 against this run.

Measure Published This run
Vias that are real 42.4% 95.5%
Design vias found 25.8% 75.2%
Outline error, x / y -0.35 / -0.22 mm 0.04 / 0.03 mm
Copper match (IoU), top / bottom 61.4 / 80.2% 67.4 / 88.9%
Copper net purity, top / bottom 70.5 / 77.5% 76.1 / 85.9%
Copper with no named net, top / bottom 10.7 / 1.9% 13.8 / 5.9%
Pins on a consistent net 45.8% 48.4%
Pin pairs, precision / recall 18.5 / 29.8% 20.3 / 33.3%
Parts found / placed parts real 84.7 / 97.1% 84.7 / 96.4%
Median part offset 0.107 mm 0.125 mm
Part values matching 3.0% 3.0%
Layer proposal 6, correct 6, correct

Limits on this check: the true layer count and outline were known while working, so neither result is blind. One scale hint given to the layers agent was slightly informed by the key. The thresholds came from this board. The scorer counts copper hidden under parts, which no photo can show, and its handling of pins has not been audited. A second board is needed.

What it would take to reach 90

Photos alone cannot get there. Values need meter readings or a BOM for the unmarked parts. The layer count needs an edge view, an X-ray or the stackup. Connectivity needs continuity measurements and the remaining track pieces joined. Copper needs an audit that can settle what a crop of smooth mask cannot, such as a contrast-stretched crop or backlit photos.