Skip to content

About

Redrob Board is an agentic PCB design studio that takes a spoken spec to a factory-ready board.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Redrob Board

Redrob Board is an agentic PCB design studio that takes a spoken spec to a factory-ready board.

한국어: README.ko.md

Redrob Board: the sensor node placed, routed and DRC-clean

What it is

One Rust workspace, built from scratch, that goes from a circuit written in Rust to the Gerber, drill, BOM and pick-and-place files a PCB factory manufactures from, with an agent driving every step:

  • board-units -- integer nanometre lengths. No floating point decides geometry.
  • board-geom -- exact points, rectangles, segments and polygons.
  • board-netlist -- the intermediate representation every tool shares, with validation that reports every problem at once.
  • board-schematic -- a schematic is Rust code: add parts, wire pins, get a netlist. A drawn schematic is a view of that netlist, never the source of truth.
  • board-layout -- the board itself: layer stack, outline, placed footprints, tracks, vias.
  • board-gerber -- RS-274X writer and reader; CI proves every export round-trips.
  • parts library, DRC, placement, push-and-shove routing, drill/BOM/pick-and-place export, circuit simulation, the egui app and the agent tools follow, each as its own crate (see docs/ROADMAP.ko.md).

Redrob Silicon designs the inside of a chip; Redrob Board designs the board the chips sit on. The two share one flow (netlist -> place -> route -> check -> manufacturing files) and will share geometry, DRC and viewer code.

No JavaScript, no web view, no external EDA binaries. Upstream tools (KiCad, ngspice) are used only as test oracles in CI: our DRC count and our rendered Gerbers must match theirs before a stage is called done. Nothing of theirs ships in the product. See UPSTREAM.md.

Build from source

cargo test --workspace
cargo run -p redrob-board -- pipeline --design sensor-node --outline 30x25 --edge J1=left --edge SW1=right --out fab
cargo run -p redrob-board         # the desktop app

The app binary is also the command line: redrob-board pipeline | tool | examples | drc | kicad-export | gerber-compare (redrob-board help). Each exit code is the verdict.

Status

Stages 0 (bootstrap), 1 (footprint library, DRC), 2 (placement), 3 (routing), 4 (manufacturing files) and 5 (app) done. The oracle workflow exports the fixture boards to KiCad and requires KiCad's DRC counts to equal ours: clearance, track width, annular ring, drill size, shorts and unconnected items agree on four fixtures, front and back side. The placer puts the 14-part sensor node down with no courtyard overlap and 54% less wire length than the hand placement it is measured against (gate: 20%). The router completes the divider and both sensor-node placements on two layers with zero DRC violations, and KiCad agrees the routed sensor node is clean. Our Gerbers (copper, mask, paste, edge cuts) and Excellon drill files are compared with KiCad's plots of the same boards by rasterising both at 10 um with our own reader: 48 of 48 copper, mask, paste (with the grid of paste windows on the module ground plate), edge and drill files are pixel-identical, and the silkscreen (reference designators in our own stroke font) matches KiCad's loosely -- same place, same mirror, same ink within a factor of two. BOM and pick-and-place CSVs come from board-bom. redrob-board pipeline --design sensor-node --outline 30x25 --edge J1=left --edge SW1=right --out fab runs the whole flow and exits 0 only when routing is complete and DRC is clean; redrob-board (egui) does the same from buttons, and a headless egui_kittest test drives those buttons and compares the rendered frame to crates/app/tests/snapshots/sensor_node_routed.png. The app's AGENT palette talks to the shared Redrob Code engine (redrob-engine-client) with ten caller-owned tools (board-agent: catalog, write_schematic, place, route, drc, export_zip, ...): the engine names a tool, the app runs it on the open design. A spec -- MCU, I2C sensors, power, extras -- becomes a netlist by rules (board-catalog, parts with MPN, LCSC number and reference price), and a second headless test types one chat line and ends with a fabrication ZIP on disk, DRC clean, with a scripted engine standing in for the model. The sensor node uses the ESP32-C3-MINI-1 and AHT20 land patterns and pin numbers from their datasheets (the module footprint is checked pad for pad against Espressif's own KiCad footprint).

0.2.0 adds the second generation: net classes (one routing grid per class, DRC per class, KiCad project classes), differential pairs routed in a corridor and length-matched with trombone meanders, length-matched groups, four-layer boards with inner ground and power planes (zone fill around other nets, islands and slivers dropped; our inner-layer Gerbers with G36/G37 regions are pixel-identical to KiCad's plots and KiCad's DRC stays at zero), silkscreen in our own stroke font and paste windows on module plates, board-sim (linear DC operating point and AC small-signal of the netlist, checked against ngspice within 1% in the oracle workflow's sim job, with a simulate tool and rail checks), a 3D preview (parts as boxes over their courtyards, drag to turn), and board-house packages: export_zip names the files the way JLCPCB or PCBWay's reader expects and puts an order sheet (layers, size, rules, LCSC stock coverage, where to upload) in the archive. The app's ORDER palette is a Labs switch (REDROB_BOARD_LABS=order or the Labs checkbox) and is not drawn when off. There is no order button: neither house has a public ordering API without a merchant account, so the package and the sheet are the hand-off. Stages and their mechanical pass conditions are in docs/ROADMAP.ko.md.

Install

Releases carry a signed and notarized macOS disk image (universal), signed Windows installers and portable zips (x64, arm64) and Linux AppImage/deb/rpm/tar.gz (x86_64, aarch64): github.com/redrob-labs/redrob-board/releases. A vX.Y.Z tag runs .github/workflows/release.yml, which builds every job from one commit and publishes the release; the packaging scripts live in packaging/.

License

MIT OR Apache-2.0, at your option. Copyright 2026 Janghoon Lee (Redrob) and contributors.

About

Redrob Board is an agentic PCB design studio that takes a spoken spec to a factory-ready board.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages