lwIP
startFeatures
-
Dual-stack IPv4 and IPv6 support with packet forwarding over multiple network interfaces.
-
Full TCP implementation featuring congestion control, RTT estimation, fast recovery, and fast retransmit.
-
UDP and experimental UDP-lite extensions for low-overhead transport.
-
ICMP and ICMPv6 support for network maintenance and diagnostic functions.
-
IGMP and MLDv1 support for managing multicast traffic and listener discovery.
-
Neighbor Discovery (ND) and stateless address autoconfiguration for IPv6 compliance (RFC 4861/4862).
-
Comprehensive IP addressing via DHCP, DHCPv6, AutoIP/APIPA (Zeroconf), and Address Conflict Detection (ACD).
-
DNS client including support for mDNS (Multicast DNS) responder.
-
Layered TCP (altcp) abstraction for transparent TLS integration, typically ported to mbedTLS.
-
Point-to-Point Protocol support including PPPoS (over Serial) and PPPoE (over Ethernet).
-
6LoWPAN adaptation layer for low-power wireless networks like IEEE 802.15.4 and BLE.
-
Integrated HTTP/HTTPS server with support for Server Side Includes (SSI) and CGI.
-
SNMPv2c/v3 agent with an included MIB compiler for network management.
-
MQTT client with optional TLS encryption for secure IoT messaging.
-
SNTP (Simple Network Time Protocol) implementation for clock synchronization.
-
NetBIOS name service responder and iPerf server for network performance testing.
Architecture
lwIP is designed with a modular architecture that balances the need for a layered protocol stack with the performance requirements of resource-constrained hardware. The core stack is contained within the src directory, while platform-specific ports and optional applications reside in the contrib directory. A central feature of its architecture is the pbuf (packet buffer) structure, which allows for zero-copy data handling as packets move through the various layers of the stack, significantly reducing CPU and memory overhead.
To accommodate different system designs, lwIP provides three distinct Application Programming Interfaces (APIs):
- Raw API: A callback-based, event-driven interface that provides the highest performance and lowest memory footprint by running directly in the TCP/IP thread.
- Netconn API: A sequential, thread-safe API that requires an operating system (RTOS) and provides a simplified programming model.
- Socket API: A BSD-compatible socket layer built on top of the Netconn API, facilitating the porting of existing standard networking code.
Use Cases
This library is ideal for:
- IoT End-Nodes: Small, battery-powered sensors using 6LoWPAN or BLE to communicate with gateways.
- Industrial Automation: PLCs and industrial controllers requiring reliable TCP/IP communication for Modbus/TCP or Ethernet/IP protocols.
- Embedded Web Servers: Devices providing local configuration or monitoring dashboards via HTTP or HTTPS.
- Network Gateways: Systems bridging traffic between different physical layers, such as Ethernet to Serial (PPP) or WiFi to 6LoWPAN.
- Resource-Constrained Systems: Microcontrollers with limited RAM (e.g., 20KB-50KB) that still require a full-featured, standards-compliant network stack.
Getting Started
Developers can begin by exploring the src directory for the core protocol implementations and the contrib directory for existing ports to various hardware and operating systems. The stack requires a header file named lwipopts.h to be defined by the user, which configures the stack’s features and memory limits at compile-time. For systems using an RTOS, a system abstraction layer (sys_arch) must be implemented to handle threading and synchronization. Comprehensive self-documentation extracted from the source code is available at the official lwIP documentation site, and development is centrally managed via the Savannah Git repository.
Related Projects (164)
Zigbee Gas Counter
A DIY Zigbee-enabled gas meter built on the ESP32-C6 using the ESP-IDF framework. It tracks real-time gas consumption and flow rates, integrating with Zigbee2MQTT and Home Assistant for energy management. The device features battery optimization, non-volatile storage for data persistence, and OTA firmware updates.
Engineering DIY ESP32 Sensors & Cameras for Home Assistant
A comprehensive DIY project for building ESP32-based environmental sensors and cameras integrated with Home Assistant via the ESPHome framework. It covers hardware selection, 3D casing design, wiring, and non-linear calibration to ensure accurate readings despite internal heat generation.
ESP32 Reticulum Network Stack Gateway Node
A multi-interface network gateway firmware for the ESP32 series that implements the Reticulum Network Stack (Reticulum). It enables transparent packet routing and bridging across WiFi, ESP-NOW, LoRa, Serial, and HAM radio interfaces, providing a resilient and cryptographically secured communication mesh.
ESP32FMRadio
An embedded project that repurposes the ESP32's internal Audio PLL and I2S Master Clock to create a functional FM radio transmitter. By dynamically adjusting the APLL frequency via a high-resolution timer, it achieves real-time frequency modulation of an 8kHz audio signal. The project demonstrates advanced peripheral manipulation for RF generation without external transmitter chips.
ElatoAI: Realtime Voice AI on ESP32
An end-to-end platform for deploying state-of-the-art AI voice agents on ESP32-S3 hardware. It utilizes a Deno-based edge server to bridge microcontrollers with APIs from OpenAI, Gemini, and Eleven Labs, featuring Opus audio compression and Secure WebSockets for low-latency speech-to-speech interaction.
ESP32 Bus Pirate
An open-source firmware for ESP32-S3 microcontrollers that replicates and extends the functionality of the Bus Pirate hardware tool. It provides an interactive CLI for sniffing, sending, and scripting various digital and radio protocols like I2C, SPI, UART, CAN, and Sub-GHz.
ESP32-RTSPServer
A comprehensive RTSP server library for the ESP32 platform that enables streaming of video, audio, and subtitles. It supports multiple transport protocols including UDP, TCP, Multicast, and HTTP tunneling, with specific optimizations for ESP32 camera sensors and I2S audio interfaces.
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.
grblHAL Networking Services Plugin
A comprehensive networking services plugin for grblHAL that provides protocol support on top of the lwIP TCP/IP stack. It enables Telnet, Websocket, FTP, HTTP, WebDAV, mDNS, MQTT, and Modbus across a variety of 32-bit microcontrollers including STM32, RP2040, and ESP32. The plugin facilitates remote machine control and file management for embedded CNC systems.
IoTSharp PANDORA STM32L475 BSP
A Board Support Package (BSP) for the STM32L475 Pandora development board running RT-Thread. It enables seamless integration with the IoTSharp platform for telemetry and attribute data collection while providing comprehensive driver support for onboard peripherals.
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.
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.
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.
Phoenix-RTOS Project
A scalable real-time operating system for IoT based on a custom microkernel. It supports multiple architectures including ARM Cortex-M/A, x86, and RISC-V, providing a POSIX-compliant environment and advanced partitioning for aerospace and industrial applications.
Pico W Connection Manager Demo
A demonstration project for the Raspberry Pi Pico W that provides a C++ connection manager class for Wi-Fi connectivity. It features a command-line interface for scanning and connecting to access points, a LittleFS-based configuration storage system, and an LwIP webserver for remote hardware control.
PikaPython
PikaPython is an ultra-lightweight Python interpreter optimized for microcontrollers with minimal resources, requiring only 4KB of RAM and 64KB of Flash. It provides a zero-dependency C engine with a powerful pre-compiler for seamless C-module integration, supporting a wide range of hardware including STM32, ESP32, and RISC-V platforms.
PPP Device for RT-Thread
A specialized package for RT-Thread that implements lwIP PPP functionality for various cellular modules including 2G, 3G, and 4G modems. It enables network data transmission via PPP, bypassing the need for manual AT command handling and providing seamless integration with the SAL abstraction layer.
RT-Rosserial for RT-Thread
A rosserial implementation for the RT-Thread RTOS that enables microcontrollers to communicate with the Robot Operating System (ROS). It supports both UART and TCP communication protocols, allowing embedded devices to publish sensor data and subscribe to ROS topics.
RTEMS lwIP STM32 Integration
A reference implementation and test suite for integrating the lwIP TCP/IP stack with the RTEMS real-time operating system on STM32H7 microcontrollers. It supports the RAW, Netconn, and Socket APIs and is specifically tailored for the NUCLEO-H743ZI development board.
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.
SAMA5D27 Resource Sharing
A comprehensive resource repository for the Microchip SAMA5D27 Cortex-A5 MPU, providing extensive documentation and guides for Linux development, bare-metal programming, and various RTOS ports. It features in-depth tutorials for NuttX, RT-Thread, and ThreadX, including driver integration for LVGL, EtherCAT, and TensorFlow Lite.
SK-MSTM32F107 Demo Board Example
A sample project demonstrating the integration of the libopencm3 hardware abstraction library with the lwIP TCP/IP stack on STM32F107-based microcontrollers. It provides a foundation for developing networked embedded applications on Cortex-M3 hardware using open-source tools.
Sofa Operating System Framework
Sofa is an operating system framework built on the seL4 microkernel, providing a suite of userland servers and a POSIX-compliant API via the musl C library. It includes a virtual file system, a UDP network stack using lwIP and virtio, and comprehensive process management capabilities.
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 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.
STM32F4 Display and Ethernet Example
A demonstration project for the STM32F407 microcontroller featuring a HY32D TFT display with ILI9325 controller and Ethernet connectivity via the DP83848 module. It utilizes the LwIP stack for networking and STemWin for the graphical user interface, configured using STM32CubeMX HAL drivers.
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.
Straight-HTTPD: Embedded Web Server Simulator
A lightweight HTTP/HTTPS server solution for embedded systems based on the lwIP TCP/IP stack and mbedtls. It provides a Windows-based simulation environment using pcap to develop and debug web services before deploying to microcontrollers like the Cortex-M4.
Struts4Embedded (S4E)
An MVC framework for embedded systems that mimics Java's Struts 1.0 architecture to decouple model, view, and controller logic. Built specifically for ChibiOS RTOS, it provides a structured pattern for developing scalable and maintainable IoT applications on STM32 microcontrollers.
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.
Timezone_Generic Library
A comprehensive Arduino library for handling timezone conversions and automatic Daylight Saving Time (DST) adjustments across a wide range of embedded platforms. It supports numerous microcontrollers including ESP32, ESP8266, STM32, and RP2040, integrating with various storage and networking modules.
TinyHTTPD lwIP-DPDK
A high-performance web server benchmark tool that integrates the lwIP TCP/IP stack with DPDK for user-space networking on Linux. It provides a baseline for comparing user-space networking performance against the standard Linux kernel TCP stack, achieving significantly higher throughput in TCP ping-pong workloads.
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.
USB CDC-ECM for STM32F072
A USB CDC-ECM implementation for the STM32F072 microcontroller featuring embedded virtual DHCP, DNS, and web servers. It utilizes a customized lwIP 1.4.1 stack to provide network connectivity over USB, fitting within the limited RAM and Flash constraints of the Cortex-M0 platform.
W600 RT-Thread Smart Fingerprint Lock
A smart fingerprint door lock system based on the W600 WiFi SoC and RT-Thread RTOS. It features multiple unlocking methods including fingerprint recognition, NEC infrared remote control, and remote operation via the OneNET IoT platform. The project integrates hardware components like the FPC1020A sensor and MG996R servo for a complete security solution.
W601 RT-Thread Alarm Clock
An IoT-enabled alarm clock project built on the RT-Thread RTOS for the Alientek W601 development board. It features network time synchronization via NTP, environmental monitoring using AHT10 and AP3216C sensors, and a graphical interface on an LCD. The project leverages RT-Thread's ecosystem, including WiFi connectivity, EasyFlash storage, and the FAL partition management system.
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-CUBE-IOTA1 Firmware Package
An expansion software package for STM32Cube that enables IOTA Distributed Ledger Technology (DLT) on STM32 microcontrollers. It integrates Azure RTOS ThreadX and NetXDuo with middleware for secure hardware root of trust, encryption, and IOTA Client APIs for interacting with the Tangle.
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.
yaota8266 OTA Bootloader
An in-place over-the-air (OTA) update solution for the ESP8266 WiFi SoC designed for large firmwares on small flash devices. It features a dual-stage bootloader architecture with RSA-signed UDP updates, eliminating the need for redundant flash partitions.
Mongoose OS
Mongoose OS is a comprehensive IoT firmware development framework designed for microcontrollers like ESP32, ESP8266, and STM32. It provides built-in support for over-the-air (OTA) updates, security via flash encryption and mbedTLS, and seamless integration with major cloud providers like AWS IoT and Google Cloud IoT Core.
Moonlight 8266
An RGB LED control firmware for ESP8266-based moon lamps, featuring a web-based color picker and WebSocket interface. It includes battery monitoring with low-voltage alerts, persistent settings storage via emulated EEPROM, and support for both Access Point and Station WiFi modes.
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.
MQTT Demo for STM32 IoT Discovery Board with Thingsboard
An Mbed OS application for the STM32 B-L475E-IOT01A Discovery Board that transmits environmental data to the Thingsboard IoT platform. It integrates the HTS221 temperature and humidity sensor with the ISM43362 WiFi module using the MQTT protocol.
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.
libtock-c: Tock Userland C Library
The C userland library and SDK for the Tock operating system, providing the core APIs and build system for developing embedded applications. It supports ARM Cortex-M and RISC-V architectures and includes integrated support for popular libraries like LWIP, LVGL, and OpenThread.
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.
LPC407x NoOS lwIP mbedTLS HTTPD for Keil
A bare-metal (NoOS) implementation of an HTTP/HTTPS server on the NXP LPC4078 microcontroller. It integrates the lwIP TCP/IP stack and mbedTLS for secure communication, targeting the Cortex-M4 platform with external SDRAM support and Keil MDK development environment.
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 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.
lwIP Bug Finder
A specialized tool for identifying vulnerabilities in the lwIP TCP/IP stack using symbolic execution. Leveraging the angr framework, it analyzes binary executables to detect memory corruption, segmentation faults, and protocol logic errors in embedded networking stacks.
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.
lwIP-PTP: Precision Time Protocol for lwIP
A port of the Precision Time Protocol (PTP) for the lwIP TCP/IP stack, enabling high-precision time synchronization for embedded systems. Based on the Linux PTP implementation and optimized for resource-constrained microcontrollers, it supports master/slave scenarios and integrates with the lightweight lwIP networking stack.
Mbed OS Client Example
A legacy example application for Mbed OS that demonstrates connecting devices to the Mbed Device Connector service. It provides a reference implementation for using the Mbed Client library to manage LwM2M resources and secure communication across various network interfaces including Ethernet, WiFi, and Mesh.
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.
MicroPython for Pandora IoT Board
A specialized MicroPython port for the RT-Thread Pandora IoT Board, powered by an STM32L475 microcontroller. It leverages the RT-Thread RTOS to provide a high-level Python development environment for IoT applications, featuring extensive hardware peripheral support and integrated networking.
Mongoose OS App Skeleton
A boilerplate project for developing Mongoose OS applications on ESP32 and ESP8266 microcontrollers. It provides a pre-configured environment with essential libraries for WiFi, RPC services, and OTA updates, supporting both C and JavaScript (mJS) development.
Pelion Device Management Client Example for Mbed OS
A reference implementation of the Pelion Device Management Client for Mbed OS devices. It provides core IoT functionalities including secure developer provisioning, remote firmware updates, and multi-interface connectivity support for Ethernet, Wi-Fi, and Cellular networks.
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.
Ginlong Solis Solar Inverter Modbus Integration
A comprehensive integration project for Ginlong Solis solar inverters, offering ESPHome and Arduino-based firmware to monitor and control inverter status via Modbus RS-485. It supports hardware like the ESP8266 and the Solis S3 WiFi stick, enabling local data export to Home Assistant and InfluxDB.
GOcontroll-MQTT
A lightweight, client-oriented MQTT stack designed for embedded systems. It supports QoS 0 and 1, features a priority-based message queue, and is built on top of the LwIP netconn API. The stack includes built-in mechanisms for connection monitoring, pings, and automatic re-initialization.
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.
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.
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_ENC_Manager
A connection and credentials manager for ESP8266 boards using ENC28J60 Ethernet modules. It provides a fallback web configuration portal for runtime setup of static or DHCP IP addresses, DNS servers, and NTP settings, utilizing the LwIP stack and Arduino framework.
ESP8266_W5500_Manager
A connection and credentials manager for ESP8266 boards using the W5500 Ethernet controller. It provides a web-based configuration portal for setting static or DHCP IP addresses, DNS servers, and custom parameters at runtime, with support for LittleFS and SPIFFS.
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.
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.
Advanced Operating System 2017 (SOS)
A comprehensive implementation of a Simple Operating System (SOS) built on the seL4 microkernel for the UNSW Advanced Operating Systems course. It features a process server, network stack integration via lwIP, and a custom shell, primarily targeting the i.MX6 ARM platform.
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.
AsyncESP8266_ENC_Manager
A high-performance asynchronous connection and credentials manager for ESP8266 boards using the ENC28J60 Ethernet controller. It provides a fallback web configuration portal for runtime setup of DHCP/Static IP settings, hostnames, and custom application parameters stored in LittleFS or SPIFFS.
AsyncESP8266_W5100_Manager
An asynchronous Ethernet credentials and connection manager for ESP8266 boards using Wiznet W5100 or W5100S controllers. It provides a fallback web configuration portal for setting static or DHCP IP addresses, hostnames, and custom parameters at runtime using ESPAsyncWebServer.
AsyncESP8266_W5500_Manager
A comprehensive connection and credentials manager for ESP8266 boards equipped with W5500 Ethernet shields. It features an asynchronous web configuration portal for runtime network setup, supporting DHCP, static IP, and custom parameters stored via LittleFS or SPIFFS.
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.
AsyncHTTPRequest_RP2040W Library
An asynchronous HTTP request library specifically designed for the Raspberry Pi Pico W using the CYW43439 WiFi chip. It provides a subset of HTTP methods including GET, POST, and PUT, relying on the AsyncTCP_RP2040W library to facilitate non-blocking REST communication.
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.
AsyncHTTPSRequest_Generic
A high-performance asynchronous HTTPS request library for ESP32 and ESP8266, enabling non-blocking REST communication. It supports a wide range of network interfaces including built-in WiFi and various Ethernet controllers like W5500, W6100, and ENC28J60.
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.
ChibiOS
ChibiOS is a complete development environment for embedded applications, featuring the RT and NIL real-time kernels along with a comprehensive Hardware Abstraction Layer (HAL). It provides a scalable architecture for microcontrollers ranging from tiny 8-bit AVRs to high-performance ARM Cortex-M7 and SPC5 devices.
Chronothermostat: An AWS-Powered IoT Climate Control System
A comprehensive IoT chronothermostat system utilizing ESP32 nodes and a Raspberry Pi 3 gateway integrated with Amazon Web Services. It features multi-room temperature and humidity monitoring, remote control via MQTT, and a web-based GUI for scheduling and statistics.
D21ecm: USB CDC-ECM for SAMD21
A CDC-ECM implementation for the Microchip SAMD21 microcontroller that enables Ethernet-over-USB functionality. It integrates the lwIP stack to provide a built-in web server, DHCP server, and DNS server, allowing the device to act as a network interface for Linux, macOS, and mobile devices.
D21rndis: USB RNDIS for SAMD21
D21rndis is a USB Remote Network Driver Interface Specification (RNDIS) implementation for the Microchip SAMD21 microcontroller. It integrates the lwIP TCP/IP stack to provide a web server, DHCP server, and DNS server over a USB connection, enabling network connectivity without dedicated Ethernet hardware.
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.
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-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 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 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_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.
RT-Thread ART (Arduino RT-Thread)
ART is an Arduino-compatible development platform based on the STM32F407VGT6 microcontroller running the RT-Thread RTOS. It enables the parallel execution of multiple Arduino programs by leveraging RT-Thread's application module feature while maintaining hardware and software compatibility with the Arduino ecosystem.