LabWired Deterministic firmware simulation
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. Cycle-accurate. Reproducible. Parallel. No benches, no cables, no flaky tests. $0 per seat.

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
free tier
public repos · unlimited runs while in beta
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
    steps:
      - uses: actions/checkout@v4

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

      - name: Run LabWired simulation
        uses: w1ne/labwired/.github/actions/labwired-test@main
        with:
          script: tests/firmware-regression.yaml
          output_dir: test-results
        env:
          LABWIRED_API_KEY: ${{ secrets.LABWIRED_API_KEY }}

      - name: Upload artifacts
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: labwired-results
          path: test-results/
✓ GitHub Actions ✓ GitLab CI ✓ Docker image ✓ Self-hosted runners ✓ Native ARM64
How we compare

Built for the regression suite that has to ship.

LabWired CI Wokwi CI Renode HIL bench
Multi-arch cycle-accurate~
VCD trace per run~
Parallel concurrencyunlimitedper planself-host1 per bench
Setup time< 1 s< 1 shours2–4 hours
Per-seat capex$0$0$0$10k–$100k
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: cycle-accurate 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.

Pricing

Simulator's free. Wiring it into your CI is where we earn our keep.

Start with the open-source CLI on your own GitHub Actions runner. Bring us in when you want a custom firmware build pipeline, custom assertions, hosted sim runs, or a real engineer staring at the regression with you.

Open Source
MIT licensed
$0
Self-host. Run forever.
  • The full deterministic simulator (Xtensa LX6, ARM Cortex-M, RISC-V)
  • labwired-cli for local + CI runs
  • The labwired-lab-template GitHub repo template
  • Every built-in lab board (Blinky, e-paper, OLED, IMUs, GPS…)
  • Community support via GitHub Issues
Get it on GitHub
Enterprise
Annual contract
Custom
Your repo. Your firmware. Your green check.
  • Everything in Pro, plus:
  • SAML / SSO, audit logs, custom IAM
  • Custom firmware bring-up — your chip if it's not in our library yet
  • Hosted sim runs with priority queue + persistent artifacts
  • Direct Slack / email channel with the LabWired team
  • On-prem option, ISO 26262 evidence kit
Book 30 min →

Early access. Real teams. Real bugs.

We're onboarding embedded teams to the closed beta. Drop your email and we'll get you a hands-on walkthrough on your repo.