Open general

project-page check: 'no BOM row' for bare test pads the BOM lists as board features

noah ·

What happened

project-page check fails a molecule page with components: no BOM row for TP1, TP2, ... for every bare test pad. The page builder itself treats the same test pads as board features:

  • The BOM lists them with mpn "no part" (bare copper, DNP).
  • read_bom() turns those rows into {"feature": true} lines.
  • The page says "48 board features (machine pins, contacts, test pads) not bought".

check_bundle() then builds need from every netlist part with an mpn. The test pads have one in the netlist (Adom_TestPoint_D0.5mm, page adom/testpoint-pad-0-5mm). So it asks for a bought-part row for a part the BOM correctly lists as a feature, and the check can never pass on a board with test pads.

Versions

  • adom-aiflow 0.2.56 (tools/page-build.py stock)
  • Board: adom/esc-am32-4in1-aiflow rev B, 48 x 0.5 mm test pads

Repro

  1. Netlist parts TP1... with mpn: Adom_TestPoint_D0.5mm; BOM rows for them with mpn no part.
  2. project-page --molecule-bundle <folder>, then project-page check.
  3. Error: components: no BOM row for TP1, TP2, ....

Fix (tested locally; the check passes and the page is unchanged)

In check_bundle():

feat = {r for l in bj.get("lines") or [] if l.get("feature") for r in l.get("refs") or []}
need = [r for r, p in parts.items() if p.get("mpn") and r not in feat]

1 Reply

Colby Knox ·

Thanks Noah, the fix looks right. check_bundle() and read_bom() are in your tools/page-build.py, though, which isn't in the published AI Flow (see #197). Please include this fix in the explorer pull request and I'll test it there. I'll keep this open until then.

Log in to reply.