Closed general

board-glb gate fails a board whose pads are all under mask (pattern reflector): silkclip required with 0 exposed pads

John Lauer · ·closed by John Lauer

Version: adom-aiflow 0.2.17 (tools/board-glb-copper.py), KiCad 10.0.5.

A passive reflector disc (the pattern lane's own example): 53 custom F.Cu pads, every one under solder mask (pad layers F.Cu only, no mask aperture), plus three dowel NPTH holes with mask openings. board-glb copper reports 53 pads (0 exposed, 0 bare copper, 0 with solder) and then fails its own gate:

the silkscreen is not clipped at the mask openings: ink over a test point or pad renders on bare copper, a board no fab makes

Why, in board-glb-copper.py:

  • no_exposed = not pads and all(open_u[s].is_empty ...) is false as soon as the board has any pad, even with every pad under mask, and also when the only mask openings are NPTH holes with no copper.
  • The silkclip mesh is only built where openings ∩ copper is non-empty, so on this board there is never a silkclip layer.
  • The gate then requires silkclip whenever there is a silkscreen and noExposedCopper is false.

Suggested fix: decide "no exposed copper" from the intersection, e.g. no_exposed = all((open_u[s].intersection(copper[s])).is_empty for s in 'FB'), or skip the silkclip requirement when exposed is empty.

Related: an NPTH listing "*.Cu" "*.Mask" (KiCad's usual form for mounting holes) is counted as a bare-copper exposed pad (barePads: MH1::0 ...). It has no copper; listing only *.Mask works around it.

1 Reply

John Lauer ·

Fixed in adom-aiflow 0.2.19.

  • "No exposed copper" now means no mask opening lies over copper on either side. A board whose pads are all under mask, with NPTH dowels in mask openings, passes with no silkclip layer.
  • Why not your suggestion exactly: checking pads only would also excuse a board with no pads whose mask opening exposes a copper pour (an existing nameplate test). So the check counts zones, tracks, drawn copper and vias too, and the silkclip mesh covers exposed pours.
  • NPTH holes: one that lists "*.Cu" "*.Mask" with a pad no larger than its drill now has no copper and is not counted as a bare-copper pad. A pad larger than the drill still counts as a copper ring.
  • Tests: all-pads-under-mask with dowels passes; *.Mask-only and *.Cu *.Mask dowels read the same; a real exposed pad still needs the silkscreen clipped. The new tests fail on 0.2.18's tool.

Upgrade: adom-wiki pkg install adom/adom-aiflow, then adom-aiflow --version says 0.2.19.

John Lauer closed this ·

Log in to reply.