| Crates.io | cu-ahrs |
| lib.rs | cu-ahrs |
| version | 0.12.0 |
| created_at | 2026-01-14 20:07:32.876976+00 |
| updated_at | 2026-01-14 20:07:32.876976+00 |
| description | Copper task that fuses IMU payloads into roll, pitch, yaw. |
| homepage | https://github.com/copper-project |
| repository | https://github.com/copper-project/copper-rs |
| max_upload_size | |
| id | 2043674 |
| size | 80,218 |
cu-ahrs is a Copper task that runs the dcmimu filter on standardized IMU payloads to output roll, pitch, and yaw in radians.
[0, 0, +9.81] m/s²).The task captures the first valid pose as a zero reference, so outputs are relative to the start orientation by default.
Two RP2350 no-std options mirroring mpu9250-whoami:
examples/rp2350_ahrs.rs: stand-alone loop (no Copper runtime) printing RPY.examples/rp2350_copper.rs + examples/rp_copperconfig.ron: full Copper app wiring registry::RpMpu9250Source -> cu_ahrs::CuAhrs -> tasks::RpySink, with SPI/CS/delay registered via cu_embedded_registry in board init.# Host clippy/tests remain on the default host target.
cargo clippy -p cu-ahrs
cargo test -p cu-ahrs
# RP2350 firmware builds (no_std): opt-in config/target.
CARGO_CONFIG=.cargo/config.rp2350.toml cargo run --no-default-features --features rp2350-demo --example rp2350_copper
The RP2350 build uses thumbv8m.main-none-eabihf and memory.x matching the original mpu9250-whoami app. It prints RPY (radians) over RTT/defmt. Wire your MPU9250 to SPI1 pins (SCK=GPIO10, MOSI=GPIO11, MISO=GPIO12, CS=GPIO13) on Pico 2W-class boards and flash with probe-rs.