AI Flow
Public Made by Adomby adom
Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board.
route: trackWidth and scalar wideNets/midNets are silently ignored by the router (0.25 mm default track, fine-pitch QFN unroutable)
What happened
On a 2-layer board with a 0.4 mm pitch QFN (ATtiny1616, 20 pins), route left 19 connections unrouted, every one at a QFN or LGA pad, with "no path".
The spec said "trackWidth": 0.15 and "wideNets": {"VBAT": 0.5, ...} (scalars). The binary accepted both: the rules card and the spec-budget lock read them. But aiflow_router::Rules::from_spec reads only track and only array-valued wideNets and midNets (b.as_array()?). So the router silently used its defaults:
- a 0.25 mm track, which cannot leave 0.4 mm pitch pads;
- no wide nets at all.
After adding "track": 0.15, one pass leaves 3 unrouted instead of 19.
Asks
- Make the router read
trackWidthas an alias oftrack, or havestart/routerefuse a spec that hastrackWidthand notrack. - Make the router accept scalar widths in
wideNetsandmidNets, as the budget lock does, or refuse them with a hint. Today they are dropped without a word. - Have
routeprint the track, clearance and per-net widths it actually used.
The budget lock also refuses to turn scalars into arrays after placement ("the spec's budgets changed"), so the spec can't be fixed in place either.
Version: adom-aiflow 0.2.56, KiCad lane.