Professional embedded
Real-time multitasking (FreeRTOS)
Advanced80 min
Run several tasks on one board, with priorities, a message queue and a mutex.
What you get
Three tasks running without blocking each other, a queue absorbing bursts and a protected resource.
Parts (simulated)
- ESP32 or Arduino board
- LEDs and a button
- Serial monitor
Nothing to buy: every component here is simulated in the browser.
Project steps
- 01Create two tasks and give them different priorities.
- 02Replace delay() with vTaskDelay() and understand the difference.
- 03Make a producer and consumer talk through a queue.
- 04Protect a shared resource with a mutex.
- 05Keep critical sections as short as possible.
What you learn
- Scheduling and priorities
- Message queues
- Mutual exclusion
- Critical sections
Other projects
- ⌚ Smartwatch
Build a complete watch: OLED screen, DS3231 real-time clock, navigation buttons, then the printed board that goes with it.
- 📺 Mini colour TV (SPI TFT)
The finish line of a 10-project display series: from a single pixel to a colour panel driven over SPI.
- 📻 Digital PMR446 walkie-talkie
A full radio link on the PMR446 band: modulation, channel, noise, demodulation and quality measurement.
- 📱 4G/LTE cellular phone
Understand how a phone attaches to a cell: OFDM modulation, mobility, echoes and useful throughput.