Document that via capping is deliberately not modeled, with error bound

Layer-to-layer the cap (>=15 um plating per fab spec) is parallel to
the annular-ring contact, so it cannot change the DC path. In-plane the
model treats every via mouth as solid layer-thickness copper; the error
is bounded by the dilute-hole correction (~ +2x mouth-area-fraction
locally), partially offset by the unmodeled annular-ring copper, and
typically well under a few percent of total R.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
janik
2026-07-15 16:11:49 +07:00
parent bc8dcab9e4
commit d183bc5fd7
2 changed files with 18 additions and 7 deletions
+12 -3
View File
@@ -70,9 +70,18 @@ SWIG API. Requires KiCad **10.0.1+**.
barrel lengths.
- Via/pad barrels: thin-wall annulus, R = ρ·L/(π·d·t_plating),
`VIA_PLATING_UM = 18` in `fill_resistance/config.py`. Vias are always
plated; capped vs uncapped does not change the layer-to-layer DC path
(the ≥5 µm cap sits over the hole mouth in parallel with the
annular-ring contact, not in series). Per layer a barrel attaches to
plated. **Via capping is not modeled.** Layer-to-layer it cannot
matter at DC: the cap (≥15 µm plating per fab spec, thinner than the
foil) sits over the hole mouth in parallel with the annular-ring
contact, not in series. In-plane, the model treats every via mouth as
solid layer-thickness copper (KiCad fills do not subtract the drill),
where reality is a hole (uncapped) or the thin cap. The error is
bounded by the dilute-hole correction ρ_eff ≈ ρ·(1 + 2f) inside via
fields (f = mouth area fraction; 0.3 mm drills on a 1 mm grid give
f ≈ 7 % → ≈ +14 % locally), is partially offset by the unmodeled
annular-ring copper, and largely vanishes where the current descends
into the barrels anyway — typically ≪ a few % of the total R.
Per layer a barrel attaches to
the fill cell under it, or to the nearest copper cell within the pad
footprint plus one grid cell — fills joined by **thermal-relief
spokes** still connect; wider antipads do not, and the barrel bridges
+6 -4
View File
@@ -21,10 +21,12 @@ COPPER_THICKNESS_UM: float | None = None # None -> stackup, fallback 35.0 with
FALLBACK_THICKNESS_UM = 35.0
TEST_CURRENT_A = 1.0 # default injected current (dialog/CLI-selectable)
VIA_PLATING_UM = 18.0 # barrel plating thickness (always plated).
# Capped vs uncapped vias do not change the
# layer-to-layer DC path: the >=5um cap sits
# over the hole mouth in parallel with the
# annular-ring contact, not in series.
# Via capping is NOT modeled: layer-to-layer
# the cap (>=15um per fab spec, thinner than
# the foil) is parallel to the annular-ring
# contact, not in series; in-plane every via
# mouth is treated as solid layer-thickness
# copper (error bound: see README).
INCLUDE_TH_PADS = True # plated through-hole pads stitch layers too
SKIN_SIDES = 1 # skin-effect field config: 1 = plane facing a
# return plane (conservative), 2 = isolated foil