LabWired Agent-first hardware 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. 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
    steps:
      - uses: actions/checkout@v4

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

      - name: Run LabWired simulation
        uses: w1ne/labwired-core/.github/actions/labwired-test@main
        with:
          script: tests/firmware-regression.yaml
          version: v0.18.0
          output-dir: test-results
          args: --no-uart-stdout

      - 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

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, start with a scoped pilot engagement.

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.