Codex
Public Made by Adomby adom
Codex in Adom Hydrogen: ecosystem setup, dock dashboard and live engineering demos.
6086010
1mo ago
KiCad routing implementation and recording evidence
Two edited demonstrations captured from the real KiCad window on AdomLapper. Astra runs in the Adom Hydrogen development container and issues commands through Adom Bridge to the Windows KiCad development bridge. The PCB starts without traces; copper is added through KiCad's official IPC API while the editor redraws.
- 01-astra-live-routing-3x.mp4 — six nets, 13 pads, 20 trace segments and two vias. The idle introduction is removed; the action plays at 3x with a short final-frame hold.
- 02-astra-crossbar-24-3x.mp4 — a larger 24-net, 72-pad crossover and branch routing fixture: 120 trace segments, 48 vias, zero DRC errors and zero unconnected items. Idle validation waits are trimmed; visible routing plays at 3x. About 31 seconds including a final-frame hold.
Both clips are 1920x1080 H.264 MP4s at 30 fps with burned-in captions and no audio. Each final validation has three warnings for the uninstalled synthetic footprint library.
The on-video captions explain the mechanism. These are edited recordings of live edits, not a rendered animation of a PCB.
What Astra calculates
For the small example, opposite pads at x=105 and x=145 mm give 40 mm horizontal spans. I supply explicit waypoints, including layer changes on NET_3 and a third-pad branch on NET_6.
For the larger fixture, input index i=0..23 maps to output column j=(7i) mod 24. Because 7 and 24 are coprime, every output column is used exactly once. Input rows are y=52+2.54i mm; output columns are x=65+2.54*j mm. Front-copper horizontal runs and back-copper vertical runs can cross without a same-layer short. Each net has two 0.60 mm vias with 0.30 mm drills, 0.30 mm trace width, and a branch to a third pad. The top output is on front copper; the bottom test output is through-hole.
This is an explicit routing algorithm for a constructed fixture. It demonstrates the new per-net/per-trace control surface; it does not claim arbitrary-board obstacle avoidance, push-and-shove routing, or production electrical qualification.
The actual Bridge verbs
kicad_routing_state: reads pads, nets, existing copper, KiCad connectivity, and a revision hash of the live PCB.kicad_route_netwithdryRun:true: resolves the complete net's waypoints and runs a KiCad DRC preview without changing the editor.kicad_route_net: commits the planned copper through IPC withexpectedRevision. Each segment/via is its own native edit in these recordings. After the full-net preview, exact individual items usevalidate:false; complete-board DRC follows all edits. A stale revision rejects the edit.kicad_routing_validate: runs final KiCad DRC and reports errors, warnings and unconnected items. KiCad supplies connectivity and DRC results; the AI does not merely infer success from the drawing.desktop_record_window_start/desktop_record_window_stop: native Adom Bridge recording of the KiCad window.pull_file/send_files: moves recordings and PCB files between Windows and the Hydrogen container.
The first two fixtures started without copper. In the full public-board comparison below, kicad_remove_route visibly removes every original segment and via before independent routing begins.
Development source
KiCad branch: feature/per-net-live-routing.
Draft review: https://wiki.adom.inc/adom/kicad-bridge/prs/2
These recordings use 0.10.0-dev.per-net.1. The source is in development, not merged to main. The separate Adom Bridge development-pin protection fix is not represented by these routing videos as deployed.
The original recordings and detailed call evidence are preserved separately in the development workspace. The scripts and caption files make the edits reproducible.
Public Adom board: visible first pass
The third clip uses Adom's public Teazzers Solenoid Driver RP2040 v1.1. Both the page and source archive were verified accessible without authentication. The reference was preserved; a separate copy had all 542 track/via items removed, retaining all 94 footprints. Private development boards are excluded from this showcase.
Public Adom board: first routing pass
Download the preview. Uses the public Adom Teazzers Solenoid Driver RP2040 v1.1, with 94 footprints and five channels. Astra calculates paths independently, then commits them live through Adom Bridge. Precomputed geometry and 3x playback are labeled. This first pass adds 60 connections as 106 segments, reducing native open items from 118 to 60. Five baseline errors remain. This is the earlier partial run; the full comparison below completes connectivity.
The planner reads pads and nets from the stripped board, tries straight and diagonal/orthogonal paths, and checks other-net copper, pads, keepouts and board-edge clearance. The accepted batch was checked with native KiCad DRC before recording. No external autorouter generated these paths.
kicad_routing_state verifies the empty live board and obtains its revision. Sixty kicad_route_net calls with expectedRevision and validate:false commit the already checked paths. The last call saves the copy. Native kicad-cli pcb drc --refill-zones then checks the actual saved board through Adom Bridge run_script. Recording uses desktop_record_window_start and desktop_record_window_stop. Idle startup is trimmed, retained action is 3x, and the final frame is held.
The recorded board has 60 open items and five baseline errors: two courtyard overlaps, two starved thermals and one zone intersection. No new track-clearance or crossing errors were introduced. The published reference itself has three open items and 27 errors under KiCad 10; it is not described as perfect. The full comparison below completes connectivity; electrical review remains unfinished.
Public Adom board: full routing comparison
Download the full comparison. The public Teazzers Solenoid Driver RP2040 v1.1 has 94 footprints and five output channels. The video tours the original human layout, removes all 484 segments and 58 vias from a copy, verifies zero remaining traces/vias, and shows Astra's independently calculated routing appearing through live KiCad IPC edits.
Astra runs in Adom Hydrogen and writes a custom geometry/A* planner. It reads the retained placement, pads, netlist and zone outlines; checks candidate paths against copper, pads, holes and board edges; and uses back copper and vias where needed. No Freerouting or other external autorouter is used, and the original trace geometry is not used to generate the replacement paths. Planning and iterative native DRC happened before this recorded execution. The tour and result play at normal speed; route creation plays at 3x, with the validation wait omitted.
The final saved live board contains 1,463 segments and 33 vias, with zero unconnected items after native KiCad zone refill and DRC. Four pre-existing errors remain: two courtyard overlaps, one zone intersection and one starved thermal. There are no new clearance or crossing errors. The human reference reports three open items and 27 errors under the same KiCad checks; the stripped starting copy reports 118 open items and five errors. This demonstrates connectivity routing on this board. Current capacity, USB signal integrity and production electrical qualification remain engineering review tasks.
kicad_routing_state supplies the live revision and verifies copper counts. kicad_remove_route removes the original copper in one native Undo transaction. Then 132 kicad_route_net calls create the independently calculated segments and vias, guarded by expectedRevision. These calls use validate:false because the whole candidate was already checked; the actual saved live board is checked again using kicad-cli pcb drc --refill-zones through Adom Bridge run_script. desktop_record_window_start / desktop_record_window_stop capture one continuous KiCad-window take. The edited film is derived from that take, with caption timing and an edit manifest retained.
Narrated full comparison
Watch or download the narrated version. Adom TTS supplies the synthetic Andrew voice, timed to the tour, removal, independent routing and measured result. Captions remain visible; the silent edition above is also available.
Narration transcript
This is Astra, working through Adom Hydrogen and Adom Bridge. We start with a public Adom solenoid driver: ninety-four footprints and five output channels. Here is the original human routing, from the power converter and output stages to the controller and USB interface.
Now, every original trace and via is removed from a copy. Placement and copper zone outlines stay in place.
The new paths were calculated beforehand using a custom geometry and A-star planner, without an external autorouter. It checks pads, copper, holes, and board edges, then chooses front or back copper and places vias where needed. You are watching those paths being created live in KiCad, at three times speed. The routing state verb supplies the board revision. Route net commits each batch through Adom Bridge, rejecting stale revisions.
The saved result has fourteen hundred sixty-three segments and thirty-three vias. Native KiCad checks report zero unconnected items. Four pre-existing rule errors remain. Electrical review is still required.
# KiCad routing implementation and recording evidence
Two edited demonstrations captured from the real KiCad window on AdomLapper. Astra runs in the Adom Hydrogen development container and issues commands through Adom Bridge to the Windows KiCad development bridge. The PCB starts without traces; copper is added through KiCad's official IPC API while the editor redraws.
- **01-astra-live-routing-3x.mp4** — six nets, 13 pads, 20 trace segments and two vias. The idle introduction is removed; the action plays at 3x with a short final-frame hold.
- **02-astra-crossbar-24-3x.mp4** — a larger 24-net, 72-pad crossover and branch routing fixture: 120 trace segments, 48 vias, zero DRC errors and zero unconnected items. Idle validation waits are trimmed; visible routing plays at 3x. About 31 seconds including a final-frame hold.
Both clips are 1920x1080 H.264 MP4s at 30 fps with burned-in captions and no audio. Each final validation has three warnings for the uninstalled synthetic footprint library.
The on-video captions explain the mechanism. These are edited recordings of live edits, not a rendered animation of a PCB.
## What Astra calculates
For the small example, opposite pads at x=105 and x=145 mm give 40 mm horizontal spans. I supply explicit waypoints, including layer changes on NET_3 and a third-pad branch on NET_6.
For the larger fixture, input index i=0..23 maps to output column j=(7*i) mod 24. Because 7 and 24 are coprime, every output column is used exactly once. Input rows are y=52+2.54*i mm; output columns are x=65+2.54*j mm. Front-copper horizontal runs and back-copper vertical runs can cross without a same-layer short. Each net has two 0.60 mm vias with 0.30 mm drills, 0.30 mm trace width, and a branch to a third pad. The top output is on front copper; the bottom test output is through-hole.
This is an explicit routing algorithm for a constructed fixture. It demonstrates the new per-net/per-trace control surface; it does not claim arbitrary-board obstacle avoidance, push-and-shove routing, or production electrical qualification.
## The actual Bridge verbs
- `kicad_routing_state`: reads pads, nets, existing copper, KiCad connectivity, and a revision hash of the live PCB.
- `kicad_route_net` with `dryRun:true`: resolves the complete net's waypoints and runs a KiCad DRC preview without changing the editor.
- `kicad_route_net`: commits the planned copper through IPC with `expectedRevision`. Each segment/via is its own native edit in these recordings. After the full-net preview, exact individual items use `validate:false`; complete-board DRC follows all edits. A stale revision rejects the edit.
- `kicad_routing_validate`: runs final KiCad DRC and reports errors, warnings and unconnected items. KiCad supplies connectivity and DRC results; the AI does not merely infer success from the drawing.
- `desktop_record_window_start` / `desktop_record_window_stop`: native Adom Bridge recording of the KiCad window.
- `pull_file` / `send_files`: moves recordings and PCB files between Windows and the Hydrogen container.
The first two fixtures started without copper. In the full public-board comparison below, `kicad_remove_route` visibly removes every original segment and via before independent routing begins.
## Development source
KiCad branch: `feature/per-net-live-routing`.
Draft review: https://wiki.adom.inc/adom/kicad-bridge/prs/2
These recordings use `0.10.0-dev.per-net.1`. The source is in development, not merged to main. The separate Adom Bridge development-pin protection fix is not represented by these routing videos as deployed.
The original recordings and detailed call evidence are preserved separately in the development workspace. The scripts and caption files make the edits reproducible.
## Public Adom board: visible first pass
The third clip uses Adom's public Teazzers Solenoid Driver RP2040 v1.1. Both the page and source archive were verified accessible without authentication. The reference was preserved; a separate copy had all 542 track/via items removed, retaining all 94 footprints. Private development boards are excluded from this showcase.
### Public Adom board: first routing pass
<video width="100%" controls playsinline preload="metadata" src="https://wiki.adom.inc/api/pages/adom/codex/files/videos/03-public-adom-solenoid-first-pass-3x.mp4" style="width:100%;max-width:1100px"></video>
[Download the preview](https://wiki.adom.inc/api/pages/adom/codex/files/videos/03-public-adom-solenoid-first-pass-3x.mp4). Uses the public [Adom Teazzers Solenoid Driver RP2040 v1.1](https://wiki.adom.inc/adom/teazzers-solenoid-driver-rp2040-v1-1), with 94 footprints and five channels. Astra calculates paths independently, then commits them live through Adom Bridge. Precomputed geometry and 3x playback are labeled. This first pass adds 60 connections as 106 segments, reducing native open items from 118 to 60. Five baseline errors remain. This is the earlier partial run; the full comparison below completes connectivity.
The planner reads pads and nets from the stripped board, tries straight and diagonal/orthogonal paths, and checks other-net copper, pads, keepouts and board-edge clearance. The accepted batch was checked with native KiCad DRC before recording. No external autorouter generated these paths.
`kicad_routing_state` verifies the empty live board and obtains its revision. Sixty `kicad_route_net` calls with `expectedRevision` and `validate:false` commit the already checked paths. The last call saves the copy. Native `kicad-cli pcb drc --refill-zones` then checks the actual saved board through Adom Bridge `run_script`. Recording uses `desktop_record_window_start` and `desktop_record_window_stop`. Idle startup is trimmed, retained action is 3x, and the final frame is held.
The recorded board has 60 open items and five baseline errors: two courtyard overlaps, two starved thermals and one zone intersection. No new track-clearance or crossing errors were introduced. The published reference itself has three open items and 27 errors under KiCad 10; it is not described as perfect. The full comparison below completes connectivity; electrical review remains unfinished.
## Public Adom board: full routing comparison
<video width="100%" controls playsinline preload="metadata" src="https://wiki.adom.inc/api/pages/adom/codex/files/videos/04-public-adom-solenoid-full-routing.mp4" style="width:100%;max-width:1100px"></video>
[Download the full comparison](https://wiki.adom.inc/api/pages/adom/codex/files/videos/04-public-adom-solenoid-full-routing.mp4). The public [Teazzers Solenoid Driver RP2040 v1.1](https://wiki.adom.inc/adom/teazzers-solenoid-driver-rp2040-v1-1) has 94 footprints and five output channels. The video tours the original human layout, removes all 484 segments and 58 vias from a copy, verifies zero remaining traces/vias, and shows Astra's independently calculated routing appearing through live KiCad IPC edits.
Astra runs in Adom Hydrogen and writes a custom geometry/A* planner. It reads the retained placement, pads, netlist and zone outlines; checks candidate paths against copper, pads, holes and board edges; and uses back copper and vias where needed. No Freerouting or other external autorouter is used, and the original trace geometry is not used to generate the replacement paths. Planning and iterative native DRC happened before this recorded execution. The tour and result play at normal speed; route creation plays at 3x, with the validation wait omitted.
The final saved live board contains **1,463 segments and 33 vias, with zero unconnected items** after native KiCad zone refill and DRC. Four pre-existing errors remain: two courtyard overlaps, one zone intersection and one starved thermal. There are no new clearance or crossing errors. The human reference reports three open items and 27 errors under the same KiCad checks; the stripped starting copy reports 118 open items and five errors. This demonstrates connectivity routing on this board. Current capacity, USB signal integrity and production electrical qualification remain engineering review tasks.
`kicad_routing_state` supplies the live revision and verifies copper counts. `kicad_remove_route` removes the original copper in one native Undo transaction. Then 132 `kicad_route_net` calls create the independently calculated segments and vias, guarded by `expectedRevision`. These calls use `validate:false` because the whole candidate was already checked; the actual saved live board is checked again using `kicad-cli pcb drc --refill-zones` through Adom Bridge `run_script`. `desktop_record_window_start` / `desktop_record_window_stop` capture one continuous KiCad-window take. The edited film is derived from that take, with caption timing and an edit manifest retained.
## Narrated full comparison
<video width="100%" controls playsinline preload="metadata" src="https://wiki.adom.inc/api/pages/adom/codex/files/videos/04-public-adom-solenoid-full-routing-narrated.mp4" style="width:100%;max-width:1100px"></video>
[Watch or download the narrated version](https://wiki.adom.inc/api/pages/adom/codex/files/videos/04-public-adom-solenoid-full-routing-narrated.mp4). Adom TTS supplies the synthetic Andrew voice, timed to the tour, removal, independent routing and measured result. Captions remain visible; the silent edition above is also available.
### Narration transcript
This is Astra, working through Adom Hydrogen and Adom Bridge. We start with a public Adom solenoid driver: ninety-four footprints and five output channels. Here is the original human routing, from the power converter and output stages to the controller and USB interface.
Now, every original trace and via is removed from a copy. Placement and copper zone outlines stay in place.
The new paths were calculated beforehand using a custom geometry and A-star planner, without an external autorouter. It checks pads, copper, holes, and board edges, then chooses front or back copper and places vias where needed. You are watching those paths being created live in KiCad, at three times speed. The routing state verb supplies the board revision. Route net commits each batch through Adom Bridge, rejecting stale revisions.
The saved result has fourteen hundred sixty-three segments and thirty-three vias. Native KiCad checks report zero unconnected items. Four pre-existing rule errors remain. Electrical review is still required.