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.
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.
~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.
Every run produces a JSON result + VCD trace + UART log + cycle-by-cycle PC history. Diff traces between commits to find regressions instantly.
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.
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
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.
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 →
Public projects running deterministic LabWired simulation on every commit — not a screenshot, the actual latest run.
| LabWired CI | Wokwi CI | Renode | HIL bench | |
|---|---|---|---|---|
| Multi-arch silicon-validated | ✓ | ~ | ✓ | ✓ |
| VCD trace per run | ✓ | — | ✓ | ~ |
| Parallel concurrency | unlimited | per plan | self-host | 1 per bench |
| Setup time | < 1 s | < 1 s | hours | 2–4 hours |
| Bench dependency | none | none | none | dedicated rig |
| Determinism guarantee | cycle-exact | best-effort | cycle-exact | flaky |
| VS Code timeline | ✓ | ✓ | ✓ | — |
| Fault injection | roadmap | — | ✓ | manual |
| Open-source core | ✓ | — | ✓ | n/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.
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.
Public repos already run LabWired on every commit (gallery). Starter template ships a first green run with no toolchain.