A flight controller firmware you can trust!
The aim of this project is twofold, 1) I am looking to learn Rust and how its borrow checker
can be applied in embedded design to constrain and guide, while 2) I want to compare Rust vs latest C++
, especially in the metaprogramming functionality when it comes to enforcing constraints at compile time.
From a practical perspective this is mostly a complete rewrite/redesign of the old KFly code into Rust, with better modularization and less complexity.
In the trustflight
folder is the main firmware, while in trustflight-hal
is the low-level code for talking to the hardware, including abstrations, aka the HAL.
- Runs the cortex-m-rtfm scheduler, practically the same as crect (C++ version)
- Minimal communication overhead to a high level flight computer via COBS ZPE/ZRE together with priority buffers to minimize delay and jitter
- All communication is designed to be
DMA
driven, no CPU intervention needed - Adaptive notch filters to reduce impact of vibrations (similar to Betaflight's
dynamic filter
) - Modern sensor suite
- ST's ISM330DLC IMU - with heater to temperature stabilize the sensor
- Bosch's BMP388 barometer
- Support for the latest protocols
F.port
for RC input and telemetry to the pilotDShot
motor protocol withtelemetery
at about 200 Hz per motor
- Has accompanying reference hardware (OSHW) available here
- Has (soon) a
board trait
to allow for simple support of other hardware platforms
- Has (soon) a
List of contributors in alphabetical order:
- Emil Fresk (@korken89)
Licensed under either of
-
Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
-
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.