Build a quadcopter flight controller from scratch in a 100% hands-on course.
Explore the Course
The drone as a laboratory
Throughout the course, you'll develop the complete estimation and control architecture, from sensors to motors, and watch your algorithms actually fly.

Built around the Crazyflie 2.1 Brushless open-source micro-drone, developed by Bitcraze for education and research.
What you’ll learn
Flight fundamentals
Understand the fundamentals of aerodynamics and rigid-body dynamics, explained intuitively and applied to a real quadcopter.
Embedded programming
Program an ARM microcontroller in C with FreeRTOS, interface real sensors over I²C/SPI, and drive BLDC motors through ESCs.
Applied control
From PID and complementary filters to LQR and Kalman filtering, implement classical and modern control techniques on a real drone.
Layered architecture
Design a complete flight control architecture with dedicated estimation and control strategies for attitude, height and position.
100% practical
Move beyond simulations and see how every gain affects stability, overshoot, and response time on real hardware.
System identification
Estimate physical and aerodynamic parameters using custom-built test rigs that isolate individual degrees of freedom.
Course overview
Setup
Covers everything you need to get started, including the required hardware, software installation, and firmware configuration. By the end, you'll have a fully functional development environment ready for the hands-on experiments throughout the course.

Fundamentals
Introduces the core physical concepts behind quadcopter flight, including aerodynamics, force and torque generation, inertia, and coordinate systems. These principles provide the foundation needed to understand the drone's dynamics and the control algorithms developed later in the course.
Identification
Focuses on experimentally identifying the key parameters of the propulsion system. You will measure the motor model coefficients, as well as the propeller thrust and drag constants, providing the data needed to build an accurate mathematical model of the drone.
Modeling
Develops the mathematical equations that describe the drone's motion. Starting with a simplified 2D model and progressing to the full 3D dynamics, you will learn how to represent the quadcopter's behavior using the tools needed for analysis, simulation, and control design.
Control
Guides you through the implementation of a complete quadcopter flight controller. You will first build the interface functions that connect your code to the real world, including actuators, sensors, and wireless reference commands. Then, you will implement the core stabilization algorithms: mixer, estimators, and controllers, for attitude, height, and position, progressively introducing techniques ranging from complementary filters and PID control to Kalman filtering, LQR, and LQG.