Sign Up

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

Video Poster Image

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

Enroll now

“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

Video Poster Image
Steppeschool STM32 Programming Course HAL API, bare-metal programming

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.

Steppeschool STM32 Programming Course Datasheet
Steppeschool STM32 Programming Course Q&A

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 now

Steppeschool Reviews

✔ 14-day money-back guarantee   ✔ Lifetime access   ✔ Certificate of completion

Join the course

Course Content

  1. CH0: Introduction to the Course

    3 lessons
    1. 0 - Welcome to the Course
    2. 1 - PDF Slides
    3. Header/Source Files and Complete Source Code
  2. CH1: Essential Components and Tools

    3 lessons
    1. 1 - Flight Controller and Drone companion
    2. 2 - Motor Connections
    3. 3 - ST-Link, Board programming
  3. CH2: Motor Control

    7 lessons
    1. 1 - Motor Fundamentals
    2. STM32CubeIDE 2.0 and STM32CubeMx Project Setup
    3. 2 - PWM Generation to Control the Motor speed
    4. 3 - Motor Control Library
    5. 4 - BLDC Motor and ESC
    6. 5 - Running the BLDC Motor using the ESC and PWM signal
    7. Rate & review this course
  4. CH3: IMU Integration

    5 lessons
    1. 1 - Welcome words
    2. 2 - SPI Configuration
    3. 3 - IMU SPI Interface Check
    4. 4 - Library Integration
    5. 5 - Final test
  5. CH4: Attitude Estimation

    38 lesson
    1. 1 - Attitude Estimation Intro
    1. Attitude Estimation Course Excerpt CH1

      1. 2 - STM32 CubeIde Project creation
      2. 3 - Using SWV for printf function
      3. 4 - Using SWV to plot variables
      4. 5 - SPI theory
      5. 6 - SPI Configuration using STM32CubeMx
      6. 7 - SPI wirings
      7. 8 - Reading ‘Who am I’ register
      8. 9 - Sending data through SPI
    2. Attitude Estimation Course Excerpt CH2

      1. 1 - First version of the library
      2. 2 - Testing the library
      3. 3 - How to read the magnetometer?
      4. 4 - Magnetometer update 1
      5. 5 - Magnetometer update 2
      6. 6 - Testing a new version of the library
      7. 7 - DMA Theory
      8. 8 - DMA configuration
    3. Attitude Estimation Course Excerpt CH3

      1. 1 - Removing gyroscope biases
      2. 2 - Magnetometer bias explanation
      3. 3 - Timer Update Interrupts
      4. 4 - Magnetometer bias removal
      5. 5 - Normalization and scaling of IMU data
      6. 6 - ARM MATH Library Installation
      7. 7 - Library Integration
      8. 8 - A notion of frame
      9. 9 - Testing the library
    4. Attitude Estimation Course Excerpt CH4

      1. 1 - Attitude estimation, slides
      2. 2 - A notion of frame in detail
      3. 3 - 2D rotation
      4. 4 - Euler angles and Rotation Matrix
      5. 5 - Using the accelerometer to obtain pitch and Roll angles
      6. 6 - Using the magnetometer to obtain the Yaw angle
      7. 7 - Using the gyroscope to obtain the Euler angles
      8. 8 - Library Integration
      9. 9 - Complementary Filter
      10. 10 - Testing the libraries
    5. Final Library Integration

      1. 2 - timer update interrupt
      2. 4-library integration
  6. CH5: Proportional-Integral-Derivative (PID) Controller

    6 lessons
    1. 1 - PID Introduction
    2. 2 - PID Theory
    3. 3 - PID Implementation
    4. 4 - Using PID for Tilt Angle Control
    5. 5 - PID Tuning
    6. Rate & review this course
  7. CH6: Make the Drone Fly!

    4 lessons
    1. 1 - Introduction
    2. 2 - Library Integration
    3. 3 - Drone Configuration
    4. 4 - Final Integration
  8. CH7: RC Joystick Integration

    4 lessons
    1. 1 - RC Joystick Introduction
    2. 2 - RC Joystick Explanation
    3. 3 - Timer Input Capture Mode
    4. 4 - Joystick Drone Control
  9. CH8: Pressure Sensor for Altitude Estimation

    4 lessons
    1. 1 - How to use the pressure sensor for the altitude estimation
    2. 2 - Integrating the library for the pressure sensor
    3. 3 - Demonstration of the altitude estimation
    4. 4 - Altitude Control

✔ 14-day money-back guarantee   ✔ Lifetime access   ✔ Certificate of completion

Get lifetime access

Target 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

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