Catch the bug on the bench, not in the field.
Nought hands your CI a fresh machine wired to your embedded system, reachable over SSH and orchestrated from a Python or JavaScript framework. Every run power-cycles the hardware for a cold start, then resets the machine to a clean state.
No more self-hosted runner drifting out of a known state under a desk.
Why your hardware tests can't be trusted
A runner that stays up collects junk between jobs: old workspaces, leftover files, cached credentials. GitHub itself recommends throwing the runner away after each job.
ref ↗ docs.github.comEven elite labs lose pipelines to it. In 2026, U-Boot's own CI hit both failure modes in one week: a flaky bench connection, and a truncated binary re-used from a runner's stale build directory. Neither was fixable in source.
ref ↗ concept.u-boot.org · MR 967Existing lab frameworks give you access to the hardware, but not a clean host. And their own docs quote weeks to months to get running.
ref ↗ docs.lavasoftware.orgTrust every green.
Diskless boot.
The machine has no disk, so there's nothing to pollute. Every reboot brings it back to a clean, known state.
Full power cycle.
Every run powers your embedded system down and back up. A cold start, with no state left in RAM or peripherals.
Verified reference image.
Before each run, Nought flashes a known image and reads it back to confirm. The firmware under test is exactly what you expect.
How it works
- 01Your pipeline requests a bench
- 02A clean machine boots and cold-starts your embedded system
- 03Your tests run over SSH, signals and consoles captured
- 04Verdict returns; target erased over SWD, machine dissolves
The three risks this removes
Reliable hardware tests do more than please developers. They take three real risks off whoever signs off on shipping.
Catch the brick before it ships
A test you can't trust is a bug you meet in the field, where it costs the most. Trustworthy tests on real hardware surface it before you ship.
The bench shouldn't live in one head
Today the bench is one person's know-how: their setup, their drawer, their single point of failure. Nought turns it into something your whole team, and your next hire, can run the same way.
“It passed” becomes a fact
Every run starts from the same state and can be replayed later. When a test passes, you can prove it, instead of trusting how the bench happened to be wired that day.
See what your firmware does on the wire
An optional analysis head decodes UART, I²C and SPI, checks GPIO timing, and turns electrical behaviour into pass or fail in your pipeline.
Software engineer (HES) who spent 15 years building firmware for real-time instruments — FPGA, EtherCAT, vacuum and motion control — and led an 8-engineer software team. Nought is the test bench I kept wishing I had. I answer every email personally.
FAQ
Why not Jumpstarter or labgrid?+
They solve remote access to hardware, and they do it well. What they don't do is make the test host itself disposable. Nought does. Think of it as an extension of your CI, not a replacement for your tools.
How is it different from Lager or BenchCI?+
They wrap your bench and ship your tests to it. Nought does one thing: it makes the test host itself ephemeral, so reproducibility comes from the machine, not from how carefully someone wrote the teardown script. Run it next to them, or on its own.
How long until my first green pipeline?+
The target is under a day for a small team with no IT support: receive the machine, wire up your embedded system, get a clean green run. Framework-based labs quote weeks to months per embedded system.
Does it need Kubernetes?+
No.
What hardware does it run on?+
Standard Raspberry Pi plus off-the-shelf probes. No proprietary boards.
When does it ship?+
It's in development. Founding users get the first batch and set the priorities.
What if it never ships?+
Full refund, no questions asked.