FreeRTOS
202411.00Features
-
Preemptive or co-operative multitasking with priority-based scheduling for deterministic performance.
-
Symmetric Multiprocessing (SMP) support for multi-core microcontroller architectures.
-
Native TCP/IP stack (FreeRTOS+TCP) with comprehensive support for both IPv4 and IPv6.
-
Integrated TLS v1.3 support via MbedTLS and WolfSSL for secure encrypted communications.
-
AWS IoT integration for Over-the-air (OTA) updates, Device Shadow, and Jobs management.
-
Support for ARMv8-M TrustZone and ARMv8.1-M PACBTI security extensions for firmware protection.
-
Lightweight IoT messaging via coreMQTT and coreMQTT Agent for shared network connections.
-
Cryptographic identity and key management through the corePKCS11 library.
-
Formal verification of software correctness for core libraries using CBMC proofs.
-
Memory Protection Unit (MPU) support for task isolation and enhanced system reliability.
-
Cellular interface library for seamless mobile network integration.
-
SNTP client for accurate network-based time synchronization across devices.
-
Support for 40+ architectures and 15+ toolchains including latest RISC-V and ARMv8-M.
-
Low power modes and tickless idle functionality for energy-efficient battery operation.
-
Trace and profiling support via Percepio View for real-time application analysis.
Architecture
FreeRTOS utilizes a microkernel design focused on providing a minimal but robust set of primitives for real-time applications. The core kernel is responsible for task management, scheduling, and inter-process communication (IPC) through queues, semaphores, and mutexes. It is designed to be highly portable, with a clear separation between the hardware-independent core and the hardware-dependent port layer. This architecture allows it to maintain a tiny memory footprint, typically around 6K to 12K bytes of ROM, depending on the architecture and configuration.
The system is highly modular, following a “kernel + libraries” approach. While the core kernel handles execution, additional functionality such as the TCP/IP stack (FreeRTOS+TCP), MQTT, and security protocols are provided as optional, loosely coupled libraries under the FreeRTOS-Plus umbrella. This design pattern ensures that developers only include the code necessary for their specific application, optimizing resource usage for constrained embedded devices.
Core Components
- Task Scheduler: Supports preemptive, co-operative, and round-robin scheduling with priority levels.
- IPC Primitives: Includes thread-safe queues, binary semaphores, counting semaphores, and recursive mutexes.
- Software Timers: Allows for the execution of functions at specific times or periodic intervals.
- Event Groups: Enables tasks to wait for combinations of events to occur.
- Stream/Message Buffers: Optimized for task-to-task and interrupt-to-task data transfer.
Use Cases
This RTOS is ideal for:
- Industrial Automation: Managing real-time sensor data and motor control loops with deterministic timing requirements.
- Consumer Electronics: Powering smart home devices, wearables, and appliances that require low power consumption and small footprints.
- Medical Devices: Providing a reliable and formally verified foundation for life-critical monitoring and diagnostic equipment.
- IoT Gateways: Handling complex networking stacks, TLS encryption, and cloud connectivity for edge-to-cloud data routing.
- Automotive Systems: Implementing non-safety critical telematics and infotainment systems using ARM Cortex-R or Cortex-A processors.
- Smart Energy: Managing smart meters and grid infrastructure components that require long-term stability and remote OTA updates.
Getting Started
To begin developing with FreeRTOS, it is recommended to clone the main repository using the --recurse-submodules flag, as the kernel and supplementary libraries are maintained in separate Git submodules. Developers should start by exploring the FreeRTOS/Demo directory, which contains pre-configured projects for hundreds of hardware platforms and various compilers (GCC, IAR, Keil). These demos provide a functional baseline that includes the necessary port files and configuration headers (FreeRTOSConfig.h).
Extensive documentation is available on the official FreeRTOS website, including a Kernel Quick Start Guide and a comprehensive API Reference. For community support, developers can access the FreeRTOS Support Forums to interact with the primary developers and the broader ecosystem.
Related Projects (236)
ESP32-S3 USB to BLE Keyboard Bridge
This project transforms standard USB keyboards into wireless Bluetooth Low Energy (BLE) devices using the ESP32-S3's native USB-OTG hardware. It features multi-device switching for up to three paired hosts and utilizes the NimBLE stack for low-latency HID report forwarding.
Distributed Embedded Systems Final Project (UBA MSE)
A distributed embedded system project developed for the UBA Master in Embedded Systems, featuring ESP32 firmware built with ESP-IDF. It implements MQTT-based communication for remote data logging and includes Octave scripts for measurement analysis.
Enterprise STM32 Platform Development
A comprehensive embedded software stack and template for STM32 microcontrollers, focusing on enterprise-level development practices. It features a layered architecture supporting both bare-metal and RTOS-based applications using FreeRTOS or ThreadX. The project integrates modern build systems like CMake and Meson with advanced tooling for unit testing and mocking.
ESP32 Remote Control with WebSocket
A comprehensive tutorial-based project for building a real-time remote control interface on the ESP32. It utilizes WebSockets for bidirectional communication, JSON for data serialization, and SPIFFS for hosting web assets, all built within the Arduino framework using PlatformIO.
FloripaSat OBDH (On-Board Data Handling)
The On-Board Data Handling (OBDH) module for the FloripaSat Cubesat project, responsible for managing satellite information and mission data. It runs on the TI MSP430F6659 microcontroller using FreeRTOS and integrates motion tracking and radio communication peripherals.
lunokIoTWatch Firmware for LilyGo TWatch 2020
A comprehensive open-source firmware for the LilyGo TWatch 2020 series based on the ESP32 and Arduino framework. It features a custom UI engine, Lua scripting, BLE/WiFi connectivity, and integration with Gadgetbridge for smartphone notifications.
LwIP TCP/IP Stack on STM32 Microcontroller
A reference project demonstrating the integration of the lwIP TCP/IP stack with FreeRTOS on STM32F767 microcontrollers. It provides two implementation versions for lwIP 2.0.3 and 2.1.2, featuring DHCP client functionality and ICMP support for the Nucleo-144 development board.
NMEA0183-WiFi Marine Data Gateway
An ESP32-based marine data gateway that captures NMEA0183 messages over UDP and serves them through a real-time web interface. It features environmental monitoring using M5Stack sensors, historical data logging to SPIFFS, and integrated Over-The-Air (OTA) update capabilities.
NodeMCU Device Lua Modules
A comprehensive collection of Lua modules and a build environment for NodeMCU firmware, targeting ESP8266 and ESP32 microcontrollers. It includes features for WiFi management, Home Assistant integration, and various sensor/controller implementations using SPIFFS and LFS.
Nuclei Software Development Kit (Nuclei SDK)
A comprehensive software development kit for Nuclei Evaluation SoCs based on the RISC-V architecture. It provides a unified framework including the NMSIS hardware abstraction layer, peripheral drivers, and pre-integrated support for multiple RTOS kernels including FreeRTOS, RT-Thread, uC/OS-II, and ThreadX.
OFMon: Offline-first Smart Energy Monitoring
An offline-first energy monitoring system built with Rust for ESP32 microcontrollers. It utilizes LittleFS for power-loss resilient local storage and integrates with a custom Flutter mobile app and the Thingsboard IoT platform for data synchronization and visualization.
OMOTE - Open Universal Remote
An ESP32-based open-source universal remote firmware utilizing the Arduino framework and LVGL for its graphical user interface. It supports device control via Infrared, Bluetooth Low Energy keyboard emulation, and MQTT for smart home integration, featuring a cross-platform simulator for desktop-based UI development.
onechuk: Machine Learning Powered Wii Nunchuk
A modified Nintendo Wii Nunchuk controller powered by an ESP32 running TensorFlow Lite for Microcontrollers. It enables gesture-based commands via the joystick, supporting multiple action profiles like BLE HID media controls and administrative functions.
openHASP
A comprehensive firmware for ESP32 and STM32F4 microcontrollers that provides a customizable touchscreen UI controlled via MQTT. It utilizes the LVGL graphics library to drive various commodity displays, enabling home automation control through a flexible JSONL-based configuration.
OpenThread RTOS
An integration of the OpenThread networking protocol, LwIP TCP/IP stack, and FreeRTOS real-time operating system. It provides a framework for building Thread-enabled IoT applications with support for MQTT, HTTP, and TCP on platforms like the Nordic nRF52840 and Linux simulation.
paMcuLib
A unified hardware abstraction library for microcontrollers including STM32 and ESP32, designed to provide Arduino-like interface consistency. It features a modular architecture for displays, sensors, and input devices, supported by custom VSCode extensions for submodule management.
Practice Project for STM32F746G-DISCOVERY
A comprehensive practice repository for the STM32F746G-Discovery development board, utilizing FreeRTOS and the STM32 HAL. The project demonstrates the integration of complex peripherals including the LCD-TFT controller, SD card storage via FatFs, and USB Host functionality.
Prust: PUS-C Implementation in Rust
Prust is a modular implementation of the ECSS PUS-C (Packet Utilization Standard) written in Rust. It provides a framework for space engineering telemetry and telecommand, featuring core data structures, a ground simulation tool, and a complete FreeRTOS-based project for STM32 microcontrollers.
Raspberry Pi Pico FreeRTOS Sample Application
A sample project demonstrating the integration of FreeRTOS with the Raspberry Pi Pico SDK for RP2040 microcontrollers. It features hardware-specific enhancements like RP2040 divider context saving and includes multi-tasking examples for LED control and hardware validation.
ReadMePaper: ESP32 7-Color e-Paper Display Project
An ESP32-based firmware for displaying 24-bit BMP images on a Waveshare 7-color e-Paper module. It features a REST API to receive image URLs over WiFi, stores them in SPIFFS, and renders them on the display using the Arduino framework.
μReflow Oven with MicroPython & LVGL
A PID-controlled reflow oven controller built for the ESP32 using MicroPython and the LVGL graphics library. It features a touch-screen interface for selecting solder profiles, real-time temperature monitoring via thermocouple amplifiers, and remote configuration via FTP.
RP2040-FreeRTOS Template
A comprehensive base project and demonstration suite for running FreeRTOS on the Raspberry Pi RP2040 microcontroller. It provides a structured environment for developing embedded applications with the Raspberry Pi Pico SDK, featuring examples for task scheduling, inter-task communication, and hardware interrupts.
rtos-wot
An open-source FreeRTOS distribution for ESP8266 microcontrollers focused on Web of Things (WoT) development. It integrates the FreeRTOS kernel with the lwIP TCP/IP stack and Contiki's CoAP library to provide a complete IoT development environment. Features a component-based programming model inspired by ARM mbed for hardware control.
RTOX IoT Development Platform
RTOX is an IoT development platform built for the Nuvoton NUM487KM_DEVB board. It integrates FreeRTOS with essential middleware including the lwIP TCP/IP stack, LittleFS for flash storage, and uLog for logging, providing a robust foundation for Cortex-M4 based IoT applications.
Selfie Autonomous Car (IARRC 2018)
An autonomous vehicle project based on a 1:10 scale RC car platform, designed for the International Autonomous Robot Racing Competition (IARRC) 2018. It features a dual-processor architecture using an Intel i3 for computer vision and an STM32F7 running FreeRTOS for low-level control and sensor fusion.
Smart Home Automation with FreeRTOS and ESP32
A comprehensive home automation system built on the ESP32 microcontroller using FreeRTOS for real-time task management. It features wireless Bluetooth control via a dedicated Android app, multi-sensor monitoring, and automated safety and security systems including smoke and person detection.
Snow Radio
An advanced ESP32-based internet radio application featuring a VS1053 audio codec and a real-time spectrum analyzer. It supports touchscreen and gesture-based controls, provides a web interface for station management, and integrates OpenWeatherMap data for environmental updates.
STM32 Base Project Template
A comprehensive CMake-based boilerplate for STM32 development featuring FreeRTOS integration, STM32Cube HAL, and a robust unit testing framework. It provides a structured environment for ARM Cortex-M projects with built-in support for code coverage, automated documentation, and advanced GDB debugging utilities.
STM32 Cortex M4 Code Examples
A comprehensive collection of STM32CubeIDE projects for STM32 Cortex-M4 microcontrollers, covering FreeRTOS, DMA, DSP, and peripheral programming. The repository targets STM32F407 and STM32F411 development boards, providing practical implementations of bootloaders, CAN bus protocols, and ARM assembly.
STM32 Event-Triggered Finite State Machine Framework
A lightweight event-driven finite state machine (FSM) framework designed for STM32 microcontrollers. It leverages FreeRTOS and CMSIS-RTOS V2 for task management and message queuing, providing a structured way to handle asynchronous events and state transitions.
STM32 FatFs and FreeRTOS Integration
An example project for STM32 microcontrollers demonstrating the integration of FreeRTOS with the FatFs file system. It features multi-tasking, thread-safe SD card access via SPI, and provides tasks for LED blinking, SD card information retrieval, and file management.
STM32 Framework
A comprehensive development framework for STM32 microcontrollers (F1, F2, F4) that encapsulates the HAL library and integrates FreeRTOS, LwIP, and FatFS. It provides a modular architecture with custom components like a menu system, finite state machine, and various peripheral drivers for rapid embedded application development.
STM32 Makefile FreeRTOS Project Template
A boilerplate project for STM32F10x microcontrollers using FreeRTOS and a Makefile-based build system. It integrates the STM32 Standard Peripheral Library and provides a ready-to-use environment for developing embedded applications with GNU ARM GCC and ST-Link.
STM32 Weather Station
A desktop weather station built on the STM32F746G-Discovery board featuring a TouchGFX-based graphical interface. It integrates local temperature readings from a DS18B20 sensor with remote weather data from Open Weather Map via Ethernet. The project utilizes FreeRTOS for task management and LwIP for network connectivity.
STM32F103RB Templates and Examples
A collection of templates and example projects for the STM32F103RB microcontroller. It covers fundamental peripherals including GPIO, USART, SPI, CAN, and timers, as well as system clock configuration and FreeRTOS integration. The project is designed for use with the IAR Embedded Workbench and provides a modular foundation for building ARM Cortex-M3 applications.
STM32F407VG FreeRTOS FATFS SDIO SD Card Demo
A demonstration project for the STM32F407VG microcontroller that implements SD card read/write functionality using the FATFS file system and SDIO interface. It utilizes FreeRTOS for task management and is configured for use with Keil or IAR development environments.
STM32H5 Classic Core Middleware (CoreMW) MCU Firmware Package
A collection of middleware stacks and applications for STM32H5 microcontrollers, providing RTOS management, file system operations, and connectivity via USB and Ethernet. It integrates FreeRTOS, LwIP, FatFS, and ST's proprietary USB libraries into pre-configured projects for NUCLEO and Discovery boards.
STM32H750B-DK TouchGFX FreeRTOS MQTT Example
A comprehensive example project for the STM32H750B-DK development board integrating TouchGFX GUI, FreeRTOS, and LWIP MQTT. It demonstrates how to establish MQTT connections, subscribe to topics, and exchange data between the GUI and network tasks using FreeRTOS queues.
STM32L475 FreeRTOS IoT Project
A comprehensive implementation of FreeRTOS v10.4.4 on the STM32L475 microcontroller, specifically targeting the Pandora development board. It supports both Keil MDK-ARM and GNU GCC toolchains, providing a robust foundation for IoT application development with pre-configured peripheral support via STM32CubeMX.
SUCHAI Flight Software
A modular and extensible flight software framework designed for nanosatellites like the SUCHAI 1U CubeSat. It supports FreeRTOS and Linux, targeting platforms such as ATMEL AVR32, ESP32, and Raspberry Pi. The architecture utilizes a command processor pattern and LibCSP for subsystem communication.
TeensyXpresso
A collection of project templates and examples for developing Teensy 4.1 applications using the NXP MCUXpresso IDE. It provides pre-configured projects based on the RT1060 Evaluation Kit, including support for FreeRTOS and lwIP networking. The repository simplifies the workflow of generating hex files for the Teensy loader within a professional IDE environment.
That Project
A comprehensive collection of ESP32 and ESP8266 projects focusing on GUI development with LVGL, wireless communication (LoRa, UWB, ESP-NOW), and IoT cloud integration. It provides source code and video tutorials for a wide range of embedded applications including cameras, audio processing, and mobile app connectivity.
Tiva TM4C1294 Launchpad FreeRTOS Demo
A demonstration project for running FreeRTOS 10.2 on the Texas Instruments Tiva TM4C1294 Connected Launchpad. It provides a pre-configured Code Composer Studio environment including TivaWare driverlib and basic tasks for LED blinking and serial communication.
Tulip Creative Computer
A portable, self-contained computer powered by the ESP32-S3 and MicroPython, designed for music synthesis, graphics, and coding. It features a dedicated 120-voice synthesizer engine, multi-layer GPU support, and integrated LVGL for user interface elements. The system boots directly into a Python prompt, providing a distraction-free environment for creative programming.
UDP Echo Server for Milandr 1986VE3
A test project for the Milandr 1986VE3 microcontroller implementing a UDP echo server using FreeRTOS and the LwIP stack. It features support for the 5600VG1U external Ethernet controller and demonstrates static IP configuration and socket-based networking.
VFO-ESP32-Si5351
A sophisticated Variable Frequency Oscillator (VFO) and transceiver controller based on the ESP32 and Si5351 clock generator. It features a high-quality GUI using LVGL, support for dual VFOs, WiFi-based CAT control, and integrated SWR/power measurement capabilities for amateur radio projects.
Vortex Cannon ESP32 Access Point Controller
A GPIO control system and browser interface for a vortex cannon project based on the ESP32. It utilizes a wireless access point with a captive portal and a SPIFFS-hosted web server to provide remote control capabilities via a mobile device.
WebServer_ESP32_ENC
A comprehensive WebServer and HTTP/HTTPS client wrapper library for ESP32-based boards using the ENC28J60 Ethernet controller with LwIP. It provides a familiar API compatible with standard ESP32 and ESP8266 WebServer libraries, supporting TCP/UDP, MQTT, and WebSockets.
WebServer_ESP32_W5500
A comprehensive WebServer and HTTP/HTTPS client wrapper library for ESP32-based boards using the W5500 Ethernet controller with LwIP. It provides an API compatible with standard ESP32 and ESP8266 WebServer libraries, supporting MQTT, WebSockets, and file serving from LittleFS or SPIFFS.
WT32-SqLn: WT32-SC01 Plus with SquareLine Studio and LVGL
A comprehensive starter project and documentation for the Wireless Tag WT32-SC01 Plus board using ESP-IDF, LVGL, and SquareLine Studio. It provides detailed hardware setup guides, custom partition configurations for ESP32-S3, and integrated Over-the-Air (OTA) update functionality.
X-Knob: A Smart Knob Based on LVGL UI Framework
X-Knob is an open-source smart knob project featuring a brushless motor for haptic feedback and a circular LCD for a dynamic UI. It is built using the ESP32-S3 microcontroller, the LVGL graphics library, and the X-TRACK UI framework, supporting features like MQTT integration for Home Assistant and Surface Dial functionality.
XC-OS: A Lightweight Graphical OS for MCUs
XC-OS is a compact embedded graphical operating system built on FreeRTOS and LVGL. Designed for microcontrollers like the STM32F405, it supports Lua-based third-party applications and drivers, featuring a suite of built-in tools including a music player, video player, and Arduboy game system emulator.
XiaoZhi AI Chatbot
An open-source AI chatbot firmware for ESP32 microcontrollers that enables voice interaction using large language models like Qwen and DeepSeek. It features offline wake-up, streaming ASR/TTS, and utilizes the Model Context Protocol (MCP) for IoT device control and cloud-side capability expansion.
Xradio XR871 Platform Legacy Repository
A legacy development repository for the Xradio XR871 WiFi SoC platform. It provides the original Software Development Kit (SDK), Hardware Development Kit (HDK), and MCU support files for building wireless IoT applications on ARM Cortex-M hardware.
NimBLE-Arduino
A lightweight Bluetooth Low Energy (BLE) library for Arduino based on the NimBLE stack. It provides a resource-efficient alternative to the standard Bluedroid-based BLE library for ESP32 and Nordic nRF5 series microcontrollers, significantly reducing flash and RAM usage.
NimBLE HID Keyboard and Mouse Example for ESP32
A Bluetooth Low Energy (BLE) HID keyboard and mouse implementation for the ESP32 using the Apache Mynewt NimBLE stack. It demonstrates GATT server creation, HID report mapping, and GPIO button integration for sending keyboard scan codes and mouse movements.
MQBoard - MicroPython MQTT Micro-Framework
A micro-framework for managing MicroPython boards remotely via MQTT and asyncio. It provides a robust MQTT client, remote REPL access, OTA updates, and remote logging over a single encrypted connection, specifically optimized for ESP32 microcontrollers.
MQTT Client and HTTPS Server using MbedTLS
A demo application for the TWR-K64F120M board featuring an HTTPS server and an MQTT client. It utilizes FreeRTOS, the lwIP TCP/IP stack, and MbedTLS for secure communication. The project demonstrates secure web hosting and MQTT pub/sub functionality on embedded hardware.
mTower Trusted Execution Environment
mTower is a Trusted Execution Environment (TEE) specifically designed for size-constrained IoT devices based on ARM Cortex-M23 and RISC-V architectures. It provides a security framework based on Global Platform API standards, supporting secure boot and protected application execution.
MultiZone Security TEE for RISC-V
A hardware-enforced, software-defined Trusted Execution Environment (TEE) for RISC-V processors that provides secure separation of multiple execution zones. It leverages standard Physical Memory Protection (PMP) units to shield critical functionality from untrusted components without requiring hardware redesign.
Murasaki
A C++ class library for STM32Cube HAL that provides a thread-safe, multi-task aware abstraction layer for FreeRTOS environments. It simplifies peripheral control using interrupt and DMA-based transfers for UART, SPI, I2C, and audio interfaces across various STM32 microcontrollers.
n-able Arduino Core
An Arduino Core for ARM-based BLE microcontrollers, specifically targeting the Nordic nRF51 and nRF52 series. It features a complete open-source BLE stack via NimBLE, integrated FreeRTOS with tickless idle for low-power operation, and support for custom compile-time configurations.
Nesper: Nim Wrappers for ESP-IDF
Nesper provides Nim language wrappers for the ESP-IDF SDK, enabling developers to program ESP32 microcontrollers using Nim. It leverages Nim's ARC garbage collector and provides high-level interfaces for FreeRTOS, LwIP, and various ESP32 hardware peripherals.
Libwebsockets
A lightweight, pure C library providing client and server support for HTTP/1, HTTP/2, WebSockets, MQTT, and other protocols. It is designed for high scalability and security, targeting platforms ranging from embedded RTOS like FreeRTOS on ESP32 to mass cloud serving.
lispBM (LBM)
An embeddable Lisp/Scheme-like programming language designed for microcontrollers and embedded systems. It features Erlang-inspired concurrency, message passing, and process monitoring, supporting platforms like STM32, ESP32, and NRF52 running on FreeRTOS, Zephyr, or ChibiOS.
LPC1115 Libraries and Drivers
A collection of drivers, sensor libraries, and actuator code for the NXP LPC1115 and LPC11xx series microcontrollers. It integrates the CMSIS 2.0 framework and includes example projects for the LPCXpresso 11C24 board, including a FreeRTOS-based blinky application.
LPTIM-Tick: FreeRTOS Tickless Idle via STM32 LPTIM
A specialized driver for STM32 microcontrollers that replaces the standard SysTick timer with the Low-Power Timer (LPTIM) for FreeRTOS tick management. This implementation enables ultra-low-power STOP modes while maintaining accurate kernel time without drift or slippage. It supports a wide range of STM32 families including L, F, G, H, U, and W series.
Lua RTOS for ESP32
Lua RTOS is a real-time operating system for embedded systems, featuring a Lua 5.3 interpreter on top of a FreeRTOS-powered micro-kernel. It provides a hardware abstraction layer for ESP32, ESP8266, and PIC32MZ platforms, allowing for programming via Lua or a block-based IDE.
LVGL 8 on WT32-SC01 with Arduino
A project demonstrating the integration of LVGL 8.x and LovyanGFX on the WT32-SC01 ESP32-based development board. It provides a foundation for building high-performance graphical user interfaces on 3.5-inch capacitive touch displays using the Arduino framework.
LVGL Demo Embarcadores
A demonstration project showcasing the LVGL graphics library on the STM32F429-Discovery board. It integrates multiple hardware peripherals including GPS, IMU, and rotary encoders using FreeRTOS for task management. The application is designed to be portable between the physical ARM target and an x86-based simulator.
LVGL Display and Touchpad Drivers for ESP32
A comprehensive collection of display and input device drivers for the ESP32 SoC, specifically designed to interface with the LVGL graphics library. It supports a wide variety of TFT, monochrome, and e-Paper controllers using SPI and I2C interfaces within the ESP-IDF framework.
LVGL Port for ESP32
A comprehensive port of the Light and Versatile Graphics Library (LVGL) for the ESP32 SoC using the ESP-IDF framework. It provides a modular driver system for various display and touch controllers, integrated directly into the ESP-IDF build system and configuration menu.
LVGL Port for M5Stack Core2
A port of the Light and Versatile Graphics Library (LVGL) for the M5Stack Core2 development kit based on the ESP32. It utilizes the ESP-IDF framework and FreeRTOS to provide a high-performance graphical user interface on the device's integrated display, including support for the AXP192 power management chip.
LVGL Watch Firmware for Open-Smartwatch
A third-party firmware for the Open-Smartwatch platform based on LVGL 8.0 and the Arduino framework. It targets the ESP32-PICO-D4 and includes support for hardware features like vibration motors and infrared remote control. The project is managed via PlatformIO and focuses on providing a modern graphical interface for wearable devices.
LwIP HTTP Server Netconn RTOS Application
A technical demonstration of an HTTP server running on an STM32F429 microcontroller using the LwIP TCP/IP stack and FreeRTOS. It utilizes the Netconn API to serve both static content and dynamic RTOS runtime statistics to web browsers. The project is specifically tailored for the NUCLEO-F429ZI development board using the STM32Cube HAL framework.
MaixPy Scripts
A comprehensive collection of MicroPython scripts for the MaixPy platform, targeting Sipeed hardware based on the Kendryte K210 RISC-V SoC. It includes examples for machine vision, AI acceleration, hardware peripheral control, and multimedia processing.
Marauder Centauri
A portable suite of WiFi and Bluetooth offensive and defensive tools built for the ESP32 microcontroller. It enables security researchers to perform packet sniffing, beacon spamming, and network analysis through a dedicated handheld interface utilizing the Arduino framework.
MicroPython Camera Driver for ESP32
A specialized driver that adds OV2640 camera support to MicroPython for the ESP32 family. It enables high-resolution image capture by leveraging PSRAM and provides a Pythonic interface for controlling camera parameters like frame size, quality, and special effects.
MicroPython for ESP32 with psRAM Support (LoBo Port)
A specialized MicroPython port for ESP32 microcontrollers with extensive support for external psRAM (SPIRAM) up to 16MB. Built as an ESP-IDF component, it features dual-core support, integrated hardware drivers, and advanced networking modules including MQTT, FTP, and GSM/PPPoS.
MicroPython for Kendryte K210 (LoBo Port)
A comprehensive MicroPython port for the Kendryte K210 64-bit RISC-V SoC, built upon the Kendryte FreeRTOS SDK. It features dual-core support, advanced multi-threading, and extensive peripheral drivers for displays, networking, and file systems.
frt - Flössie's Ready FreeRTOS Threading
An object-oriented C++ wrapper for FreeRTOS tasks, mutexes, semaphores, and queues with a focus on static allocation. It provides a clean multithreading API for Arduino and general FreeRTOS projects using the Curiously Recurring Template Pattern (CRTP) for efficiency.
FT900 IoT and Smart Home Framework
A comprehensive IoT framework and collection of demo applications for the FTDI/Bridgetek FT900 series microcontrollers. It provides secure connectivity to AWS, Google Cloud, and Azure using MQTT over TLS, alongside integrations for Amazon Alexa Voice Service and various REST-based cloud services.
Gesture-Detecting Macro Keyboard
A Bluetooth-enabled macro keyboard featuring gesture recognition powered by TensorFlow Lite for Microcontrollers on an ESP32. It combines capacitive touch sensors, physical buttons, and an OLED display to provide customizable computer control via BLE HID and AutoHotkey integration.
HSMCPP: Hierarchical State Machine C++ Library
A comprehensive C++ library for implementing hierarchical (HSM) and finite state machines (FSM) with a focus on embedded and real-time systems. It supports code generation from SCXML, visual debugging, and provides specialized dispatchers for FreeRTOS, Arduino, and POSIX platforms.
HTTPS_Server_Generic Library
A comprehensive HTTP and HTTPS server library for ESP32-based boards, supporting WiFi and various Ethernet controllers like W5500, W6100, and ENC28J60. It provides an Express-like API for handling routes, middleware, and asynchronous request processing using the ESP32's multi-tasking capabilities.
IMXRT1060-EVK Sample Project
A comprehensive sample project for the NXP i.MX RT1060 Evaluation Kit (EVK) featuring a dual-stage architecture with a dedicated bootloader and a feature-rich application. It integrates Amazon FreeRTOS with a full middleware stack including lwIP networking, LVGL graphics, and FatFs storage for ARM Cortex-M7 development.
InfiniTime
An open-source firmware for the PineTime smartwatch based on the nRF52832 microcontroller. It utilizes FreeRTOS for task management, LVGL for the user interface, and NimBLE for Bluetooth Low Energy connectivity. The project provides a complete suite of applications, watch faces, and OTA update capabilities for the PineTime hardware.
IP over USB
An STM32 embedded firmware demonstration of a virtual network using the lwIP stack over a USB CDC-NCM interface. It supports both bare-metal and FreeRTOS implementations, providing DNS, DHCP, and HTTP services to a connected PC. The project targets STM32F4 and STM32L4 discovery boards and includes DFU support for USB-based reprogramming.
IPv6 for ESP8266 FreeRTOS-SDK
A technical guide and implementation for enabling IPv6 support on the ESP8266 using the FreeRTOS-SDK and LWIP stack. It addresses the limitations of the standard Espressif API by utilizing the underlying socket-API and manual link-local address configuration.
Kendryte K210 FreeRTOS SDK
A comprehensive software development kit for the Kendryte K210 RISC-V SoC, featuring integrated FreeRTOS support. It provides a full environment including hardware abstraction layers, peripheral drivers, and middleware like lwIP and FatFS for building embedded AI and IoT applications.
Learning STM32
A comprehensive tutorial and example repository for developers transitioning from Arduino to STM32 ARM programming. It covers bare-metal development using GCC, Make, and GDB, featuring examples for the STM32F103C8T6 'Blue Pill' board with support for libopencm3, CMSIS, and FreeRTOS.
ESP32 WiFi Logger
An ESP-IDF component for the ESP32 that enables remote logging over WiFi via TCP, UDP, or WebSockets. It features seamless integration with the standard ESP_LOGX macros, allowing developers to route system logs to a remote server. The project uses FreeRTOS for asynchronous message queuing to ensure logging does not block critical application tasks.
ESP8266 RTOS HomeKit Accessory
A native Apple HomeKit Accessory Protocol implementation for the ESP8266 using the esp-open-rtos framework. It enables direct communication between the microcontroller and Apple devices by implementing complex cryptographic requirements like SRP and TLV encoding on top of FreeRTOS.
ESPChat
A captive portal chat application for the ESP32 microcontroller that stores messages on the device's internal flash. It functions as a standalone WiFi access point, serving a web interface to connected clients for local communication without requiring an internet connection.
ESPGaggia: Smart Coffee Machine Controller
An ESP32-based firmware designed to upgrade Gaggia coffee machines with smart capabilities. It features PID and Fuzzy Logic temperature control, a custom scripting engine for brew recipes, and a touch-screen interface powered by LVGL, with full MQTT and Homebridge integration.
EtcPal: ETC Platform Abstraction Layer
A robust platform abstraction layer providing a neutral interface for system calls across desktop and embedded environments. It supports FreeRTOS, Zephyr, MQX, Linux, and Windows, enabling highly portable C and C++ development for 32-bit microcontrollers and desktop OSs.
EUC-Dash-ESP32 Dashboard
A stand-alone Bluetooth dashboard for electric unicycles (EUCs) designed for the ESP32-based TTGO T-Watch 2020. It leverages the Arduino framework and FreeRTOS to provide real-time telemetry, power management, and system settings via a wearable interface. Currently supports KingSong wheels with features like speed monitoring, battery status, and OTA updates.
Fashion MNIST on ESP32 with TensorFlow Lite Micro
An example project demonstrating how to run the Fashion MNIST TFLite model on an ESP32 microcontroller using the ESP-IDF framework. It utilizes TensorFlow Lite Micro for edge AI inference, allowing the device to classify clothing items locally.
Freebees Access Control for ESP32
An ESP32-based access control system that integrates PN532 NFC readers, a DS3231 real-time clock, and MQTT for remote management. It features a web-based configuration interface, SPIFFS-based local storage for access keys, and support for dual readers and relays.
FreeRTOS Add-ons
A collection of C++ wrappers and C extensions for FreeRTOS that simplify application development through object-oriented abstractions and advanced synchronization primitives. It includes features such as memory pools, reader/writer locks, and workqueues, targeting embedded systems using FreeRTOS versions 8.2.3 through 10.5.1.
FreeRTOS Cell for the Jailhouse Hypervisor
A specialized implementation of FreeRTOS designed to run as a non-root 'inmate' cell within the Jailhouse partitioning hypervisor. It enables the execution of hard real-time tasks on ARM-based multicore systems, specifically targeting the Banana Pi board, while maintaining isolation from a primary Linux environment.
FreeRTOS for Cadence Tensilica HiFi 4 DSP
A FreeRTOS port specifically designed for the Cadence Tensilica HiFi 4 DSP architecture using the GCC compiler. It provides a foundational RTOS environment for DSP-based systems, including integrated benchmarks like CoreMark and Dhrystone, and support for firmware loading via SyterKit or U-Boot.
FreeRTOS Modern C++ Wrappers
A C++ wrapper library for the FreeRTOS kernel that provides an API closely following the C++ standard thread support library. It emphasizes static allocation to optimize RAM usage and includes automatic ISR context detection for threading calls. The library is compatible with C++11 and above, supporting platforms like ESP-IDF and Cortex-M architectures.
FreeRTOS Port for AVR XMEGA
A specialized port of the FreeRTOS real-time operating system for Atmel/Microchip AVR XMEGA microcontrollers. It provides the necessary portable layer to handle XMEGA-specific hardware details, including support for devices with different program counter sizes.
LittleFS for ESP-IDF
A high-performance, fail-safe filesystem port for ESP32 microcontrollers using the ESP-IDF framework. It serves as a robust alternative to SPIFFS and FAT, offering better reliability, faster formatting, and efficient wear leveling for embedded flash storage.
Minimal LCD Demonstration on ESP-WROVER-KIT
A minimalist demonstration for using the Ucglib graphics library on the ESP-WROVER-KIT-VE development board. It utilizes the Arduino framework within PlatformIO to drive an ILI9341 LCD controller via SPI, supporting both hardware and software SPI modes.
SHA2017 Badge Firmware
The official firmware for the SHA2017 hacker camp badge, built on the Espressif ESP-IDF framework and FreeRTOS. It provides a robust platform featuring a MicroPython runtime, uGFX graphics support for E-ink displays, and integrated WiFi connectivity for the ESP32-based hardware.
AIR32F103 Template Project
A comprehensive GCC-based development template for the AIR32F103, MH32F103A, and MH2103A series of microcontrollers. It provides a complete build system with support for FreeRTOS, LVGL, and uIP, including a specialized startup routine to unlock hidden internal RAM.
Arduino FreeRTOS Library
A specialized port of the FreeRTOS kernel optimized for 8-bit AVR microcontrollers within the Arduino ecosystem. It provides seamless real-time multitasking capabilities for ATmega-based boards like the Arduino Uno, Leonardo, and Mega, while maintaining compatibility with standard Arduino functions.
Arduino-Pico
A high-performance Arduino core for Raspberry Pi RP2040 and RP2350 microcontrollers, supporting both ARM and RISC-V architectures. It integrates the Raspberry Pi Pico SDK with FreeRTOS SMP support and provides advanced features like multicore processing, PIO-based peripherals, and integrated SSL/TLS.
AsyncESP32_SC_Ethernet_Manager
An asynchronous Ethernet connection manager for ESP32-S2/S3/C3 microcontrollers. It utilizes the LwIP stack with W5500 or ENC28J60 controllers to provide a web-based configuration portal for managing network credentials and static IP settings at runtime.
AsyncHTTPRequest_ESP32_Ethernet
An asynchronous HTTP client library for ESP32-based microcontrollers using LwIP Ethernet controllers like W5500, W6100, and ENC28J60. It provides a non-blocking interface for REST communication, similar to JavaScript's XMLHttpRequest, and relies on the AsyncTCP library for efficient networking.
AsyncHTTPSRequest_ESP32_Ethernet
An asynchronous HTTPS request library for ESP32-based boards using LwIP-compatible Ethernet controllers like W5500, W6100, and ENC28J60. It leverages AsyncTCP_SSL to provide a non-blocking, XMLHttpRequest-style API for efficient REST communication in embedded systems.
AsyncUDP_ESP32_Ethernet
A fully asynchronous UDP library for ESP32-based boards using LwIP with W5500, W6100, or ENC28J60 Ethernet controllers. It provides a non-blocking interface for Unicast, Broadcast, and Multicast networking, significantly improving performance over standard synchronous implementations.
AsyncUDP_ESP32_SC_W6100
A fully asynchronous UDP library for ESP32-S2/S3/C3 microcontrollers using the W6100 Ethernet controller and LwIP. It enables non-blocking network communication for unicast, broadcast, and multicast environments, allowing for high-speed multi-connection handling.
AsyncWebServer_ESP32_SC_ENC
An asynchronous web server library specifically designed for ESP32-S2, S3, and C3 microcontrollers using the ENC28J60 Ethernet controller via the LwIP stack. It enables high-performance, non-blocking network communication, supporting concurrent connections, WebSockets, and Server-Sent Events.
AsyncWebServer_ESP32_SC_W5500
An asynchronous web server library designed for ESP32-S2/S3/C3 microcontrollers using the W5500 Ethernet controller. It leverages the LwIP stack to provide high-performance, non-blocking network handling, supporting WebSockets, EventSource, and efficient CString-based memory management.
AsyncWebServer_ESP32_W5500
A high-performance asynchronous web server library for ESP32 microcontrollers using the W5500 Ethernet controller. It leverages the LwIP stack to provide non-blocking network operations, supporting WebSockets, Server-Sent Events, and efficient memory handling for large data transfers.
AWatch
AWatch is a retro-inspired smartwatch firmware for the ESP32-based TTGO T-Watch, featuring a user interface modeled after the Amiga Workbench 1.x. It leverages FreeRTOS for task management and integrates LVGL for its graphical interface, providing functionality such as countdown timers, MOD music playback, and speech synthesis.
BBN M5Stack Tough Sailing Instruments
A comprehensive sailing instrument display and autopilot controller for the M5Stack Tough (ESP32). It integrates with SignalK, NMEA 0183, and Victron systems using the LVGL graphics library to provide real-time marine data visualization and vessel control.
Blinker IoT Documentation
The official documentation repository for the Blinker IoT platform, providing comprehensive guides for connecting embedded devices to the cloud. It supports a wide range of hardware including ESP32, ESP8266, and Arduino, with SDKs for FreeRTOS, Python, and Node.js.
Blynk_Async_WM
An asynchronous WiFi and Blynk configuration manager for ESP8266 and ESP32 platforms. It leverages ESPAsyncWebServer to provide a non-blocking configuration portal with support for multi-WiFi/multi-Blynk credentials, SSL, and persistent storage via LittleFS, SPIFFS, or EEPROM.
coreMQTT Agent Library
The coreMQTT Agent library provides a thread-safe high-level API for the coreMQTT library, enabling multiple threads to share a single MQTT connection. It manages the MQTT connection by serializing access and handling the background process loop, simplifying MQTT integration in multi-threaded embedded systems like FreeRTOS.
Development of Real-Time Systems Assignments
A collection of educational assignments and simulations focused on real-time systems development using FreeRTOS. The project utilizes a POSIX-based FreeRTOS simulator to demonstrate task scheduling, synchronization, and Rate Monotonic (RM) analysis without requiring dedicated embedded hardware.
DIY Smart Coffee and Espresso Scale
A high-precision smart coffee scale project featuring ESP32 firmware written in Rust and a Svelte-based Progressive Web App. It utilizes an HX711 load cell with Kalman filtering for real-time weight tracking and communicates via Bluetooth Low Energy to provide live extraction curves and timer functionality.
dnx RTOS
dnx RTOS is a Unix-like operating system layer built on the FreeRTOS kernel, designed for 32-bit microcontrollers. It provides a modular architecture featuring a virtual file system (VFS), a C-standard compatible program layer, and support for multiple CPU architectures including STM32 and EFR32.
drone_stm32f1
A comprehensive open-source hobby drone project based on the STM32F103C8T6 (BluePill) microcontroller. It features a FreeRTOS-based firmware architecture, a C# ground station GUI for real-time monitoring, and complete hardware design files including PCBs and mechanical drawings.
Effortless-SPIFFS
Effortless-SPIFFS is a C++ library for ESP8266 and ESP32 that simplifies data persistence using the SPIFFS file system. It provides a high-level API for saving and loading various data types, including primitives, strings, and ArduinoJson documents, through simple template-based methods.
ESP-Scope
ESP-Scope is a web-based oscilloscope application built on the ESP-IDF framework for ESP32 microcontrollers. It utilizes the ESP32's ADC capabilities to capture analog signals and serves a real-time visualization interface via a web browser, supporting sample rates up to 83.3 kHz.
ESP32 AsyncWebServer File Upload Example
A practical demonstration of handling file uploads and management on the ESP32 using the ESPAsyncWebServer library and SPIFFS. It features examples ranging from simple single-page uploads to advanced implementations with authentication and real-time progress bars.
ESP32_BitlashTBP
A multi-interpreter environment for the ESP32-C3 that integrates Bitlash and TinyBasicPlus with Quick ESP-NOW wireless connectivity. It provides a programmable command shell and BASIC scripting capabilities with a LittleFS-based file system for persistent script storage.
ESP32 BLE OTA Arduino
A project enabling Over-the-Air (OTA) firmware updates for ESP32 microcontrollers using Bluetooth Low Energy (BLE). It supports both the standard ESP32 BLE library and the more memory-efficient NimBLE-Arduino, providing Python scripts and an Android app for the update process.
esp32-cam-micropython
A specialized MicroPython port for the ESP32-CAM module that integrates camera support directly into the firmware. It features a custom C-based camera module, support for LittleFS to optimize RAM usage, and includes various asynchronous web server examples for streaming video and capturing images.
ESP32 Composite Video Library
A specialized library for ESP32 that generates PAL, NTSC, and SECAM composite video signals using the internal DAC and I2S peripherals. It supports multiple resolutions and framebuffer formats, including direct integration with the LVGL graphics library for creating embedded GUIs without external video hardware.
ESP32-ENC28J60
A specialized Ethernet library for the ESP32 platform that provides driver support for the ENC28J60 SPI Ethernet controller. It leverages the standard Arduino ESP32 Ethernet API, allowing developers to use familiar networking functions with low-cost SPI Ethernet hardware.
ESP32 FATFS Image Tool and Example
A utility and example project for the ESP32 that allows developers to create FAT file system images on a host machine and flash them directly to the device's flash memory. It leverages the ESP-IDF framework and FreeRTOS to provide a Virtual File System (VFS) interface for accessing files stored in a FAT partition.
ESP32 FreeRTOS Examples
A comprehensive collection of firmware examples for the ESP32 microcontroller using the ESP-IDF framework and FreeRTOS. It demonstrates core RTOS primitives like task management, semaphores, and queues, alongside hardware-specific implementations for I2C, SPI, and WiFi connectivity.
ESP32 I2C MPU6050 Driver
A specialized hardware-based I2C driver for the MPU6050 inertial measurement unit, designed specifically for the ESP32 using the ESP-IDF framework. It features high-speed 400kHz communication and includes a Kalman filter implementation for smoothed sensor data processing.
ESP32 LVGL 8.x SDSPI Template
A comprehensive ESP-IDF project template for ESP32 and ESP32-S3 that integrates LVGL 8.x with the LovyanGFX display driver. It features a shared SPI bus for SD card storage and provides pre-configured setups for multiple hardware targets like the WT32-SC01 and FeatherS3.
ESP32 MJPEG Multiclient Streaming Server
A high-performance MJPEG streaming webserver for ESP32-CAM and ESP-EYE modules, capable of supporting up to 10 simultaneous clients. It leverages FreeRTOS tasks to handle concurrent streaming and utilizes the latest ESP32 camera drivers for various sensors like OV2640 and OV5640.
ESP32 Monaco Editor SPIFFS
A project demonstrating a VSCode-like Monaco editor interface for the ESP32, allowing users to edit files stored on the SPIFFS filesystem via a web browser. It utilizes WebSockets for real-time communication and the ESPAsyncWebServer for handling file operations.
ESP32 MQTT Motor Control
An ESP32-based automation project for controlling window blinds using a 12V wiper motor and MQTT. It features multi-threaded motor control, soft-start PWM, over-current protection, and integration with Home Assistant for remote management and sensor data reporting.
ESP32 Offline OSM Maps
This project provides a workflow and demo for displaying offline OpenStreetMap (OSM) data on ESP32 microcontrollers using the LVGL graphics library. It includes a Python-based map converter to transform raster tiles into LVGL-compatible image formats, specifically targeting hardware like the TTGO-Camera Plus.
ESP32 PPPoS Client Example
A comprehensive example project for the ESP32 that implements a Point-to-Point Protocol over Serial (PPPoS) client. It utilizes the ESP-IDF framework and lwIP stack to provide internet connectivity via GSM modules like the SIM800L, supporting HTTP, HTTPS, and SMS functionality.
ESP32-Repo
A comprehensive collection of examples and configuration guides for the ESP32 microcontroller, focusing on FreeRTOS primitives and peripheral interfacing. It provides structured code for both the Arduino framework and the ESP-IDF, including setup instructions for MSYS2 and CMake build systems.
esp32-smartdisplay
A specialized driver library for Sunton 'Cheap Yellow Display' (CYD) boards, providing a unified interface for LVGL 9. It leverages the Espressif esp_lcd component to support a wide range of ESP32, S3, and C3 based smart displays with integrated touch and peripheral control.
ESP32 Sniffer
An ESP32-based firmware designed to capture Wi-Fi Probe Request packets sent by smartphones. Built on the ESP-IDF framework, it extracts metadata such as MAC addresses and signal strength, stores them locally using SPIFFS, and periodically uploads the data to a central server via MQTT.
ESP32 Spartan Edge SPIFFS Loader
A utility for the Spartan Edge Accelerator Board that enables loading FPGA bitstreams directly from the ESP32's internal SPIFFS flash memory. By utilizing the onboard 4MB flash chip, it allows the Spartan-7 FPGA to be configured without the need for an external microSD card.
ESP32 SPIFFS with Directory Support Example
This project provides an enhanced SPIFFS implementation for the ESP32, adding native directory support to the standard ESP-IDF VFS driver. It includes a modified mkspiffs tool for host-side image creation and demonstrates advanced file system operations including multitasking and time-stamped file management.
ESP32 ST7789V FT6236U Arduino LVGL Demo
A comprehensive demo project for ESP32 using the LVGL v8.3.4 graphics library, featuring support for the ST7789 display and FT6236 touch controller. It includes various UI examples such as music players, widgets, and performance benchmarks.
ESP32-TUX
ESP32-TUX is a comprehensive Touch UX template for ESP32 and ESP32-S3 microcontrollers, leveraging the LVGL graphics library and LovyanGFX driver. It provides a ready-to-use framework for building sophisticated HMI applications with features like Wi-Fi provisioning, OTA updates, and theme switching across various 3.5-inch display modules.
ESP32 SPIFFS Image Generation Example
This project provides a practical example of integrating the SPIFFS file system into an ESP32 application using the ESP-IDF framework. It features automated workflows for generating binary images from local data folders and flashing them to specific partitions on the ESP32.
ESP32_W5500_Manager
A comprehensive connection and credential manager for ESP32 boards using the W5500 Ethernet controller and LwIP. It provides a fallback web configuration portal for runtime setup of static or DHCP IP addresses, custom parameters, and NTP settings, supporting storage via LittleFS or SPIFFS.
ESP32-Watch for OpenHaystack
An ESP32-based smartwatch project that integrates with Apple's Find My network using the OpenHaystack protocol. It features a graphical user interface built with LVGL and LovyanGFX, providing location tracking capabilities without the need for a GPS module by broadcasting via Bluetooth Low Energy (BLE).
ESP32 Web Server using SPIFFS
This project demonstrates how to host a web server on an ESP32 using the SPI Flash File System (SPIFFS) to serve static HTML and CSS files. It provides a practical example of controlling hardware GPIOs through a web interface, allowing users to toggle LEDs remotely.
FreeRTOS coreMQTT Agent Demos
A collection of demonstration projects showcasing the coreMQTT Agent library's ability to share a single MQTT connection across multiple concurrent FreeRTOS tasks. It includes practical implementations for AWS IoT Device Shadow, Device Defender, and Over-the-Air (OTA) updates targeting Windows and QEMU environments.