Simulate firmware without hardware — honestly

Adam Szefer · Co-founder & CTOUpdated July 23, 2026

Prev. Bloomberg · Gyfted. Systems and simulation infrastructure — the engine that runs your firmware against the circuit.

“Run STM32 without a Nucleo” is a solved demo. The hard question is whether the simulation can disagree with your firmware the way a wrong schematic would. That is the difference between a teaching emulator and a bring-up tool.

What QEMU-style flows get right

Fast boots, great for OS bring-up and pure software logic. If your risk is scheduler behavior or middleware, stay there.

Where idealized peripherals hide respins

Register models that ignore clock-stretch limits, ignore which GPIO is actually CS, or ignore that two devices share an address will green-bar a driver that bricks the first article. Board-level simulation starts from the netlist so those facts exist.

A practical workflow at schematic freeze

Export netlist + BOM, generate a platform, load firmware, run the bring-up tests you already planned for the lab. Keep the suite. When hardware arrives, you are debugging sensors — not discovering that PB8 was never I2C1_SCL.

HardLabs

What HardLabs does — join the design-partner pilot

We build a digital twin from your netlist, schematic, and BOM, run your real firmware against it, and fail CI when pinmux, buses, or timing contracts break — weeks before bring-up on hardware.

  • A digital twin of your hardware, built from your netlist, schematic, and BOM.
  • A virtual lab: scopes, logic analyzers, and firmware debuggers in simulation.
  • Auto-flagging of power-sequence errors, output contention, and race conditions.

Pilot details · App

Related

  • Firmware-in-the-loop

    Firmware-in-the-loop against your netlist — not stubs. Run unmodified .elf images on MCU simulation with board-aware I²C/SPI models and CI assertions.

  • Renode board platforms

    Generate Renode board platforms from KiCad or Allegro netlists. Attach peripheral models, surface coverage gaps, and load a .repl without hand-maintaining every CS line.

  • I²C clock stretching

    Diagnose I²C clock-stretch and t_HIGH violations before fab. Why STM32 masters and slow sensors disagree — and how simulation catches it early.

  • HardLabs vs QEMU
  • HardLabs vs Renode

All topics