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

New multiconnectors routing in the Copper monitoring for the bridges

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.

ELRS makes Copper compatible with a plethora of cheap and good quality remotes! (Here the TX15 from Radiomaster you can see in action below)

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.

For example: MSP is the protocol used for the FPV Systems to render all the attitude and flight parameters overlay you see in that picture

PID Control in Firmware

The PID tasks in balance bot

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.

Picture of the DAG for the elrs demo showing 2 bridges: csrf and bdshot

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-nodes tuned for multi-channel connectors

  • Cleaner merged connectors and better icons

New more compact node layout in monitoring / nicer icons. Also note the merge routing that correctly render a merging connection just before entering “merge_pids”

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 rkv after 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.

Next step: make that all fly !

If you like what we are doing, throw us a star on Github, it would mean the world to us!

⭐⭐ https://github.com/copper-project/copper-rs ⭐⭐

Next
Next

Copper now also runs on baremetal microcontrollers: same robotic runtime, no OS.