From 449588649a2c9c21ad0fe05b816a2ba9dc0635ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leopoldo=20Rodr=C3=ADguez?= Date: Sat, 1 Aug 2026 02:08:00 +0000 Subject: [PATCH] C13: clear the last KiCad 10 DRC error - stranded GND_POUR_FCU island (EinarBoard 2.0) Leo's post-C12 DRC run left exactly one error: [unconnected_items] Zone 'GND_POUR_FCU' [GND] on F.Cu <-> Zone 'GND_POUR_FCU' [GND] on F.Cu KiCad prints only the zone anchor (60.1917, 40.3231) for both endpoints, so the report cannot localise the stranded island. Located it analytically instead. Root cause: U11 pad 9 [GND] @ (91.1275, 55.7600). It is the only GND item on the board whose item-only connectivity cluster never reaches the In2.Cu GND plane (two independent fill-independent proofs agree: layer-reach and In2-anchor). An island survives KiCad's isolated-island removal only if some item props it up, so pad 9 was propping up a GND_POUR_FCU island that touches nothing else. island_removal_mode cannot fix that - it needs copper. Pad 9 is fenced on all four sides (LQFP-48 lead ring, pad 8's westward /3V3_ETH escape, pad 10's eastward /ETH_RSET escape, the /ETH_RXP chain under the body). A 0.05mm grid router reached only 227 of 20883 legal cells and found no way to touch existing GND copper without a via, so a through via is mandatory. A 0.005mm sweep of every legal via site in that pocket picked the best one on the board's existing drill inventory - no third drill size added. + F.Cu GND track w0.3 (91.1275,55.7600) -> (90.1000,55.7600) -> (89.9950,55.8900) + F.Cu-B.Cu GND via 0.6/0.3 @ (89.9950,55.8900) * U11 pad 9 -> (zone_connect 2) Both track legs hold +0.2000mm clearance - the structural ceiling for a 0.3mm track between 0.3mm leads on 0.5mm pitch. The via holds +0.1758mm copper and +2.9705mm hole. The site sits inside GND_POUR_FCU, GND_POUR_BCU, P3V3_PLANE_IN1 and GND_PLANE_IN2 and outside MAGJACK_NO_POUR, with the nearest In2 signal copper 1.10mm away, so the barrel lands on solid In2 GND plane. zone_connect 2 mirrors the landed C12 treatment of pad 29: pads 8 and 10 each knock 0.5mm of pour out around themselves, covering the whole pad-9 lane (0.10mm tall < min_thickness 0.25), so the pour cannot reach pad 9 in any connect mode. Solid mode removes the pad from the minimum-spoke test rather than leaving a starved thermal behind. Verified on the output file: drc_c12.py 0 hard clearance violations, same 49 sub-epsilon marginals as C12 proof_c13.py 0 GND clusters without an In2 GND-plane anchor (was 1) fcu_only.py 0 F.Cu-only GND clusters (was 1 = pad 9) 24V / /24V_IN / IGN_IN copper byte-identical (45 segments) segments 1984->1986 vias 351->352 zones 5->5 footprints 189->189 Backup: .mcp-backups/hbox-watchdog-v4.kicad_pcb.pre-C13 (md5 042efd5d) Pushed: md5 94d36711d60985eef109913fcee36b09, 3502885 bytes Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm --- .../kicad/hbox-watchdog-v4.kicad_pcb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/03-Architecture-Hardware/kicad/hbox-watchdog-v4.kicad_pcb b/03-Architecture-Hardware/kicad/hbox-watchdog-v4.kicad_pcb index 443d44a..f4b60b4 100644 --- a/03-Architecture-Hardware/kicad/hbox-watchdog-v4.kicad_pcb +++ b/03-Architecture-Hardware/kicad/hbox-watchdog-v4.kicad_pcb @@ -3255,6 +3255,7 @@ (layers "F.Cu" "F.Mask" "F.Paste") (roundrect_rratio 0.25) (net "GND") + (zone_connect 2) (uuid "d861736c-1570-42dd-95ec-884afd2c8cd1") ) (pad "10" smd roundrect @@ -65160,6 +65161,30 @@ (net "GND") (uuid "229b366b-306f-414e-8504-39c778995bcf") ) + (segment + (start 91.1275 55.76) + (end 90.1 55.76) + (width 0.3) + (layer "F.Cu") + (net "GND") + (uuid "7399a60f-727f-4d68-99c6-7942e7768311") + ) + (segment + (start 90.1 55.76) + (end 89.995 55.89) + (width 0.3) + (layer "F.Cu") + (net "GND") + (uuid "360e62e2-96a7-4271-9071-3e28b9c374be") + ) + (via + (at 89.995 55.89) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net "GND") + (uuid "4d29c02c-9ef5-4dd9-ac9f-c14099da569a") + ) (zone (net "GND") (layer "F.Cu")