Copper v0.11: Bridges and an MVP SDK for robotics-first flight controllers.
Copper 0.11 is one of our most important releases so far. It introduces a new class of components called Bridges and delivers the minimum viable SDK for building a Copper-native flight controller. Flight controllers are only the first low-hanging fruit for Copper. Many other robotics domains are coming next.
This release moves Copper closer to its long-term goal: a single deterministic robotics runtime that runs on workstations, on embedded microcontrollers, on real robots, and inside simulators. The target is robotics that operates on the ground, in the air, on the water, and eventually in space.
Below is what’s new.
Bridges: Multi-Channel I/O
Bridges generalize what used to be separate “sources” and “sinks” into a single logical unit that owns one or more channels (UART, CAN, ELRS radios, ESC buses…).
They let tasks in Copper operate over real transports declaratively, while sharing resources like serial ports safely across crates.
With 0.11, Bridges land end-to-end:
Config parsing for typed Tx/Rx channel sets
Runtime scheduling that handles multi-channel dispatch
Graph APIs that visualize bridges as first-class components in missions
Monitoring that renders those channels directly in the TUI DAG and matches the DOT export exactly
For users, this means you can build complex robot I/O pipelines without writing glue code. For us, it’s the core of how Copper will handle multi-sensor, multi-bus robots going forward.
A Copper-Native Flight Controller (MVP)
A flight controller is a perfect target for showcasing Copper’s determinism and low-latency scheduling.
We’re waiting on new rp2350-based FC boards for live flight tests, but the full stack already runs beautifully on our devkit, including SD-card logging and deterministic replay!
ELRS/CRSF Radio Link (host + firmware)
Our CRSF/ELRS bridge works in both environments. RC commands flow into Copper tasks, and telemetry (LQ, battery, failsafe) flows back through the radio link.
Demo end to end ELRS → DSHOT running on our Copper Development Kit
Bidirectional DSHOT (RP2350)
The RP2350 PIO implementation drives ESCs with DSHOT300 timings and decodes one-wire telemetry bursts. Bridges expose four static DSHOT channels into the task graph.
MSP Everywhere (no_std + Bridge)
MSP remains the lingua franca for Betaflight, Cleanflight, INAV, and countless tools.
We now support MSP in no_std, built atop the new embedded registry so multiple crates can safely share UART handles. Stream RC data, sensor packets, tuning commands without writing MSP plumbing.
PID Control in Firmware
cu_pid now works in no_std and depends only on alloc.
The same PID loops you use on Linux now run unchanged on MCUs.
Taken together MSP + PID + CRSF + DSHOT: Copper now has the core of a flight controller, implemented entirely in Rust, end-to-end deterministic, and fully pluggable into the Copper task graph.
Remote Operation & Telemetry
ELRS/CRSF enables Remote Ops beyond just flying applications
The radio link works identically for all kinds of robots on host or MCU.
This allows remote manual real time operations over ELRS (2.4GHz and 900Mhz).
We ship a demo (cu_elrs_bdshot_demo) showing ELRS + DSHOT working together.
Tooling & Monitoring Upgrades
Bridge-Aware Monitoring
The console TUI now includes:
Direct rendering of bridge nodes in the DAG
Matching DOT export → live graph parity
More compact layouts
Patched
tui-nodestuned for multi-channel connectorsCleaner merged connectors and better icons
Enhancements & Maintenance
Optional channel routes make mission authoring less verbose.
Embedded CI now automatically exercises ARM-only components.
Dependency refresh (
ron 0.12,cudarc 0.18,rerun 0.27).Simplified structured logging backend: we removed
rkvafter Mozilla confirmed lmdb backend deprecation. Replaced with a simple lock + bincode dump for now.Console state corruption fixed when exiting
cu_consolemon.Numerous QoL polish items across bridges, missions, and monitoring.
Bug Fixes
Simulation generation now correctly builds Sink proxies when a task listens to two upstream tasks.
Looking Ahead
Bridges are the long-term foundation for how Copper talks to the physical world.
Flight controllers are the first vertical we’re bootstrapping, but the same stack extends to ground robots, manipulators, and embedded perception.
Each release rotates through a new specialty, building up an open, deterministic robotics SDK in Rust—from devkits to real hardware.