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:

ChangeDetails
Default C librarySwitched from Newlib to Picolibc (smaller footprint)
Legacy drivers removedOld ADC, DAC, I2S, MCPWM, SPI, SDIO drivers are removed. Use new driver/ APIs.
Compiler warningsWarnings are now treated as errors by default
Build systemCMake minimum version bumped to 3.24
EIM as defaultManual install.sh is deprecated; EIM is the standard path

Supported Espressif Chips

ESP-IDF v6.0 supports the following chip families:

ChipArchitectureWi-FiBluetoothNotes
ESP32Xtensa LX6 (dual-core)802.11 b/g/nBT Classic + BLE 4.2Most common in workshops
ESP32-S3Xtensa LX7 (dual-core)802.11 b/g/nBLE 5.0AI/ML edge applications
ESP32-C6RISC-V802.11 b/g/n/ax (Wi-Fi 6)BLE 5.0 + 802.15.4Latest gen, Thread/Zigbee
ESP32-H2RISC-VNoneBLE 5.0 + 802.15.4Thread/Zigbee only
ESP32-C3RISC-V (single-core)802.11 b/g/nBLE 5.0Low-cost option

Build System Overview

ESP-IDF uses CMake as its build system, with idf.py as the main CLI wrapper.

shell
# 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:

Previous
Docker Compose