
Monitor
anton-pt/hwdevsbx
RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents
Workspace is an open-source printed circuit board by anton-pt, from the anton-pt/hwdevsbx repository on GitHub. It is a 2-layer board of 44.9 × 34.9 mm with 14 parts on 10 nets, routed with 1,461 tracks and 295 vias.
It is built around the DAC80501ZDQFR. Its parts include 6 resistors, 5 capacitors, 2 ICs and 1 connector.
An open testing ladder for hardware agents. RealityCheck combines portable C peripheral drivers, independent digital emulators, ngspice analogue simulation and KiCad connectivity/layout checks. Agents can design a board, write firmware, observe failures and iterate before fabrication.
This is an early, unsaturated development benchmark, not a silicon-validated leaderboard. Budgeted pilot runs expose substantial headroom in producing routed, electrically valid designs. Passing reference designs exist within declared model families; restricted, versioned evaluators cover subsets of the full tasks. A passing emulator test does not prove analogue performance or PCB connectivity.
Presentation · Challenge definitions · Reference designs · Architecture
| Challenge | Design objective | Required behaviour |
|---|---|---|
| 01 · sensor monitor | Minimise BOM cost | Four 0–12 V inputs; accuracy, filtering, settling and fresh samples |
| 02 · programmable output | Maximise contiguous passing bandwidth under a cost cap | DAC output accuracy, loading, startup, shutdown and real firmware cadence |
| 03 · modular monitor | Minimise BOM cost | Eight inputs across equal-address ADC banks; isolation and fault recovery |
Read the challenge README and its versioned criteria before starting. Cost uses benchmark credits, not market prices. All mandatory gates must pass before a positive restricted reward is earned; unsupported coverage is reported separately from demonstrated failure. These three families and a small pilot do not establish statistical model rankings.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
ctest --test-dir build --output-on-failureC11, CMake and a host compiler are sufficient for the core library. The hw_drivers target has no emulator, allocator or OS dependency. Components: ADS7924, DAC80501Z, TCA9548A, TCA9535, MCP3204 and MCP4921. Models expose bus transactions, pins and virtual time; firmware uses injected callbacks. examples/baremetal-smoke.sh additionally requires arm-none-eabi-gcc and performs compilation, not target execution.
python3 sandbox/build.py
# Offline smoke: native C, peripheral models, SPICE and headless KiCad
docker run --rm --network none hardware-bench:devThe build wrapper downloads official hash-pinned datasheets locally, then builds the toolchain image. No datasheet PDFs are stored in this repository. Cached documents remain ignored build inputs; evaluation has no vendor-network dependency. --offline skips acquisition when the cache is already populated. Toolchain/package sources are pinned in the Dockerfile and source locks. Documents and package assets retain their own licences; this workflow assembles a local image, not a redistributable vendor-document bundle.
The independent Codex runner currently targets linux/arm64:
python3 sandbox/agent/build.py --acquire --training-base hardware-bench:dev
python3 sandbox/agent/login.py login
python3 sandbox/agent/runner.py --challenge 01 --model MODEL_ID \
--auth chatgpt --output runs/my-first-attemptEach invocation creates an independent session/container with a challenge-specific README. Candidate network access is disabled; a bounded broker outside the container provides inference access. Credentials stay outside candidate mounts and exports. ChatGPT login and explicit API-key mode are separate choices; follow the sandbox runbook and official Codex authentication guidance. Model availability depends on the account and pinned CLI. The default attempt budget is 900 seconds; configure it explicitly for comparisons.
./bench list
./bench init sensor-monitor --output /tmp/my-design
./bench check /tmp/my-design
./bench evaluate /tmp/my-design --seed 42 --output /tmp/my-resultbench is the public preflight interface: templates are incomplete, and missing simulation/firmware adapters fail closed. It is not the authoritative restricted ranker. design.yaml uses the JSON subset of YAML. For scored development use the trusted, versioned evaluator outside the submission:
Historical qualification receipts, waveforms, candidate runs and transcripts are deliberately excluded. A fresh image has a new local identity: regenerate qualification and freeze reviewed source/evidence locks before enabling a release. Missing evidence must fail closed. Some private-fixture comparison tools cannot run from this source-only checkout. Publication and reproduction notes explain these boundaries.
Reproduce a reference with a locally built image:
python3 tools/reproduce_reference.py --challenge 02 \
--image hardware-bench:dev --output /tmp/reference-02This regenerates results and records the actual image identity; it does not transfer authority from a historical qualification. References are available for study and therefore must be excluded from held-out agent images, along with private evaluator tools and hidden scenarios. The public agent image excludes these directories.
include/ and src/: portable firmware · emulator/: digital models/runtime · catalog/: costs, packages and analogue models · challenges/: tasks/criteria · reference/: editable CAD and C solutions · evaluator/: trusted grading source · sandbox/: pinned environment and isolated runner.
See fidelity contracts, evaluation boundary and third-party notices. Simulation scores describe the declared models. Board fabrication, measured hardware conformance, EMC and a broad generalisation study remain future work.
Team RealityCheck, AI for the Physical World hackathon, October 2026.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C6 |
| 2 | 4.7k | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 1 | 1.2k | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | 100k | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | 10u | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 1n | Capacitor_SMD:C_0603_1608Metric | C7 |
| 1 | 1u | Capacitor_SMD:C_0603_1608Metric | C4 |
| 1 | 20 | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | Carrier + output | Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Vertical | J1 |
| 1 | DAC80501ZDQFR | Reference:DAC80501_DQF0008A_TI | U1 |
| 1 | OPA320AIDBVR | Package_TO_SOT_SMD:SOT-23-5 | U3 |
It measures 44.9 × 34.9 mm and has 2 copper layers, 1.6 mm thick.
14 parts, built around the DAC80501ZDQFR. 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 anton-pt/hwdevsbx repository on GitHub, at the commit this page was made from: the board is reference/challenge-02-expanded-v1/workspace/hardware/output.kicad_pcb and its schematic reference/challenge-01-expanded-v1/workspace/hardware/monitor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask anton-pt before reusing the design.

anton-pt/hwdevsbx
RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

anton-pt/hwdevsbx
RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

anton-pt/hwdevsbx
RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards


hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!



Twotoz/C5VRX
Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

