korken89 / trustflight_firmware

A multirotor flight controller firmware you can trust!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

A multirotor flight controller firmware you can trust!

License:Apache License 2.0


Languages

Language:Rust 93.3%Language:Shell 2.8%Language:GDB 2.5%Language:Logos 1.3%