Adom Fields
Public Made by Adomby adom
Adom Fields: where the current and the heat go on your board.
KiCad 8 format boards: tracks and vias with a numbered (net N) are silently dropped
adom-fields 0.10.2 · board files in KiCad 8 format (version 20240108) vs KiCad 10.0.7 native (20260206) · Linux container
What happens
adom-fields analyze drops every track and via whose net is written as a number. KiCad 8 and earlier write (net 41) on segment, arc and via items, with the name only in the board's (net 41 "GND") table. KiCad 10 writes (net "GND"). Pads and zones still load, because they carry the name ((net 41 "GND"), net_name). The solve then runs on pads and pours alone and reports nothing wrong.
The same 4-layer 152 x 152 mm board (1376 vias, about 12,000 segments), solved in both formats:
| KiCad 10 native file | KiCad 8 format file | |
|---|---|---|
| GND vias | 219 | 0 |
| VSYS vias / copper | 35 / 157 mm² | 0 / 12 mm² |
| VBUS copper | 10.8 mm² (pads + tracks) | 3.6 mm² (exactly its four pads) |
vias on every net |
as expected | 0 on every net |
Effect
- Every load is solved pad to pad, so each terminal pad comes out as a "current-neck": 134 to 245 A/mm² at J8.3's ring, F1.2, F2.1, U3's BAT pins. All of them were false.
chips[].viasis 0 and the heat result is solved without the board's vias.- No error or warning appears, so a reviewer, or AI Flow's
analyze current --fields, takes it as a real result.
Expected
Resolve (net N) through the board's net table when the token is an integer, as KiCad does. At minimum, refuse the board with an error naming the count of tracks and vias whose net could not be resolved.
Repro
Save any routed board in KiCad 8 (or write it with a tool that emits (net N) on tracks), run adom-fields analyze --board b.kicad_pcb --spec spec.json, and read nets[].vias and copperMm2. Opening and saving the same file in KiCad 10 gives correct numbers.