※ This class has been completely free since September 2022. This is the only class that teaches you how to develop the FCC flight control system for a high-performance STM32F4 DIY drone from start to finish using the free compiler STM32CubeIDE. Since you implement everything from the sensor interface to PID control without using drone open source such as ArduPilot or Pixhawk, you can experience and learn all the development processes of the drone control system and embedded system. We will explain all the source code and hardware assembly methods in the class slowly so that even non-majors and beginners can easily follow along. If you follow along slowly, you can experience more stable flight with your own drone that you developed yourself than with commercial products.
Development of high-performance drone flight control system based on STM32F4
How to use STM32CubeIDE
How to use CubeMx
How to use STM32F4 HAL and LL drivers (mostly LL)
Embedded System Development Process
Development of self-made drone FC
9-axis (BNO080) and 6-axis (ICM-20602) sensors, barometric pressure sensor (LPS22HH) interface
UBLOX NEO M8N Interface and Data Parsing (Using u-center)
FlySky FS-iA6B Receiver Interface (iBus) and Data Parsing, FS-i6 Transmitter Setup
How to set up a quadrotor drone
PWM generation method using TIM
ESC Calibration and ESC Protocol Types (Standard PWM, Oneshot, Multishot, Dshot, etc.)
3DR Telemetry Setup (using 3DR radio config)
Drone status information transmission and reception (sensor data, FS-i6 controller data, battery voltage, PID control gain, etc.)
Additional features - PID gain storage in EEPROM, battery voltage check (ADC) and low voltage alarm
Safety functions - Sensor status check at boot, Fail-safe, etc.
Drone Attitude Control Techniques - PID Control
Single PID Control Theory and Experiment
Double PID Control Theory and Experiment
Hello, this is ChrisP from M-HIVE.
This course is about developing a self-made drone using the STM32F4 Micro Controller. It covers the entire process from sensor interface to PID control for developing the drone's flight control system.
Unlike other drone development courses, this course uses STM32F4 to write all the source codes one by one , from the sensor interface to PID control. Since we implement all the functions one by one without using open source, you can easily understand the drone development process and embedded firmware development process.
In addition, the drone developed in this lecture is not inferior in performance to commercial products such as Pixhawk and Ardupilot, so it can be applied not only as a simple educational drone but also for research and industrial use . Also, the MH-FC V2.2 used in this lecture can be applied not only to drones but also to all moving unmanned vehicles , so it can be applied to systems such as unmanned cars!
![]() | ![]() |
Drone parts used in class | What the finished drone looks like |
![]() | ![]() |
PID control theory and code implementation | Sensor data reception and data visualization |
![]() | ![]() |
1-axis PID control test | final flight |
The course consists of three parts and 12 chapters.
Part 1 covers the basics of FC (Flight Controller)
Part 2 Communication and Additional Features
Part 3 Flight Control (PID Control)
It proceeds in this order.
This lecture uses the STM32F405RGT Cortex M4 microcontroller as the main processor, the BNO080 9-axis sensor for attitude control, the ICM-20602 6-axis sensor , and the LPS22HH barometric pressure sensor for altitude control. It also covers the UBLOX M8N GPS data reception for outdoor automatic flight. (However, altitude control and GPS control are not covered in this lecture.)
The goal of this course is to develop a high-performance drone, but it goes into more depth about the process of developing one.
It covers everything from the sensor data interface, which is the most basic step for drone flight, to PID Control for attitude control.
We will focus on the processes for developing embedded applications, and combine them to complete a drone flight control system.
We will always strive to provide useful video lectures.
- M-HIVE ChrisP
Who is this course right for?
Those who want to develop high-performance drones from the basics to flight control
If you want to develop a deep application using STM32
Students majoring in electronics, communications, control, machinery, aviation, etc.
Drone related workers
Those who want to experience the embedded system development process
If you are trying to move from Arduino or 8bit MCU to 32bit MCU
Those who want to learn the basic concepts of PID control and implement them directly
Those who want to practice high-level embedded projects
Research and educational institutions related to drones
People who are working on projects related to unmanned vehicles
Need to know before starting?
The MH-FC V2.2 Flight Controller is essential for this course!! (If you don't have it, you can't proceed!! You can purchase it from the M-HIVE Smart Store)
Drone components (BLDC motor, ESC, propeller, frame, battery, etc. Check the list on the M-HIVE Naver cafe)
Windows PC and STM32CubeIDE
Intermediate or higher level of C language required
Basic circuit knowledge required
STM32F4 or Microcontroller (MCU) development experience required
All
53 lectures ∙ (31hr 21min)