AI agents test your firmware on real hardware.

A hundred iterations, unattended. You review the one that passed.

Flashing, testing, re-testing on the bench needed a human. Not anymore.

oracova bench replay · stored run 20260618-080733 · not live video
$ oracova run --scenario bldc_hall_a_stuck_low
flash STM32F411, real silicon .............. ok
world BLDC plant + hall encoder, base board .... up
fault HALL_A forced low at t+200 ms
score mismatch=8 unsafe=4
verdict FAIL unguarded firmware
patch guard applied, rerunning same scenario
score unsafe=0
verdict PASS
Filming next: a flight simulator on the bench. Unmodified Betaflight flying against Oracova: gyro and accel over I2C, 4x motor decode, 8 kHz closed loop.
Founder-built · shipped motor controllers and battery systems Real faults on real silicon · every verdict stored with firmware hashes Unmodified Betaflight closed the loop at 8 kHz
What is Oracova

Oracova is an automated test bench for firmware.

Real silicon

Your unmodified binary runs on your real microcontroller.

Emulated world

Oracova emulates the world around it with real-time physics and injects faults.

Scored verdicts

Every run scored PASS or FAIL with captured evidence.

Unattended

AI agents drive the bench, so the loop runs unattended.

How it works

Every firmware PR gets its own bench and its own agent.

01
A change arrives with its own tests
Your engineers write the change. Oracova writes the tests separately and runs them on the bench, not in a mock.
02
The loop runs until PASS
Flash, run, read, fix, repeat. Nobody watches it work.
03
Every test keeps running
Tests stay in the suite forever, so regressions get caught on every future PR.
The world

Close your control loop on real-time physics emulation.

targets: STM32F411 proven · DUT boards built per part · buses: GPIO / PWM / UART / I2C / SPI / CAN · closed loop proven to 8 kHz

Motors spin, packs heat up, pressure builds, so your unmodified firmware reaches every test point on its own. No test hooks, no forced states, no special builds. Common peripherals come as validated models from Oracova's open-source marketplace.

Motor control

stuck hall · swapped sectors · skipped sector

Commutation and hall-sensor faults on real silicon, proven on the Oracova bench.

BMS

cell over-temperature · sensor dropout · protection thresholds

The pack is physics, so protection logic is tested by reaching the fault, not by faking it.

Power and thermal

heaters · pumps · converters

Closed loops settle, overshoot, and fault against a plant that behaves like the real one.

The verdict

You review the one that passed.

Every run returns PASS or FAIL with captured traces and firmware hashes. A real run, the same one replaying at the top of this page:

RUN 20260618-080733 bldc_hall_a_stuck_low
target   STM32F411, real silicon
world    BLDC plant + hall encoder, emulated on the Oracova base board
fault    HALL_A forced low at t+200 ms
phase U / V / W + hall A capture
HALL_A stuck low
unguarded firmware   mismatch=8   unsafe=4 FAIL
same firmware + guard patch   unsafe=0 PASS
swapped sectors   mismatch=8   unsafe=8 FAIL
skipped sector   seq_fault=7 FAIL
forced invalid hall bus   clean shutdown PASS
mismatch counts wrong-phase energizations · unsafe counts the ones that could cause damage or harm

A stuck hall sensor: unguarded firmware energizes the wrong phase, the guarded build shuts down clean. All five verdicts from the same fault library on the same two-MCU rig, real hardware, not a simulator. Full run report.

the simplest demonstration of oracova A flight simulator: unmodified Betaflight flies against the bench.
gyro + accel over I2C · 4 motor outputs decoded · ANGLE mode · 8 kHz loop

To the firmware, it is flying. Gyro and accel come from live physics; its motor commands move that world. Every board on Oracova gets the same: a simulator of its own world, faults included.

the bug a green build hid Zero edges on the output pin.
build green · DShot600 configured · static checks passed · output: zero edges

A DMA allocation failure every static check missed. Only the closed loop caught it.

Objections

Why nothing else does this.

"An AI cannot be trusted to judge firmware."
Correct. Ours does not. The agent brings up the world and proposes scenarios; a deterministic, AI-free checker scores every run. Every verdict comes from real hardware, not from the model.
"Simulation already exists."
Simulators pass builds that fail on the chip. The loop only closes on real silicon.
"We have HIL vendors."
Real HIL starts at $9,900, configured by hand for one program. Oracova is agent-drivable, self-serve, per-PR.
The outcome

Firmware finally develops like software.

I have shipped motor controllers and battery systems, and I have been the human at the bench this page describes. If testing your firmware still means a person and an afternoon, I want 15 minutes.

15 minutes, no deck
Book 15 minutes
calendly event: pending · email: pending domain