Closed general

Tab thermal-via count includes neighboring vias on unrelated nets

John Lauer · 21d ago ·closed by John Lauer

Fable — Fields 0.1.1 reports U1 has 4 vias within 3 mm, but all four are disconnected electrically from its +VBAT tab: GND at (139.9,80.4), (143.1,79.5); +12V at (140.6,79.8), (143.1,82.5). Zero +VBAT vias are within 3 mm. Q3 is reported as 5 whereas 4 are on its tab net. Native filled-board parsing independently confirms the coordinates and net names; see attached fields-independent-check.json.

The thermal model can legitimately conduct heat indirectly to neighboring copper and its vias. The bug is presenting this count as the tab's thermal-via provision, especially when comparing it with spec thermalVias net/pad/count. Please distinguish same-net connected thermal vias from all nearby barrels; do not connect unlike electrical nets when fixing it. Also expose whether this is only a reporting count or enters the calculated heat split.

Board: /home/adom/aiflow-esc-astra/final-native/esc-g431-astra.kicad_pcb Spec: /home/adom/aiflow-esc-astra/spec.json Command: adom-fields analyze --board /home/adom/aiflow-esc-astra/final-native/esc-g431-astra.kicad_pcb --spec /home/adom/aiflow-esc-astra/spec.json --out fields Workaround: use an independent same-net count in my written review; leave the solver results intact for comparison.

Full output:

+12V: 0.5 A, 4 layer(s), 746 iterations, residual 8.0e-8
+5V: 0.5 A, 4 layer(s), 1068 iterations, residual 8.5e-8
+VBAT: 20 A, 4 layer(s), 5149 iterations, residual 9.9e-8
/DRV_SHA: 20 A, 4 layer(s), 2001 iterations, residual 9.9e-8
/DRV_SHB: 20 A, 4 layer(s), 1783 iterations, residual 9.2e-8
/DRV_SHC: 20 A, 4 layer(s), 2020 iterations, residual 9.7e-8
GND_OUT: 20 A, 4 layer(s), 765 iterations, residual 9.8e-8
heat, still air: 2131 iterations, residual 9.8e-8
heat, moving air: 1974 iterations
OK: 7 nets solved, 7 hot parts, 15 issue(s), in 87.9 s: fields/fields.json
Hint: Peak current density 648 A/mm²; peak rise 111 °C still air, 67 °C moving air, budget 60 °C; Joule loss 2.477 W on top of 4.1 W from the tabs.
Hint: high current-neck: +VBAT: 177 A/mm² at its worst point on B.Cu (20 A through a neck about 3.22 mm wide at 35 µm) | medium current-neck: /DRV_SHA: 74 A/mm² at its worst point on F.Cu (20 A through a neck about 7.71 mm wide at 35 µm) | medium current-neck: /DRV_SHB: 96 A/mm² at its worst point on F.Cu (20 A through a neck about 5.96 mm wide at 35 µm)
Hint: Next: `adom-fields serve --fields fields` and open it (pup or the browser); `adom-fields ui view --quantity current --net <net>` drives it; `adom-fields tour` walks it for a video.

fields-independent-check.json

fields.json

spec.json

esc-g431-astra.kicad_pcb

1 Reply

John Lauer · 21d ago

Fixed in adom-fields 0.1.3 (insiders): a tab's vias and viaW are now its own net's vias within 3 mm and the heat through them; other nets' barrels nearby are otherVias and otherViaW, shown apart in the app's hot-parts tooltip. The heat solve itself is unchanged and correct: every barrel conducts heat, an unrelated net's via near a tab takes heat through the dielectric first, and the split now says so instead of calling it the tab's provision. The thermal-vias issue compares the same-net count with the spec.

Log in to reply.