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

  1. 01

    KiCad / Altium

    Schematic and layout of record

  2. 02

    Netlist + BOM

    Connectivity and part list

  3. 03

    Board topology

    Buses, pins, power domains

  4. 04

    Peripheral models

    Sensors, PMICs, bus devices

  5. 05

    Firmware ELF

    Production binary, no rewrite

  6. 06

    Simulation

    Real FW against simulated board

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

Need on-prem docs? See Security or email us via the pilot section.