This course contains the use of artificial intelligence. (The final section includes AI-assisted narration of my own recorded voice, used only due to temporary illness during production. This section is currently being re-recorded and will be updated with natural voice narration.) If you’ve already explored the basics of STM32 driver development or FreeRTOS, you may be looking for the next step: a way to bring these skills together into a real-world, professional project.
This course is designed exactly for that purpose. You’ll build a complete indoor air quality sensor project from the ground up, using an STM32 Nucleo board, developing and integrating CMSIS-based peripheral drivers, FreeRTOS tasks, and custom Modbus RTU framework into a structured embedded software project. By working step-by-step through the design and implementation, you’ll not only learn how these elements work individually, but also how to architect, synchronize, and integrate them into a cohesive, real-world application.
About the Course
We begin with the foundation:
- Integrating CMSIS for register-level development.
- Integrating FreeRTOS as our real-time operating system.
- Creating the startup FreeRTOS task.
- Setting up system clocks and a clean project structure.
From there, we build the project incrementally:
- Writing a clean GPIO driver and non-blocking, UART, SPI, and I2C drivers that use FreeRTOS semaphores for synchronization.
- Developing application-level FreeRTOS tasks to handle data acquisition, processing, and communication.
- Adding external hardware: Sensirion environmental sensors (e.g., SHT3x, SGP40) and a custom FRAM driver over SPI for data storage.
- Integrating a custom Modbus RTU framework, and then build the application-level tasks which support communication and data handling.
Each piece is added step by step so you’ll see not just the code, but also the reasoning behind the design choices.






