Teach it: a drone-control bootcamp
A seven-evening course that takes students from a simple circuit to a drone that survives losing a propeller; ready, not yet taught.
My partSole author
In short
A seven-evening course that takes engineering students from PID on an RC circuit to a quadrotor that survives losing a rotor, taught with my easyPID library and my rotor-fault study. Every session has notes, an auto-checked notebook, a lab, a quiz and slides. It is ready for a first cohort and has not been taught yet.
- What it is
- A ready-to-run, seven-evening bootcamp on drone control — PID, attitude, fault tolerance — with auto-checked notebooks, Arduino labs on a two-motor seesaw rig, slides, an instructor guide and a cohort plan.
- Why it matters
- Control theory is usually taught on paper. Students with printers and electronics still lack a structured path from “what is PID” to “how does a drone stay up, and what happens when a propeller breaks”.
- My part
- I wrote the curriculum and its software, ported easyPID to Python for the notebooks, designed the rig, and set up CI that runs every notebook and compiles every sketch.

Step by step
- 1
Bench PID
An RC circuit and a three-stage RC ladder with easyPID: windup, filtering and relay autotuning, each measured against a known answer.

Session 1: P leaves an offset, PI removes it, too much integral gain overshoots. easyPID’s Python port on a simulated RC circuit. - 2
One drone axis
A two-motor seesaw rig with a potentiometer on the pivot: a thrust curve from a kitchen scale, interlocks, and the first closed loop on a clean angle.
- 3
Attitude
The MPU-6050 estimate measured against the potentiometer, complementary and Kalman filters, and a rate and angle cascade built from two easyPID instances.
- 4
The full vehicle
A minimal quadrotor simulator checked against the research model, mixing priorities, and a four-loop cascade.
- 5
Faults and capstone
Fault signatures, CUSUM and re-allocation with the rotor-fault simulator, then an acceptance test that runs identically on the rig and in simulation.

Session 6: losing a rotor in the rotor-fault simulator, passive controller against detection and yaw-relaxed control.
Results
- 7
- Sessions
- about three hours each, plus optional build and open-lab evenings
- 41
- Auto-checked exercises
- in 7 notebooks built into student and solution versions; CI executes all 14
- ≤ 4.8 × 10⁻⁴
- easyPID port
- worst relative difference from the compiled C++ library over 3,274 randomised updates
- USD 96–168
- Kit per team
- estimated from a parts list for the bench kit and rig, before shipping and contingency
For engineersHow it is built, its limits, and its keywords.
How it works
Bench electronics first, then one drone axis on a rig with a potentiometer for ground truth, then the full quadrotor and its faults in simulation. Every exercise is auto-checked, every lab is predicted by a notebook before it is measured, and the capstone is scored by the same code on the rig and in simulation.
Limits
- The analysis panels are verified on simulated signals with known noise, vibration and distortion (the Noise Lab recovers the simulated white noise to within 1 %); long captures from the real unit are still to come.
- Not taught yet: no student has taken the course, so I can’t say yet what students learn from it. A pilot plan says what the first cohort will measure.
- No rig has been built from the documents. The printable parts have not been printed, and the sketches’ motor and IMU drivers have been compiled but not run on hardware.
- Rig parameters, capstone pass limits and performance figures come from simulation with assumed values; session timings are estimates.
- Testing easyPID for the course found a first-run bias in its relay autotuner: an ultimate gain of about 42 on the first run and 28 on the second, against an exact 29. The lab runs it twice; the library is unchanged so far.
Keywords
- drone control course
- PID
- easyPID
- quadrotor
- control education
- Arduino
