main
Caleb Add the page README, the run and process video sub-pages, and captions 64663a4
WEBVTT

00:00:01.952 --> 00:00:05.849
It starts with four photos of a motor driver board, and one request.

00:00:05.869 --> 00:00:10.135
Find the parts, the functional blocks, the pours and the routing.

00:00:10.155 --> 00:00:11.794
Copy everything you can see.

00:00:11.814 --> 00:00:15.780
Then work out what you can't, pick a layer count, and say how sure you are.

00:00:16.361 --> 00:00:21.041
The first attempt reused the existing AI Flow program, and Caleb called that

00:00:21.061 --> 00:00:21.288
out.

00:00:21.308 --> 00:00:25.908
So this became its own Rust program, with its own copper reader and its own

00:00:25.928 --> 00:00:26.339
router.

00:00:26.359 --> 00:00:29.894
The program does the measuring. The AI does the naming.

00:00:29.914 --> 00:00:33.128
Eleven steps, and each one records what it produced.

00:00:33.690 --> 00:00:35.968
Two photos of the top, two of the bottom.

00:00:35.988 --> 00:00:39.805
The program finds the board edge in each one and straightens it.

00:00:39.825 --> 00:00:44.512
Then it turns the bottom over to line up with the top. 38 holes agree, 2

00:00:44.532 --> 00:00:44.904
don't.

00:00:45.482 --> 00:00:51.031
Scale comes from the board itself. The header rows have known pitches, 2 mm

00:00:51.051 --> 00:00:51.923
and 2.54 mm.

00:00:51.943 --> 00:00:55.113
That gives 46.6 pixels per millimeter.

00:00:55.133 --> 00:00:59.787
The driver chip's 6 mm body settles which pitch standard the rows are.

00:01:00.360 --> 00:01:02.841
Then the parts, 137 of them.

00:01:02.861 --> 00:01:06.374
103 are placed by their own pads on the photo.

00:01:06.394 --> 00:01:12.507
Markings get read where they're legible, like this TI DRV8323S.

00:01:12.527 --> 00:01:16.699
Where they aren't, the program says so. 91 parts still need a test.

00:01:17.284 --> 00:01:20.918
Silkscreen and circuit role sort them into 11 blocks.

00:01:20.938 --> 00:01:26.152
Power entry, the three-phase power stage, bridge sensing, the logic supply.

00:01:26.172 --> 00:01:31.719
The gate driver, the microcontroller, CAN, AUX, the fan, motor temperature and

00:01:31.739 --> 00:01:33.074
the mounting holes.

00:01:33.658 --> 00:01:38.749
Then came the real miss. The first copy had 58 pours, all on the bottom, and

00:01:38.769 --> 00:01:40.026
not a single track.

00:01:40.046 --> 00:01:44.773
Caleb looked at it and said fill and via recognition was completely lacking.

00:01:44.793 --> 00:01:45.676
That was correct.

00:01:46.249 --> 00:01:50.301
So the reader was rewritten. Under solder mask, copper looks a little lighter

00:01:50.321 --> 00:01:53.209
than bare laminate, compared with its own neighborhood.

00:01:53.229 --> 00:01:56.060
Thin dark lines mark the gaps between copper.

00:01:56.080 --> 00:02:02.294
Follow those gaps and the board falls apart into islands. 1,444 of them.

00:02:02.314 --> 00:02:07.370
That became 116 pours and 314 tracks, on both faces.

00:02:07.949 --> 00:02:13.882
Vias are next. 2,681 candidates, and 1,028 kept.

00:02:13.902 --> 00:02:18.031
They're tented on the top, so only 45 show on both faces.

00:02:18.051 --> 00:02:22.994
Zoom in and the misses show. Up to a third land on something pale, mostly

00:02:23.014 --> 00:02:24.965
silkscreen letters and lines.

00:02:24.985 --> 00:02:29.825
And the 3 read as leading only inward look like ordinary domes in a stitching

00:02:29.845 --> 00:02:32.477
field. So that's no proof of inner layers.

