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)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM3210B-EVAL/STM3210B-EVAL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM3210E-EVAL_XL/STM3210E-EVAL_XL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM3210E-EVAL/STM3210E-EVAL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM3210E-EVAL/STM3210E.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM32303C_EVAL/STM32303C_EVAL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM32303C_EVAL/STM32F30.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM32373C_EVAL/STM32373C_EVAL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM32373C_EVAL/STM32F37.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM32L152-EVAL/STM32L152-EVAL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Device_Firmware_Upgrade/binary_template/TASKING/STM32L152D-EVAL/STM32L152D-EVAL.hex (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/Binary/axftobin.bat (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/Binary/cygwin1.dll (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/Binary/hextobin.bat (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/Binary/TrueSTUDIO_elf2bin.bat (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/DFU_images/STM3210B-EVAL_AudioSpeaker.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/DFU_images/STM3210B-EVAL_Composite_Example.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/DFU_images/STM3210B-EVAL_CustomHID.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/DFU_images/STM3210B-EVAL_JoystickMouse.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/DFU_images/STM3210B-EVAL_MassStorage.dfu (opens in a new tab)
- libs/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/DFU_images/STM3210B-EVAL_VirtualComport_Loopback.dfu (opens in a new tab)
- and 40 more
Photo

- 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.
- 1Assemble flight controller hardware
- 2Install and configure STM32 firmware
- 3Calibrate MPU6050 sensor
- 4Tune PID controller
- 5Test motor control and BLDC drivers
- 6Integrate Wi-Fi module (ESP8266)
- 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