ESP32 — ESP-IDF v6
Introduction to ESP-IDF v6
ESP-IDF (Espressif IoT Development Framework) is the official development framework for Espressif chips including ESP32, ESP32-S3, ESP32-C6, and ESP32-H2. It gives you full access to the chip's hardware peripherals, a real-time operating system (FreeRTOS), and a rich ecosystem of libraries.
What is ESP-IDF?
ESP-IDF is a C/C++ framework built on top of FreeRTOS. Unlike Arduino (which abstracts everything for simplicity), ESP-IDF gives you direct control over:
- All hardware peripherals (GPIO, SPI, I2C, UART, ADC, DAC, PWM)
- Wi-Fi and Bluetooth stacks
- Flash partitioning and NVS storage
- Power management (deep sleep, light sleep)
- Secure boot and flash encryption
- Over-the-Air (OTA) firmware updates
- FreeRTOS tasks, queues, semaphores, and event groups
For Analog Data workshops, ESP-IDF is the production-grade choice — the same framework used in commercial ESP32 products worldwide.
What is EIM?
Starting with ESP-IDF v5.3 and now the primary method in v6.0, Espressif introduced the ESP-IDF Installation Manager (EIM) to replace the old manual install.sh/install.bat scripts.
EIM:
- Manages multiple ESP-IDF versions side by side
- Automatically installs all required build tools (CMake, Ninja, Python packages)
- Provides both a GUI and a CLI interface
- Integrates directly with VS Code and Espressif IDE (Eclipse-based)
- Detects and installs missing dependencies on all platforms
You should use EIM for all new ESP-IDF installations.
What's New in ESP-IDF v6.0
Breaking changes from v5.x
ESP-IDF v6.0 is a major version bump with breaking changes. If you are migrating a project from v5.x, read the official migration guide before upgrading.
Key changes in v6.0:
| Change | Details |
|---|---|
| Default C library | Switched from Newlib to Picolibc (smaller footprint) |
| Legacy drivers removed | Old ADC, DAC, I2S, MCPWM, SPI, SDIO drivers are removed. Use new driver/ APIs. |
| Compiler warnings | Warnings are now treated as errors by default |
| Build system | CMake minimum version bumped to 3.24 |
| EIM as default | Manual install.sh is deprecated; EIM is the standard path |
Supported Espressif Chips
ESP-IDF v6.0 supports the following chip families:
| Chip | Architecture | Wi-Fi | Bluetooth | Notes |
|---|---|---|---|---|
| ESP32 | Xtensa LX6 (dual-core) | 802.11 b/g/n | BT Classic + BLE 4.2 | Most common in workshops |
| ESP32-S3 | Xtensa LX7 (dual-core) | 802.11 b/g/n | BLE 5.0 | AI/ML edge applications |
| ESP32-C6 | RISC-V | 802.11 b/g/n/ax (Wi-Fi 6) | BLE 5.0 + 802.15.4 | Latest gen, Thread/Zigbee |
| ESP32-H2 | RISC-V | None | BLE 5.0 + 802.15.4 | Thread/Zigbee only |
| ESP32-C3 | RISC-V (single-core) | 802.11 b/g/n | BLE 5.0 | Low-cost option |
Build System Overview
ESP-IDF uses CMake as its build system, with idf.py as the main CLI wrapper.
# Common idf.py commands you'll use every day
idf.py create-project my_project # Create a new project
idf.py set-target esp32 # Set chip target
idf.py menuconfig # Open project configuration menu
idf.py build # Compile the project
idf.py flash # Flash to board (auto-detects port)
idf.py monitor # Open serial monitor
idf.py flash monitor # Flash and immediately open monitor
idf.py fullclean # Clean all build artifacts
Next Steps
Choose your operating system to begin the installation:

