LabWired The easy way to build hardware
LabWired for CI

Replace your HIL bench with deterministic simulation.

Run firmware regression tests on every commit — ARM Cortex-M, RISC-V, Xtensa, any MCU. Silicon-validated. Reproducible. Parallel. No benches, no cables, no flaky tests.

GitHub stars MIT licensed Last commit
~6,000×
faster than real-time
on commodity CI runners
100%
deterministic
identical PC at every cycle
0 hrs
rig setup
YAML manifest, runs immediately
0 rigs
bench dependency
runs on CI infrastructure
Why teams switch

Three problems HIL benches can't solve.

🎯

Deterministic

Same firmware, same cycle-exact result every run. No cable jitter, no power noise, no "ghost bug" race conditions. Bugs reproduce in CI, not just on Friday afternoons.

Parallel & cheap

~6,000× wall-clock speedup means a 30-minute suite runs in seconds. Spawn 50 concurrent jobs across hardware variants. No queueing for the one rig in the lab.

🔬

Observable

Every run produces a JSON result + VCD trace + UART log + cycle-by-cycle PC history. Diff traces between commits to find regressions instantly.

Drop it in

One YAML file. Zero hardware.

Add the LabWired GitHub Action to any repo with a Rust or C firmware target. Push a commit — see the simulation run. JUnit XML for your CI dashboard, JSON for your custom tooling.

.github/workflows/firmware.yml
name: Firmware Regression
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write        # hosted report
      pull-requests: write   # results comment
    steps:
      - uses: actions/checkout@v4

      - name: Build firmware
        run: cargo build --release --target thumbv7m-none-eabi

      - uses: labwired/firmware-test@v1
        with:
          script: tests/firmware-regression.yaml
Add it to your repo

Opens GitHub’s editor with the workflow already written — press “Commit new file” and the next push runs. The commit is yours, made with your own account: LabWired never gets write access to your repository.

Starting a new project? Use the starter template — it ships a prebuilt example, so the first push runs a simulation with no toolchain.

✓ GitHub Actions ✓ GitLab CI ✓ Docker image ✓ Self-hosted runners ✓ Native ARM64

Don’t take our word for it. Every Tier-1 peripheral we claim is proven by a CI run you can open — chip by chip, peripheral by peripheral, refreshed nightly. See the validation matrix →

How we compare

Built for the regression suite that has to ship.

LabWired CI Wokwi CI Renode HIL bench
Multi-arch silicon-validated~
VCD trace per run~
Parallel concurrencyunlimitedper planself-host1 per bench
Setup time< 1 s< 1 shours2–4 hours
Bench dependencynonenonenonededicated rig
Determinism guaranteecycle-exactbest-effortcycle-exactflaky
VS Code timeline
Fault injectionroadmapmanual
Open-source coren/a

Wokwi is great for prototyping and IoT. Renode is best-in-class for low-level peripheral fidelity on the desktop. Our wedge: silicon-validated STM32 with a zero-setup browser playground and drop-in CI. The right answer for any embedded team that ships firmware — STM32, RP2040, ESP32, nRF52, RISC-V dev kits, custom Cortex-M SoCs.

Custom hardware

Need your board modeled?

The CI flow above is the target state: your firmware, your hardware model, the same trace every run. For custom boards, see Pro and Enterprise on pricing.

Start now

Drop it in your repo.

Public repos already run LabWired on every commit (gallery). Starter template ships a first green run with no toolchain.