Each run records what happened on a pinned board and tool version. Input connectivity, newly routed connections and measured output are separate evidence. These software checks do not establish manufacturing readiness or tested hardware.
Dated routing attempts
The 2026-09-12 collection ran Linux amd64 through Rosetta on an arm64 host with four CPUs. The container requested 12 GiB, but the Docker VM had about 7.75 GiB available. These attempt durations are not comparable to physical-x86 vendor performance.
Zero-touch requests the shipped rules; tuned requests a declared configuration. Run limitations explain whether the intended rules actually took effect. Each protocol has its own record. Evidence dates are independent of the site build date.
BeagleConnect Freedom · zero-touch
Evidence recorded · Tested tool 696315f
Outcome: failed. The attempt failed. Any measured board must be interpreted using its recorded artifact source.
Measured artifact: fallback input.
Input connectivity before routing
139 of 460 (30.2%)
Newly routed connections
0
Measured fallback-input connectivity
139 of 460 (30.2%)
Measured copper
0 vias · 0.00 mm
Attempt duration
89.3 s — failed phase
Design checks (kct check)
not run
Native KiCad DRC
429
Differential pairs
0/4
Reason, diagnostics and reproduction
the router exited 2 (non-zero) and produced no output file for this attempt -- no routing progress was captured; measuring the pre-route input as fallback
Exit code: 2.
Design-check diagnostic: kct check failed: ValueError: Unsupported routing geometry 'custom' for pad U6.9; use circle, rect, oval, or roundrect pads without a padstack, or route this board with a router supporting its full copper geometry.
Recorded harness notes
These original notes do not override the run limitations above.
router produced no output file for this attempt -- measuring the pre-route (ripped-up) input as fallback; the completion% below reflects pre-existing/trivial connectivity, NOT new routing progress (see route_outcome / pre_route_completion in the JSON report)
Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.
Outcome: failed. The attempt failed. Any measured board must be interpreted using its recorded artifact source.
Measured artifact: fallback input.
Input connectivity before routing
94 of 296 (31.8%)
Newly routed connections
0
Measured fallback-input connectivity
94 of 296 (31.8%)
Measured copper
0 vias · 0.00 mm
Attempt duration
1.7 s — failed phase
Design checks (kct check)
FAIL (394E / 801W)
Native KiCad DRC
0
Differential pairs
n/a
Reason, diagnostics and reproduction
the router exited 1 (non-zero) and produced no output file for this attempt -- no routing progress was captured; measuring the pre-route input as fallback
Exit code: 1.
Recorded harness notes
These original notes do not override the run limitations above.
router produced no output file for this attempt -- measuring the pre-route (ripped-up) input as fallback; the completion% below reflects pre-existing/trivial connectivity, NOT new routing progress (see route_outcome / pre_route_completion in the JSON report)
Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.
tuned protocol: applied declared net-class-map (/evidence/cases/strf.tuned/output/tuned/strf.net_class_map.json) via --net-class-map --differential-pairs -- see benchmarks/external/tuned_rules.py for the source values and schema-mapping caveats
Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.
Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.
Vendor references appear only in the separate historical section below. Matching board revisions, protocols and metric definitions have not been established for a competitive comparison.
Archived historical snapshot recorded 2026-08-25 at kicad-tools commit 636fd368. This is a record of a past attempt, not a live result — see results/README.md for the raw writeup. Page last built 2026-09-12.
August historical archive
What happened when this repository's router was pointed at boards DeepPCB publishes its own numbers for.2 of 2 recorded attempts produced no routed output; their input-board measurements and elapsed attempt durations are labeled below. Public, honest, and reproducible from a clean checkout — see Epic #4932 for the original benchmark harness design and Epic #5278 for the ongoing work to re-run and correctly report these boards.
beagleconnect_freedom, pocketbeagle stopped before routing and produced no routed output. Connectivity and copper measurements describe the stripped input boardfed to the router (0 vias, 0 mm of copper). Duration is the elapsed time of the stopped attempt, not completed routing performance. See "Attempt outcome" below for what blocked each one.
Historical methodology and measurement limits
Every headline number (completion, via count, wirelength) is re-measured directly from the .kicad_pcb file on disk at measurement time, never from a router-internal counter — that methodology is consistent across every run this repository produces. It does not by itself make these numbers comparable to DeepPCB's own published figures: those come from a different environment and toolchain that this repository has not independently reproduced. The "Vendor reference" column below is shown as separate, external context — not a validated apples-to-apples comparison. Two distinct protocols are reported, and results from one are never merged into the other:
zero-touch — rules exactly as shipped, no netclass or diff-pair tuning. This mirrors DeepPCB's own vs-Quilter methodology and is what PocketBeagle and BeagleConnect Freedom are reported under below.
tuned — a declared per-board netclass / diff-pair configuration applied before routing, mirroring DeepPCB's own published STRF case study (USB 2.0 differential pairs at a 90 ohm target, SPI bus on a compact-via netclass). Currently defined for STRF only; this archive has no STRF report (see "No committed report" below).
Timing is refused, not fudged, when the C++ router backend was not built for a given run — a Python-fallback runtime is never published as if it were representative. For a report whose attempt stopped before routing, the recorded duration is the failed-attempt duration — how long the router ran before its pre-route safety gates refused to proceed — never a successful route's speed; cells below say so explicitly. Both kct check and kicad-cli pcb drc are required slots per report: the former catches connectivity shorts the latter is blind to, the latter catches diff-pair / match-group rules the former can't express natively. Neither check count is evidence of a connected or fully routed board by itself — a low or zero violation count on an attempt that never placed copper simply means there was less board present to violate anything, not that the design is sound. A check that did not run always renders as not run, never as a silent 0. Full schema: benchmark-external-report-schema.md.
* means the attempt stopped before routing: the Connectivity figure is the stripped input board's pre-route connectivity (single-pad nets, zone-stitched nets already satisfied), not a routed result, and the Duration is how long the failed attempt ran, never a successful route's speed. A highlighted connectivity or kct check cell means the board did not route 100% or did not pass our own connectivity/clearance checks — see "Attempt outcome" below for why. Neither kct check nor kicad-cli DRC passing is evidence of a connected or fully routed board on its own. Outcome and Artifact use explicit report provenance when available. Missing fields remain unknown (legacy); the historical notes below supply context for the documented August attempts.
Attempt outcome
Historical, dated observations from this snapshot for every board that did not route 100% — no board-specific patching, only generic router-capability issues. Following a link below shows that issue's current status; the text here describes only what this snapshot observed.
beagleconnect_freedom (zero-touch, recorded 2026-08-25 at tool commit 636fd368) — this attempt stopped before routing and produced no routed output: one footprint (an RF shielding-can land pattern with real GND-net pads) sat outside Edge.Cuts in the pinned board, and the placement preflight gate aborted the entire route rather than routing the other ~455 connections and reporting just that footprint's nets as unresolved. Observed against #4946; see that issue for whether it is still open. Raw report: beagleconnect_freedom.zero-touch.json.
pocketbeagle (zero-touch, recorded 2026-08-25 at tool commit 636fd368) — this attempt stopped before routing and produced no routed output: the auto-grid resolver's off-grid-escalation path blew its memory-cell budget on the board's two large low-density through-hole headers, and the router safely refused to route at all rather than producing an unsafe result. Observed against #4945; see that issue for whether it is still open. Raw report: pocketbeagle.zero-touch.json.
Reproduction
Every attempt above is reproducible from a clean checkout with the pinned upstream commit and the exact harness command — running it again may not reproduce the same outcome if the router has changed since the snapshot's tool commit:
beagleconnect_freedom: https://git.beagleboard.org/beagleconnect/freedom @ 3f99c08de7d81991f95eb2c23f30798a129ffdcf (kicad-tools 636fd368, protocol zero-touch, recorded 2026-08-25) — raw report: beagleconnect_freedom.zero-touch.json
pocketbeagle: https://github.com/beagleboard/pocketbeagle @ d793a63f48dd3041e333362d5ec870377d255f89 (kicad-tools 636fd368, protocol zero-touch, recorded 2026-08-25) — raw report: pocketbeagle.zero-touch.json
strf: https://github.com/pms67/STRF-Kicad @ 0525ef655e460ff6d91d770582b47925e7852e7a — no committed report in this repository
# Fetch, normalize, route, and measure every board in one command
uv run kct bench external --board pocketbeagle --board beagleconnect_freedom
# STRF's tuned protocol (declared netclass config; STRF only)
uv run kct bench external --board strf --tuned
Requires the C++ router backend (uv run kct build-native) for a reportable wall-clock timing, and kicad-cli on PATH for the legacy-format board upgrades these boards need. See benchmarks/external/README.md for the full acquisition and normalization pipeline, and results/README.md for the full writeup behind every committed report above.