Port a Drone Flight Controller from Bare-Metal to FreeRTOS
Overview
What this challenge is about.
Take the existing bare-metal firmware (STM32H7, around 14,000 lines C). Identify the tasks (control loop 1 kHz, IMU read 2 kHz, GPS 10 Hz, telemetry 50 Hz, command parsing event-driven, logging background). Assign priorities, stack sizes, and synchronization primitives. Use Rate-Monotonic scheduling theory for the priority assignment and document the schedulability analysis. Port to FreeRTOS, validate on the hardware-in-the-loop rig (provided), measure worst-case execution time (WCET) per task with a logic analyzer + cycle-accurate counter. Deliver source code, the schedulability analysis, and a 10-page writeup including measured vs theoretical jitter.
The Brief
What you'll do, and what you'll demonstrate.
Port a Cortex-M7 flight controller from a bare-metal super-loop to FreeRTOS and prove the 1 kHz control-loop deadline is met under worst-case load.
Earning criteria — what you'll demonstrate
- Apply Rate-Monotonic scheduling theory to a real embedded task set
- Port bare-metal firmware to an RTOS without regressing real-time behaviour
- Measure worst-case execution time with cycle-accurate instrumentation
- Choose synchronization primitives (mutex, semaphore, queue) appropriate to each task interaction
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.