Skip to content

Avem

A lightweight drone flight controller using STM32, PID control, and BLDC motors.

  • Drone
  • Open source
  • 3D printable

Suggested by Robotheca, created by @but0n (opens in a new tab), from github.com/but0n/Avem (opens in a new tab). Pinned to commit 9d3f6a4 (opens in a new tab).

Hardware license
MIT (opens in a new tab)
Software license
MIT (opens in a new tab)
Commercial use
Allowed

This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.

Which files (3 scripts, 1 program or installer, 56 firmware images)

Photo

Avem, photo from its repository
Photo:@but0n (opens in a new tab)MITsource file (opens in a new tab)
Degrees of freedom
6

What it can do

Written by Robotheca from the project's documents.

  • Autonomous flight with cascade PID control
  • Attitude stabilization using quaternion and Euler angles
  • Brushless DC motor control via PWM
  • Wireless control via Wi-Fi (ESP8266)
  • Real-time sensor data processing (MPU6050)
  • Multi-axis flight control (pitch, roll, yaw)
  • Flight mode switching (angle stabilization, rate control)
  • Flight data logging and monitoring

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The creator's steps, each with its instructions.

  1. 1Assemble flight controller hardware
  2. 2Install and configure STM32 firmware
  3. 3Calibrate MPU6050 sensor
  4. 4Tune PID controller
  5. 5Test motor control and BLDC drivers
  6. 6Integrate Wi-Fi module (ESP8266)
  7. 7Install and configure host software (Flask + pyserial)

The guide appears here as you scroll.

Guide by @but0n (README.md), under MIT.

More guides

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • STM32F103 microcontroller
  • MPU6050 6-axis IMU (accelerometer and gyroscope)
  • Brushless DC motors with ESC control
  • ESP8266 Wi-Fi module
  • GPS module (TBD)
  • Power supply and voltage regulation

Connections

  • MPU6050 connected via I2C (SCL on PB15, SDA on PB14)
  • BLDC motors controlled via PWM on channels PA6, PA7, PB0, PB1
  • ESP8266 connected via USART3 (TX on PB10, RX on PB11)
  • GPS module connection marked as TBD