main
John Lauer Corrected Astra ESC routing: native zero-open result, full accounting and voiceover handoff a80479d 23d ago

Astra ESC G431 routing evidence

Native validation and full task statistics.

Independent Astra routing source for the shared Fable-placed, plane-only fixture. These scripts are a recorded experiment, not a fabrication-ready general autorouter.

The fixture is public: https://wiki.adom.inc/api/pages/adom/kicad-bridge/files/demo/routing/esc/esc-g431-fable-placed-planes.kicad_pcb

The planner reads the fixture locally. It uses Python, NumPy and Shapely, plus serial C++ search executables built with:

g++ -O3 search.cpp -o search
g++ -O3 search2.cpp -o search2
g++ -O3 search3.cpp -o search3

planner.py builds plane stubs and a short-net-first candidate. The repair scripts depend on the preceding candidate JSON files listed in their source. component_search.py searches connected copper components on either outer layer. The selective repair scripts remove individual conflicting paths, restore displaced nets, and use weighted congestion costs with search-grid offsets. build_corrected.py selects clearance-safe 1.0 mm power segments and prepares the final native call batches. All candidate copper is subjected to KiCad's native DRC before committing.

display_awake.py starts a temporary 20-minute display/system-awake lease on arav-rog without changing power settings. Run it before recording on this host, whose AC display timeout is 60 seconds, then release its named event at cleanup. The final replay fills the live inner planes before native validation.

final-plan.json is the exact accepted replay plan, including separate width groups and batches of at most 128 paths. final_record.py requires the disposable fixture open on arav-rog, its native IPC enabled, an evidence/ directory and the KiCad canvas already visibly prepared. It refuses to start on a board with tracks or vias. Each call is recorded by bridge.py. It never saves the board. Do not run it against an unrelated board or without the desktop owner's authorization.

Search directions are horizontal, vertical and 45 degrees. Small pad-to-grid links can have other angles. The initial search had a 1.5 million expansion limit per invocation. The corrective weighted search permits up to 6 million expansions. A failed search is not proof that a connection is geometrically impossible. The prior published take left 13 unconnected items and was rejected as incomplete. See issue 94, final-validate.json and narration.md for the corrected native result and editorial handoff. Final-plan.json is the authoritative reproducible replay geometry; optimization logs preserve rejected attempts and count changes.