`betafpv-f3` logo

`betafpv-f3`

Free

For the BetaFPV F3 drone flight controller

FreeFree tier
Type
Open Source

About `betafpv-f3`

betafpv-f3 is a Board Support Crate for the BetaFPV F3 Drone Flight Controller, written in Rust. It provides embedded hardware abstractions for the BetaFPV F3 board, enabling developers to control LEDs, motors, serial communication, and basic gyro/accelerometer functionality. The crate includes example code and a shell script to build and flash examples onto the controller. It is designed for the ARM Cortex-M architecture and is no_std, making it suitable for bare-metal drone firmware development. The project is dual-licensed under Apache-2.0 or MIT. Note that some features (sensor fusion, radio receiver, USB port support) are listed as TODO and not yet implemented.

Key Features

LED control
Motor control
Serial communication
Basic gyro/accelerometer functionality
Example code and build/flash script included
no_std and ARM Cortex-M support
Written in Rust
Dual-licensed (Apache-2.0 or MIT)

Pros & Cons

Pros
  • Open source with permissive licensing (Apache-2.0 or MIT)
  • Provides working hardware abstraction for key peripherals
  • Includes example code and automated flash script
  • Designed for Rust's safety and performance in embedded systems
Cons
  • Limited to BetaFPV F3 hardware only
  • Some features not yet implemented (sensor fusion, radio receiver, USB port)
  • No official releases or versioned packages
  • Small community (45 stars, 1 fork)

Best For

Developing firmware for BetaFPV F3 drone flight controllerEmbedded Rust programming on ARM Cortex-MLearning drone flight controller hardware abstractionPrototype and test drone motor and LED control

FAQ

What hardware does this crate support?
It supports the BetaFPV F3 Drone Flight Controller board.
What features are currently working?
LED control, motor control, serial communication, and basic gyro/accelerometer functionality are implemented.
What is still TODO?
Sensor fusion, radio receiver, and USB port support are listed as future work.
How do I flash an example?
Plug the board into your computer while holding down the BOOT button to enable bootloader mode, then run `./flash-example <example-name>`.
What license is this under?
Dual licensed under Apache-2.0 or MIT, at your option.