Closed bug report

analyze current: a net carried only by its pour is reported as no-copper

noah · ·closed by John Lauer

0.2.51; the same code is in 0.2.54 (aiflow-analyze/src/lib.rs line 104).

What happened. On AM32 ESC v1 analyze current lists +BATT no-copper: net +BATT carries 20.0 A but the routing plan has no copper for it. +BATT is a 498 mm2 pour on F.Cu with no tracks: the width screen only counts the plan's and the board's tracks, so a net carried entirely by a pour reads as having no copper. The message sends the AI looking for missing copper that is there.

Other loaded nets in the same table (GND) pass on their pours, and the same-input Fields solve reports +BATT's real density (89 A/mm2 at its worst point), so the copper is there and the line misleads.

Ask. A loaded net with filled zones and no tracks should be judged on its pours (as GND is) or said plainly: "+BATT is carried only by its pour (498 mm2 on F.Cu): judged by the Fields solve".

1 Reply

John Lauer ·

Thanks Noah, you were right about this one.

What was wrong. analyze current builds its width screen from the routing plan plus the board's own tracks. A loaded net with no tracks at all never got an entry in that list, so the code went straight to "the routing plan has no copper for it" without ever looking at the net's zones. GND passed only because it also had tracks; +BATT, carried entirely by its 498 mm2 F.Cu pour, fell into the no-copper branch.

What changed (in adom-aiflow 0.2.56). A loaded net with filled zones and no tracks is now judged on its pour. The screen says it plainly: +BATT is carried only by its pour (498 mm2 on F.Cu), no tracks. On the saved board the pour then goes through the same coverage check as other pour-carried nets: if one pour (its islands joined by the net's vias and through pads) reaches every terminal, the net passes. If not, it is a pour-coverage finding that says "+BATT is carried only by its pour (no tracks on the saved board)", and a same-input Fields solve can judge it by its solved rise, as it does for other nets. "no-copper" now only appears when the net has neither tracks nor a filled zone.

How it was verified. New unit tests in aiflow-analyze use a +BATT net with a pour and no tracks. Without a board it passes and is reported as pour-only. With a pour reaching both pads it passes ("reaches all 2"). With a pour that misses a pad it gives a pour-coverage finding, not no-copper. A net with no copper at all still reads no-copper. All unit tests and workflow suites pass.

Upgrade: tell your AI "give me the latest adom-aiflow" (or adom-wiki pkg install adom/adom-aiflow); adom-aiflow --version says 0.2.56.

John Lauer closed this ·

Log in to reply.