The software to run on the 'stack-ripper' High Power Rocketry avionics platforms.
The board designs can be found here.
To help contextualise the software decisions, here is a brief overview of the current hardware choices.
The reciever (rx
) has:
- an ESP32-C3 MCU,
- an SX1278-based LoRA Radio
The transmitter (tx
) additionally includes:
- a u-blox NEO-M8N/MAX-M8N GNSS module,
- a custom LiPo power regulation and monitoring
The full avionics setup (av
) additionally includes:
- a BMP280 altimeter,
- a BMO055 IMU,
- multiple n-MOSFET terminals for firing pyrotechnic charges,
- additional hardware lockouts preventing unwanted firings.
All written in async Rust, using embassy.
Each platform (rx
, tx
, and av
) has a seperate binary, in /src/bin/[platform].rs
.
Each prehipheral is maintained in a resuable library in /src/[prehipheral].rs
Install the prerequisites
rustup default nightly
rustup toolchain install nightly --component rust-src
rustup target add riscv32imc-unknown-none-elf
Install dependencies & build
cargo build
Install flashing utility
cargo install espflash
Flash a device (interactive) with the rx
software
cargo build --bin rx