Skip to main content
Featured image for ESP-IDF

ESP-IDF

Also available in 中文.

Welcome to ESP-IDF

ESP-IDF — the Espressif IoT Development Framework — is our official, production-grade SDK for every Espressif SoC. Whether you are prototyping a sensor node, shipping a Matter-certified product, or building an edge device with AI, ESP-IDF gives you drivers, networking stacks, security features, and build tooling in one place so you can focus on your application.

Why ESP-IDF

One framework, many chips. Use the same APIs, build system, and workflow across all Espressif SoC series. Switch to a newly-released chip to get the latest features, or to a cost-effective one to meet your BOM budget — all without changing your application code.

Built for real products. ESP-IDF powers applications running on over a billion ESP chips shipped worldwide. Our release roadmap includes regular feature and bugfix releases.

Open source on GitHub. Inspect the code and tap into a global community of contributors and commercial partners.

SoCs in the latest release

The latest ESP-IDF release supports the full Espressif lineup below—pick the radio, performance, and peripherals that fit your design, and stay on one framework as your product evolves.

ESP32
Wi-Fi & Bluetooth Classic & BLE
ESP32-S2
Wi-Fi
ESP32-S3
Wi-Fi & BLE
ESP32-C2
Wi-Fi & BLE
ESP32-C3
Wi-Fi & BLE
ESP32-C5
Wi-Fi & BLE
ESP32-C6
Wi-Fi, BLE & IEEE 802.15.4
ESP32-C61
Wi-Fi & BLE
ESP32-H2
BLE & IEEE 802.15.4
ESP32-P4
High-performance

For the authoritative, up-to-date list (including new chips and targets), see the ESP-IDF Compatibility — Detailed ESP-IDF Support for Chip Revisions.

New chip support status

Track the support status of newly introduced Espressif chips in ESP-IDF and related frameworks, with links to detailed per-chip status pages and rollout updates.

Hardware Support

Hardware Support

Browse Espressif hardware resources, including DevKits, hardware design guidelines, the official KiCad library, and support status pages for new chips across SDKs and frameworks.

Install ESP-IDF

The fastest path on Windows, macOS, and Linux is the ESP-IDF Installer Manager (EIM). It installs the toolchains, Python environment, and ESP-IDF itself so you can run idf.py build without manual dependency hunting.

Download

Get GUI installers, portable binaries, and release bundles from the EIM downloads page, or install EIM with your platform package manager:

Package manager (recommended)

# Install GUI version
winget install Espressif.EIM
# Install CLI version only
winget install Espressif.EIM-CLI

Manual download: use the EIM downloads page for Windows installers or portable builds.

Package manager (recommended)

# First add the EIM tap
brew tap espressif/eim
# Install GUI version
brew install --cask eim-gui
# Or install CLI version only
brew install eim

Manual download: use the EIM downloads page for macOS builds.

Package manager (recommended)

# Add the EIM APT repository
echo "deb [trusted=yes] https://dl.espressif.com/dl/eim/apt/ stable main" | \
    sudo tee /etc/apt/sources.list.d/espressif.list
# Update package lists
sudo apt update
# Install CLI version
sudo apt install eim-cli
# Or install GUI version
sudo apt install eim

Manual download: use the EIM downloads page for .deb packages or portable Linux binaries.

Package manager (recommended)

# Download and install the RPM repository configuration
sudo dnf install https://dl.espressif.com/dl/eim/rpm/eim-repo-latest.noarch.rpm
# Install CLI version
sudo dnf install eim-cli
# Or install GUI version
sudo dnf install eim

Manual download: use the EIM downloads page for RPM packages or portable Linux binaries.

After EIM finishes, you have CMake-based projects, Xtensa and RISC-V toolchains, and the same idf.py workflow on every supported OS.

IDEs and editors

Use the tools you already know. ESP-IDF is CMake-first, so any editor with solid CMake and C/C++ support works well. For the most integrated experience, start here:

  • Visual Studio Code — Official ESP-IDF extension: setup, flash, monitor, and SDK configuration from the editor
  • Eclipse — ESP-IDF plug-in for Eclipse users
  • CLion — Open the project as a CMake profile and use CLion’s navigation and debugging

To know more about: Documentation

Everything you need to go from “blink” to production:

AI-assisted development (MCP)

Connect ESP-IDF to assistants and automation through Model Context Protocol (MCP) servers:

  • ESP-IDF Tools Local MCP Server (ESP-IDF v6.0+) — Exposes your project to compatible assistants; run with eim run "idf.py mcp-server" (e.g. VS Code Copilot, Cursor)
  • Espressif Documentation MCP Server — Lets tools query current Espressif documentation, including ESP-IDF, for answers grounded in published docs

ESP Component Registry

Skip boilerplate and pull in maintained, versioned building blocks from the official ESP Component Registry—drivers, protocols, UI helpers, cloud connectors, and more. Add a dependency without vendoring entire trees:

idf.py add-dependency "namespace/component_name"

Browse the full catalog at components.espressif.com.

Published components
Registry downloads (all time)

Popular right now

