Introduction to RTOS (video series)
A free 12-part video series by Shawn Hymel for DigiKey that teaches real-time operating systems through FreeRTOS on an ESP32 in the Arduino environment, with a challenge and a written solution for every part. The friendliest way into tasks, queues, mutexes and priority inversion.
12
GitHub (ShawnHymel/introduction-to-rtos) · Sept 2026
Video
Other
DigiKey (Shawn Hymel)
12 parts, about 2 to 3 weeks with the challenges
Intermediate
Free
What the series covers
Introduction to RTOS is a video course made by Shawn Hymel and published by DigiKey. It explains what a real-time operating system is and then teaches each core idea hands-on with FreeRTOS running on an ESP32 development board, programmed from the Arduino environment. The twelve parts are: what is an RTOS, getting started with FreeRTOS, task scheduling and management, memory allocation, queues, mutexes, semaphores, software timers, hardware interrupts, deadlock and starvation, priority inversion, and multicore systems.
Each part ends with a challenge. DigiKey's maker site publishes a written solution for each one, and the companion GitHub repository has demo code, challenge solutions and the slides.
Is it worth your time?
Yes, especially as a first RTOS course. The videos are short and focused, the explanations are clear, and the challenges force you to write concurrent code rather than only watch it. Because it uses an ESP32 with the Arduino tools, which already include FreeRTOS, you can start without installing a separate RTOS. The later parts on deadlock, priority inversion and multicore scheduling cover problems many tutorials skip, and they are the ones that cause real bugs in products.
Prerequisites and time
You should be comfortable with C or Arduino-style C++, and know what an interrupt is. An ESP32 development board is ideal, though the concepts apply on any FreeRTOS platform, including STM32. Watching all twelve parts and doing the challenges takes two to three weeks of evenings.
How to get the most from it
- Do every challenge before looking at the solution, even if it takes several attempts.
- Keep the FreeRTOS API reference open to check each function you use.
- After each part, add the idea to your own project: a queue between two tasks, a mutex around a shared bus.
- If you use STM32, redo a few challenges with FreeRTOS through STM32CubeMX to see the same ideas with a different wrapper.
What you can do after it
- Create tasks with priorities and understand when each one runs.
- Pass data with queues and protect shared resources with mutexes.
- Use semaphores and software timers, and handle interrupts safely.
- Explain deadlock, starvation and priority inversion, and design to avoid them.
Free or paid?
Free on YouTube, with free written solutions and code. The example code is released under the 0BSD licence and the slides under CC BY 4.0, according to the repository.
Common questions
Do I need ESP-IDF? No. The series uses the Arduino environment for the ESP32.
Is it enough on its own? It is an excellent start. Follow it with the free FreeRTOS book for depth.
Best for: learners moving from a single loop to multitasking firmware.
Ready to start?
Opens on DigiKey (Shawn Hymel) in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.