Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Advanced Embedded Software with STM32, FreeRTOS & Modbus
Bestseller
Rating: 4.8 out of 5(47 ratings)
578 students

Advanced Embedded Software with STM32, FreeRTOS & Modbus

Develop Real-World Embedded Software Skills with STM32 Using CMSIS, FreeRTOS & Modbus with an Air Quality Sensor Project
Created byKevin Aguilar
Last updated 2/2026
English

What you'll learn

  • Embedded software development using FreeRTOS.
  • Implement register-level STM32 peripheral drivers using CMSIS, with FreeRTOS for synchronization.
  • Integrate and configure FreeRTOS in a structured STM32 project.
  • Design application-level FreeRTOS tasks for data acquisition, error handling, system health monitoring, and communication.
  • Build and integrate a custom Modbus RTU framework with register mapping.
  • Use FreeRTOS queues, semaphores, mutexes, and task notifications to synchronize tasks and manage shared resources.
  • Combine sensor drivers (SHT3x, SGP40) and SPI FRAM storage into a scalable Air Quality Sensor project.
  • Understand embedded software architecture and flow with the help of diagrams and reference designs.
  • Gain insight into flow, behavior, and design with professional diagrams provided throughout the course.

Course content

14 sections120 lectures12h 44m total length
  • Course Introduction1:56

    Build indoor air quality monitor using stm32, freertos, and modbus, integrating temperature, humidity, and voc sensors with non-volatile data storage and a modbus rtu interface for live data and logs.

  • Hardware Requirements & Resources5:12

    Set up an STM32 F486 hardware stack with a spi fram, qty 30 sensor, and sgp 40 voc sensor for data logging, persistent configuration, and indoor air quality measurement.

  • Course Structure & Development Roadmap3:19

    Establish a structured roadmap to build the stm32f4 freertos system, from cmsis integration and clock setup to gpio drivers and sensor interfaces (i2c, uart modbus, spi).

  • Software & Documentation Overview3:32

    Explore the software stack and essential documentation, including Cmsis core, cortex-m headers, and FreeRTOS, for register-level work. Set up project folders, download software and documents, and study stm32f4 datasheet, pinout, alternate function mapping, reference manuals, the Cortex-m4 programming manual, startup files, and system core clock.

Requirements

  • Basic experience with register-level programming on microcontrollers
  • Familiarity with FreeRTOS fundamentals (tasks, delays, basic usage)
  • Proficiency in Embedded C programming
  • This course is designed for learners who already have some embedded programming background. It is not for absolute beginners.

Description

This course contains the use of artificial intelligence.

(e.g., a Python script used to test the Modbus application). Temporary AI-assisted narration in the final lessons is being replaced with natural voice recordings.

If you’ve already know 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.

Intended Outcome

By the end of the course, you’ll have:

  • A fully functioning Air Quality Sensor project running on an STM32 MCU.

  • The ability to write register-level drivers using CMSIS.

  • Experience applying FreeRTOS synchronization mechanisms (queues, semaphores, mutexes and task notifications).

  • Practical knowledge of Modbus RTU integration and implementation.

  • A clear understanding of how to structure and grow professional embedded projects.

This is not about isolated demos. It’s about learning how to build embedded software the way it’s done in real development environments.

Other Noteworthy Highlights

  • Professional, modular programming style used throughout.

  • I2C, SPI, and UART drivers implemented with FreeRTOS synchronization for non-blocking operation.

  • Error Handling, System Health Monitor, Sensor Data Acquisition, Modbus Slave & Modbus Data Manager implemented as FreeRTOS tasks.

  • Step-by-step incremental project development.

  • Real-world integration of sensors and external memory.

Hardware

  • STM32F446RE Nucleo Board (recommended)

    • A large portion of the course can be completed using just this board, so you can get started right away.

    • The external sensors (I2C temperature/humidity & VOC Index) and SPI FRAM can be integrated as you obtain them.

Software

  • STM32CubeIDE

  • A Modbus master tool (e.g., Simply Modbus Master) for testing communication

Who this course is for:

  • Embedded developers who want to advance beyond simple demos and learn how to structure a professional STM32 project.
  • Engineers with STM32 and FreeRTOS basics who want to integrate drivers, tasks, and communication protocols into a real-world application.
  • Learners aiming to build a complete embedded project (Indoor Air Quality Sensor) while mastering CMSIS-based drivers, FreeRTOS synchronization, and Modbus integration.