Skip to the content
2 layers70 × 50 mmMonitor, the printed circuit board in 3D

RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

Size
70 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
43
Nets
34
Pads
214
Tracks, vias
10,153, 83
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Oct 2026
Updated
17 Oct 2026

Overview

Monitor 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 70 × 50 mm with 43 parts on 34 nets, routed with 10,153 tracks and 83 vias.

Its parts include 17 resistors, 16 capacitors, 6 ICs and 4 connectors.

README

README.md

RealityCheck · hardware design sandboxes

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

Three challenges

ChallengeDesign objectiveRequired behaviour
01 · sensor monitorMinimise BOM costFour 0–12 V inputs; accuracy, filtering, settling and fresh samples
02 · programmable outputMaximise contiguous passing bandwidth under a cost capDAC output accuracy, loading, startup, shutdown and real firmware cadence
03 · modular monitorMinimise BOM costEight 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.

Build the portable library

sh
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
ctest --test-dir build --output-on-failure

C11, 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.

Build the local sandbox

sh
python3 sandbox/build.py
# Offline smoke: native C, peripheral models, SPICE and headless KiCad
docker run --rm --network none hardware-bench:dev

The 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:

sh
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-attempt

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

Evaluate and iterate

sh
./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-result

bench 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:

sh
python3 tools/reproduce_reference.py --challenge 02 \
  --image hardware-bench:dev --output /tmp/reference-02

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

What is here

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.

Parts

43
QtyValueFootprintReferences
910kR_0603_1608MetricR3, R4, R5, R6, R7, R10, R12, R15, R17
61uC_0603_1608MetricC4, C5, C6, C8, C9, C10
62.2kR_0603_1608MetricR1, R2, R8, R9, R13, R14
4100nC_0603_1608MetricC1, C2, C13, C16
410uC_0603_1608MetricC11, C12, C14, C15
2100R_0603_1608MetricR11, R16
21nC_0603_1608MetricC3, C7
2ADS7924 (0x48)ADS7924_RTE0016C_TIU1, U2
1Bank 0 scaled sensorsPinHeader_2x05_P2.54mm_VerticalJ2
1Bank 1 scaled sensorsPinHeader_2x05_P2.54mm_VerticalJ3
1Carrier / status fixturePinHeader_2x05_P2.54mm_VerticalJ1
1Fixed independent bank-feed fixturePinHeader_2x05_P2.54mm_VerticalJ4
1TCA9535 (0x20)TSSOP-24_4.4x7.8mm_P0.65mmU4
1TCA9548A (0x70)TSSOP-24_4.4x7.8mm_P0.65mmU3
1TPS22975DSGR bank0TPS22975_DSG0008A_TIU5
1TPS22975DSGR bank1TPS22975_DSG0008A_TIU6

More from anton-pt/hwdevsbx

3
  • 2 layers49 × 39 mmMonitor, the printed circuit board in 3D

    Monitor

    anton-pt/hwdevsbx

    RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

    39 parts
  • 2 layers50 × 40 mmMonitor, the printed circuit board in 3D

    Monitor

    anton-pt/hwdevsbx

    RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

    29 parts
  • 2 layers44.9 × 34.9 mmWorkspace, the printed circuit board in 3D

    Workspace

    anton-pt/hwdevsbx

    RealityCheck: executable hardware design sandboxes, peripheral emulators and an unsaturated benchmark for hardware agents

    14 parts

Similar boards

  • 2 layers52.2 × 52.2 mmBase, the printed circuit board in 3D

    Base

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    43 parts3kApache-2.0
  • 2 layers33 × 34 mmESP32-bat monitor latch, the printed circuit board in 3D

    ESP32-bat monitor latch

    pcbreflux/espressif

    all espressif stuff will committed here

    43 parts608GPL-3.0
  • 2 layers42.9 × 19 mmPoly kb 2.25U, the printed circuit board in 3D

    Poly kb 2.25U

    thpoll83/PolyKybd

    PolyKybd

    43 parts411CERN-OHL-W-2.0
  • 2 layers99.1 × 99.7 mmRC6502 Prototyping, the printed circuit board in 3D

    RC6502 Prototyping

    tebl/RC6502-Apple-1-Replica

    An expandable SBC-version of the Apple 1 computer, easy to get started with and lot of cool stuff that can be added to it!

    43 parts193GPL-3.0
  • 2 layers26.6 × 38.7 mmMdb slave esp32s3-mini, the printed circuit board in 3D

    Mdb slave esp32s3-mini

    nodestark/mdb-esp32-cashless

    ESP32-based MDB cashless device for vending machines, supporting EVA DTS DEX/DDCMP telemetry and payments over the MDB protocol via Bluetooth and MQTT

    43 parts190MIT
  • 2 layers97.3 × 71 mmZynScreen v1, the printed circuit board in 3D

    ZynScreen v1

    zynthian/zynthian-hw

    Zynthian hardware stuff: PCBs, schemes, parts specifications, pin assignment, ...

    43 parts156

Questions

How big is the Monitor PCB?

It measures 70 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Monitor use?

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

Where can I download the Monitor KiCad files?

From the anton-pt/hwdevsbx repository on GitHub, at the commit this page was made from: the board is reference/challenge-03-expanded-v1/workspace/hardware/monitor.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.

Can I use the Monitor design in my own project?

Its repository states no licence, so its author keeps all rights: ask anton-pt before reusing the design.