Skip to content

korken89/trustflight_firmware

Repository files navigation

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!

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published