Skip to content
A multirotor flight controller firmware you can trust!
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
binary
board-trait
board
ci
firmware
floorplan
utils
.gitignore
.travis.yml
LICENSE-APACHE
LICENSE-MIT
README.md
bors.toml

README.md

TrustFlight

Build Status

A flight controller firmware you can trust!

Aim

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.

Layout

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.

Features

  • 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 pilot
    • DShot motor protocol with telemetery 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

Contributors

List of contributors in alphabetical order:


License

Licensed under either of

at your option.

You can’t perform that action at this time.