Web and app teams take CI for granted. Firmware teams mostly don't — not because they don't care, but because testing firmware has always meant wrangling physical hardware. We're closing that gap.
When the only way to test a build is to flash a board on someone's desk, testing becomes manual, rare, and easy to skip. Bugs slip to hardware, then to the field, where they're expensive to find and fix.
EmbedCI starts from a simple idea: boot the real firmware in an emulator on every pull request — so build breaks, boot failures, regressions, and budget overruns are caught in minutes, by the same automated check your software counterparts already rely on.
That's the foundation. The goal is to make automated, meaningful firmware testing the default for every embedded team — not a luxury reserved for those with a hardware lab.
Go beyond "does it boot" toward rich assertions on peripherals, timing, and state machines — the things that actually break in the field.
For sensor, audio, and biosignal devices, verify the DSP itself: feed a known input waveform into the emulated device and assert the filter, FFT, or detection output. This is where deep firmware testing gets genuinely hard — and valuable.
Meet teams where they are — broaden beyond a single RTOS and board set so more of the embedded world can get real CI without buying a hardware farm.
Footprint, stack, MISRA, and test evidence are already produced on every run. Turn that into audit-ready artifacts for the teams that need them.
EmbedCI is early. These are directions we're building toward — not finished features. Today, the build → emulate → test → gate pipeline works end-to-end on stm32f4_disco; the rest is where we're headed.
We want to hear how your team tests today — what works, what's painful, and what you wish existed. Try it on a repo, or just reach out.