
Passive rpi hub75-adapter
hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

Local-first planning for IC pads → microbumps → interposer sites → package balls → PCB sites. Edit, constrain, optimize, review and export without uploading design data.
Routed handoff is an open-source printed circuit board by ajayasai, from the ajayasai/OpenBumpPlan repository on GitHub, published under the MIT licence. It is a 2-layer board of 12.1 × 12.1 mm with 2 parts on 2 nets, routed with 4 tracks and 2 vias.
Open-source bump planning with replayable optimization proofs and independently checked routing geometry.
Local-first planning for IC pads → microbumps → interposer sites → package balls → PCB sites. Edit, constrain, optimize, review and export without uploading design data.
v0.4.0 · MIT license · engineering alpha. This release retains scalable certified assignments, hard-constraint search with proof replay, congestion-repair routing and continuous finite-width copper checks. It is not a qualified foundry, electrical or thermal signoff tool, and superiority over commercial EDA products has not been demonstrated.
Open the Interoperability Workbench after npm start, or use the planner toolbar link. Import native KiCad terminal maps, export an unrouted native board and library footprint, verify actual exported terminals against an independent source/specification, detect opens/shorts against a separate logical contract, and preview/apply hash-bound mapping ECOs atomically. The release also fixes the tiny-positive-clearance contact acceptance issue.
Exact native-format scope, CLI commands and verification protocol. Native parser and browser evidence is available in the GitHub Actions artifacts; read actual run status rather than assuming a pass. No commercial superiority or manufacturing-signoff claim is made.
The independent copper checker now uses a conservative two-dimensional bounding-volume index before its unchanged capsule/disc distance calculation. Widths, clearances, keep-outs, layer checks and acceptance tolerances are not relaxed. A separate bounded spatial-work counter prevents pathological index traversal from receiving an all-clear result.
Five measured local runs on constructed, separated L-route fixtures:
| Routes / sites | Preceding verifier | v0.3.1 | Interpretation |
|---|---|---|---|
| 64 / 128 | 7.418 ms median | 6.217 ms median | 1.19x; both complete |
| 256 / 512 | 29.850 ms median | 28.643 ms median | 1.04x; both complete |
| 512 / 1,024 | 133.533 ms median | 44.413 ms median | 3.01x; both complete |
| 512 / 8,192 | Incomplete at 2,000,001 comparisons | Complete; 344.309 ms median | Full grid and review replay also pass |
| 4,096 / 8,192 | Incomplete | Complete; 546.007 ms median | Supplied-witness copper-only, not router capacity |
These are synthetic comparisons with the frozen preceding OpenBumpPlan checker, not commercial tools. The large incomplete runs are not speedup comparisons; the new version may take longer because it finishes the work. The router and grid witness checker still support at most 512 assignments. Raw samples, input hashes, work counts and exact protocol: copper qualification. Algorithm and release notes.
Use Node.js 22 or newer. No npm installation or runtime dependencies:
git clone https://github.com/ajayasai/OpenBumpPlan.git
cd OpenBumpPlan
npm startOpen http://127.0.0.1:4173. dist/openbumpplan.html also bundles the app, styles and workers into one offline file. File-origin browser policies may restrict workers/storage; the local server is the preferred fallback. Export JSON for durable backups. private: true in package.json prevents accidental npm publication; the GitHub repository is public.
v0.3.1 validation: 741 Node tests and 31 standalone Chromium scenarios pass locally; the extracted source package rebuilds and passes all 741 tests again. Local native-origin navigation was blocked by administrator policy, not bypassed. Exact validation scope.
| Capability | Implemented behavior and boundary |
|---|---|
| Sparse certified assignment | Complete unary-compatible candidate graph, integer-cost minimum-cost flow, no nearest-k pruning. A separate checker verifies a complete matching and every residual reduced-cost inequality. |
| Coupled search beyond 12 sources | Best-first sparse assignment subproblems, hard-rule rechecks, disjoint prefix partitions, and replayable proofs. Handles more than 12 movable sources; worst-case search remains exponential and explicitly bounded. |
| Honest failure semantics | A stopped search is unknown or feasible-with-bound, never automatically infeasible or optimal. Valid Hall deficiencies explain some impossible scopes. Rejected mappings are not applied. |
| Congestion repair | Negotiated-congestion rip-up/reroute after initial A* route orders fail. Temporary search collisions are never accepted as final routing evidence. |
| Continuous copper validation | Round-capped trace widths, circular via/pad diameters, per-layer spacing and keepouts checked using continuous distances, separately from the grid rasterizer. Explicit technology inputs, not implied process signoff. |
| Review integrity | SHA-256 binds findings and routes; physical bundles also bind and recheck declared technology. The CLI accepts an independently expected technology file and trusted Ed25519 public key. |
| Real application integration | Cancellable workers, stale-result rejection, checked/undoable Apply, self-contained proof reports, routed SVGs, CLI commands and regression tests. |
The former 12-source permutation solver remains available for the crossing-weighted objective and explicit maximum-changes ECO limit. The new certified solvers minimize rounded stage L1 + changed-target penalty, not that crossing-weighted score. Do not compare the two objectives as if they were the same.
The preceding v0.3.0 qualification recorded 562 Node tests and 31 Chromium scenarios: 12 planning, 11 earlier Engineering, and 8 new proof/copper workflows. The publication workflow additionally runs native-origin browser tests on GitHub's runner; consult the actual Actions result for remote status.
On 100 fixed synthetic single-layer routing instances, complete checked witnesses increased from 71 to 88, recovering 17 cases with zero complete-to-incomplete regressions. Both algorithms had identical total expansion/time ceilings; negotiation can spend more work and is not claimed to be universally faster.
A favorable 4,096-source / 8,192-site near-aligned grid with 20,224 candidate edges solved and replay-verified in approximately 1.407 s median over three local runs. This is an engine measurement—not interactive UI latency or a guarantee for difficult industrial constraints. A separate 24-movable-source example requires actual coupled constraint rejection and search, beyond the old permutation limit.
Raw results and input hashes · Validation · Algorithm semantics and proof boundaries
In Engineering, choose Load constrained example → Solve with coupled certificate → Apply checked mapping. The proof is exported with its original input project. Solving alone never mutates the project.
Choose Load routing example → Route and check copper. The displayed dimensions are synthetic demonstration inputs, not recommended manufacturing values. Export a route witness or a review bundle. Increasing widths beyond available spacing must produce a failure, not weakened rules.
# Coupled integer L1/ECO optimization, with a separately replayable proof.
node scripts/cli.mjs solve-certified examples/pair-bottleneck.json solved.json --proof proof.json
node scripts/cli.mjs verify-coupled examples/pair-bottleneck.json proof.json
# Faster relaxation only: its candidate is rejected if coupled rules fail.
node scripts/cli.mjs solve-linear project.json solved.json --proof matching.json
node scripts/cli.mjs verify-assignment project.json matching.json
# Geometric routing with explicit, externally supplied technology assumptions.
node scripts/cli.mjs route-physical examples/routing-laboratory.json routes.json --pitch 10 --via-cost 10 --technology examples/copper-technology.json
node scripts/cli.mjs verify-copper examples/routing-laboratory.json routes.json --technology examples/copper-technology.json
# Bind review, geometry and technology; optionally authenticate with a trusted key.
node scripts/cli.mjs bundle examples/routing-laboratory.json review.json --routes routes.json
node scripts/cli.mjs verify-bundle review.json --project examples/routing-laboratory.json --technology examples/copper-technology.json
node scripts/cli.mjs sign-bundle review.json signed.json --key /secure/reviewer-private.pem
node scripts/cli.mjs verify-bundle signed.json --public-key /trusted/reviewer-public.pem --technology examples/copper-technology.json
# Existing import/export, checks, revision and ECO workflows remain.
node scripts/cli.mjs check examples/chiplet-demo.json
node scripts/cli.mjs solve project.json eco.json --sources P1,P2 --max-changes 1 --change-penalty 100
node scripts/cli.mjs route project.json routes.json --pitch 10 --negotiate
node scripts/cli.mjs export solved.json interface.pdfProof verification requires the original pre-optimization project: it determines candidate eligibility, locks and change penalties. Mathematical certificate validity does not authenticate its producer. verify-assignment checks the relaxed graph; verify-coupled also replays the configured hard constraints. A signature without a caller-supplied trusted key is not trusted.
Exit 0: the requested operation/check succeeded; 1: no passing candidate or a failed gate; 2: invalid input/usage. Routing writes partial diagnostics with a failing exit code; never mistake their existence for a passed design.
npm test
npm run build
npm run qualify:v03
npm run qualify:copper
npm run verify:release
python tests/browser_test.py --chromium /path/to/chromium
python tests/engineering_browser_test.py --chromium /path/to/chromium
python tests/browser_v03.py --chromium /path/to/chromium
python tests/engineering_browser_test.py --native --chromium /path/to/chromium
python tests/browser_v03.py --native --chromium /path/to/chromiumPython Playwright is a test-only dependency. Managed browsers that forbid localhost navigation cannot execute native mode; do not disable their administrator policy. CI runs the native modes on its own runner.
CSV/JSON import with explicit unit conversion; limited LEF MACRO/PIN/PORT RECT import; five-stage connectivity; die transforms; drag/reassign, locks and undo/redo; domain/pair/ground-neighbour/region rules; revision differences; SVG/PDF/JSON/CSV and interface-control exports.
JSON is authoritative. Full LEF/DEF/GDS/ODB++/IPC-2581/native-vendor round trips, route-dependent assignment co-optimization, electrically verified shielding, IR-drop/electromigration, SI/PI/thermal/mechanical signoff, foundry certification, multi-user authorization, and industrial design qualification remain unimplemented or unqualified. Competitive evidence distinguishes shipped features from these gaps.
See MIT license, security, contributing, and format. The guarded publisher is a maintainer utility for this prepared base-commit overlay, not needed to run a clone. It publishes a review branch, never directly changes main, and requires the expected base commit. Recovery of the blocked staged release.
v0.4.0 adds checked native KiCad traces, vias, pads and keepouts, a routed browser handoff panel and source-bound CLI replay. Start with the routed handoff guide and the reproducible example. Measured tests are in release qualification, native copper results, and the browser results in docs/. These are bounded engineering checks, not commercial superiority or manufacturing signoff.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | ball | OpenBumpPlan:Routed_ball | TO |
| 1 | pad | OpenBumpPlan:Routed_pad | FROM |
It measures 12.1 × 12.1 mm and has 2 copper layers, 1.6 mm thick.
2 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ajayasai/OpenBumpPlan repository on GitHub, at the commit this page was made from: the board is examples/routed-handoff/routed.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO


adamws/kicad-kbplacer
KiCad plugin for automatic keyboard's key placement and routing

Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

NVNTLabs/switch2-SDEX2M2
Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

BlueSCSI/BlueSCSI-v2
BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

ohmtech-rdi/eurorack-blocks
Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
