Docs
How a HardLabs simulator works
HardLabs is a simulator of your PCB that runs your real firmware. You send board design files and firmware; we build a board model, attach component models, and run the production ELF against it — locally or in CI.
From design files to a running simulator
- 01
KiCad / Altium
Schematic and layout of record
- 02
Netlist + BOM
Connectivity and part list
- 03
Board topology
Buses, pins, power domains
- 04
Peripheral models
Sensors, PMICs, bus devices
- 05
Firmware ELF
Production binary, no rewrite
- 06
Simulation
Real FW against simulated board
- 07
Debug / scopes / CI
Traces, assertions, regressions
What you need
- Schematic / netlist (KiCad, Altium, or Cadence)
- BOM
- Firmware image (ELF/bin) — no code changes required
What you get
- A working simulator of that board
- Peripheral models attached where coverage exists
- A setup that loads and runs your real firmware
- Debug traces, scopes, and optional CI checks
Try it
- App — upload netlist/BOM and explore a board session
- Command line — run your firmware on your board from the terminal, with GDB or a coding agent
- Python SDK — run your test suite against the simulated board: serial ports pyserial opens as they are, pytest fixtures, controls, readings and on-target unit tests
- Your board's parts — drive each part by its reference designator (U4), and find parts by bus, address or wiring, from Python, the CLI or a scenario
- Peripheral models — register coverage and side effects
- Demo videos — the demo board in the browser and the terminal. Signed in, you can run it yourself: in the app, with hardlabs -s hardlabs/demo-board, or from Python
- Get a simulator — send a design for a pilot simulator
Compare & learn
- Comparisons — vs emulators, SPICE and HIL rigs
- Blog — bring-up post-mortems
- Changelog
Need on-prem docs? See Security or email us via the pilot section.