External-board routing status

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.

  • seed=42
  • router exit code: 2
  • human baseline (pre-rip-up): 2291 segments, 399 vias, 2791.2mm, 25 unrouted pads
  • 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)

Board source: https://git.beagleboard.org/beagleconnect/freedom; board revision: 3f99c08de7d81991f95eb2c23f30798a129ffdcf.

Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.

Collection writeup and reproduction

Raw report JSON

PocketBeagle · 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
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.

  • seed=42
  • router exit code: 1
  • human baseline (pre-rip-up): 1297 segments, 171 vias, 2561.0mm, 78 unrouted pads
  • 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)

Board source: https://github.com/beagleboard/pocketbeagle; board revision: d793a63f48dd3041e333362d5ec870377d255f89.

Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.

Collection writeup and reproduction

Raw report JSON

STRF RF mixed-signal · tuned

Evidence recorded · Tested tool 696315f

Outcome: partial. The attempt ended with incomplete routing; some connections remain unresolved.

Measured artifact: router output.

Input connectivity before routing
23 of 98 (23.5%)
Newly routed connections
0
Measured final connectivity
23 of 98 (23.5%)
Measured copper
0 vias · 70.25 mm
Attempt duration
1260.1 s — partial phase
Design checks (kct check)
FAIL (95E / 8W)
Native KiCad DRC
144
Differential pairs
0/2
Reason, diagnostics and reproduction

the router exited 1 (non-zero) but wrote an output file for this attempt -- measuring the partial progress it made, not treating this as success

Exit code: 1.

Recorded harness notes

These original notes do not override the run limitations above.

  • seed=42
  • router exit code: 1
  • human baseline (pre-rip-up): 346 segments, 70 vias, 287.8mm, 17 unrouted pads
  • 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

Board source: https://github.com/pms67/STRF-Kicad; board revision: 0525ef655e460ff6d91d770582b47925e7852e7a.

Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.

Collection writeup and reproduction

Raw report JSON

STRF RF mixed-signal · zero-touch

Evidence recorded · Tested tool 696315f

Outcome: partial. The attempt ended with incomplete routing; some connections remain unresolved.

Measured artifact: router output.

Input connectivity before routing
23 of 98 (23.5%)
Measured connectivity change
-2 (negative change, not routing improvement)
Measured final connectivity
21 of 98 (21.4%)
Measured copper
0 vias · 5.23 mm
Attempt duration
137.0 s — partial phase
Design checks (kct check)
FAIL (43E / 121W)
Native KiCad DRC
146
Differential pairs
0/2
Reason, diagnostics and reproduction

the router exited 2 (non-zero) but wrote an output file for this attempt -- measuring the partial progress it made, not treating this as success

Exit code: 2.

Recorded harness notes

These original notes do not override the run limitations above.

  • seed=42
  • router exit code: 2
  • human baseline (pre-rip-up): 346 segments, 70 vias, 287.8mm, 17 unrouted pads

Board source: https://github.com/pms67/STRF-Kicad; board revision: 0525ef655e460ff6d91d770582b47925e7852e7a.

Reproduce with the recorded tool and board revisions. The collection writeup records actual commands, budgets, environment and acquisition limitations.

Collection writeup and reproduction

Raw report JSON

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.

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:

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.

Historical measurements

BoardProtocolLocal measurement (this snapshot)Vendor reference
(external, unverified)
Connectivity*ConnectionsViasWirelength (mm)Duration*kct checkkicad-cli DRCDiff pairsOutcomeArtifact
BeagleConnect Freedomzero-touch32.6%*150 of 46000.004.4 s *FAIL (8337E / 590W)4170/4unknown (legacy)unknown414 airwires
PocketBeaglezero-touch31.8%*94 of 29600.002.8 s *FAIL (394E / 801W)0n/aunknown (legacy)unknown290 airwires
STRF RF mixed-signalNo committed report in this repository — see results/README.md and Epic #4932 for status98 airwires · 100% complete · 68 vias

* 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.

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:

# 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.