Run CI on real hardware with the BenchPod
Practical guides for taking embedded testing from the bench into CI with the BenchPod: flashing, UART, sensor emulation, analog capture, and GitHub Actions. Building your own rig instead? The DIY HIL guides cover the concepts from scratch.
Meet the BenchPod: A Networked Instrument for Hardware CI
The BenchPod folds power control, flashing, a logic analyzer, and a 16-bit analog front-end into one networked box, so the hardware your tests need stops being the thing that lives on one engineer's desk.
Jun 5, 2026 · 4 min read
Filter:
The BenchPod
Drive a real bench from pytest, an AI agent, or GitHub Actions.
Emulating a Motor and a Battery for ESC Testing in CI
Motor-controller firmware is hard to test in CI: it needs a spinning motor, a charged battery and someone watching for smoke. A motor emulator replaces the motor with power electronics and a model, and our solar panel simulator doubles as the battery. No moving parts.
Sep 29, 2026 · 6 min read
EMI Analysis in CI: Catching Radiation Problems Before Fab
Push a KiCad project to GitHub and get electromagnetic findings back on the commit: return-path breaks, via stubs and accidental antennas in seconds, full-wave openEMS solves when you need them.
Sep 8, 2026 · 9 min read
Building a Solar Panel Simulator for Hardware-in-the-Loop Testing
A bench supply can't stand in for a solar panel. Its voltage collapses as soon as you ask for most of its current. Here's how we turned the BenchPod's DAC and ADC into a closed-loop panel emulator with a real I-V curve, and what the knee looks like on hardware.
Jul 29, 2026 · 9 min read
Replaying the Fault: Simulating Stepper-Motor Failures with the DAC
The follow-up to our stepper-motor HIL article: retire the motor from the test rig entirely. The BenchPod's DAC replays a recorded coil-current waveform with a power failure baked in, phase-locked to the logic analyzer in the iCE40 fabric, so you can measure exactly how many milliseconds your firmware takes to notice the fault and stop stepping, on every commit.
Jul 21, 2026 · 7 min read
One Trigger, Two Domains: Mixed-Signal HIL Testing for Stepper-Motor Faults
Hardware-in-the-loop (HIL) testing for stepper-motor firmware: sample the digital STEP/DIR lines on a logic analyzer and the analog coil current on the same clock, drive the motor over UART, and turn stall detection into a repeatable CI regression test, on hardware cheap enough to leave permanently wired to your target.
Jul 14, 2026 · 6 min read
Analog Calibration Against a 34401A, With Claude Doing the USB Reverse-Engineering
The BenchPod's DAC and ADC need a real reference to be trustworthy, so we wired up an Agilent 34401A precision multimeter and a GPIB adapter, hit a dead end in the official driver stack, and had Claude write a user-space GPIB driver from scratch to get around it.
Jul 1, 2026 · 5 min read
Build Your Own HIL, or Buy a Pod?
You can absolutely build a hardware-in-the-loop rig from a Pi, some relays, and an MCU, and many teams should. Here's where that path leads, and where a BenchPod saves you the detour.
Jun 23, 2026 · 3 min read
Building an On-Pod CMSIS-DAP Probe
Why the BenchPod carries its own debug probe instead of just wiring out SWD, and how a DAP session travels from pytest in GitHub Actions to a chip on someone else's bench.
Jun 23, 2026 · 3 min read
Driving the BenchPod with Claude
Connect Claude to the BenchPod MCP server and ask it, in plain English, to flash a board, power-cycle it, watch the UART, and emulate a sensor. The agent drives real hardware.
Jun 22, 2026 · 3 min read
No Secrets: How a Pod Behind NAT Runs in CI
The BenchPod lives in your lab, behind NAT; your CI runs on GitHub's cloud. They meet in the middle with a GitHub OIDC token and a device key, and nothing long-lived is ever stored.
Jun 20, 2026 · 3 min read
Power Sequencing and Brown-out Testing
Controlled power is the foundation of HIL. The BenchPod gates the target through protected eFuses, schedules power-on pod-side, monitors current per rail, and can sag the supply on purpose to test brown-out handling.
Jun 18, 2026 · 3 min read
Recording and Replaying Analog Signals with the BenchPod
Capture a real-world analog input with the 16-bit front-end, replay it through the DAC to feed your DUT in CI, and inject faults the field would eventually throw at it: solar arrays, motor feedback, current loops.
Jun 17, 2026 · 6 min read
Catching Boot Regressions: UART Assertions in CI
The boot log is the firmware's first chance to tell you it's healthy. With an event-based UART session the BenchPod listens before the board powers on, asserts on the banner, then drives the console live.
Jun 15, 2026 · 3 min read
Emulating an I2C Sensor and Asserting on the Bus
Have the BenchPod pretend to be a BMP280, capture the DUT's UART, then decode SDA/SCL to prove what the firmware actually did on the wire: present, absent, and everything in between.
Jun 13, 2026 · 4 min read
A Pod Per Board: Cover Your Whole Test Matrix Without Rewiring
One debug probe means constant cable-swapping. BenchPods are cheap enough to leave one wired to every target, so CI fans out across your whole board matrix and nobody touches the bench.
Jun 11, 2026 · 3 min read
From CLI Prototype to pip install embeddedci
The moment BenchPod stopped being a tool you drove by hand and became a pytest fixture: putting the SDK on PyPI, and the five-step loop it was built to unlock.
Jun 9, 2026 · 2 min read
Running Hardware CI with GitHub Actions
Build firmware on a GitHub runner, then flash and test it on a real board over the cloud, with no BenchPod on the runner, no secrets, just the workflow's GitHub OIDC token.
Jun 9, 2026 · 4 min read
Your First HIL Test in 15 Minutes
From pip install to a green hardware-in-the-loop test: wire a board to a BenchPod, flash it, and assert on its boot output: the whole loop, start to finish.
Jun 7, 2026 · 3 min read
The Making of the BenchPod
From an 8-bit validation board to a 16-bit, Ethernet-native instrument: the design story behind the BenchPod, the dead ends, and the decisions that shaped it.
Jun 3, 2026 · 5 min read
DIY HIL essentials
Rolling your own hardware-in-the-loop rig? The concepts behind reliable hardware CI.
DIY HIL - Orchestrating HIL Tests in CI
From a first UART-driven test on the bench to self-hosted CI runners flashing real hardware on every push.
Apr 21, 2026 · 3 min read
DIY HIL - Signal Routing and Peripheral Simulation in HIL
Why a Raspberry Pi alone struggles with cycle-accurate buses, and how a small MCU between the Pi and the DUT closes the gap.
Apr 20, 2026 · 2 min read
DIY HIL - Power Control Is the First HIL Problem
Why a hardware test lab starts with controlled power, and when relays give way to protected power channels.
Apr 18, 2026 · 2 min read
DIY HIL - Booting Devices from a Known Image in CI
How netboot and OpenOCD keep each hardware test run from inheriting state from the last one.
Apr 17, 2026 · 2 min read
DIY HIL - Console Access for Multi-Board HIL
A UART hub and stable device names turn serial logs from a bench habit into CI infrastructure.
Apr 16, 2026 · 1 min read
DIY HIL - Why Hardware CI Needs Real Devices
Docker, mocks, and emulators are useful, but some embedded failures only appear when real hardware is in the loop.
Apr 15, 2026 · 1 min read
DIY HIL - Getting Started with Hardware-in-the-Loop
What hardware-in-the-loop CI is, why embedded teams move to it, and where to start when you're building your first rig.
Apr 14, 2026 · 3 min read