Diagnostic confirmed: the L2/L3 zones have copper geometry but are
missing net assignments (effectiveNetId is null), so DRC treats them
as decorative copper, not net-bound planes.
Fix in two steps:
STEP 1 — Create missing zones with explicit net assignment
The L2 GND zone and L3 3V0 dominant zone do not exist as proper
queryable nodes. Create them now:
a) L2 GND PLANE
- Layer: Mid-Layer 1 (L2)
- Net: GND (assign explicitly — set effectiveNetId / net property)
- Shape: circle, diameter 57.4mm, centred at (0, 0) — slightly
smaller than the 58mm board outline to maintain 0.3mm edge
clearance
- Fill type: solid copper pour
- Connection style: thermal relief to net-matching pads
- Thermal relief: 4 spokes, 0.4mm spoke width, 0.3mm clearance
- Stitching density: 2mm
b) L3 3V0 DOMINANT POUR
- Layer: Mid-Layer 2 (L3)
- Net: 3V0 (assign explicitly)
- Shape: circle, diameter 57.4mm, centred at (0, 0), MINUS the
two existing island regions (VSYS and 1V8_SGP41) — i.e., the
3V0 pour fills L3 everywhere EXCEPT inside the islands
- Fill type: solid copper pour
- Connection: thermal relief, same parameters as L2
STEP 2 — Assign net to existing islands
The L3 VSYS and L3 1V8_SGP41 island zones exist but have no net
assignment. Set them now:
c) L3 VSYS ISLAND
- Existing zone at (10, 18), 10×12mm
- Net: VSYS (assign explicitly — currently has no effectiveNetId)
d) L3 1V8_SGP41 ISLAND
- Existing zone at (-10, 22), 8×8mm
- Net: 1V8_SGP41 (assign explicitly)
After Step 1 and Step 2:
- Force a pour rebuild / fill regeneration on all 4 zones
- Verify each zone now reports a valid effectiveNetId matching its
intended net
- Re-run DRC and report:
- New total airwire count
- Specifically the GND, 3V0, VSYS, 1V8_SGP41 airwire counts
- Render each layer (L1, L2, L3, L4) separately so I can verify
the copper fills look correct
Expected result: airwire count should drop dramatically (from 170 to
under 30), because most of the GND/3V0/VSYS airwires resolve through
the now-net-bound planes.
If after this the count is still > 50, do NOT iterate further. Report
back and stop. I'll handle the next decision from outside Flux.