A snapshot of widely used components from the registry:

Frameworks for specialized stacks

When your product needs more than “vanilla” firmware, these Espressif frameworks sit on top of ESP-IDF and accelerate common domains:

  • ESP-BROOKESIA — UI toolkit for HMIs and products with displays
  • ESP-DSP — Optimized digital signal processing for audio, control, and analytics on-chip
  • ESP-WHO — Vision pipeline building blocks for ESP32-class devices with a camera
  • ESP-Matter — Matter connectivity aligned with Espressif silicon and certification paths
  • ESP-Zigbee-SDK — Zigbee stack for IEEE 802.15.4–capable chips such as ESP32-C6 and ESP32-H2

Follow us on the community side

Join other ESP32 and ESP-IDF developers for questions, project showcases, and informal support:

Related

C++ Components for ESP-IDF

C++ Components for ESP-IDF

·19 mins
This article presents two C++ ESP32 components: wifi_manager for seamless network connection and Deep Sleep for power-saving operation, both easily integrated using provided code examples. It also lists additional ESP-IDF components to streamline development.
Announcing ESP-IDF v6.0

Announcing ESP-IDF v6.0

·10 mins
We’re excited to announce the long-awaited release of ESP-IDF 6.0! This article highlights the key changes and improvements not only to ESP-IDF itself, but also to the broader ESP-IDF tooling ecosystem, all designed to enhance your developer experience.
Understanding the EU Cyber Resilience Act (CRA)

Understanding the EU Cyber Resilience Act (CRA)

··9 mins
The EU Cyber Resilience Act introduces mandatory cybersecurity requirements for products with digital elements placed on the EU market. This blog outlines what the CRA means for ESP32-based products, the obligations for OEM manufacturers, and how Espressif will support customers in achieving compliance.
Staying Ahead with ESP32 Security Updates

Staying Ahead with ESP32 Security Updates

·5 mins
This article explains how manufacturers can use the ESP32 ecosystem to build and maintain secure firmware over time, especially in light of new regulations like the EU Cyber Resilience Act. It highlights tools such as vulnerability dashboards, Long-Term Support branches, and secure OTA updates to ensure ongoing compliance and device security.
Secure DNS for ESP32: A Quick Guide to ESP DNS Component

Secure DNS for ESP32: A Quick Guide to ESP DNS Component

This article introduces the ESP DNS component and explains why securing DNS resolution is essential for ESP32-based IoT devices. It shows how DNS over TLS (DoT) and DNS over HTTPS (DoH) can be enabled transparently in ESP-IDF with minimal code changes, using standard DNS APIs. Practical examples and guidance help developers choose the right protocol while balancing security, performance, and resource constraints.
ESP-IDF tutorial series: GPIO get started - Part 1

ESP-IDF tutorial series: GPIO get started - Part 1

··12 mins
This article explains how to configure and control GPIO pins on Espressif SoCs, covering push-pull and open-drain output modes, drive capability, and library usage. It then provides a hands-on example of blinking an LED using gpio_set_direction and gpio_set_level on a ESP32-C61-DevKitC.
Changes in the Configuration System in ESP-IDF v6: Default Values

Changes in the Configuration System in ESP-IDF v6: Default Values

··9 mins
This article explains what are the default values in the ESP-IDF configuration and how they are managed in the configuration system in the upcoming ESP-IDF v6. The purpose and behavior of default values are described. This article also explains what is a conflict in default values and how to resolve it with the “idf.py refresh-config” command.
ESP-IDF tutorial series: Object oriented programming in C

ESP-IDF tutorial series: Object oriented programming in C

·9 mins
This article explains how ESP-IDF brings object-oriented programming principles into C by using structs, opaque pointers, and handles to enforce encapsulation and modularity. It shows how components like HTTP servers and I²C buses are managed through handles that represent distinct objects for configuration and operation, and compares this approach to Python and C++.
RED DA Compliance (Part 2): Espressif’s Platform Support, Templates, and Pathways for Conformity

RED DA Compliance (Part 2): Espressif’s Platform Support, Templates, and Pathways for Conformity

·5 mins
Espressif is streamlining RED Delegated Act (RED-DA) compliance by providing pre-certified firmware platforms, documentation templates, and partner support to help developers meet the upcoming EN 18031 standard. With flexible pathways including self-declaration and third-party assessments, developers can accelerate EU market readiness for Aug 2025 and beyond.
Simple Boot explained

Simple Boot explained

··6 mins
In this article, we explore a simplified ESP32 boot process using single-image binaries to speed up build and flash times — ideal for development workflows. This approach sacrifices features like OTA updates but enables faster iteration.
Lightweight MQTT Broker for ESP32: Mosquitto ported to ESP-IDF

Lightweight MQTT Broker for ESP32: Mosquitto ported to ESP-IDF

Mosquitto – the industry-standard MQTT broker – has been ported to ESP-IDF. Its lightweight version retains Mosquitto’s core functionality and security features to run on resource-constrained IoT devices. This MQTT broker is ideal for edge computing, testing, and standalone IoT deployments. In this article, we will do an overview and show you how to get started.