Build a Real Drone Flight Controller on STM32
Not just another demo. Write the firmware yourself: IMU over SPI, ESC motor control, RC joystick input and PID stabilization, with zero external libraries.
⭐ Real student reviews below ▶️ 900k+ views on the Steppeschool YouTube channel 🛠️ Official ST kit or your own STM32 hardware
Lifetime
$40
$80
✔ One-time payment, lifetime access
✔ 14-day money-back guarantee
✔ 71 lessons, 8 hours of video
✔ PDF slides for every chapter
✔ Q&A under every lesson (answers within 12 h)
✔ Certificate of completion
✔ Intermediate level
“This is currently the only available resource for those looking to learn drone development using STM32CubeIDE. It is truly a unique and invaluable course.”
— Rei Takahashi, student
Build a Real Flight Controller
Go beyond theory and tutorials. Instead of copying existing firmware, you develop the core systems yourself and finish with a complete, system-level understanding of a quadcopter.
You will implement:
• motor control
• sensor integration
• attitude estimation
• stabilization control loops
Master STM32 for Robotics
Learn how to use STM32 peripherals in real applications:
• SPI sensor communication
• Timer-based PWM for ESCs
• Interrupt-driven control loops
These are skills used in real robotics systems.
Understand Drone Algorithms
You will implement:
• complementary filter for orientation
• PID stabilization loops
• altitude estimation
By the end, you will understand why drones stay stable in flight.
Get Clear Answers to Your Questions
Learning accelerates when you ask questions. You’re encouraged to be proactive and curious throughout the course. I respond to questions within 12 hours, and most of the time within 2–3 hours.
HARDWARE
What hardware do I need?
Follow the course with the official ST drone kit, or with your own STM32 hardware.
Option A
The official ST kit
This is the exact setup used in the videos, so you can follow along line by line.
✔ STEVAL-DRONE02 mini drone kit (about $43 on the ST eStore)
✔ STEVAL-FCU001V2 flight controller board, sold separately
✔ An ST-LINK programmer to flash the board
✔ An RC transmitter and receiver for the joystick lessons
Option B
Your own hardware
The firmware is written from scratch, without external flight libraries, so the concepts transfer to any STM32 build. You need:
✔ Any STM32 microcontroller with timers and SPI
✔ An IMU (accelerometer + gyroscope) connected over SPI
✔ ESCs and motors driven by PWM
✔ An RC receiver
Porting is mostly mapping pins and peripherals to your board. Using custom hardware? Describe your setup in the lesson discussions and I'll help you adapt the code, usually within a few hours and always within 12.
Enroll nowSteppeschool Reviews
✔ 14-day money-back guarantee ✔ Lifetime access ✔ Certificate of completion
Join the courseCourse Content
-
CH0: Introduction to the Course
3 lessons- 0 - Welcome to the Course
- 1 - PDF Slides
- Header/Source Files and Complete Source Code
-
CH1: Essential Components and Tools
3 lessons- 1 - Flight Controller and Drone companion
- 2 - Motor Connections
- 3 - ST-Link, Board programming
-
CH2: Motor Control
7 lessons- 1 - Motor Fundamentals
- STM32CubeIDE 2.0 and STM32CubeMx Project Setup
- 2 - PWM Generation to Control the Motor speed
- 3 - Motor Control Library
- 4 - BLDC Motor and ESC
- 5 - Running the BLDC Motor using the ESC and PWM signal
- Rate & review this course
-
CH3: IMU Integration
5 lessons- 1 - Welcome words
- 2 - SPI Configuration
- 3 - IMU SPI Interface Check
- 4 - Library Integration
- 5 - Final test
-
CH4: Attitude Estimation
38 lesson- 1 - Attitude Estimation Intro
-
Attitude Estimation Course Excerpt CH1
- 2 - STM32 CubeIde Project creation
- 3 - Using SWV for printf function
- 4 - Using SWV to plot variables
- 5 - SPI theory
- 6 - SPI Configuration using STM32CubeMx
- 7 - SPI wirings
- 8 - Reading ‘Who am I’ register
- 9 - Sending data through SPI
-
Attitude Estimation Course Excerpt CH2
- 1 - First version of the library
- 2 - Testing the library
- 3 - How to read the magnetometer?
- 4 - Magnetometer update 1
- 5 - Magnetometer update 2
- 6 - Testing a new version of the library
- 7 - DMA Theory
- 8 - DMA configuration
-
Attitude Estimation Course Excerpt CH3
- 1 - Removing gyroscope biases
- 2 - Magnetometer bias explanation
- 3 - Timer Update Interrupts
- 4 - Magnetometer bias removal
- 5 - Normalization and scaling of IMU data
- 6 - ARM MATH Library Installation
- 7 - Library Integration
- 8 - A notion of frame
- 9 - Testing the library
-
Attitude Estimation Course Excerpt CH4
- 1 - Attitude estimation, slides
- 2 - A notion of frame in detail
- 3 - 2D rotation
- 4 - Euler angles and Rotation Matrix
- 5 - Using the accelerometer to obtain pitch and Roll angles
- 6 - Using the magnetometer to obtain the Yaw angle
- 7 - Using the gyroscope to obtain the Euler angles
- 8 - Library Integration
- 9 - Complementary Filter
- 10 - Testing the libraries
-
Final Library Integration
- 2 - timer update interrupt
- 4-library integration
-
CH5: Proportional-Integral-Derivative (PID) Controller
6 lessons- 1 - PID Introduction
- 2 - PID Theory
- 3 - PID Implementation
- 4 - Using PID for Tilt Angle Control
- 5 - PID Tuning
- Rate & review this course
-
CH6: Make the Drone Fly!
4 lessons- 1 - Introduction
- 2 - Library Integration
- 3 - Drone Configuration
- 4 - Final Integration
-
CH7: RC Joystick Integration
4 lessons- 1 - RC Joystick Introduction
- 2 - RC Joystick Explanation
- 3 - Timer Input Capture Mode
- 4 - Joystick Drone Control
-
CH8: Pressure Sensor for Altitude Estimation
4 lessons- 1 - How to use the pressure sensor for the altitude estimation
- 2 - Integrating the library for the pressure sensor
- 3 - Demonstration of the altitude estimation
- 4 - Altitude Control
✔ 14-day money-back guarantee ✔ Lifetime access ✔ Certificate of completion
Get lifetime accessTarget audience
Built For Engineers Like You
➜ Engineers who want to understand every part of a complete robot, from sensors to control loops.
➜ Embedded developers ready to dive deep into flight controller firmware using STM32.
➜ Robotics enthusiasts who love experimenting with sensors, PID control, and motor drivers.
➜ Makers who want to build a robot that flies because of their own code, not prebuilt libraries.
NICE TO MEET YOU
Your Tutor
I'm Yerke, the founder of Steppeschool. I hold a Bachelor's degree in Electrical Engineering, and a Master's and a PhD in Robotics/Mechatronics, and I work as an automation engineer.
In my free time I teach electronics, embedded programming and robotics. My YouTube channel has 900k+ views.
I built this course on the same hardware you'll use, and I answer the questions in the lesson discussions myself, usually within a few hours.
Requirements
What you'll need
✔ The ST kit (STEVAL-DRONE02 + STEVAL-FCU001V2) or your own STM32 hardware (see Hardware above)
✔ Basic knowledge of programming STM32 MCUs
✔ Motivation
More Details
Frequently asked questions
What do I get after the enrollment?
Can I use my own drone or a different STM32 board?
Is the flight controller board included in the STEVAL-DRONE02 kit?
Do I need the hardware before I enroll?
What if the course doesn't work with my hardware?
Can I ask questions during the course?
Should I have prior knowledge of programming STM32 microcontrollers?
Start Building Your Own Drone Firmware
If you want to understand how drone flight controllers work internally, this course will guide you step-by-step.
Join the course and start building your STM32 flight controller today.
✔ 14-day money-back guarantee ✔ Lifetime access ✔ Certificate of completion
ENROLL NOW