- Home
- Hardware
- SDKs
- Cloud
- Solutions
- Support
- Ecosystem
- Company
- Contact
Official IoT Development Framework
ESP-IDF is Espressif’s official IoT Development Framework for the ESP32, ESP32-S, ESP32-C and ESP32-H series of SoCs. It provides a self-sufficient SDK for any generic application development on these platforms, using programming languages such as C and C++. ESP-IDF currently powers millions of devices in the field, and enables building a variety of network-connected products, ranging from simple light bulbs and toys to big appliances and industrial devices.
Open-Source
ESP-IDF is freely available on GitHub. The majority of the components in ESP-IDF are available in source form under the Apache 2.0 license. Third-party components are available under a compatible permissive license.
Production-Ready
ESP-IDF has a well-defined release process and a support policy which ensures that customers can choose a stable release and that they continue getting important fixes for their application. Each stable release undergoes a rigorous QA process that ensures production readiness.
Feature-Rich Software Components
ESP-IDF supports a large number of software components, including RTOS, peripheral drivers, networking stack, various protocol implementations, and helpers for common application use-cases. These components help developers to focus on the business logic, while the SDK provides most of the building blocks required for typical applications. Open-source and freely-available developer tools, as well as officially supported Eclipse and VSCode IDEs ensure ease-of-use for the developers.
Documentation and Examples
ESP-IDF comes with an extensive documentation for its software components not only at the usage level but also at the design level. This helps developers to fully understand what ESP-IDF offers, and select whatever suits their applications best. ESP-IDF contains more than 100 examples explaining the usage of its components as well as its hardware peripherals and features. These well-tested and well-maintained examples provide an excellent starting point for your applications.
Software Componentsand Features
ESP-IDF
Network Provisioning
OTA Upgrade Library
Manufacturing Utilities
Common Networking Protocols
Examples
File Systems
Object Storage
POSIX and C++ Support
Network Security
Crypto Library
IDE Plugins
Peripherals Drivers
Power Management
Wi-Fi & Bluetooth LE Mesh Networking
TCP/IP Stack
Bluetooth/Bluetooth LE Stack
Build System
RTOS Kernel
SoC Support
Software Bootloader
Wi-Fi MAC Library
Bluetooth Controller
Developer Tools
RTOS Kernel
The FreeRTOS kernel is modified for multicore support, with a capability-based heap allocator.
Standard Programming Interface
POSIX threads & other POSIX APIs, BSD sockets, thread-safe C/C++ standard libraries, virtual file system support.
Peripherals Drivers
SPI, I2C, UART, GPIO, I2S, ADC, DAC, Capacitive Touch, Timers, LED and Motor PWM, RMT, Pulse Counter, CAN/TWAI, SD/eMMC/SDIO host and SDIO slave, Ethernet driver.
Wi-Fi
The Wi-Fi driver is compatible with Wi-Fi Alliance certification; also offering WPA3 support, proprietary Wi-Fi mesh protocol, ESP-NOW point-to-point protocol, ESP-LR long range protocol, sniffer mode and SmartConfig provisioning protocol.
See also: ESP-WIFI-MESH >
Bluetooth and Bluetooth LE
Bluetooth controller and two host stacks: Bluedroid (dual-mode) and NimBLE (Bluetooth LE only), standards-compliant Bluetooth LE mesh support, Bluetooth SIG certification for all the components.
See also: ESP-BLE-MESH >
Networking Protocols
LwIP TCP/IP stack for IPv4 and IPv6 connectivity , DHCP client and server, TLS client and server (up to 1.2), HTTP client and server, HTTP2 client, WebSocket client, MQTT, mDNS, CoAP, ModBus, SNTP, SMTP.
Power Management
Power management framework for MCU low-power modes and Wi-Fi and Bluetooth low-power modes; dynamic frequency scaling, support for ULP (ultra-low-power) co-processor.
Storage
Partition manager, fault-tolerant and log-structured key-value storage (NVS) with encryption support, FAT, and SPIFFS file system support.
Security
Hardware-backed security features, such as flash encryption and secure boot, cryptographic accelerator support for RSA, SHA and AES, libsodium and micro-ecc cryptographic libraries.
Network Provisioning
Unified provisioning framework for device on-boarding, using Bluetooth LE, Wi-Fi and other out-of-band mechanisms.
Build Systems
CMake-based build system supporting external components and external application projects.
Developer Tools
GCC cross toolchain, OpenOCD-based JTAG debugger, static and dynamic footprint analysis, memory leak detector, core dump crash analyser, real-time tracing compatible with Segger SystemView tool, flash and eFuse programmer, device manufacturing tools.
IDE Support
Microsoft Visual Studio Code extension and Eclipse IDE plugin for ESP-IDF projects.
Visual Studio Code Extension >
Eclipse IDE plugin >
Visual Studio Code Extension >
Eclipse IDE plugin >
Resources
Get Started with ESP-IDF
Espressif Frameworks and Libraries
ESP-MDF
Mesh Development Framework for self-forming, self-healing Wi-Fi Mesh applications.
ESP-IoT-Solution
Various application examples and peripheral drivers for third-party peripherals.
Cloud Connectivity Agents
Support for AWS IoT Core, Azure IoT and Google IoT Core cloud connectivity libraries.
ESP-Jumpstart
A framework and a step-by-step tutorial on building production-ready applications.
ESP RainMaker
A complete device firmware + cloud service + mobile app solution for makers.
AI and DSP Libraries
Libraries for building AI and DSP-based applications.