• v5.5.2 30aaf64524

    ESP-IDF Release v5.5.2
    Some checks failed
    docker / docker (push) Has been cancelled
    Create zip file with recursive source clone for release / Create release zip file (push) Has been cancelled
    Stable

    petr.gadorek released this 2025-12-24 14:34:49 +00:00 | 10650 commits to master since this release

    No known key found for this signature in database
    GPG key ID: 4B294125A596EA0A

    Documentation for IDF v5.5.2 is available at https://docs.espressif.com/projects/esp-idf/en/v5.5.2/

    ESP-IDF v5.5.2 is a bugfix release for ESP-IDF v5.5.

    🎅 Obtaining v5.5.2 🎁

    For full installation instructions, see the ESP-IDF Programming Guide.

    The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

    Using git

    To get this release, use the following commands:

    git clone -b v5.5.2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5.2
    cd esp-idf-v5.5.2/
    

    This is the recommended way of obtaining v5.5.2 of ESP-IDF.

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.5.2.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub. To reduce the size of the archive, the .git directory doesn't include the history of commits older than one year. Users who need to use git checkout to access an older release of IDF will have to use git fetch first to download the remaining part of the history.

    This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.5.2/esp-idf-v5.5.2.zip

    Major changes

    Breaking Changes

    • BLE/Controller: Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (e93f0e56)
    • BLE/Controller: Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (e93f0e56)
    • SPI Flash: Added a new argument flags to esp_flash_os_functions_t::start. The caller and implementer needs to handle this argument properly. (0f4b3846)
    • Suppress possible data corruption or system panic on ESP32-C5 when flash encryption is enabled. Now the CPU frequency is limited to 160 MHz temporarily. (e81ca4bb)
    • WI-FI: Added second channel field in the wifi_action_tx_req_t structure. (d14ce1f4)

    Major New Features

    • Added initial support for ESP32-C5 Rev1.2
    • Added initial support for ESP32-C61 Rev1.1
    • Added initial support for ESP32-P4 Rev3.0
    • Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C5 (ea36c4f6)
    • Upgraded toolchain (esp-14.2.0), QEMU (9.2.2), and GDB (16.3)

    Major Bugfix

    • Added additional checks for JPEG markers to prevent potential exploitation of this vulnerability to attack ESP chips (18531ed8)
    • Fixed PSRAM write stuck after reset on ESP32-C5/C61 (ddb9f5d9)

    Known Issues

    • OpenOCD has limited support for ESP32-P4 Rev3.0 chip. Just base debugging functionality is supported w/o flash.

    Changelog

    15.4

    MAC

    • Added compensation on the energy detection result for ESP32-H2 (332c73b2)
    • Changed the default cca threshold to -75dBm (05867446)

    Thread

    • Fixed a potential stack overflow issue in TREL browse (332c73b2)
    • Fixed an occasional multicast router initialization failure (332c73b2)
    • Fixed a deadlock issue in DNS resolver (332c73b2)
    • Fixed an issue where NVS was not opened from the configured partition (332c73b2)
    • Supported custom netif config during initialization (6334043f)
    • Updated openthread submodule (36b14d3ef) (05867446)
    • Supported multicast forwarding cache filter in Thread BR (05867446)
    • Supported DHCPv6 PD feature (05867446)
    • Added APIs to start or stop the OpenThread stack (31b8066c)
    • Updated the OpenThread examples to use the new APIs (31b8066c)
    • Updated OpenThread examples to use esp_console. The ot prefix is required when running OpenThread CLI commands. (31b8066c)
    • Updated openthread submodule (3b3dd203) (7b45a16a)
    • Resolved the RCP data transmission issue over USB Serial JTAG (166e12ce)

    Application Utilities

    CJSON

    ESP HTTP Client

    • Fixed handling of errors while reading data from server using API esp_http_client_perform(). (8a4f0c59)
    • Updated condition to close and cleanup the HTTP client (d0ffafb7)

    ESP HTTP Server

    ESP HTTPS OTA

    • Added fix to ensure the data written during OTA updates is properly aligned to 16 bytes when flash encryption is enabled (cfba6ee0)
    • Fixed partial download OTA to work on a single persistent connection rather than sending every range request on individual subsequent connections (5058b757)

    ESP HTTPS Server

    BLE

    • Fixed uninitialized return code in BLE Get Started - NimBLE examples (a62dc1d4)

    BluFi

    • Added an API to start advertising with specified name. (6b7d55ae)

    Bluedroid

    • Fixed Bluetooth LE incorrect device record count issue (87895843)
    • Fixed the issue that extend advertising might not restart if the connection fails (a63ae743)
    • Fixed crash when deinitializing or disabling host during scanning (d4a52b13)
    • Added an API to set channel map for scanning or initiating. (690e83d4)
    • Fixed the status setting in the HCI event. (7aee10fc)
    • Fixed potential out-of-bounds memory access when resolving advertising data (56bef4d3)
    • Added Bluetooth LE multiple connections examples. (ba4300c2)
    • Supported multi-connection optimization vendor HCI command. (ba4300c2)
    • Fixed the connection count limit in multi-connection. (ba4300c2)
    • Adjusted L2CAP round robin msg send strategy. (ba4300c2)

    Controller

    • Fixed BLE assert lld_con.c 1479 on ESP32-C3 and ESP32-S3. (2a039e30)
    • Supported controller log compression on ESP32-C3 and ESP32-S3. (91dd2aee)
    • Fixed the disconnection issue caused by a MIC error on ESP32-C61. (443bbf5d)
    • Fixed an occasional connection establishment failure issue when utilizing BLE Flash Only feature for ESP32-C2. (25186fb9)
    • Fixed an occasional interrupt watchdog timeout issue when establishing connection for ESP32-C2. (25186fb9)
    • Fixed an occasional connection timeout issue when utilizing BLE Flash Only feature for ESP32-C2. (25186fb9)
    • Add scheduling priority level configuration when internal scheduling conflicts on ESP32-H2,ESP32-C6 and ESP32-C5. (25186fb9)
    • Fixed occasional memory leaks in multi-connection scenarios on ESP32-H2 and ESP32-C6. (38694c33)
    • Fixed an occasional MIC failure issue in Start Encryption procedure for ESP32-C2. (38694c33)
    • Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (e93f0e56)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2. (e93f0e56)
    • Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (e93f0e56)
    • Improved security when receiving a connection request PDU with an invalid Access Address on ESP32 (326f10b8)
    • Supported the PAwR feature on ESP32-C6, ESP32-H2, ESP32-C61 and ESP32-C5. (7d73f5ed)

    Documentation

    • Added Bluetooth LE Low Power Mode FAQ in API Guides (d1f4a0c4)
    • Updated ESP-Nimble SIG qualification version to core specification 6.1. (65bd466f)
    • Added Bluetooth LE 6.0 features support status. (f7bad9f0)

    Mesh

    • Support for BLE 5.0 Extended Advertising in ESP-BLE Mesh communication (db87284a)
    • Adds log-compression support when building Bluetooth LE Mesh applications. (636daf10)

    NimBLE

    • Handle sync cancel during reattempt operations (51493f94)
    • Added a check for periodic psync before processing (df08d0db)
    • Fix compilation issues across different NimBLE examples (df08d0db)
    • Support runtime memory alloc for mempool. (df08d0db)
    • Fix typos in NimBLE examples (https://github.com/espressif/esp-idf/pull/17824) (85604da6)
    • Add Read all local / remote supported feature HCI command /event. (dfccdf1a)
    • Update HCI log functions to use uint16_t for data length (025e5f2d)
    • Fix array overflow caused by invalid connection handle indexing (bf41c804)
    • Add support for host side support for Channel Sounding. (39b96622)
    • Use nimble platform mem malloc / free APIs (38917f34)
    • Handled adv ext data setting in reattempt adv (e8ff0a56)
    • Rearrange NimBLE menuconfig options (54de9c4a)
    • Add indicate / notification code under correct flags [ Closes https://github.com/espressif/esp-idf/issues/16769 ] (965e2e47)
    • Fixed incorrect HCI status in connect event (a2c5d883)
    • Updated reattempt count handling for periodic adv (b0ec8fea)
    • Restructured table of README.md file of bleprph and blecent (aa82f522)
    • Updated ble_gatts_show_local API to show CPFDs and CAFDs. (37eaa4cc)
    • Added helper api's in nimble. (37eaa4cc)
    • Fix include service definition handle being the same for all definitions. (37eaa4cc)
    • Added VSC for Set Scan Channel Bitmap. (37eaa4cc)
    • ISO minor support for NimBLE Host (37eaa4cc)
    • Add connection failure event when connection fails (37eaa4cc)

    Power Management

    • Fixed occasional sleep enter failure due to BLE waking up too soon (25186fb9)

    Bluetooth Common

    Bluedroid

    • Fixed missing BLE connect and disconnect events (87895843)
    • Security Enhancements for Bluedroid Host Stack and Examples (5cf7ec68)
    • Added API to retrieve the local BLE Identity Resolving Key (IRK) (c5d19fdc)

    Controller

    • Fixed the issue that Bluetooth baseband might not reinitialize after stopping and starting Bluetooth when coexisting with WiFi on ESP32 (https://github.com/espressif/esp-idf/issues/15841) (3c0e2839)
    • Fixed the issue that unfixed core tasks may register or trigger software interrupts of the wrong core when calling the Bluetooth interface on ESP32 (42e7c931)

    Bootloader

    • Fixed stuck in PSRAM write after a CPU or system reset on esp32C5/ESP32C61 (ddb9f5d9)

    Build & Config

    • Fixed syntax errors in generated Graphviz dependency graphs by wrapping Node ID strings in double quotes (https://github.com/espressif/esp-idf/pull/17594) (69552e50)
    • Fixed evaluation of dependencies based on Kconfig options in idf_component.yml files (f69550bc)
    • Fixed an issue where optional Kconfig dependencies were not evaluated correctly unless idf.py reconfigure was run twice (9f1603d8)

    Classic Bluetooth

    Bluedroid

    • Fixed potential stack buffer overflow in the processing SDP response in Bluedroid (70ab2dde)
    • Fixed memory leak in HID host and HID device (2dc1a9bc)
    • Update the class of device before enabling inquiry scan to make it effective in inquiry scan response (8c9f686c)
    • Fixed potential buffer overflow in the composition of AVRCP vendor dependent command in Bluedroid (fba0edd5)
    • fix(bt/bluedroid): Fix the boundary conditions when checking EIR data (799e3475)
    • Fixed the issue that HFP AG not report audio data to application when using external codec (3c0e2839)
    • Fixed potential buffer overflow vulnerability in Bluedroid (1a3e0ebc)
    • fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (87793a2a)

    Controller

    • Fixed the hardware channel map error by ignoring invalid channel maps during AFH disable procedure on ESP32 (a146cfea)
    • Fixed improper handling of transaction collision during LMP encryption start/stop procedure on ESP32 (a146cfea)
    • Avoid asserting when new acl data was sent to controller while previous data was not finished transmitting on ESP32 (1d3324de)
    • Fixed the issue where modifying the btdm_pwr_state value would cause phy_disable to be called twice on ESP32 (1a6bc968)
    • Fixed the out of sync of data buffers between software and hardware on ESP32 (1a6bc968)
    • Fixed that peripheral does not authenticate agaist peer device when the first request was rejected on ESP32 (1a6bc968)
    • Fixed the errors that SCO frame scheduling is not stopped fter the base ACL link has been released on ESP32 (1a6bc968)
    • Ignored the reception of LMP_DETACH PDU during detach process on ESP32 (326f10b8)
    • Fixed that Tx descriptor for FHS packet in page procedure may becomes empty after handshake failure on ESP32 (326f10b8)
    • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT on repairing of the acceptor size on ESP32 (326f10b8)
    • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (326f10b8)
    • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (326f10b8)
    • Fixed possible access to NULL pointers on ESP32 (326f10b8)
    • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key on ESP32 (326f10b8)
    • Fixed missing of HCI event upon canceling truncated page procedure on ESP32 (326f10b8)

    Coexistence

    • Fixed ESP32 cache disable crash issue at coexistence scenario. (f230471e)
    • Fixed the ESP-NOW send fail when coexist enable (2a8d264e)
    • Fixed the abnormal grant or priority value issue when the external coexistence pin floating (72d99250)
    • Added 802.15.4 status for internal coexistence (d05500c2)

    Core System

    • Fixed an issue where the ESP32-P4 chip could encounter exceptions or hang when exiting the WFI (Wait For Interrupt) state. (a378b52b)

    ESP Timer

    IPC

    • Allowed IPC recursion calls in esp_ipc_call (7109c7b9)

    Log

    Panic handling

    Debugging

    Core Dump

    Documentation

    Ethernet

    • Fixed W5500 poor performance in 10 Mbps mode. (39bba2f9)

    FreeRTOS

    • Fixed mistakenly stating that stack watermarks are reported in words, IDF reports these in bytes (cb8dbac9)

    IDF Additions

    LWIP

    ESP Netif

    IPv6

    • Added support for Route Information Options in IPv6 Neighbor Discovery (ND6 RIO) (f75e0a49)

    Low Power Features

    • Optimized active power consumption of ESP32P4 rev3 chips in single-core mode. (29e9e7eb)
    • Fixed power leakage in the LP peripheral power domain during Light Sleep when the HP peripheral domain remained powered on esp32c6. (34c9b4fc)
    • Fixed a rare issue where ESP32-C6 could permanently hang on wake-up when Wi-Fi Power Save was enabled and the HP peripheral domain remained powered during light sleep. (34c9b4fc)
    • Fixed an issue where the system would stop responding to interrupts after sleep was rejected in ESP32P4 PD_TOP lightsleep. (9602933f)
    • Supported lightsleep to power down the CPU power domain separately on ESP32P4 rev3.0. (6cb18694)
    • Fixed HP LDO leakage during Lightsleep and optimized power consumption of ESP32P4 Lightsleep. (6cb18694)
    • Fixed an issue where the xtal32k was powered down during sleep when used as the slow clock source on ESP32C5 with Wi-Fi disabled. (438046d8)
    • Fixed the issue where RTC_BOD may reset or get stuck when waking up from Deepsleep on ESP32P4. (9f9eebf9)
    • Removed the support for switching power from DCDC to LDO during ESP32P4 lightsleep. (9f9eebf9)
    • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (cdeedc57)
    • Fixed the issue where the sleep wakeup failed after reset when RTC_CLK_SRC_INT_8MD256 is enabled on esp32/esp32c2/esp32c3/esp32s3. (https://github.com/espressif/esp-idf/issues/16243) (752e4e89)
    • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (https://github.com/espressif/esp-idf/issues/16872) (184f2a40)
    • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset. (184f2a40)
    • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on esp32c6/esp32h2. (3e9d20f6)

    ULP

    LP Core

    • Updated LP core I2C library to provide macros for SDA and SCL GPIO pin instead of hardcoding the same at each stage, so the library as well as test apps don't need manual update when switching from ESP32C6 to C5 or P4. (b0e0b4dd)
    • Fixed array-bound compile error for P4 when compiling with -Os (https://github.com/espressif/esp-idf/issues/17054) (d0872ec1)

    ULP-RISC-V

    PHY

    • Fixed the TX gain mismatch in Coexistence scenario on ESP32C5/ESP32C61 (b1e3248f)
    • Optimization of PHY calibration parameter in low RSSI environments (f501d0a7)

    Peripheral Drivers

    • Fixed issue that DMA are not reset when CPU reset (b94616a5)

    ADC

    Camera

    DVP

    • Add format conversion for LCD_CAM DVP (d939ad7d)
    • Switched to use proper DMA descriptor type for better memory usage on ESP32S3 (9991b1f6)

    GPIO

    I2C

    I2C Master

    I2S

    • Fixed the rw_pos and curr_ptr invalid issue while big gap between the two 'write' or 'read'. (136c44d3)
    • Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (95cdc339)
    • Added PLL240M clock source on ESP32-S3/C6 (https://github.com/espressif/esp-idf/issues/17056) (95cdc339)
    • Support to constitute full-duplex mode for STD and TDM automatically when the channel configuration are same. (0847a850)

    ISP

    • Supported AWB module white balace gain configuration API and subwindow statitics API (d1e85492)
    • Supported Black Level Correction (BLC) driver on ESP32P4 REV3 (1484524e)

    JPEG

    • Added additional checks for JPEG markers to prevent potential exploitation of this vulnerability to attack ESP chips (18531ed8)
    • Support yuv444 yuv420 jpeg encoder format on esp32p4 revision 3 (18531ed8)

    LCD

    • The underrun interrupt is supported on ESP32-P4 version 3.0 (1de3dbf7)
    • The MIPI DSI driver can draw bitmap of gray8 format on ESP32-P4 version 3.0 (4c5ee37b)

    LEDC

    • Forced the new duty update to wait until its last duty update finishes for ESP32 (9244d4b6)

    MCPWM

    PARL_IO

    • Supported to set start/stop delay for valid signal on ESP32P4 V3.0 (5ab2e6e0)

    RMT

    SPI Flash

    • New argument flags is added to esp_flash_os_functions_t::start. Caller and implementer should handle this argument properly. (0f4b3846)
    • Fixed the cache map 32M flash failed on esp32c5 (c38222d6)
    • Fixed cpu start failed when log functions are put in flash on esp32c5 (c38222d6)
    • Fixed bootloader flash size is not accurate when flash size is larger than 32MB (695f8e46)
    • Fixed flash read failed in qio mode on external flash (695f8e46)

    TWAI

    Temperature Sensor

    Touch Sensor

    UART

    USB

    USB Serial JTAG

    • Fixed an issue where CPU would be blocked for approximately 50ms during wake-up when performing USB Serial/JTAG printing if the device was not connected to a host. (925e34d0)

    Power Management

    • Fixed potential crash on ESP32-C61 during DFS when PSRAM is enabled and CPU frequency is lower than 10 MHz. (0f4b3846)
    • Fixed examples/system/light_sleep compilation fail on CONFIG_ESP_CONSOLE_NONE selected (1d5fcc6d)
    • The current leakage for ESP32 in light sleep has been decreased by 80uA (d3177152)

    Security

    • Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C5 (ea36c4f6)
    • Fixed app image encryption length for secure update without secure boot case (fa08f239)

    AES

    • Fixed AES failure with C5 PSRAM encryption by using an internal buffers to perform chunk-wise operation (07d815b4)

    ESP-TLS

    Flash Encryption

    • Fixed Flash Encryption and Secure Boot Release mode config behaviour to write-protect the SECURE_BOOT_SHA_384_EN bit by default, when Secure Boot scheme is not SHA-384 (34ff2409)
    • Fixed esp_flash_encryption_set_release_mode() API to program the efuse bit to level low only if the efuse is not already programmed. (042f29dd)

    Key Manager

    • Fixed broken encrypted write operation to use efuses key instead of the Key Manger key when Flash Encryption is disabled. (4cc95c4a)
    • Fixed incorrect internal state management when starting a Key Manager operation (3631cb1a)

    MbedTLS

    • Fixed alignment requirements when hardware AES and SHA operations access encrypted PSRAM buffers (86bd3d30)
    • Updated mbedTLS version to 3.6.5 (6b89f1ed)
    • Optimized dependent peripheral clock usage for the ESP32-H2's revision v1.2 whose ECDSA peripheral does not use the MPI peripheral. (7d8bed20)

    NVS Sec Provider

    RNG

    Secure Boot

    • Fixed enabling ROM secure download mode when DIS_DOWNLOAD_MODE is already disabled (3f3525ee)
    • Fixed the Secure Boot behaviour to write disable SECURE_BOOT_SHA384_EN / ECDSA_CURVE_MODE in the security init function instead of the bootloader to allow configuring other efuses sharing the same write-protection (042f29dd)

    Storage

    NVS

    • Improved performance of BLOB get and set operations (d666e12f)

    Partitions

    • Added support for partitions larger than 4MB on Linux target (011dd41a)

    System Hardware

    • Suppress possible data corruption or system panic on ESP32-C5 when flash encryption is enabled. Now the CPU frequency is limited to 160 MHz temporarily. (e81ca4bb)
    • Fixed an issue on ESP32-C5 where peripheral operation could not be maintained during a CPU reset because the clock source was reset. (2db91774)

    Efuse

    • Allowed custom key purposes (5d6573cf)

    PSRAM

    Toolchain

    Tools

    WI-FI

    • [WI-FI] Fixed documentation rendering of doxygen groups in esp_now.h (e113ecdb)
    • Supported ESP32-C5 cert test example. (b490bc06)
    • Fixed country code PK miss 2.4G permission (419e91d1)
    • Set NVS default value for SAE identifier to NULL (5e481987)
    • Added switch channel API and remain on channel API for ESPNOW (d14ce1f4)
    • Added second channel field in wifi_action_tx_req_t structure. (d14ce1f4)

    MAC

    • Fixed some wifi bugs related to AMPDU (e8b98540)
    • Fixed Wi-Fi can not send OMC (e8b98540)
    • Added the termination dialog token in case of ASAP FTM (cc569cbd)
    • Fixed FTM status 5 fail issue on ESP32C5 (4cf811f0)
    • Avoided disconnecting with connected AP/STA when switching to a new band mode that includes the current one (45d4989d)
    • Fixed the crash issue when sending sleep NULL (45d4989d)
    • Fixed the issue that use LR protocol on 5G band when 2.4G band setting LR protocol (45d4989d)
    • Fixed wrong setting of AID (4483e262)
    • Fixed get wrong channel number when policy is auto (4483e262)
    • Fixed TWT not closed in suspend state when wifi disconnected (4483e262)
    • Fixed fragment issue with WPA TKIP encryption. (bf7a7868)
    • Fixed esp32 MAC deinit stuck issue. (bf7a7868)
    • Fixed the crash issue when using ESPNOW off channel tx (3154f66e)
    • Added scan stop when user call smartconfig stop (3154f66e)
    • Fixed PTK key memory leak on deinit. (96564a55)
    • Fixed NAN API return status and NDP Peer inactivity detection (313903cf)
    • Fixed scan done event miss issue (207ad397)
    • Corrected the 'wifi_auth_mode_t' type sent during 'WIFI_EVENT_STA_CONNECTED' event (4f52b602)
    • Fixed beacon timeout when TWT setup (4f52b602)
    • Fixed perform active scan on DFS channel (4f52b602)

    Supplicant