00:02:33.050 --> 00:02:37.964
All of that goes straight into a KiCad board, as photographed, before anything

00:02:37.984 --> 00:02:38.659
is guessed.

00:02:38.679 --> 00:02:41.979
Here's the copy laid over the top photo, and over the bottom.

00:02:42.550 --> 00:02:48.074
Now for what nobody can see. Datasheets and the circuit fill in the rest of

00:02:48.094 --> 00:02:51.252
the nets. 77 nets, 249 connections to make.

00:02:51.272 --> 00:02:56.221
99 pins disagree with the copper they seem to touch. Those get reported, not

00:02:56.241 --> 00:02:57.136
quietly fixed.

00:02:57.726 --> 00:03:02.040
Then the router. It's written for this job, and it uses every inner layer.

00:03:02.060 --> 00:03:06.974
When photographed pours were hard walls, 235 connections stayed open.

00:03:06.994 --> 00:03:11.990
Real vias pass through pours, so seen copper became expensive to cross instead

00:03:12.010 --> 00:03:12.826
of forbidden.

00:03:12.846 --> 00:03:17.587
17 recorded runs later, 6 and 8 layers are down to about 30.

00:03:18.157 --> 00:03:21.244
The layer count comes from how hard that is.

00:03:21.264 --> 00:03:27.699
4 layers: 54 open, and 327 mm cut through copper the photos show.

00:03:27.719 --> 00:03:30.646
6 layers: 34 open, 24 mm.

00:03:30.666 --> 00:03:37.037
8 layers: 29 open, 30 mm. That's no real gain, since runs vary by about a

00:03:37.057 --> 00:03:37.737
quarter.

00:03:37.757 --> 00:03:42.411
So the proposal is 6. It's a measure of difficulty. Nobody has seen inside

00:03:42.431 --> 00:03:43.105
this board.

00:03:43.693 --> 00:03:48.776
The rules were set from the start: KiCad's defaults, 0.2 mm track and

00:03:48.796 --> 00:03:49.516
clearance.

00:03:49.536 --> 00:03:53.723
Most of what's left open is fan-out at the two QFN chips.

00:03:53.743 --> 00:04:00.570
The same copy at JLC-style rules, 0.127 mm, leaves just 2 open at 6 layers.

00:04:00.590 --> 00:04:05.024
So that's mostly a rules limit. That run has no valid design rule check yet.

00:04:05.592 --> 00:04:10.631
Then it reviews itself, in a loop. 4 passes, and the last one changes nothing.

00:04:10.651 --> 00:04:15.930
Blocks and placement come out high. Identity, values, copper, vias and layers,

00:04:15.950 --> 00:04:16.406
medium.

00:04:16.426 --> 00:04:18.593
Connectivity is low, and it says why.

00:04:18.613 --> 00:04:23.647
Everything still unknown gets a test. 119 of them.

00:04:24.218 --> 00:04:25.731
So this is not a finished board.

00:04:25.751 --> 00:04:31.262
34 connections stay open. KiCad counts 76 missing, because some seen copper

00:04:31.282 --> 00:04:33.105
isn't joined in the copy.

00:04:33.125 --> 00:04:37.466
The rails at the upper left of the bottom are largely missing, and signal

00:04:37.486 --> 00:04:39.139
bundles mostly read as gaps.

00:04:39.159 --> 00:04:43.115
And the inner copper is one way to connect it, not what's actually inside.

00:04:43.682 --> 00:04:48.729
Every stage is saved in the flow window. 110 recorded steps you can replay.

00:04:49.308 --> 00:04:54.732
From the first prompt to the report took about 6.5 hours of AI time, with idle

00:04:54.752 --> 00:04:56.756
gaps over 15 minutes cut out.

00:04:56.776 --> 00:05:05.483
914,981 output tokens, and 272 million cache reads, across 463 model calls.

00:05:05.503 --> 00:05:10.357
Next up: real measurements on this board, and a second board, before any of it

00:05:10.377 --> 00:05:11.107
goes public.