ESP32: Arduino + FreeRTOS (in VSCode/PlatformIO)
Master Arduino multithreading & multicore programming on ESP32. Boost your IoT projects with efficient, concurrent code. Learn to optimize performance!
Course Content
ESP32: Arduino + FreeRTOS (in VSCode/PlatformIO) is an all-levels Udemy course taught by Viacheslav Kulakov. It runs 1h 33m, is taught in English, and includes a certificate of completion. Learners rate it 3.8 out of 5 from 28 reviews, with 166 students enrolled. It is a paid course, first published January 2023.
Unlock the power of multithreaded Arduino programming for ESP32! This course guides you through combining the familiar Arduino ecosystem with the robust capabilities of FreeRTOS for enhanced performance and responsiveness.
We'll start with a practical introduction to VSCode, a powerful and popular code editor ideal for Arduino development. You'll learn to install VSCode and the essential PlatformIO extension, streamlining the process of compiling and debugging your Arduino projects. We'll then explore a ready-made Arduino-WiFiScan project from PlatformIO, using it as a hands-on example to navigate projects within VSCode. We'll also cover how to seamlessly transfer and run this project in the traditional Arduino IDE, and vice versa, demonstrating flexibility in your workflow.
Next, we'll dive deep into the architecture of an Arduino program for ESP32, identifying the core file and understanding its structure. You'll then build your first multithreaded program with three distinct threads, laying the foundation for concurrent programming.
Understanding task behavior is key. We'll thoroughly analyze the first multithreaded program, using practical examples to illustrate how task priorities impact program execution. Then, we'll tackle task synchronization, modifying the initial program to coordinate two threads using a mutex – a fundamental tool for managing shared resources.
Take your concurrency skills to the next level by exploring multi-core processing! We'll demonstrate how to run a task on a separate processor core, introducing concepts like critical sections and spinlock for ensuring data integrity.
Learn to manage shared resources effectively with semaphores. We'll cover both binary semaphores and counting semaphores, and then explore the use of queues for inter-thread communication.
Further refine your synchronization techniques with flags and events, enabling efficient communication between threads.
Finally, we'll investigate synchronization between hardware interrupts and tasks. We'll add a timer interrupt to our existing program, demonstrating how to utilize interrupt flags to trigger actions within your multithreaded application. We'll explore the use of multiple processor cores throughout these examples.
Throughout the course, you'll gain practical experience with numerous examples of ESP32 multithreaded programming with Arduino, empowering you to build more complex and efficient embedded systems.
Need a web app built? Hire the team behind TutorialSearch.io
We ship fast, production-grade full-stack apps (Next.js, React, edge infra) — the same stack that powers this site.