• v5.5.3 2c211b2367

    ESP-IDF Release v5.5.3
    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 2026-02-17 13:34:29 +00:00 | 9894 commits to master since this release

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

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

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

    Obtaining v5.5.3

    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.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5.3
    cd esp-idf-v5.5.3/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.5.3.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.3/esp-idf-v5.5.3.zip

    Major changes

    Breaking Changes

    • Peripheral Drivers/SPI The SPI master and slave no longer accepts ESP_INTR_FLAG_SHARED as interrupt flag during initialization. (2fad74c3)

    Changelog

    15.4

    MAC

    • Updated the 'ieee802154_get_recent_rssi' API to obtain real-time RSSI from baseband (cbed615e)
    • Replaced the TX pending feature with backoff-based retransmission mechanism (2544a15e)
    • Added pending tables and APIs for multipan interfaces (7cef83e4)
    • Fixed ACK pending bit handling when pending-enhance is enabled (7cef83e4)

    Thread

    • Supported OTA examples over Thread interface (61ca635d)
    • Supported RCP debugging via Spinel (405f144c)
    • Updated openthread submodule (a12ff0d0f) (021f8dab)
    • Replaced iperf command from ot-cli-extension with iperf-cmd (ee58372e)

    Application Utilities

    ESP HTTP Client

    • Added fix to prevent out-of-bounds read in Digest auth causing a potential security vulnerability (6d0a7a01)

    ESP HTTP Server

    ESP HTTPS OTA

    • Added fix to Align the OTA written length to 16 bytes during OTA resumption when flash encryption is enabled. (961abe6a)

    Protocomm

    • Added validation for Security1 client verifier data (4cd5e63c)
    • Added security checks for buffer overflow / incorrect length handling (ee7543cd)

    BLE

    BluFi

    • Supported setting BLE encryption for blufi example (1d783010)

    Bluedroid

    • Fixed GATT response timeout setting (b4a987ae)
    • Improved debugging by adding more logs and thread diagnostic tools (b4a987ae)
    • Supported bluedroid host PAwR feature (482f7d45)
    • Supported bluedroid host Advertising Coding Selection feature (482f7d45)
    • Supported bluedroid host channel sounding feature (482f7d45)
    • Supported LE Security Levels Characteristic (482f7d45)
    • Supported bluedroid host encryption with mbedTLS (2a8fd3c4)
    • Supported bluedroid host encryption with TinyCrypt (2a8fd3c4)
    • Supported bluedroid encrypted advertising data (2a8fd3c4)
    • Added bluedroid encrypted advertising data examples (2a8fd3c4)
    • Optimized bluedroid some code (5ca6847d)
    • Increased maximum notify/indication registration limit in Bluedroid (IDFGH-16690) (e78cf39c)
    • Added retry mechanism for Periodic Advertising Create Sync to improve synchronization reliability (e78cf39c)
    • Fixed multiple potential issues and strengthened security in Bluedroid, including memory safety vulnerabilities and improper packet validation (e78cf39c)
    • Added flow diagrams to Bluedroid BLE examples to improve documentation clarity and onboarding experience (e78cf39c)
    • Introduced BLE ACL latency measurement example for evaluating round-trip latency between central and peripheral device (e78cf39c)
    • Replaced hardcoded advertising-type values with descriptive macros across Bluedroid examples (IDFGH-16960) (e78cf39c)
    • Added BLE time-interval conversion macros (ESP_BLE_GAP_SCAN_ITVL_MS, ESP_BLE_GAP_ADV_ITVL_MS, etc.) to improve readability and prevent unit-conversion errors (e78cf39c)
    • Reduced bluedroid host bin size (43cc92fb)
    • Fixed bluedroid host get white list size error (43cc92fb)
    • Fixed a potential UAF issue in BLE ATT when a disconnection process is ongoing (35b1b782)

    Controller

    • Added a feature that allows the Controller to continue receiving PDUs in the next connection event instead of entering latency after receiving a data packet on ESP32-C6/C61, ESP32-H2, and ESP32-C5. (2cbffeab)
    • Fixed an occasional interrupt watchdog timeout issue when stopping scanning for ESP32-C2. (2cbffeab)
    • Fixed crash in btdm_controller_task on ESP32 (17cd4503)
    • Fixed scan HCI command timeout issue on ESP32 (17cd4503)
    • Changed the maximum number of concurrent connections to 70 on ESP32-H2 (0a10858f)
    • Fixed an occasional Interrupt Watchdog Timeout issue in an edge case of Multi-ADV scenario for ESP32-C2. (daf364ea)
    • Add a feature to automatically initiate a data length update using the appropriate parameters when a PHY update or a connection interval update occurs for ESP32-C6 and ESP32-H2. (e4d066ce)
    • Fixed an occasional disconnect issue caused by MIC errors on ESP32-C6, ESP32-H2 and ESP32-C5. (e4d066ce)
    • Fixed a disconnection issue that occurred when using the Coded PHY to transmit data with a 7.5 ms connection interval and a Tx data length of 251 bytes for ESP32-C5, ESP32-C6, ESP32-C61 and ESP32-H2.. (e4d066ce)
    • Fixed an occasional assertion issue that occurred during connections with certain mobile phones under severe air interference conditions on ESP32-C6, ESP32-C61, ESP32-H2 and ESP32-C5. (c601ffd1)

    Documentation

    • Added BLE Multi-Connection Guide in API Guides (8c7d8254)

    Mesh

    • Support Device Firmware Update. (41bcb174)
    • Supported using unified crypto implementation in Bluetooth Mesh (b92c91cc)

    NimBLE

    Build & Config

    • ldgen: Fixed non-default symbol placement for symbols created by the compiler during inter-procedural optimization (IPA) (f0538f38)
    • Fixed inconsistent MINIMAL_BUILD status in menuconfig when a custom COMPONENTS list is defined (ca22d0e8)
    • Fixed the IMPORTED_LOCATION error that occurred when using the file-based API with CMake version 4.2 and newer (https://github.com/espressif/esp-idf/pull/18103) (9c0f87f6)

    Classic Bluetooth

    Bluedroid

    • Added an API to create SPP server with a parameter that selects whether to create a corresponding SDP service record (ec191d28)
    • Fixed crash caused by performing A2DP deinitialization when initating an A2DP connection (e0c12adc)
    • Allows downgrading AVRCP version to 1.5 by disabling the Cover Art feature (8c47552a)
    • Fixed missing NULL pointer check in l2c_fcr_clone_buf in Bluedroid (1e9f6318)
    • Deprecate RSSI threshold related macros (7a628dcc)
    • Split A2DP sink example to several simpler examples to demonstrate A2DP/AVRCP functions of different aspects (7c183871)
    • Fix the status judgment in registration of A2DP source stream end point (0e194e64)
    • Backported several security-related fixes to from Google Fluoride to esp-idf Bluedroid (dae755c7)
    • Fix index boundary check and function return values during A2DP SEP registration (f56bea3d)
    • Fixed failure of buffer allocation in L2CAP throughput test by optimizing L2CAP memory footprint (9c49790b)
    • Fix bluetooth L2CAP data transmission stops after a failed write (9c49790b)
    • Check whether to overwrite number of BR/EDR controller max synchronous connections if Bluedroid HFP is enabled on ESP32 (88ee44cc)
    • Fixed the issue where ESP_A2D_AUDIO_CFG_EVT can be lost when the A2DP SOURCE acts as acceptor (c0dc0b14)
    • Added check against packet length before using the data in HCI, SDP, AVRCP, etc (c0dc0b14)

    Controller

    • Fixed not reject connection request when auto accept is off and connect request event is masked on ESP32 (17cd4503)
    • Fixed wrong key type was notified during changing connection link key on ESP32 (bd79273b)

    Core System

    • Removed the exe flag from PSRAM memory for ESP32. ESP32 is not capable of running code from PSRAM. This is a link-time check, and actual CPU RWX permissions are controlled seperately so this has no practical implications, but it could mistakenly be remarked upon during security scansor checks by customers. (2ddcb627)

    Heap

    Ethernet

    • Fixed ESP32P4 higher than expected EMAC MDC range frequency issue (c1a09f9c)

    Low Power Features

    • Fixed an issue on ESP32P4 where GPIO wakeup from Light Sleep failed for pins powered by VDD_IO_4. (75b5fc9b)
    • Fixed LP UART bad clock source selection on esp32p4. (67025a23)
    • Supports ESP32P4 rev3.1 enabling peripheral power-down lightsleep when PSRAM is enabled. (187b0800)

    PHY

    • Fix Wi-Fi Rx performance issue due to imcomplete phy initialization at coexistence scenarios. (c1e3d07c)

    Peripheral Drivers

    ADC

    Camera

    • Fixed CSI and ISP_DVP driver RX buffer data corrupted issue due to cache coherence issue caused by cache autowriteback (79cd3060)

    DMA

    I2C

    I2C Master

    I2S

    • Report the full buffer length to the UAC stack by setting bytes_read in usb_uac_device_input_cb(), so the host correctly detects received audio data instead of seeing zero bytes. (https://github.com/espressif/esp-idf/pull/17926) (c4df42ab)
    • Support to get channel configuration, MCLK & BCLK clock frequency and channel state information by i2s_channel_get_info (e5162675)

    STD

    • Fixed STD mode initialization failure on ESP32 when using I2S_NUM_AUTO. (e5b4993c)

    ISP

    • Support video frame crop in ISP module on esp32p4-rev3. (2a481f5b)
    • Added subwindow field to esp_isp_awb_config_t for AWB subwindow statistics (c4ac92b2)
    • Fixed AWB subwindow always need to be set issue (5aede3ac)
    • Allowed to configure ISP submodule configurations immediately (bypassing shadow registers) (5aede3ac)

    JPEG

    • Add feature that engine can decode to yuv420 from a yuv444/yuv422 jpeg picture on esp32p4 revision 3 (a873c3ce)

    LCD

    DSI_LCD

    • Allow set the pixel clock frequency with float value (499441c5)

    PARL_IO

    PPA

    SD_HOST

    SDMMC

    • Fixed repeated resetting of GPIO 0 when calling sdmmc_host_deinit function with an uninitialized slot (3ca37598)

    SDSPI

    SPI

    • The SPI master and slave no longer accepts ESP_INTR_FLAG_SHARED as interrupt flag during initialization. (2fad74c3)

    SPI Master

    • SPI Master can transfer PSRAM buffers with DMA directly without extra copy (003eaf08)

    TWAI

    Touch Sensor

    UART

    • Fixed UHCI RX buffer data potential corrupted issue due to cache coherence issue caused by cache autowriteback (89924167)

    USB Serial JTAG

    • Check the pointer validation of tx ringbuffer (de3dad2a)

    Power Management

    • Reduce current of ESP32-H2 in light sleep with TOP PD and flash PU (9b69adf1)
    • Support sleep with top pd for esp32c5 eco3 (8a2f308a)
    • Auto adjust LDO volt for esp32c6 using PVT function (a3ce1fc5)
    • Fixed ESP32P4 rev3 core1 initialization after single-core active power consumption optimization (bc7a18fe)
    • Removed the configurable constraint for sleep memory usage optimization option (8c96f152)
    • optimize system auto light sleep minimum sleep time configuration constraints (e0409f01)
    • Auto adjust core voltage for different chip and different environment on ESP32-P4 v3.0 and above (f4ad5766)
    • Auto adjust core voltage for different chip and different environment on C61 (20107feb)
    • Auto adjust core voltage for different chip and different environment (18ce7a64)
    • fix too many print when cpu switch from XTAL to PLL source on C6 (ab213a99)
    • Fix RTC WDT stage-0 timeout configuration issue (double setting) on ESP32-P4 (version ≤ 3.0) (d565664a)

    Security

    AES

    • Fixed a DMA + write-back cache coherency bug during AES-DMA operations that caused intermittent PSRAM output corruption by enforcing proper cache clean on DMA destination buffers. (3f10cdab)

    Secure Boot

    • Fixed the issue where bootloader fails to properly skip image verification and triggers reset when both CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP and secure boot are enabled. (0f474752)
    • Fixed the application's Secure Boot verify API to support ECDSA-P384 (f8fe1ce0)
    • Fixed ROM Secure Boot fast wakeup feature for ESP32-C5, ESP32-C6, ESP32-H2, ESP32-H21. (9d80cb0d)

    Storage

    • Fixed readdir setting errno on directory end issue in SPIFFS (f19b20be)

    NVS

    • Added 2 new NVS examples: nvs_statistics and nvs_iteration (bc31174c)
    • Fixed the order of NVS page state changes in space reclaim function to allow recover from sudden power-OFF event. (10b50887)

    System Hardware

    • Fixed incorrect breakpoint and watchpoint numbers for ESP32-C5 (ded4814c)
    • Fixed inaccurate warning that encryption not enabled on PSRAM on ESP32-C5 v1.2 and C61 v1.1 (9e1c0fc4)
    • Fix vdd_dig big glitch when boot & deepsleep wakeup on ESP32-P4 v3.0 and above (0ea4e69f)

    BOD

    • Update vbat threshold for ESP32-P4 revision 3 (e382f968)

    Cache

    MSPI

    • Fixed potential system crash due to MSPI reconfig at startup on ESP32. (c680ab62)

    PSRAM

    • Fixed MSPI wrong reading from PSRAM addr, when the same addr is written by DMA before, on ESP32C5/C61 rev1.0 (89924167)

    Toolchain

    Tools

    WI-FI

    • Optimized Flash and Internal RAM size used when REV_MIN_FULL is ESP32C5 v1.2 or ESP32C61 v1.1 (1ebc545b)
    • Fixed assert for probe resp allocation due to incorrect length calculation. (a3927641)
    • Fixed the issue that ESP32C6 RX packet failed when Station in modem state (ebf4dafe)
    • Add lltf bit mode for selection of 8-bit lltf or 12-bit lltf (b3a14b56)
    • Fix crash issue caused by accessing flash in sleep wake process (b3a14b56)

    MAC

    • Fix scan done or disconnected event miss issue (fd892af4)
    • Ensured Sta parses FTM Responder beacon correctly (7f2f009b)
    • Set NVS SAE pwe default value to SAE_PWE_BOTH for SoftAP and station (a3927641)
    • Fixed the issue that sta rx packet failed under modem state for ESP32C5 and ESP32C61. (81240a49)
    • Fixed incorrect deauth reason parsing for station (a3927641)
    • Fixed memory corruption issue by ensuring management frames are only encrypted when they are robust management frames (a3927641)
    • Fix GCMP fragment tx issue (fd892af4)
    • Support WAPI fragment tx and rx (fd892af4)
    • Fix the issue where the WAPI unicast key index was incorrect after reconnection (fd892af4)
    • Fix lmacTxDone assert issue (fd892af4)
    • Fixed the issue that ESP32C2 will not report err when setting >=40Mhz bandwidth or 5g protocols. (161927fc)
    • B-TWT setup now respect user's dwell timeout configuration. (161927fc)

    Supplicant

    • Fixed some invalid memory access in wpa_supplicant (d9a77c80)
    • Validated dpp auth instance before using it (5ecea921)
    • Fixed a crash where STA is freed before WPA3 SAE finishes (1ebc545b)
    • Ensured EAPOL state machine is correctly terminated when WPS is reinitialized during an ongoing WPS session (WPS Registrar). (24a3a652)
    • Fixed WPS stack issue by skip calling same function multiple times. (62014eb0)

    Vendor

    • Fixed the memory leak when call esp_now_set peer_rate_config() (b5cd44e9)
  • v6.0-beta2 0f681a7ab4

    ESP-IDF Pre-release v6.0-beta2
    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 2026-01-26 08:17:22 +00:00 | 7883 commits to master since this release

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

    Documentation for IDF v6.0-beta2 is available at https://docs.espressif.com/projects/esp-idf/en/v6.0-beta2/

    ESP-IDF v6.0-beta2 is a major update for ESP-IDF v5.x. Release v6.0 is mostly compatible with apps written for ESP-IDF v5.x, but there are some breaking changes (please consult the list below) and removal of deprecated functionality which will require code changes when updating projects. Release v5.5.2 is the latest stable release at the time of writing.

    We highly recommend referring to our migration guide while moving your apps from ESP-IDF v5.x to v6.0 release.

    Obtaining v6.0-beta2

    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 v6.0-beta2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v6.0-beta2
    cd esp-idf-v6.0-beta2/
    

    This is the recommended way of obtaining v6.0-beta2 of ESP-IDF.

    Download an archive with submodules included

    Attached to this release is an esp-idf-v6.0-beta2.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/v6.0-beta2/esp-idf-v6.0-beta2.zip

    Major changes

    Major New Features

    • Upgraded default C standard to gnu23 (03855b90)
    • Upgraded default C++ standard to gnu++26 (03855b90)
    • Supported loading idf.py extensions from the project's component directories and from installed Python packages (https://developer.espressif.com/blog/2025/10/idf_py_extension/) (34f658a2)
    • ESP-IDF v6.0 is upgrading to MbedTLS v4.x and the new PSA Crypto API. This work is still in progress, so upcoming beta(s) or RC releases may include further updates or breaking changes to crypto APIs.
    • Supported ESP32-P4 Version3 silicon

    Breaking Changes

    • Legacy drivers of ADC, DAC, I2S, Timer Group, PCNT, MCPWM, RMT, Temperature Sensor peripherals were removed
    • Application Utilities: The wifi_provisioning component is moved out of ESP-IDF and renamed to network_provisioning into external component https://github.com/espressif/idf-extra-components/tree/master/network_provisioning. The provisioning example and python provisioning tool are also moved to the new component directory. (105a64ab)
    • Application Utilities/CJSON: Moved cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (269acda5)
    • Application Utilities/ESP HTTP Client: Updating to mbedTLS 4.x with PSA migration increases the flash footprint. For esp_http_client, the flash impact increases about 37KB (~5.76%). (7da79a65)
    • Application Utilities/ESP HTTP Server: Updating to mbedTLS 4.x with PSA migration increases the flash footprint. For http_server/simple, the flash impact increases about 41KB (~4.97%). (7da79a65)
    • Application Utilities/ESP HTTPS OTA: Moved partial-download feature under a newly added config to reduce default flash footprint (b72e5325)
    • Application Utilities/ESP HTTPS Server: Updating to mbedTLS 4.x with PSA migration increases the flash footprint. For https_server, the flash impact increases about 27KB (~3.08%). (7da79a65)
    • Application Utilities/Provisioning: Disabled protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc4528)
    • Application Utilities/Provisioning: Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c22421)
    • BLE/BluFi: BLUFI protocol version has been updated (BTC_BLUFI_SUB_VER 0x03 → 0x04) and BLUFI security negotiation/crypto is updated. Existing BLUFI client/mobile apps may not interoperate with ESP-IDF v6.0 devices. (7da79a65)
    • Bootloader: Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfea)
    • Bootloader: Removed option for compiling bootloader with no optimization level (-O0, CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE). For debugging purposes, it is recommended to use the -Og (CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG) optimization level instead. (dea84337)
    • Build & Config: Changed default libc from Newlib to Picolibc. This may introduce breaking changes in rare cases. Refer to the v6.0 Migration Guide ("System" chapter) for details. (effa1e42)
    • Build & Config: Default warnings are now considered as errors by default. This can be disabled by setting CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y (6efd36f4)
    • Build & Config: Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace35)
    • Build & Config: Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b90)
    • Build & Config: Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b90)
    • Build & Config: Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff13)
    • Build & Config The binary generation target gen_signed_project_binary is no longer available as the build system drops the need for this target. (c8f68c72)
    • Build & Config: The binary generation gen_project_binary is now created during the __idf_build_binary() function invocation by the build system. Components, declaring dependency on this target could have build errors. For post-elf processing, the new idf_build_add_post_elf_dependenciy() must be used. (c8f68c72)
    • Build & Config: Global Cmake variables presented by the esptool_py viz., ESPTOOLPY, ESPSECUREPY, ESPEFUSEPY and ESPMONITOR are no longer available. These must be accessed via the idf_component_get_property() function. (c8f68c72)
    • Build & Config: The internal target variable, ${elf} is removed. Custom targets that need to add dependencies on the project elf must fetch the executable by querying the EXECUTABLE build property like idf_build_get_property(elf EXECUTABLE). (c8f68c72)
    • Build & Config: Components adding target dependencies on the encrypted-flash target unconditionally is not allowed any more. Such dependencies can only be done if CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT is enabled. (c8f68c72)
    • Build & Config: The build process may fail during linking if orphan sections are present. This can be resolved by removing custom section declarations or by explicitly placing orphan sections using linker fragment file. (a319aa90)
    • Classic Bluetooth/Bluedroid: Deprecate RSSI threshold related macros (7a2e19cc)
    • Classic Bluetooth/Bluedroid: esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735d)
    • Classic Bluetooth/Bluedroid: esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735d)
    • Classic Bluetooth/Bluedroid: esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735d)
    • Classic Bluetooth/Bluedroid: esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735d)
    • Core System: Removed deprecated STATUS enum from ets_sys.h, use ETS_STATUS instead. (166269fb)
    • Core System: The header esp_vfs_cdcacm.h has been moved to the new component esp_usb_cdc_rom_console, you will now have to add an explicit REQUIRES for esp_usb_cdc_rom_console if using any functions from this header. (1f0152dd)
    • Core System: Ring buffer functions are now placed in flash memory by default to save IRAM space. CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH Kconfig option has been removed. (11b80a7f)
    • Core System/ESP Event: Removed unnecessary freertos header includes, if your code relied on this implicit include from esp_event.h then please add the correct explicit includes, freertos/queue.h" and freertos/semphr.h to your files. (cb36cd3a)
    • Core System/Heap: MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see https://github.com/espressif/esp-idf/issues/14837) (75305c27)
    • Core System/Interrupts: Removed deprecated intr_types.h header, update to use esp_intr_types.h instead (365c8a3c)
    • Core System/Log: The following deprecated APIs have been removed: esp_log_buffer_hex(), esp_log_buffer_char(). (659ae57c)
    • Core System/Log: The following deprecated headers have been removed: esp_log_internal.h. (659ae57c)
    • Core System/Newlib: COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'. Default behavior is now to not evaluate expressions inside assert(X) when NDEBUG is set, which confirms to the C standard. (https://github.com/espressif/esp-idf/issues/2758) (33f92c8f)
    • Debugging/Apptrace: Removed destination parameter from all apptrace APIs. (8ee473d0)
    • Debugging/Apptrace: Changed the way apptrace is configured. Applications must implement esp_apptrace_get_init_params to provide app_trace parameters to the components (8ee473d0)
    • Debugging/Apptrace: Changed SystemView trace data destination configuration. Now it is controlled by the same configuration as the apptrace destination. It will not have its own destination configuration. (8ee473d0)
    • Debugging/Apptrace: Refactored apptrace UART related menuconfig options. CONFIG_APPTRACE_DEST_UARTx options are removed and CONFIG_APPTRACE_DEST_UART is added to keep the port number. (9f38fa1b)
    • Debugging/Apptrace: Moved gcov component out of the IDF and is now available in the ESP Component Registry as esp-gcov (5ac81c17)
    • Debugging/Apptrace: Deprecated ESP_APPTRACE_DEST_TRAX. Now it is replaced with ESP_APPTRACE_DEST_JTAG (fb3e6167)
    • Debugging/Apptrace: Changed esp_apptrace_down_buffer_config(). Now it requires esp_apptrace_dest_t dest as first parameter for API consistency. (fb3e6167)
    • Debugging/Apptrace: Removed CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX configuration option. (a0837666)
    • Debugging/Core Dump: Dropped CRC32 checksum support. Only SHA256 checksum is now used. (521f3e39)
    • Debugging/Core Dump: Dropped binary format support. Only ELF format is now supported. (521f3e39)
    • Debugging/Core Dump: Changed function esp_core_dump_partition_and_size_get(). Now it returns ESP_ERR_NOT_FOUND for blank partitions instead of ESP_ERR_INVALID_SIZE (https://github.com/espressif/esp-idf/issues/15153) (521f3e39)
    • Ethernet: Removed and migrated 3rd party Ethernet drivers outside of ESP-IDF. Add the related driver from component manager to use it. (61aaaf3a)
    • Ethernet: Removed RMII CLK Kconfig option for esp_eth component, use config structure to set this parameter. (bc421db4)
    • Ethernet: The esp_eth_phy_802_3_reset_hw API accepts only one parameter and resets the Ethernet PHY with internal timing configuration defined during initialization. (7a35466d)
    • FreeRTOS: Removed support for the user defined vPortCleanUpTCB() and the associated Kconfig option CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP. (75619d8e)
    • FreeRTOS: FreeRTOS functions are now placed in flash memory by default to save IRAM space. CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH Kconfig option has been removed. (11b80a7f)
    • FreeRTOS: The compatibility function xQueueGenericReceive() has been removed. Use xQueueReceive(), xQueuePeek(), or xQueueSemaphoreTake() as per your usecase. (3ef41363)
    • FreeRTOS: The compatibility function vTaskDelayUntil() has been removed. Use the function xTaskDelayUntil() instead. (3ef41363)
    • FreeRTOS: The compatibility function ulTaskNotifyTake() has been removed. Use the macro ulTaskNotifyTake() instead. (3ef41363)
    • FreeRTOS: The compatibility function xTaskNotifyWait() has been removed. Use the macro xTaskNotifyWait() instead. (3ef41363)
    • FreeRTOS: The following deprecated APIs have been removed: xTaskGetAffinity(), xTaskGetIdleTaskHandleForCPU(), xTaskGetCurrentTaskHandleForCPU(). (46160b0f)
    • LWIP: Deprecated header sntp.h for lwip/app port layer has been removed. Users should include esp_sntp.h. (406c7f3e)
    • LWIP: Deprecated header ping.h and esp_ping.h for lwip/app port layer has been removed. Users should include ping_sock.h. (406c7f3e)
    • LWIP/DHCP Server: The LWIP_DHCPS_ADD_DNS macro was removed. Applications must now enable DNS option in DHCP offers with esp_netif_dhcps_option() and configure DNS servers explicitly using esp_netif_set_dns_info(). (57013ba4)
    • LWIP/ESP Netif Removes option to disable error return in esp netif receive function (3d5c2efb)
    • LWIP/ESP Netif: Deprecated API esp_netif_next() was removed. Users are suggested to iterate over interfaces using esp_netif_tcpip_exec(), or use esp_netif_find_if(). (ba0b61d9)
    • MQTT: The esp-mqtt component was moved to component manager. Add espressif/mqtt to dependencies to use it. (98a9e14d)
    • Peripheral Drivers: Remove FreeRTOS header dependency in peripheral public headers. (5c5d78b6)
    • Peripheral Drivers: The periph_module_t enum type is refactored into shared_periph_module_t and only the modules that have multiple independent functions are kept. (f348a101)
    • Peripheral Drivers: Removed unnecessary dependencies for the driver component (22a0f9ae)
    • Peripheral Drivers: The driver/periph_ctrl.h and driver/rtc_cntl.h header files are removed. Please use esp_private/periph_ctrl.h and esp_private/rtc_ctrl.h instead. (e3190c63)
    • Peripheral Drivers: The io_loop_back config option is removed for all drivers, different peripheral drivers can still share the same GPIO number without having it. (1fa420ef)
    • Peripheral Drivers/ADC: Legacy ADC driver and legacy ADC calibration driver have been removed (807cbbf2)
    • Peripheral Drivers/DAC: The legacy DAC driver is removed. (d4455368)
    • Peripheral Drivers/DMA: The esp_dma_capable_malloc and esp_dma_capable_calloc functions are removed. The GDMA_ISR_IRAM_SAFE Kconfig option is removed. (3e09d4f2)
    • Peripheral Drivers/GPIO: Add "rom_" prefix to all GPIO ROM functions in components/esp_rom/esp32xx/include/esp32xx/rom/gpio.h (7f0f043e)
    • Peripheral Drivers/GPIO: Added the esp_err_t return type to gpio_uninstall_isr_service (https://github.com/espressif/esp-idf/issues/14114) (7f0f043e)
    • Peripheral Drivers/GPIO: MAX_PAD_GPIO_NUM, MAX_GPIO_NUM, and DIG_IO_HOLD_BIT_SHIFT macros have been removed. (7f0f043e)
    • Peripheral Drivers/GPIO: Removed gpio_iomux_in, gpio_iomux_out public APIs. Please use gpio_iomux_input, gpio_iomux_output in esp_private/gpio.h if neccessary. (2fb938c7)
    • Peripheral Drivers/GPTimer: The legacy timer group driver is removed. (3b504812)
    • Peripheral Drivers/I2C: Legacy I2C driver (driver/i2c.h) is end-of-life and compile warning is added. (bb802914)
    • Peripheral Drivers/I2C: I2C slave version one driver is removed (456ae964)
    • Peripheral Drivers/I2C/I2C Master: I2C master transaction now will report ESP_ERR_INVALID_RESPONSE when NACK is detected. (6af87b62)
    • Peripheral Drivers/I2S: Removed 'i2s_port_t' type and use 'int' type instead. (726a4304)
    • Peripheral Drivers/I2S: The legacy I2S driver is removed. (e71e7552)
    • Peripheral Drivers/LCD: Unified color conversion API across RGB and DSI drivers (734e600d)
    • Peripheral Drivers/LCD: Replaced bits_per_pixel with FourCC-based color format configuration (734e600d)
    • Peripheral Drivers/LCD: The NT35510 LCD device driver has been moved out of ESP-IDF and is now hosted in the Component Registry. (4589f33c)
    • Peripheral Drivers/LCD: Dropped the support of the legacy I2C master driver in the esp_lcd component (9cee386a)
    • Peripheral Drivers/LCD: The GPIO number type in the LCD driver has been changed from int to the more type-safe gpio_num_t. (6ea0fa1a)
    • Peripheral Drivers/LCD: The color_space and rgb_endian configuration options in the esp_lcd_panel_dev_config_t structure is replaced by the rgb_ele_order member, which sets the RGB element order. (6ea0fa1a)
    • Peripheral Drivers/LCD/DSI_LCD: Replaced the original use_dma2d flag with a new hook function esp_lcd_dpi_panel_enable_dma2d(). If 2D-DMA is not used, your application binary size can be saved by around 10KB. (88716d04)
    • Peripheral Drivers/LEDC: Removed LEDC_USE_RTC8M_CLK macro (e94d9cee)
    • Peripheral Drivers/LEDC: Removed ledc_timer_set API, and LEDC_APB_CLK_HZ, LEDC_REF_CLK_HZ macros (3fdb4731)
    • Peripheral Drivers/LEDC: esp_driver_gpio no longer is the public required component for esp_driver_ledc (3fdb4731)
    • Peripheral Drivers/MCPWM: Removed variadic generator APIs mcpwm_generator_set_actions_on_xxx (4e62b0e4)
    • Peripheral Drivers/MCPWM: The legacy MCPWM driver is removed. (0972e9d2)
    • Peripheral Drivers/MCPWM: Changed the default MCPWM group clock prescaler to 1 so that we can achieve a higher resolution. (https://github.com/espressif/esp-idf/issues/14815) (904d9526)
    • Peripheral Drivers/MCPWM: The io_od_mode member in the mcpwm_generator_config_t configuration structure has been removed. (1fa420ef)
    • Peripheral Drivers/PCNT: The legacy PCNT driver is removed. (81bb6a05)
    • Peripheral Drivers/RMT: The legacy RMT driver is removed. (9dc9d7de)
    • Peripheral Drivers/RMT: The io_od_mode member in the rmt_tx_channel_config_t configuration structure has been removed. (1fa420ef)
    • Peripheral Drivers/SDM: The legacy SDM driver is removed. (d6894a17)
    • Peripheral Drivers/SD_HOST/SDMMC: Changed public requirement to esp_driver_gpio to private requirement (dfe8ee58)
    • Peripheral Drivers/SD_HOST/SDMMC: Removed deprecated API esp_vfs_fat_sdmmc_unmount (a4c03ceb)
    • Peripheral Drivers/SD_HOST/SDMMC: The get_dma_info member in the sdmmc_host_t structure, as well as the sdspi_host_get_dma_info and sdmmc_host_get_dma_info functions, are removed. (3e09d4f2)
    • Peripheral Drivers/SPI: The SPI master and slave no longer accepts ESP_INTR_FLAG_SHARED as interrupt flag during initialization. (28999c81)
    • Peripheral Drivers/SPI: Removed deprecated HSPI and VSPI related IOMUX pin macros on ESP32 and ESP32S2 (a4c03ceb)
    • Peripheral Drivers/SPI Flash: New argument flags is added to esp_flash_os_functions_t::start. Caller and implementer should handle this argument properly. (f409428b)
    • Peripheral Drivers/SPI Flash: Remove SPI_FLASH_ROM_DRIVER_PATCH option as this is not needed any more (19fef9f5)
    • Peripheral Drivers/SPI Flash: Removed deprecated enum esp_flash_speed_t (a4c03ceb)
    • Peripheral Drivers/SPI Flash: Removed deprecated API spi_flash_reset_counters, spi_flash_dump_counters and spi_flash_get_counters (a4c03ceb)
    • Peripheral Drivers/SPI Flash: Removed deprecated header file esp_spi_flash.h (a4c03ceb)
    • Peripheral Drivers/TWAI Deprecate the legacy twai driver API (74710439)
    • Peripheral Drivers/Temperature Sensor: The legacy temperature sensor driver is removed. (f4a45a30)
    • Peripheral Drivers/Touch Element: The component 'touch_element' in 'esp-idf' is moved to managed component (see https://components.espressif.com/components/espressif/touch_element/versions/1.0.0/readme). (be099ca8)
    • Peripheral Drivers/Touch Element: Touch Element Library is moved to managed component (https://components.espressif.com/components/espressif/touch_element/versions/1.0.0/readme). (be099ca8)
    • Peripheral Drivers/Touch Sensor: The dependencies of legacy touch sensor driver are removed from ULP touch driver, now you need to use int instead of touch_pad_t to express the touch channel ID. (30d0eded)
    • Peripheral Drivers/Touch Sensor: Removed touch_sensor_sample_config_t::bypass_shield_output on ESP32-P4, it is not supported any more. (ac24f96a)
    • Peripheral Drivers/Touch Sensor: Adjust touch channel number on P4 from 0-13 to 1-14. (c1666c80)
    • Peripheral Drivers/UART: Removed soc/uart_channel.h. All UART GPIO lookup equivalent macros can be found in soc/uart_pins.h (4fbcab88)
    • Peripheral Drivers/UART: The esp_rom_uart.h is deprecated and replaced by esp_rom_serial_output.h (ce92b0ab)
    • Peripheral Drivers/USB: Removed deprecated pin mappings for external USB PHY (1bbf04cb)
    • Peripheral Drivers/USB/USB Host: Removed usb component from esp-idf (4dc77d19)
    • Security: Updating to Mbed TLS 4.0 moves ESP-IDF toward PSA-first crypto. Applications relying on legacy Mbed TLS cryptography APIs (many mbedtls_* crypto primitives) may no longer compile or behave the same, because Mbed TLS 4.0 moves cryptography to TF-PSA-Crypto and mostly removes legacy crypto APIs. Migrate application crypto usage to PSA Crypto APIs where possible (and avoid relying on Mbed TLS internals/private headers). (7da79a65)
    • Security/ESP-TLS: [Security/MbedTLS] After updating to the PSA APIs, there is an additional ~800 bytes of stack usage increase for HTTPS connection. Ensure that the application allocates enough stack memory. (7da79a65)
    • Security/MbedTLS: With PSA-first behavior, psa_crypto_init() must be called before any cryptographic operation, including indirect ones like parsing keys/certs or starting a TLS handshake. ESP-IDF initializes PSA during system startup, but code that runs earlier than normal startup (very early init, custom startup flows, etc.) must call psa_crypto_init() explicitly. (7da79a65)
    • Security/MbedTLS: Code using APIs that previously accepted f_rng, p_rng will fail to compile. This includes (at least) X.509 write and cookie/ticket helper APIs. Users must update to new prototypes and rely on PSA RNG (7da79a65)
    • Security/MbedTLS: TLS/DTLS interoperability with peers requiring DHE key exchange or RSA key exchange (non-forward-secret) is removed in Mbed TLS 4.0. If a server only offers removed suites, ESP-IDF TLS clients will fail to connect (and vice-versa). Ensure servers/clients support modern suites (typically (EC)DHE and TLS 1.3 where available) and update configs accordingly. (7da79a65)
    • Security/MbedTLS: Certificates/peers using small curves (<250 bits; e.g., secp192r1/secp224r1) are no longer supported in certs/TLS. (7da79a65)
    • Security/MbedTLS: pk contexts initialised by esp_ecdsa_set_pk_context() must be freed by using esp_ecdsa_free_pk_context() (7da79a65)
    • Security/MbedTLS: The use_tee_sec_stg_key flag has been removed. ECDSA private key operations using ESP-TEE secure storage can now be performed by just specifying tee_key_id. (ee4be1af)
    • Security/MbedTLS: Starting from ESP-IDF v5.5, there is a change in how the SHA sub-function APIs, esp_sha_block() and esp_sha_dma(), are used. Previously, these APIs used to set the SHA mode internally, however, in the updated version, you must explicitly set the SHA mode before invoking them. For instance, if you intend to use the SHA-256 algorithm, you must first call esp_sha_set_mode() with the argument SHA2_256. (8d0527d7)
    • Security/MbedTLS: Starting with ESP-IDF v6.0, all deprecated CA certificates have been removed from the mbedTLS certificate bundle. As a result, any firmware built with ESP-IDF v6.0 may fail to connect to endpoints that rely on these removed certificates. Thus, before upgrading deployed devices to firmware built with v6.0, thoroughly test all connectivity endpoints to ensure compatibility and avoid connection failures. (e05390f3)
    • Security/NVS Encryption: If Flash encryption is enabled on SoCs with the HMAC peripheral (SOC_HMAC_SUPPORTED) and NVS encryption is also enabled, the HMAC-based scheme will be selected by default instead of the Flash encryption scheme. (649741fa)
    • Storage/FATFS: Enable dynamically allocated buffers and long filename support by default (734c1725)
    • Storage/FATFS: Functions esp_vfs_fat_sdmmc_mount and esp_vfs_fat_sdspi_mount now return ESP_ERR_INVALID_ARG if any of the arguments are missing. (94083867)
    • Storage/VFS: Make FS registration function used by LWIP private (4b919caa)
    • Storage/VFS: Deprecate old VFS API (4b919caa)
    • Storage/VFS: Disable TERMIOS support by default (06004072)
    • Storage/VFS: Removed deprecated UART and UART-JTAG-serial API from vfs component, these APIs can still be found in the respective driver components. (fb79d920)
    • System Hardware: Changed ESP32P4 REV3 as default option (45fa560e)
    • System Hardware: For ESP32-C6, the option to use RC32K clock as the RTC slow clock source has been completely removed (RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED, RTC_CLK_SRC_INT_RC32K) (e94d9cee)
    • System Hardware: Removed deprecated headers: {IDF_TARGET}/rtc.h and soc_memory_types.h. from esp_hw_support component. These headers are replaced by esp_rtc_time.h and esp_memory_utils.h respectively. (39d22252)
    • System Hardware/Memory Layout: Removed RTC_ related memory attributes on chips which do not support RTC memory (ba7d2447)
    • System Hardware/PSRAM: Removed deprecated header file esp_spiram.h (a4c03ceb)
    • Toolchain: Updated MacOS-x86_64 toolchain minimum OS version from 10.8 to 10.12 (released on September 20, 2016) (0223bfe5)
    • Tools: Removed old copy of Catch2 (catch). Catch2 is still available as a ESP-IDF component at ESP component registry. (392226b3)
    • Tools: Removed the legacy unit-test-app. It can still be found at the Component Registry (ab2829d6)
    • Tools: The minimal supported CMake version was upgraded from 3.16 to 3.22 (c43d3111)
    • Tools: Updated the minimal supported Python version to 3.10 (138336b9)
    • Tools: Autodetection was removed from idf.py efuse* commands in order to prevent accidental use of the wrong port (adbec6ed)
    • Tools: ESP-IDF no longer automates installation of gdbgui. idf.py gdbgui command can still be used, provided that the gdbgui tool is installed manually. (5799f556)
    • WI-FI: Removed enum values WIFI_BW20 and WIFI_BW_HT40 (3f577994)
    • WI-FI: esp_wifi_init returns ERROR if wifi already initialized(https://github.com/espressif/esp-idf/issues/13643) (34b0344d)
    • WI-FI: The function esp_rrm_send_neighbor_rep_request has been removed. Use esp_rrm_send_neighbor_report_request instead. (bdd8d257)
    • WI-FI: The functions esp_wifi_set_ant_gpio, esp_wifi_get_ant_gpio, esp_wifi_set_ant, and esp_wifi_get_ant have been removed. Please use the equivalent functions from the esp_phy component: esp_phy_set_ant_gpio, esp_phy_get_ant_gpio, esp_phy_set_ant, and esp_phy_get_ant. (bdd8d257)
    • WI-FI: The authentication modes WIFI_AUTH_WPA3_EXT_PSK and WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE have been removed. Use WIFI_AUTH_WPA3_PSK instead. (bdd8d257)
    • WI-FI: In the wifi_event_neighbor_report_t structure, the report field has been removed. Please use the n_report field instead, which is a flexible array member. (bdd8d257)
    • WI-FI: The function esp_wifi_config_espnow_rate has been removed. Use esp_now_set_peer_rate_config instead. (bdd8d257)
    • WI-FI: The header file components/esp_wifi/include/esp_interface.h has been removed. The wifi_interface_t enum is now defined in components/esp_wifi/include/esp_wifi_types_generic.h. The enum values (e.g., WIFI_IF_STA, WIFI_IF_AP) are no longer defined based on ESP_IF_WIFI_STA, ESP_IF_WIFI_AP, etc. (bdd8d257)
    • WI-FI: Field svc_info from structures wifi_nan_publish_cfg_t, wifi_nan_subscribe_cfg_t, wifi_nan_followup_params_t, wifi_event_ndp_indication_t, wifi_event_ndp_confirm_t has been removed. Please use the equivalent fields ssi and ssi_len instead. (bdd8d257)
    • WI-FI: Field peer_svc_info from structure wifi_event_nan_receive_t has been removed. Please use the equivalent fields ssi and ssi_len instead. (bdd8d257)
    • WI-FI: The function argument ndp_resp_needed of esp_wifi_nan_publish_service has been moved to structure wifi_nan_publish_cfg_t. (bdd8d257)
    • WI-FI: Field use_get_report_api from structure wifi_ftm_initiator_cfg_t and field ftm_report_data from structure wifi_event_ftm_report_t has been removed. Please use esp_wifi_ftm_get_report to fetch raw FTM report data instead. (bdd8d257)
    • WI-FI: The function esp_wifi_wps_start no longer accepts a timeout_ms argument. It should now be called as esp_wifi_wps_start(void). (bdd8d257)
    • WI-FI: The DPP event callback esp_supp_dpp_event_cb_t and event enum esp_supp_dpp_event_t have been removed. Please use Wi-Fi events directly (e.g., WIFI_EVENT_DPP_URI_READY, WIFI_EVENT_DPP_CFG_RECVD, WIFI_EVENT_DPP_FAILED). The function esp_supp_dpp_init no longer accepts a callback and should be called as esp_supp_dpp_init(void). (bdd8d257)
    • WI-FI: Added second channel field in wifi_action_tx_req_t structure. (44a66c75)

    Known Issues

    • BluFi: Due to a major update to mbedTLS, the BluFi functionality is impacted and is not available in this version. The issue will be fixed in the v6.0 final release.

    Changelog

    This is the list of changes since release v5.5.

    15.4

    • Update the 'ieee802154_get_recent_rssi' API to obtain real-time RSSI from BB(baseband) (63fb646f)

    MAC

    • Replaced the TX pending feature with backoff-based retransmission mechanism. (2a4cf256)
    • Added compensation on the energy detection result for H2 (2bcd754a)
    • Changed the default cca threshold to -75dBm (1b21b68c)

    Thread

    • Replaced iperf command from ot-cli-extension with iperf-cmd (bf216a4d)
    • Updated openthread submodule (upstream rebased from a12ff0d0f) (c3b129cf)
    • Fixed an issue with key destruction in mode 2 (c3b129cf)
    • Fixed an issue where NVS was not opened from the configured partition (4ccd8f99)
    • Supported RCP debugging via Spinel logs (08920f0a)
    • Fixed an occasional multicast router initialization failure (bf9070c0)
    • Fixed a deadlock issue in DNS resolver (bf9070c0)
    • Supported OTA examples over Thread interface (22316a35)
    • Fixed a potential stack overflow issue in TREL browse (02fd823d)
    • Supported multicast forwarding cache filter in Thread BR (1b21b68c)
    • Supported DHCPv6 PD feature (1b21b68c)
    • Updated openthread submodule (36b14d3ef) (1b21b68c)
    • Supported custom netif config during initialization (d8778312)
    • Added APIs to start or stop the OpenThread stack (29d8fbe8)
    • Updated the OpenThread examples to use the new APIs (29d8fbe8)
    • Updated OpenThread examples to use esp_console. The ot prefix is required when running OpenThread CLI commands. (29d8fbe8)
    • Updated openthread submodule (3b3dd203) (2f4c63b1)
    • Fixed an issue with source address selection during network switching (aca957cf)
    • Use the ML-EID address for self-hosted services if OMR address is not preferred (e5d11d11)
    • Supported RCP over USB Serial JTAG interface (611176d8)
    • Handled MeshCoP mDNS service in state change callback (c9762032)
    • Updated openthread submodule (b945928) (c9762032)
    • Improved TREL message reception (ba2b0fd4)
    • Introduced a new API to register the console based openthread CLI command (5590a741)
    • Added a function to exit openthread main loop safely (1bb75b2f)
    • Added Thread network setup instruction for sntp example (016e8367)

    Application Utilities

    App Update

    • Fixed OTA failure when using partial download with AWS signed URL restricted to GET requests. Additionally, added a new API to get content-range from the HTTP response. (5aff8a9d)
    • Revised logic to always update non-running otadata at the time of setting ota boot partition (https://github.com/espressif/esp-idf/issues/14688) (be89fa36)

    CJSON

    ESP HTTP Client

    ESP HTTP Server

    ESP HTTPS OTA

    • Aligned the OTA written length to 16 bytes during OTA resumption when flash encryption is enabled. (ca667e18)
    • Fixed partial download OTA to work on a single persistent connection rather than sending every range request on individual subsequent connections (92d4e3af)
    • Added fix to ensure the data written during OTA updates is properly aligned to 16 bytes when flash encryption is enabled (20098cb7)
    • Moved partial-download feature under a newly added config to reduce default flash footprint (b72e5325)

    ESP HTTPS Server

    Protocomm

    • Added security checks for buffer overflow / incorrect length handling (93fd99f2)
    • Added validation for Security1 client verifier data (084d1f03)

    Provisioning

    • Disabled protocomm security version 0 and 1 by default (f0cc4528)
    • Disabled protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc4528)
    • Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c22421)

    BLE

    • Fixed uninitialized return code in BLE Get Started - NimBLE examples (07d9bb90)
    • Added support for ESP32C61 revision v1.0 (22ae9722)
    • Removed support for ESP32C61 revision v0.2 (22ae9722)
    • Add Bluetooth LE CTE connless AoA/AoD example. (23d71fec)

    BluFi

    • BLUFI protocol version has been updated (BTC_BLUFI_SUB_VER 0x03 → 0x04) and BLUFI security negotiation/crypto is updated. Existing BLUFI client/mobile apps may not interoperate with ESP-IDF v6.0 devices. (7da79a65)
    • Supported setting BLE encryption for blufi example (b890d087)
    • Added an API to start advertising with specified name. (5152593a)

    Bluedroid

    • Added bluedroid Connection Subrating examples (da2e3a3c)
    • Added bluedroid PAwR (Periodic Advertising with Responses) examples (da2e3a3c)
    • Added bluedroid Power Control examples (da2e3a3c)
    • Added bluedroid CTE examples (da2e3a3c)
    • Reduced bluedroid host bin size (83c48f35)
    • Fixed bluedroid host get white list size error (83c48f35)
    • Optimized bluedroid some code (fd333f9f)
    • Added bluedroid encrypted advertising data examples (385f6673)
    • Supported bluedroid encrypted advertising data (385f6673)
    • Supported bluedroid host encryption with mbedTLS (68bef4ff)
    • Supported bluedroid host encryption with TinyCrypt (68bef4ff)
    • Fixed the issue that extend advertising might not restart if the connection fails (14c6f738)
    • Fixed Bluetooth LE incorrect device record count issue (e38d58a7)
    • Fixed GATT response timeout setting. (e522c42b)
    • Supported bluedroid host PAwR feature (df80f1d9)
    • Supported bluedroid host Advertising Coding Selection feature (df80f1d9)
    • Supported bluedroid host channel sounding feature (df80f1d9)
    • Supported LE Security Levels Characteristic (df80f1d9)
    • Fixed a memory leak during deinitialization when the service table was created but not started (7a20f719)
    • Fixed crash when deinitializing or disabling host during scanning (d822e9bb)
    • Added an API to set channel map for scanning or initiating. (76b28d82)
    • Fixed the status setting in the HCI event. (3216dfa3)
    • Fixed potential out-of-bounds memory access when resolving advertising data (c6923d2a)
    • Added Bluetooth LE multiple connections examples. (fbea0c64)
    • Fixed the connection count limit in multi-connection. (fbea0c64)
    • Adjusted L2CAP round robin msg send strategy. (fbea0c64)
    • Supported multi-connection optimization vendor HCI command. (fbea0c64)
    • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (a3146c7b)
    • Fixed issue that caused failure in "BTM_GetSecurityFlags" (a8d3b480)
    • Fixed incorrect update of resolving_list_avail_size (a8d3b480)
    • Fixed issue where resolving list was not updated after the oldest device was removed (a8d3b480)
    • Fixed failure to disconnect when device record is cleared (a8d3b480)
    • Fixed build failure when some BLE features are disabled (09046275)
    • Support BLE vendor hci event reporting with corresponding parameters. (85d74cdd)
    • Support anonymous address type for white list. (a4fcd067)
    • Fixed extended advertising restart failure during reconnection. (a172dac0)
    • Fixed BLE SMP state machine inconsistency on disconnection (7d257229)
    • Fixed null pointer assert in l2c_link_check_send_pkts (f51c769d)
    • Fixed issue with deleting link key when classic Bluetooth is not used. (c91a8976)
    • Fixed validation logic for BLE GAP appearance configuration. (617d215f)
    • Increased maximum attribute value length to 517 to prevent data loss. (617d215f)

    Controller

    • Fix the assertion in controller_uart_hci example, caused by Rx size mismatch between that read from ring buffer and that is expected from HCI on ESP32-C3/ESP32-S3 (5a23c962)
    • Fixed an occasional Interrupt Watchdog Timeout issue in an edge case of Multi-ADV scenario for ESP32-C2. (1c23b86b)
    • Fixed an occasional disconnection issue caused by 0x3D on ESP32-C6, ESP32-H2,ESP32-C61 and ESP32-C5. (e41ecaab)
    • Fixed BLE assert lld_con.c 1479 on ESP32-C3 and ESP32-S3. (25814db7)
    • Add a feature to automatically initiate a data length update using the appropriate parameters when a PHY update or a connection interval update occurs for ESP32-C6 and ESP32-H2. (3e36bc9c)
    • Fixed an occasional disconnect issue caused by MIC errors on ESP32-C6, ESP32-H2 and ESP32-C5. (3e36bc9c)
    • Fixed a disconnection issue that occurred when using the Coded PHY to transmit data with a 7.5 ms connection interval and a Tx data length of 251 bytes for ESP32-C5, ESP32-C6, ESP32-C61 and ESP32-H2.. (3e36bc9c)
    • Changed the maximum number of concurrent connections to 70 on ESP32-H2 (57235cb1)
    • Fixed crash in btdm_controller_task on ESP32 (876b5eb7)
    • Fixed scan HCI command timeout issue on ESP32 (876b5eb7)
    • Added a feature that allows the Controller to continue receiving PDUs in the next connection event instead of entering latency after receiving a data packet on ESP32-C6/C61, ESP32-H2, and ESP32-C5. (d3055517)
    • Fixed an occasional interrupt watchdog timeout issue when stopping scanning for ESP32-C2. (d3055517)
    • Supported controller log compression on ESP32-C3 and ESP32-S3. (8b036aae)
    • Fixed the disconnection issue caused by a MIC error on ESP32-C61. (b65d10f0)
    • Fixed an occasional interrupt watchdog timeout issue when establishing connection for ESP32-C2. (94d2e8ef)
    • Fixed an occasional connection timeout issue when utilizing BLE Flash Only feature for ESP32-C2. (94d2e8ef)
    • Fixed an occasional connection establishment failure issue when utilizing BLE Flash Only feature for ESP32-C2. (94d2e8ef)
    • Add scheduling priority level configuration when internal scheduling conflicts on ESP32-H2,ESP32-C6 and ESP32-C5. (94d2e8ef)
    • Fixed occasional memory leaks in multi-connection scenarios on ESP32-H2 and ESP32-C6. (9fe51958)
    • Fixed an occasional MIC failure issue in Start Encryption procedure for ESP32-C2. (9fe51958)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2. (a3b8073d)
    • Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (a3b8073d)
    • Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (a3b8073d)
    • Supported the PAwR feature on ESP32-C6, ESP32-H2, ESP32-C61 and ESP32-C5. (e31611d6)
    • Improved security when receiving a connection request PDU with an invalid Access Address on ESP32n request PDU with an invalid Access Address on ESP32 (5540a8c8)
    • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32. (d26f2804)
    • Fixed priority setting for BLE events on ESP32. (d26f2804)
    • Fixed disconnection issue when coexisting with other BLE events on ESP32. (d26f2804)
    • Fixed crash due to bandwidth full when updating connection params on ESP32. (d26f2804)
    • Supported multiple connection optimization vendor HCI command on ESP32. (d26f2804)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (652fe76d)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (652fe76d)
    • Fixed BLE anonymous extended advertising filtering on ESP32-C3 and ESP32-S3. (652fe76d)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (652fe76d)
    • Optimized check Access Address when receive connection request PDU on ESP32 (63f7d7ea)
    • Fixed an occasional sync lost issue on ESP32-C6, ESP32-H2 and ESP32-C5. (5b11d5b2)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (5b11d5b2)
    • Fixed an occasional assertion issue during sync on ESP32-C6, ESP32-H2 and ESP32-C5. (dad2c533)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6, ESP32-H2 and ESP32-C5. (dad2c533)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (f1dd6da8)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6, ESP32-H2 and ESP32-C5. (71da5481)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6, ESP32-H2 and ESP32-C5. (71da5481)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6, ESP32-H2 and ESP32-C5. (71da5481)
    • Fixed an occasional assertion issue during scanning on ESP32-C6. (71da5481)
    • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (6897f906)
    • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/15789) (e178a09d)
    • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (b452748e)
    • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (b452748e)
    • Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (b452748e)
    • Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (b452748e)

    Documentation

    • Added BLE Multi-Connection Guide in API Guides (9011d5df)
    • Added Bluetooth LE Low Power Mode FAQ in API Guides (0978fc13)
    • Updated ESP-Nimble SIG qualification version to core specification 6.1. (51d5e8fd)
    • Added Bluetooth LE 6.0 features support status. (6588b008)

    Mesh

    • Supported using unified stack crypto components for Bluetooth Mesh (35ff0c78)
    • Support Device Firmware Update. (d5086b36)
    • Support for BLE 5.0 Extended Advertising in ESP-BLE Mesh communication (53249ade)
    • Support log-compression while building Bluetooth Mesh applications (448f89e2)

    NimBLE

    • Add support for static passkey (e3ed88fe)
    • Fix tinycrypt related compilation issue (256f00fc)
    • Fixed PAwR Subevent Data Set error when data length set too large (07dc868b)
    • Handle sync cancel during reattempt operations (125dc7d1)
    • Added a check for periodic psync before processing (8e7ada52)
    • Fix compilation issues across different NimBLE examples (8e7ada52)
    • Support runtime memory alloc for mempool. (8e7ada52)
    • Fix typos in NimBLE examples (https://github.com/espressif/esp-idf/pull/17824) (c3f6d236)
    • Add Read all local / remote supported feature HCI command /event. (95b97dec)
    • Improve debugging by adding more logs and thread diagnostic tools. (6abb3981)
    • Fix array overflow caused by invalid connection handle indexing (7ae7dcd1)
    • Added support for Channel Sounding host functionality. (03dd5e31)
    • Use nimble platform mem malloc / free APIs (7c1700b0)
    • Added support to consider mbuf of different size during copying (448b5c08)
    • Update HCI log functions to use uint16_t for data length (f8935f87)
    • Rearrange NimBLE menuconfig options (7a876031)
    • Handled adv ext data setting in reattempt adv (9ba0b373)
    • Add indicate / notification code under correct flags [ Closes https://github.com/espressif/esp-idf/issues/16769 ] (b7226154)
    • Fixed incorrect HCI status in connect event (d84d8ab1)
    • Updated reattempt count handling for periodic adv (d1b3fd17)
    • Restructured table of README.md file of bleprph and blecent (7ef32150)
    • Add connection failure event when connection fails (4dd26947)
    • Added helper api's in nimble. (a3808c92)
    • ISO minor support for NimBLE Host (74bb9f65)
    • Update ble_gatts_show_local to show CPFDs and CAFDs. (92c125d1)
    • Fix include service definition handle being the same for all definitions. (92c125d1)
    • Added VSC for Set Scan Channel Bitmap (4f84ba0a)
    • Fix for attribute count mismatch between cached gatt db and actual db (6fbc17c9)
    • Update count parameter correctly by considering offset. (6fbc17c9)
    • Fixed compilation issue due to BLE_GATTS flag (aa1c21fa)
    • Clear GATT service entries counter upon GATT deinit (d1ea4520)
    • Add timestamp information to HCI logging. (635169fd)
    • Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234 ] (2a1a76d6)
    • Add ble_ancs example to build-test-rules configuration file. (f03521b4)
    • Fix compilation issues when gatt caching is enabled in peripheral only mode (dffb03f0)
    • Add a missing instance of ble_hs_unlock() in a corner case. (90b88aff)
    • Added parameter in peer_init() to allocate memory for included services (304b561f)
    • Automatically initiate security and retry service request if service request fails due to insufficient security. (06995076)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (06995076)
    • Wrap BLE service API with extern "C" (5beacd1a)
    • Fix compilation issue when CSFCS is set to 0. (5beacd1a)
    • fix(nimble): Fixed issue of Adv report not observed in PAwR example. (beb6d79f)
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (52a6290c)
    • Handle memory leak due to missing mempool_deinit call (adcbdd7d)
    • Add Support for Apple Notification Center Service (ANCS) in NimBLE (2209a6c0)
    • Add chip dependancy flag for Flow control feature (ebd4caf3)
    • Added new Gattc + Gatts BLE coex example for nimble ( https://github.com/espressif/esp-idf/issues/12755) (925b5632)
    • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (644e38fb)
    • Provide support for anonymous address type for whitelist (01520e84)
    • Added a configurable option to select ext adv v2 command (01520e84)
    • Added fix for an async race condition with HCI outstanding packets counter (01520e84)
    • Fixed UUID type error in GATT caching API to search for included services. (c9bab9e0)
    • Added api's to fetch gatt cache info (764d722b)

    Power Management

    • Fixed occasional sleep enter failure due to BLE waking up too soon (94d2e8ef)

    Bluetooth Common

    • Added flow diagrams to Bluedroid BLE examples to improve documentation clarity and onboarding experience (b92e60d1)
    • Increased maximum notify/indication registration limit in Bluedroid (IDFGH-16690) (b92e60d1)
    • Added retry mechanism for Periodic Advertising Create Sync to improve synchronization reliability (b92e60d1)
    • Fixed multiple potential issues and strengthened security in Bluedroid, including memory safety vulnerabilities and improper packet validation (b92e60d1)
    • Introduced BLE ACL latency measurement example for evaluating round-trip latency between central and peripheral device (b92e60d1)
    • Replaced hardcoded advertising-type values with descriptive macros across Bluedroid examples (IDFGH-16960) (b92e60d1)
    • Added BLE time-interval conversion macros (ESP_BLE_GAP_SCAN_ITVL_MS, ESP_BLE_GAP_ADV_ITVL_MS, etc.) to improve readability and prevent unit-conversion errors (b92e60d1)

    Bluedroid

    • Security enhancements for Bluedroid Host Stack and Examples (4af7054b)
    • Fixed missing BLE connection and disconnection events (e38d58a7)

    Controller

    • Refactor controller_hci_uart example for ESP32-C3/S3 to use UHCI driver (c87b9e9a)
    • 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) (b9223522)
    • Fixed the issue that unfixed core tasks may register or trigger software interrupts of the wrong core when calling the Bluetooth interface on ESP32 (a23fad19)

    Bootloader

    • Fixed stuck in PSRAM write after a CPU or system reset on esp32C5/ESP32C61 (3df1ee13)
    • Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfea)
    • Removed option for compiling bootloader with no optimization level (-O0, CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE). For debugging purposes, it is recommended to use the -Og (CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG) optimization level instead. (dea84337)
    • Added support for secondary bootloader on C5 and C6. Allowing for safe OTA updates of the bootloader. (e603f4ec)

    Build & Config

    • Added the source of the component into the project_description.json (2dc0f49c)
    • Changed default libc from Newlib to Picolibc. This may introduce breaking changes in rare cases. Refer to the v6.0 Migration Guide ("System" chapter) for details. (effa1e42)
    • Configuration related log information is aggregated into a configuration report which is printed every time configuration is re-built (2da93073)
    • The config-report build system target was added for producing a configuration report in JSON format (2da93073)
    • Fixed idf.py encrypted-flash to flash all the binaries (Bootloader, Partition Table and ESP-TEE) similar to idf.py flash (5ddfb043)
    • Added a technical preview of a new CMake-based build system (36d76182)
    • Updated the multi_config example to demonstrate usage of configuration presets (0c8566f2)
    • Added support for changing the destination of the generated sdkconfig file via CMake configuration presets (https://developer.espressif.com/blog/2025/12/cmake_presets/) (0c8566f2)
    • Fixed syntax errors in generated Graphviz dependency graphs by wrapping Node ID strings in double quotes (https://github.com/espressif/esp-idf/pull/17594) (d816c3fb)
    • Deprecated options are now correctly evaluated in linker fragment files (78329850)
    • Added zc* extensions build options for ESP32P4 (rev >= 3.0) (e0b69349)
    • Fixed build error for esp_ds peripheral with clang O2 optimisation (https://github.com/espressif/esp-idf/pull/17582) (5cf6b6d3)
    • Default warnings are now considered as errors by default. This can be disabled by setting CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y (6efd36f4)
    • Added zc* extensions build options for ESP32C5, ESP32C61 and ESP32H4 (22cae61e)
    • Added COMPILER_CXX_GLIBCXX_CONSTEXPR choice option to reduce C++ applications binary size (https://github.com/espressif/crosstool-NG/issues/67) (f3dba4f7)
    • Produced Cmake warnings if a component includes or builds from another component (746acf46)
    • Changed name of component newlib to esp_libc (0d101580)
    • Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace35)
    • Added -mtune=esp-base option for RISC-V targets to improve size and performance for memcpy inlining (620d1cb5)
    • Created build system hooks for post-ELF file processing (https://github.com/espressif/esp-idf/issues/17251) (5eb8e746)
    • Fixed evaluation of dependencies based on Kconfig options in idf_component.yml files (b111672f)
    • Fixed an issue where optional Kconfig dependencies were not evaluated correctly unless idf.py reconfigure was run twice (de098b9a)
    • Reduced binary size for size-optimized xtensa builds by adding -mno-target-align compile option (https://github.com/espressif/esp-idf/pull/15677) (c433a763)
    • Enabled LIBC_OPTIMIZED_MISALIGNED_ACCESS by default (177dee61)
    • Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b90)
    • Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b90)
    • Changed add_prebuilt_library function to create GLOBAL targets (a939f410)
    • Fixed the issue that linker fragments couldn't specify placements of symbols from prebuilt libraries (a939f410)
    • Switched to using __libc_init_array() instead of non-standard init_array() (44aeff13)
    • Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff13)
    • Added .preinit_array section to ELF to support C++ and sanitizer features (44aeff13)
    • The binary generation target gen_signed_project_binary is no longer available as the build system drops the need for this target. (c8f68c72)
    • The binary generation gen_project_binary is now created during the __idf_build_binary() function invocation by the build system. Components, declaring dependency on this target could have build errors. For post-elf processing, the new idf_build_add_post_elf_dependenciy() must be used. (c8f68c72)
    • Global Cmake variables presented by the esptool_py viz., ESPTOOLPY, ESPSECUREPY, ESPEFUSEPY and ESPMONITOR are no longer available. These must be accessed via the idf_component_get_property() function. (c8f68c72)
    • Updated esptool_py component to be an idempotent component in the build (c8f68c72)
    • The internal target variable, ${elf} is removed. Custom targets that need to add dependencies on the project elf must fetch the executable by querying the EXECUTABLE build property like idf_build_get_property(elf EXECUTABLE). (c8f68c72)
    • Components adding target dependencies on the encrypted-flash target unconditionally is not allowed any more. Such dependencies can only be done if CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT is enabled. (c8f68c72)
    • Changed default linker orphan section handling from warning to error (a319aa90)
    • The build process may fail during linking if orphan sections are present. This can be resolved by removing custom section declarations or by explicitly placing orphan sections using linker fragment file. (a319aa90)
    • Added support for conditional dependencies in idf_component.yml which depend on Kconfig option values (efcb8a5a)
    • Misspelled Kconfig[.projbuild] files are now detected by the build system (https://github.com/espressif/esp-idf-kconfig/issues/14) (47d20da4)

    Classic Bluetooth

    Bluedroid

    • Deprecate RSSI threshold related macros (7a2e19cc)
    • Fixed failure of buffer allocation in L2CAP throughput test by optimizing L2CAP memory footprint (d267cc71)
    • Fix bluetooth L2CAP data transmission stops after a failed write (d267cc71)
    • Fix index boundary check and function return values during A2DP SEP registration (e31ef6f8)
    • Add missing setting of A2DP sink delay for AVRCP cover art and absolute volume examples (8ff88e24)
    • Backported several security-related fixes to from Google Fluoride to esp-idf Bluedroid (7950fdde)
    • Split A2DP sink example to several simpler examples to demonstrate A2DP/AVRCP functions of different aspects (2829b78b)
    • Fixed missing NULL pointer check in l2c_fcr_clone_buf in Bluedroid (27f9cd6e)
    • Allows downgrading AVRCP version to 1.5 by disabling the Cover Art feature (bc646511)
    • Fixed crash caused by performing A2DP deinitialization when initating an A2DP connection (b4a0b89b)
    • Fix the status judgment in registration of A2DP source stream end point (0287fe90)
    • Added an API to create SPP server with a parameter that selects whether to create a corresponding SDP service record (99983a56)
    • Fixed potential stack buffer overflow in the processing SDP response in Bluedroid (70b12237)
    • Fixed memory leak in HID host and HID device (d3f6357c)
    • Update the class of device before enabling inquiry scan to make it effective in inquiry scan response (bd7cbe71)
    • Fixed potential buffer overflow in the composition of AVRCP vendor dependent command in Bluedroid (f95a5f52)
    • Fixed the issue that HFP AG not report audio data to application when using external codec (b9223522)
    • fix(bt/bluedroid): Fix the boundary conditions when checking EIR data (3e0545f2)
    • Removed the code relying on compiler-specific extension for FAM in union (bdda8300)
    • Fixed potential buffer overflow vulnerability in Bluedroid (bf695d08)
    • esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735d)
    • esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735d)
    • esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735d)
    • esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735d)
    • fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (892ec6a1)
    • Fixed a description error in the classic Bluetooth GAP header file (19796461)
    • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (706b7c86)
    • Fixed AVRCP build issue when Cover Art feature is disabled (https://github.com/espressif/esp-idf/issues/16155) (4e8ad766)
    • Fixed HFP AG data callback gets mistakenly cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (cca744cd)
    • Added AVRCP callback event for notification of profile ON/OFF state (61771152)
    • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (fb6693c7)

    Controller

    • Fixed not reject connection request when auto accept is off and connect request event is masked on ESP32 (e6959c69)
    • Fixed the hardware channel map error by ignoring invalid channel maps during AFH disable procedure on ESP32 (b4b06fe8)
    • Fixed improper handling of transaction collision during LMP encryption start/stop procedure on ESP32 (b4b06fe8)
    • Removed the assertion when new acl data packet is sent to controller while previous data transmission is not finished on ESP32 (1904fd4d)
    • Fixed that peripheral does not authenticate agaist peer device when the first request was rejected on ESP32 (549a7272)
    • Fixed the errors that SCO frame scheduling is not stopped fter the base ACL link has been released on ESP32 (549a7272)
    • Fixed the out of sync of data buffers between software and hardware on ESP32 (549a7272)
    • Fixed the issue where modifying the btdm_pwr_state value would cause phy_disable to be called twice on ESP32 (549a7272)
    • Fixed the issue that sniff anchor point are mismatched between Central and Peripheral on ESP32 which prevented them from receiving peer packets. (c4a25116)
    • Fixed missing of HCI event upon canceling truncated page procedure on ESP32 (f82e101d)
    • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key on ESP32 (f82e101d)
    • Ignored the reception of LMP_DETACH PDU during detach process on ESP32 (f82e101d)
    • Fixed possible access to NULL pointers on ESP32 (f82e101d)
    • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT during re-pairing on Secure Simple Pairing acceptor on ESP32 (19796461)
    • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (19796461)
    • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (19796461)
    • Fixed that Tx descriptor for FHS packet in page procedure may becomes empty after handshake failure on ESP32 (19796461)
    • Fixed the incorrect unit of clock in CPB Rx event on ESP32 (8bca0ba4)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (c4bfb8ad)

    Coexistence

    • Fixed ESP32 cache disable crash issue at coexistence scenario. (dcd23a43)
    • Fixed the ESP-NOW send fail when coexist enable (34b0344d)
    • Fixed the abnormal grant or priority value issue when the external coexistence pin floating (d58da3b8)
    • Added 802.15.4 status for internal coexistence (37322d4a)
    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (473f3169)

    Core System

    Console

    ESP Event

    • Removed unnecessary freertos header includes, if your code relied on this implicit include from esp_event.h then please add the correct explicit includes, freertos/queue.h" and freertos/semphr.h to your files. (cb36cd3a)

    ESP Timer

    Heap

    IPC

    • Allowed IPC recursion calls in esp_ipc_call (fdc32067)

    Interrupts

    • Removed deprecated intr_types.h header, update to use esp_intr_types.h instead (365c8a3c)

    Log

    • Optimized esp-idf components for binary logging usage (reducing image size) (b7da740f)
    • Fixed wrong year timestamp with LOG_TIMESTAMP_SOURCE_SYSTEM_FULL (https://github.com/espressif/esp-idf/issues/17451) (097f8a9f)
    • Removed deprecated functions and header file (659ae57c)
    • The following deprecated APIs have been removed: esp_log_buffer_hex(), esp_log_buffer_char(). (659ae57c)
    • The following deprecated headers have been removed: esp_log_internal.h. (659ae57c)
    • Fixed bin log config. It is available only for log version 2. (eb81a853)

    Newlib

    Panic handling

    Partition Table

    • Fixed partition table names must be only ASCII characters (9f6136d6)

    Pthread

    Watchdogs

    • Fixed Task watchdog not checking the return value from the interrupt allocator (f496b439)

    Debugging

    Apptrace

    • Removed destination parameter from all apptrace APIs. (8ee473d0)
    • Changed the way apptrace is configured. Applications must implement esp_apptrace_get_init_params to provide app_trace parameters to the components (8ee473d0)
    • Changed SystemView trace data destination configuration. Now it is controlled by the same configuration as the apptrace destination. It will not have its own destination configuration. (8ee473d0)
    • Refactored apptrace UART related menuconfig options. CONFIG_APPTRACE_DEST_UARTx options are removed and CONFIG_APPTRACE_DEST_UART is added to keep the port number. (9f38fa1b)
    • Moved gcov component out of the IDF and is now available in the ESP Component Registry as esp-gcov (5ac81c17)
    • Deprecated ESP_APPTRACE_DEST_TRAX. Now it is replaced with ESP_APPTRACE_DEST_JTAG (fb3e6167)
    • Changed esp_apptrace_down_buffer_config(). Now it requires esp_apptrace_dest_t dest as first parameter for API consistency. (fb3e6167)
    • Removed CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX configuration option. (a0837666)
    • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later. (52e88763)
    • Added CRC16 checksum of trace blocks to enable host-side data integrity verification. Strored in Xtensa perfmon register. (89adafa6)
    • Fixed deadlock on sysview start (b5303b5d)

    Core Dump

    GDB Stub

    • Added support for RISCV FPU and PIE registers (c7db2345)
    • Fixed segfault if registers changed not for running task (c7db2345)

    Documentation

    Ethernet

    • Fixed ESP32P4 higher than expected EMAC MDC range frequency issue (ff9d18af)
    • Removed and migrated 3rd party Ethernet drivers outside of ESP-IDF. Add the related driver from component manager to use it. (61aaaf3a)
    • Removed RMII CLK Kconfig option for esp_eth component, use config structure to set this parameter. (bc421db4)
    • The esp_eth_phy_802_3_reset_hw API accepts only one parameter and resets the Ethernet PHY with internal timing configuration defined during initialization. (7a35466d)
    • Added light sleep Ethernet retention for ESP32P4 (3fb1f9ad)
    • Added ioctl option to enable time stamping for all frame types (https://github.com/espressif/esp-idf/pull/16016) (48b37dd5)

    Examples

    • The Common Connect example component uses Ethernet Init component now to configure and initialize Ethernet interface. (ec0ef595)
    • Removed references to components/ethernet_init to use managed ethernet_init component. (64df2867)

    FreeRTOS

    • The FreeRTOS port layer function xPortGetTickRateHz() has been deprecated and will be removed in the future. (25ffd0f1)
    • Removed support for the user defined vPortCleanUpTCB() and the associated Kconfig option CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP. (75619d8e)
    • Made task snapshot API public via freertos_debug.h. (df1e1c2b)
    • Fixed mistakenly stating that stack watermarks are reported in words, IDF reports these in bytes (2ca22098)
    • Fixed rv_xesppie registers save/restore on context switch (c7db2345)
    • FreeRTOS functions are now placed in flash memory by default to save IRAM space. CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH Kconfig option has been removed. (11b80a7f)
    • Added a Kconfig option CONFIG_FREERTOS_IN_IRAM to allow placement of FreeRTOS functions in IRAM. FreeRTOS functions are now placed in flash memory by default. (11b80a7f)
    • The compatibility function xQueueGenericReceive() has been removed. Use xQueueReceive(), xQueuePeek(), or xQueueSemaphoreTake() as per your usecase. (3ef41363)
    • The compatibility function vTaskDelayUntil() has been removed. Use the function xTaskDelayUntil() instead. (3ef41363)
    • The compatibility function ulTaskNotifyTake() has been removed. Use the macro ulTaskNotifyTake() instead. (3ef41363)
    • The compatibility function xTaskNotifyWait() has been removed. Use the macro xTaskNotifyWait() instead. (3ef41363)
    • The function pxTaskGetStackStart() is deprecated and a type safe version xTaskGetStackStart() has been added to idf_additions.h. (46160b0f)
    • The following deprecated APIs have been removed: xTaskGetAffinity(), xTaskGetIdleTaskHandleForCPU(), xTaskGetCurrentTaskHandleForCPU(). (46160b0f)
    • Changed vApplicationStackOverflowHook to be placed in flash when CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is enabled (6aeba187)

    IDF Additions

    LWIP

    DHCP

    • Fixed incorrect DHCP length calculation causes potential memory corruption for some longer options (ESP_NETIF_HOSTNAME_MAX_SIZE) (d9457b80)

    DHCP Server

    • The LWIP_DHCPS_ADD_DNS macro was removed. Applications must now enable DNS option in DHCP offers with esp_netif_dhcps_option() and configure DNS servers explicitly using esp_netif_set_dns_info(). (57013ba4)

    ESP Netif

    IPv6

    Low Power Features

    • Fixed power leakage in the LP peripheral power domain during Light Sleep when the HP peripheral domain remained powered on esp32c6. (aea8fa8c)
    • 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. (aea8fa8c)
    • Optimized active power consumption of ESP32P4 rev3 chips in single-core mode. (3584d227)
    • Fixed HP LDO leakage during Lightsleep and optimized power consumption of ESP32P4 Lightsleep. (86d09a29)
    • Fixed an issue where the system would stop responding to interrupts after sleep was rejected in ESP32P4 PD_TOP lightsleep. (86d09a29)
    • Fixed an issue where the xtal32k was powered down during sleep when used as the slow clock source on ESP32C5 with Wi-Fi disabled. (e1b60067)
    • Supported lightsleep to power down the CPU power domain separately on ESP32P4 rev2.0. (dfeae969)
    • Fixed the issue where RTC_BOD may reset or get stuck when waking up from Deepsleep on ESP32P4. (7bd0eeff)
    • Removed the support for switching power from DCDC to LDO during ESP32P4 lightsleep. (7bd0eeff)
    • Fixed the approach for writing to reject enable registers to achieve the reject light or deep sleep feartures. (https://github.com/espressif/esp-idf/issues/16738](https://github.com/espressif/esp-idf/issues/16738) (28c4172a)
    • Revised the description of ESP32 reject sources: only GPIO and SDIO are valid as reject sources. (28c4172a)
    • Added USB-Serial-JTAG console usage warnings to sleep examples (https://github.com/espressif/esp-idf/issues/16129) (d85ad74c)
    • 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) (feb1dc97)
    • Fixed the issue where entering mac_pd lightsleep may get stuck when Wi-Fi/BT coexist on ESP32C5. (e71760b7)
    • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset. (e6dfb603)
    • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (https://github.com/espressif/esp-idf/issues/16872) (e6dfb603)
    • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on esp32c6/esp32h2. (f1df2f3b)
    • Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (https://github.com/espressif/esp-idf/issues/16243) (dd980b73)
    • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (60d9ca99)
    • Support user configurable low power analog mode by esp_sleep_enable_lowpower_analog_mode if analog-related peripherals(ADC,TSENS,TOUCH) is not used in monitor mode (https://github.com/espressif/esp-idf/issues/7882) (bac996a7)
    • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on esp32p4. (a2257490)
    • Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (a42929a7)
    • Fixed the issue that esp32p4 may get stuck when entering deepsleep. (8931a8a7)
    • Fixed deepsleep leakage after USB HS phy is initialized on esp32p4 (d5441e65)

    ULP

    LP Core

    • Fixed an issue where the LP Mailbox did not function correctly when LP core interrupts are enabled (https://github.com/espressif/esp-idf/issues/18095) (b685c0e7)
    • Support LP UART to wake up the LP Core when the HP Core is in sleep mode for esp32c5, esp32c6 and esp32p4 (5d40b0d2)
    • Added an API definition and implementation for the hardware mailbox (056c4042)
    • Added trap (exception) wake-up source for HP-CPU. If LP-Core trigger an exception it will now also wake-up the HP-Core from sleep with a trap wakeup cause. (0ac9dfbb)
    • 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. (b59b3665)
    • Fixed array-bound compile error for P4 when compiling with -Os (https://github.com/espressif/esp-idf/issues/17054) (5d98c901)
    • Updated the LP UART and LP I2C drivers to not enable interrupts but rather use raw interrupt registers to prevent the LP core from jumping to the default interrupt handler and aborting the LP core code. (a7e61220)

    ULP-RISC-V

    MQTT

    • The esp-mqtt component was moved to component manager. Add espressif/mqtt to dependencies to use it. (98a9e14d)

    Networking

    • Fixed Ethernet initialization order in VLAN example. (14ae3917)

    Examples

    PHY

    • Fix Wi-Fi Rx performance issue due to imcomplete phy initialization at coexistence scenarios. (21d27884)
    • Fixed the TX gain mismatch in Coexistence scenario on ESP32C5/ESP32C61 (7e874234)
    • Added protection against double phy-disable operations by one modem source, which can result in hardware clock being switched off in coexistence scenario (4b559f62)
    • Updated librtc.a to fix coexist problems on ESP32 (bba52928)
    • Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (33493d43)

    Peripheral Drivers

    • Remove FreeRTOS header dependency in peripheral public headers. (5c5d78b6)
    • The default console UART TX IO can now also be re-used as a peripheral signal input through GPIO matrix (https://github.com/espressif/esp-idf/issues/16764, https://github.com/espressif/esp-idf/issues/17459) (0e6525a9)
    • Fixed potential bugs where functions called within MIN/MAX macros could be executed multiple times, leading to unexpected behavior or performance issues. (f050c1de)
    • Fixed issue that DMA are not reset when CPU reset (746485f6)
    • The periph_module_t enum type is refactored into shared_periph_module_t and only the modules that have multiple independent functions are kept. (f348a101)
    • Removed unnecessary dependencies for the driver component (22a0f9ae)
    • The driver/periph_ctrl.h and driver/rtc_cntl.h header files are removed. Please use esp_private/periph_ctrl.h and esp_private/rtc_ctrl.h instead. (e3190c63)
    • The default console UART TX IO can now also be re-used as a signal input without interference from the drive of the console UART TX signal (https://github.com/espressif/esp-idf/issues/16764) (248c87ac)
    • The io_loop_back config option is removed for all drivers, different peripheral drivers can still share the same GPIO number without having it. (1fa420ef)
    • Call esp_pm APIs when only when CONFIG_PM_ENABLE is enabled, to save binary size (https://github.com/espressif/esp-idf/issues/15923) (8afb0fb9)
    • Deprecated periph_interrput_t and replaced it with periph_interrupt_t to fix the typo. (9c8ead5e)

    ADC

    oneshot

    • Fixed inaccurate high readings from ADC oneshot mode on ESP32-C6 (94bcd659)

    Camera

    • Fixed CSI and ISP_DVP driver RX buffer data corrupted issue due to cache coherence issue caused by cache autowriteback (e80a7497)
    • Fixed DVP loss half frames error (37ba98d2)
    • Added a help function to allocate camera buffer (4e7bfc32)
    • Add power manage lock for esp_camera (a6c26c3e)

    DVP

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

    DAC

    • The legacy DAC driver is removed. (d4455368)

    DMA

    • Disallow burst sizes larger than 32 bytes when using DMA to access PSRAM on ESP32-C5 and ESP32-C61. (6e0dd058)
    • The esp_dma_capable_malloc and esp_dma_capable_calloc functions are removed. The GDMA_ISR_IRAM_SAFE Kconfig option is removed. (3e09d4f2)

    GDMA

    • Fixed race condition in gdma resource allocation and free (611f5cc3)

    GPIO

    GPTimer

    • The legacy timer group driver is removed. (3b504812)

    H264

    • Added esp_h264 encoder and decoder example (3785a242)

    I2C

    I2C Master

    I2S

    STD

    • Fixed STD mode initialization failure on ESP32 when using I2S_NUM_AUTO. (88c27e55)

    ISP

    • Fixed the issue that AWB subwindow always need to be set (78206e9f)
    • Allowed to configure ISP submodule configurations immediately (bypassing shadow registers) (78206e9f)
    • ISP color mode enum values are now compatible with ESP FourCC (0f7ae732)
    • Added subwindow field to esp_isp_awb_config_t for AWB subwindow statistics (60e129b8)
    • Refactored ISP multi-pipelines example into modular structure with separate modules. (cfb8f3bc)
    • Support video frame crop in ISP module on esp32p4-rev3. (ef1b1d10)
    • Supported AWB module white balace gain configuration API and subwindow statitics API (53f96d85)
    • Supported Black Level Correction (BLC) driver on ESP32P4 REV3 (e13699a6)
    • Increased the valid hue depth from 256 levels to 360 levels in esp32p4 rev3 (2d9b6c11)

    JPEG

    • Add feature that engine can decode to yuv420 from a yuv444/yuv422 jpeg picture since esp32p4 revision 3 (d5ddb10d)
    • Changing color type definition from color structure to fourcc (06e5eeb4)
    • Added additional checks for JPEG markers to prevent potential exploitation of this vulnerability to attack ESP chips (5a14ccfe)
    • Support yuv444 yuv420 jpeg encoder format on esp32p4 revision 3 (e49093a2)
    • Fixed random black line appearance while jpeg decode (446e2fce)
    • Fixed wrong parameter in jpeg encoder memory sync which leads to cache error. (9b77416b)

    LCD

    • Supported partial source draw bitmap by new api dpi_panel_draw_bitmap_2d() (88716d04)
    • Fixed the issue that SPI MISO can't be used with LCD D/C together (https://github.com/espressif/esp-idf/pull/17858) (771edaec)
    • Unified color conversion API across RGB and DSI drivers (734e600d)
    • Replaced bits_per_pixel with FourCC-based color format configuration (734e600d)
    • The underrun interrupt is supported on ESP32-P4 version 3.0 (a4806894)
    • The NT35510 LCD device driver has been moved out of ESP-IDF and is now hosted in the Component Registry. (4589f33c)
    • The MIPI DSI driver can draw bitmap of gray8 format on ESP32-P4 version 3.0 (f4c40f7e)
    • Dropped the support of the legacy I2C master driver in the esp_lcd component (9cee386a)
    • The GPIO number type in the LCD driver has been changed from int to the more type-safe gpio_num_t. (6ea0fa1a)
    • The color_space and rgb_endian configuration options in the esp_lcd_panel_dev_config_t structure is replaced by the rgb_ele_order member, which sets the RGB element order. (6ea0fa1a)
    • Reserved the GPIO used by RGB LCD in driver initialization and disconnect them from the LCD signals when deinitialize the driver (f071b546)
    • Corrected the hyperlink in README.md (https://github.com/espressif/esp-idf/issues/16389) (c7561dc4)

    DSI_LCD

    • Allow set the pixel clock frequency with float value (7577b191)
    • Replaced the original use_dma2d flag with a new hook function esp_lcd_dpi_panel_enable_dma2d(). If 2D-DMA is not used, your application binary size can be saved by around 10KB. (88716d04)
    • Supported to use a custom hook (e.g. PPA) to process the draw buffer (88716d04)

    RGB_LCD

    • Driver can use the frame buffer(s) allocated by user (c961c24b)

    LEDC

    MCPWM

    PARL_IO

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (22cfc7ef)
    • The legacy PCNT driver is removed. (81bb6a05)

    PPA

    RMT

    SDM

    • Added sleep retention driver support, SDM module can be powered off during sleep and restored automatically after wakeup (ae221cb2)
    • The legacy SDM driver is removed. (d6894a17)

    SD_HOST

    • Supported UHS-I SDR104 (200MHz, 100MB/s) on ESP32P4 REV3 (4a383012)

    SDMMC

    • Added Block device layer (esp_blockdev component) interface for sdmmc component (6cd8b82d)
    • Changed public requirement to esp_driver_gpio to private requirement (dfe8ee58)
    • Added Kconfig option SDMMC_ENABLE_SDIO_SUPPORT to enable/disable SDIO specific steps in sdmmc_card_init (e2954eb3)
    • Removed deprecated API esp_vfs_fat_sdmmc_unmount (a4c03ceb)
    • Fixed sdmmc initialization issue caused by CMD52 CRC error (37733a87)
    • The get_dma_info member in the sdmmc_host_t structure, as well as the sdspi_host_get_dma_info and sdmmc_host_get_dma_info functions, are removed. (3e09d4f2)
    • Fixed multiple definitions of SD Card example pins issue in project Kconfig file (30f98140)
    • Fixed all pins need to be set issue when using slot0 on ESP32P4 (30f98140)
    • Introduced SD Host (SDMMC) new driver in driver/sd_host.h and driver/sd_host_sdmmc.h (b1999b5c)

    SDSPI

    SPI

    SPI Master

    • SPI Master can transfer PSRAM buffers with DMA directly without extra copy (311bec8f)

    SPI Slave

    SPI Flash

    • Fixed issue that ESP32-C5 flash encrypted write data corruption when CPU is 240MHz. Now the CPU frequency will be switched to 160/80 MHz on v1.2/v1.0 chips during the write. (f409428b)
    • New argument flags is added to esp_flash_os_functions_t::start. Caller and implementer should handle this argument properly. (f409428b)
    • Added Block device layer (esp_blockdev component) interface for spi_flash component (7c4eac9e)
    • Fix flash software suspend doesn't perform efficiently on esp32h2 (8811f2ec)
    • Remove SPI_FLASH_ROM_DRIVER_PATCH option as this is not needed any more (19fef9f5)
    • Fixed the cache map 32M flash failed on esp32c5 (79cc42a9)
    • Fixed cpu start failed when log functions are put in flash on esp32c5 (92b90afa)
    • Removed deprecated enum esp_flash_speed_t (a4c03ceb)
    • Removed deprecated API spi_flash_reset_counters, spi_flash_dump_counters and spi_flash_get_counters (a4c03ceb)
    • Removed deprecated header file esp_spi_flash.h (a4c03ceb)
    • Fixed flash read failed in qio mode on external flash (65a6e9c2)
    • Fixed bootloader flash size is not accurate when flash size is larger than 32MB (142a8301)
    • Added GD55D256 flash chip support (de58c6d0)
    • Updated 32-bit address (16MB or more) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (bfe5caf5)
    • Fixed issue of escaping boundary check (d5b46540)
    • Make GD flash driver linked by default (561c7c48)
    • Added XM25QH256D flash support for new 32MB flash module (8ab564a7)

    TWAI

    Temperature Sensor

    Touch Element

    Touch Sensor

    UART

    USB

    USB Device

    USB Host

    • Removed usb component from esp-idf (4dc77d19)
    • Relocated PHY code to esp_hw_support and removed deprecated APIs (f4a86196)
    • Improved stability of the USB Host Library with external hubs (602941ef)
    • Added USB Host support for Full Speed peripheral on ESP32-P4 (94d71a8c)
    • Added support for custom FIFO sizing via HAL API (c06fa310)
    • Added option to allocate USB buffers in external RAM on ESP32-P4 (6d2f4b36)

    USB Serial JTAG

    • Check the pointer validation of tx ringbuffer (0997c899)
    • 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. (56a284e0)
    • Added clarifying note about disabling USB-Serial-JTAG in bootloader stage (https://github.com/espressif/esp-idf/issues/14638) (961c10bf)
    • Changed USB Serial JTAG VFS read() to treat end-of-line characters as regular bytes, with no early return (2f4c5d27)

    Power Management

    • Removed the configurable constraint for sleep memory usage optimization option (8d0fc975)
    • Fixed potential crash on ESP32-C61 during DFS when PSRAM is enabled and CPU frequency is lower than 10 MHz. (f409428b)
    • Fixed ESP32P4 rev3 core1 initialization after single-core active power consumption optimization (ac1e81f9)
    • Auto adjust LDO volt for esp32c6 using PVT function (bef4d8c5)
    • Reduce current of ESP32-H2 in light sleep with TOP PD and flash PU (e6b82fa4)
    • [Low Power Features] Added zcmp workaround for ESP32C5, ESP32C61 and ESP32H4 (bcccf9b5)
    • The current leakage for ESP32 in light sleep has been decreased by 80uA (2319386d)
    • Fixed the issue that ESP32C5 TX packet failed when DFS enabled (bacb0ce2)
    • Fixed examples/system/light_sleep compilation fail on CONFIG_ESP_CONSOLE_NONE selected (dc527fba)
    • Optimized the power consumption of esp32c5 in active state (2a861ead)
    • deepsleep current decrease about 7uA for C61 (17uA -> 10uA) (22f63191)

    Security

    • Updating to Mbed TLS 4.0 moves ESP-IDF toward PSA-first crypto. Applications relying on legacy Mbed TLS cryptography APIs (many mbedtls_* crypto primitives) may no longer compile or behave the same, because Mbed TLS 4.0 moves cryptography to TF-PSA-Crypto and mostly removes legacy crypto APIs. Migrate application crypto usage to PSA Crypto APIs where possible (and avoid relying on Mbed TLS internals/private headers). (7da79a65)
    • Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C61 (ef148aec)
    • Fixed app image encryption length for secure update without secure boot case (b05300be)
    • Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C5 (74da6d7a)
    • Fix secure OTA without secure boot issue for MMU page size configurable SoCs (https://github.com/espressif/esp-idf/issues/15936) (ef08ccad)

    AES

    • Fixed a DMA + write-back cache coherency bug during AES-DMA operations that caused intermittent PSRAM output corruption by enforcing proper cache clean on DMA destination buffers. (0a79c994)
    • Fixed AES failure with C5 PSRAM encryption by using an internal buffers to perform chunk-wise operation (6fb57058)
    • Dynamically switch between AES block and DMA mode to significantly improve the performance of operation with shorter input data lengths (https://github.com/espressif/esp-idf/issues/15914) (c6e65586)

    ESP Cert Bundle

    • Updated the default root certificate bundle (cacrt_all.pem - 19 Nov 2025) (31d01bc6)

    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 (b6c253a3)
    • Fixed esp_flash_encryption_set_release_mode() API to program the efuse bit to level low only if the efuse is not already programmed. (343fd794)

    Key Manager

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

    MbedTLS

    • Update mbedTLS to v4.0.0 (7da79a65)
    • With PSA-first behavior, psa_crypto_init() must be called before any cryptographic operation, including indirect ones like parsing keys/certs or starting a TLS handshake. ESP-IDF initializes PSA during system startup, but code that runs earlier than normal startup (very early init, custom startup flows, etc.) must call psa_crypto_init() explicitly. (7da79a65)
    • Code using APIs that previously accepted f_rng, p_rng will fail to compile. This includes (at least) X.509 write and cookie/ticket helper APIs. Users must update to new prototypes and rely on PSA RNG (7da79a65)
    • TLS/DTLS interoperability with peers requiring DHE key exchange or RSA key exchange (non-forward-secret) is removed in Mbed TLS 4.0. If a server only offers removed suites, ESP-IDF TLS clients will fail to connect (and vice-versa). Ensure servers/clients support modern suites (typically (EC)DHE and TLS 1.3 where available) and update configs accordingly. (7da79a65)
    • Certificates/peers using small curves (<250 bits; e.g., secp192r1/secp224r1) are no longer supported in certs/TLS. (7da79a65)
    • pk contexts initialised by esp_ecdsa_set_pk_context() must be freed by using esp_ecdsa_free_pk_context() (7da79a65)
    • The use_tee_sec_stg_key flag has been removed. ECDSA private key operations using ESP-TEE secure storage can now be performed by just specifying tee_key_id. (ee4be1af)
    • Fixed alignment requirements when hardware AES and SHA operations access encrypted PSRAM buffers (145de947)
    • Updated mbedTLS version to 3.6.5 (b32cd28a)
    • Optimized dependent peripheral clock usage for the ESP32-H2's revision v1.2 whose ECDSA peripheral does not use the MPI peripheral. (286f7fe0)
    • This release restructures the mbedTLS configuration system and adds support for configuration presets. (4e036983)
    • Fix build failure when using non-AES ciphers GCM operation fallback with CONFIG_MBEDTLS_GCM_C being disabled. (d8a3ef51)
    • Adds in support for verifying cross signed certificates if the cross signed certificate is available in the trusted CA bundle. (1f4612ec)
    • When using the esp_sha_block() and esp_sha_dma() APIs, the SHA mode needs to be explicitly set using the esp_sha_set_mode() API. (8d0527d7)
    • Starting from ESP-IDF v5.5, there is a change in how the SHA sub-function APIs, esp_sha_block() and esp_sha_dma(), are used. Previously, these APIs used to set the SHA mode internally, however, in the updated version, you must explicitly set the SHA mode before invoking them. For instance, if you intend to use the SHA-256 algorithm, you must first call esp_sha_set_mode() with the argument SHA2_256. (8d0527d7)
    • Starting with ESP-IDF v6.0, all deprecated CA certificates have been removed from the mbedTLS certificate bundle. As a result, any firmware built with ESP-IDF v6.0 may fail to connect to endpoints that rely on these removed certificates. Thus, before upgrading deployed devices to firmware built with v6.0, thoroughly test all connectivity endpoints to ensure compatibility and avoid connection failures. (e05390f3)
    • Updated the deprecated root certificate bundle (cacrt_deprecated.pem - 21 May 2025) (e05390f3)
    • Fixes failing TLS handshake when running HTTPS Server with TLS1.3 (https://github.com/espressif/esp-idf/issues/15984) (619996f7)

    NVS Encryption

    • If Flash encryption is enabled on SoCs with the HMAC peripheral (SOC_HMAC_SUPPORTED) and NVS encryption is also enabled, the HMAC-based scheme will be selected by default instead of the Flash encryption scheme. (649741fa)

    NVS Sec Provider

    RNG

    Secure Boot

    • Fixed the issue where bootloader fails to properly skip image verification and triggers reset when both CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP and secure boot are enabled. (64c71488)
    • Fix the application's Secure Boot verify API to support ECDSA-P384 (b7fe4ba2)
    • Fixed enabling ROM secure download mode when DIS_DOWNLOAD_MODE is already disabled (a249714f)
    • 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 (4e082efc)

    Storage

    • Added Block Device Layer support for esp_partition component (1e1b95cf)
    • Added new Block device layer interface component (d4e58bf7)
    • Added a mention of read-only NVS partitions in File System Considerations document (89254595)

    FATFS

    • Enable dynamically allocated buffers and long filename support by default (734c1725)
    • Refactored FATFS VFS functions - body of convenience mounting functions split to smaller steps. (94083867)
    • Added esp_vfs_fat_format_drive and esp_vfs_fat_partition_drive functions. (94083867)
    • Functions esp_vfs_fat_sdmmc_mount and esp_vfs_fat_sdspi_mount now return ESP_ERR_INVALID_ARG if any of the arguments are missing. (94083867)

    LittleFS

    • Default LittleFS version in examples bumped to 1.20.0 (2aeec90f)

    NVS

    • Changed implementation to support BDL as storage layer (958b2f61)
    • Added 2 new NVS examples: nvs_statistics and nvs_iteration (7b271c4b)
    • Copyright sections were unified (207199a2)
    • Header files were unified to use #pragma once (207199a2)
    • NVS constants were refactored to avoid dependency on spi_flash (207199a2)
    • fixed nvs_tool to parse non-ASCII keys (69d20790)
    • Fix NVS encryption initialization when using MINIMAL_BUILD (Closes https://github.com/espressif/esp-idf/issues/17256) (649741fa)
    • Fixed updates of BLOBs present in old format when legacy compatibility menuconfig option is set (553d1034)
    • Improved performance of BLOB get and set operations (efb4d576)

    Partitions

    VFS

    • Make FS registration function used by LWIP private (4b919caa)
    • Deprecate old VFS API (4b919caa)
    • Disable TERMIOS support by default (06004072)
    • Removed deprecated UART and UART-JTAG-serial API from vfs component, these APIs can still be found in the respective driver components. (fb79d920)

    System Hardware

    • Fixed incorrect breakpoint and watchpoint numbers for ESP32-C5 (9b74192f)
    • Changed ESP32P4 REV3 as default option (45fa560e)
    • For ESP32-C6, the option to use RC32K clock as the RTC slow clock source has been completely removed (RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED, RTC_CLK_SRC_INT_RC32K) (e94d9cee)
    • Fixed assert when changing 8MD256 RTC slow clock source during OTA on esp32/esp32s2/esp32s3. (6f8dbe8a)
    • Removed deprecated headers: {IDF_TARGET}/rtc.h and soc_memory_types.h. from esp_hw_support component. These headers are replaced by esp_rtc_time.h and esp_memory_utils.h respectively. (39d22252)
    • Fixed the issue that LP_WDT is triggered in ROM after esp_restart reset if UART0 is disabled in App. (Affected targets: esp32c5/esp32c6/esp32h2) (2bd39311)
    • Auto adjust core voltage for different chip and different environment on ESP32-P4 (fa41e763)
    • only detect VDD digital for ESP32-C5 / C61 (22f63191)
    • Removed support of C5_ECO0 & C61_ECO0 / C61_ECO1 (22f63191)
    • Fixed compile error on esp_cpu_int_has_handler on ESP32-P4 (GitHub PR) (https://github.com/espressif/esp-idf/pull/15942 https://github.com/espressif/esp-idf/issues/15941) (184b993d)

    Cache

    Efuse

    • Allowed custom key purposes (b0f34bd8)

    MMU

    • No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C5, C6, C61, H2 (ae3f20fa)

    MSPI

    • Now the Flash frequency will not be decreased during DFS on ESP32-P4, when PSRAM is not enabled. (f409428b)
    • Supported 120MHz timing tuning for Flash and PSRAM on ESP32C5 (cec614ed)

    Memory Layout

    • Removed RTC_ related memory attributes on chips which do not support RTC memory (ba7d2447)

    PSRAM

    • Fixed
  • v5.1.7 9be74663d1

    ESP-IDF Release v5.1.7
    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 2026-01-26 01:33:42 +00:00 | 21460 commits to master since this release

    No known key found for this signature in database
    GPG key ID: 73BD817307D0D67C

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

    ESP-IDF v5.1.7 is a bugfix update for ESP-IDF v5.1 and also the last bug fix release of ESP-IDF v5.1. According to ESP-IDF Support Period Policy, ESP-IDF v5.1 release branch reached end-of-life in December 2025. With EOL, new features, bug fixes, and security fixes will no longer be supported on this branch. Customers who are currently using ESP-IDF v5.1 release branch are encouraged to upgrade their projects to more recent ESP-IDF releases, such as ESP-IDF v5.5.x.

    Obtaining v5.1.7

    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.1.7 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.1.7
    cd esp-idf-v5.1.7/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.1.7.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.1.7/esp-idf-v5.1.7.zip

    Major changes

    Breaking Changes

    • 15.4/MAC: Added a duration argument for ieee802154_receive_at() (c70a55c6)
      Application Utilities/Provisioning Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (84467ecc)
    • BLE/Controller: Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (22ced0a2)
    • BLE/Controller: Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (22ced0a2)
    • Bluetooth Common: Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information . (1f4106fc)
    • Security: The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (63832856)
    • Security/MbedTLS: If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (b8f6564a)
    • WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (238266db)

    Changelog

    15.4

    MAC

    • Replaced the TX pending feature with backoff-based retransmission mechanism. (5dd4123e)
    • Added compensation on the energy detection result for H2 (37f1adb6)
    • Changed the default cca threshold to -75dBm (7a9eee11)
    • Added Tx/Rx frame dumping for debugging. (4f75a02c)
    • Added a duration argument for ieee802154_receive_at() (c70a55c6)

    Thread

    • Fixed an issue where NVS was not opened from the configured partition (89fd89af)
    • Fixed a potential stack overflow issue in TREL browse (d7793f86)
    • Fixed an occasional multicast router initialization failure (a2448622)
    • Fixed a deadlock issue in DNS resolver (a2448622)
    • Supported multicast forwarding cache filter in Thread BR (7a9eee11)
    • Updated openthread submodule (36b14d3ef) (7a9eee11)
    • Supported DHCPv6 PD feature (7a9eee11)
    • Supported custom netif config during initialization (32e99fa0)
    • Added APIs to start or stop the OpenThread stack (dffaf910)
    • Updated the OpenThread examples to use the new APIs (dffaf910)
    • Updated OpenThread examples to use esp_console. The ot prefix is required when running OpenThread CLI commands. (dffaf910)
    • Updated openthread submodule (3b3dd203) (680a36b2)
    • Introduced a new API to register the console based openthread CLI command (e4c81979)
    • Fixed an issue with source address selection during network switching (bb1446e8)
    • Use the ML-EID address for self-hosted services if OMR address is not preferred (53b06b30)
    • Handled MeshCoP mDNS service in state change callback (e5d6848c)
    • Updated openthread submodule (b945928) (e5d6848c)
    • Improved TREL message reception (e5d6848c)
    • Added a function to exit openthread main loop safely (9b9f4960)
    • Supported bus_latency configuration for Thread BR (daf9fa4d)
    • Updated openthread submodule (ec2b0d487) (4e71c787)
    • Supported periodic parent search mechanism for MTD (63b29d8b)
    • Added a function to ensure monotonically increasing frame counter (fdfa0edc)
    • Bound DNS server to unspecified netif on Border Router (fdfa0edc)
    • Added a callback to handle rcp reset failure (fdfa0edc)
    • Supported DNS resolution / forwarding for Thread BR (9834161b)
    • Fixed recursive multicast packet forwarding issue (9834161b)
    • Updated openthread submodule (8c30b93) (9834161b)
    • Fixed CSL issue in which RX is not turned off during idle periods (c70a55c6)

    Application Utilities

    CJSON

    ESP HTTP Client

    • Updated the postman root certificate for the esp_http_client example. (3e9fdf08)
    • Fixed memory leak in HTTP client when header parsing fails during fetch operation. (0eaf9760)

    ESP HTTPS Server

    • Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the Key Usage parameter due to the change in Python3.13's default ssl context requirements. (3d5cf55f)

    Protocomm

    • Add security checks for buffer overflow / incorrect length handling (a861dc34)
    • add validation for Security1 client verifier data (7463bd87)

    Provisioning

    • Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (84467ecc)

    BLE

    • Fixed uninitialized return code in BLE Get Started - NimBLE examples (f4c3f907)
    • Add Bluetooth LE 5 1 direction finding feature. (f099935b)

    BluFi

    • Added an API to start advertising with specified name. (1c926f04)
    • Added support for stopping adv in BLUFI for nimble (b7ea1189)

    Bluedroid

    • Fixed the issue that extend advertising might not restart if the connection fails (5a9a1bba)
    • Fixed Bluetooth LE incorrect device record count issue (5618f715)
    • Improved debugging by adding more logs and thread diagnostic tools. (53f1ef01)
    • Fixed GATT response timeout setting. (53f1ef01)
    • Fixed a memory leak during deinitialization when the service table was created but not started (2590dcf3)
    • Fixed crash when deinitializing or disabling host during scanning (ba358f7d)
    • Added an API to set channel map for scanning or initiating. (4bca78f5)
    • Fixed the status setting in the HCI event. (5f96c34c)
    • Fixed potential out-of-bounds memory access when resolving advertising data (035e2f5f)
    • Added Bluetooth LE multiple connections examples. (bfa76815)
    • Fixed the connection count limit in multi-connection. (bfa76815)
    • Supported multi-connection optimization vendor HCI command. (bfa76815)
    • Adjusted L2CAP round robin msg send strategy. (bfa76815)
    • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (2d7044ec)
    • Fixed incorrect update of resolving_list_avail_size (01516789)
    • Fixed issue where resolving list was not updated after the oldest device was removed (01516789)
    • Fixed issue that caused failure in "BTM_GetSecurityFlags" (01516789)
    • Fixed failure to disconnect when device record is cleared (01516789)
    • Fixed extended advertising restart failure during reconnection. (cf95955f)
    • Fixed BLE SMP state machine inconsistency on disconnection (f1d48454)
    • Fixed null pointer assert in l2c_link_check_send_pkts (7bc49c12)
    • Fixed issue with deleting link key when classic Bluetooth is not used. (58fd1789)
    • Fixed validation logic for BLE GAP appearance configuration. (0522298c)
    • Increased maximum attribute value length to 517 to prevent data loss. (0522298c)
    • Added throughput mode for BLE SPP example. (65d725fb)
    • Fixed missing event reporting in esp_ble_create_sc_oob_data. (b171e3b2)
    • Fixed memory leak issue when using dynamic memory and deinitializing the host. (b171e3b2)
    • Fixed BLE crash when disabling bluedroid host. (b171e3b2)
    • Fixed potential uint32_t overflow in BLE btu_start_timer. (b171e3b2)
    • Added BLE eddystone sender example. (fa41c508)
    • Added support for the "Read Periodic Advertiser List Size" command. (64d22a4e)
    • Added Read Long Characteristic Values example. (5bf714fe)
    • Supported BLE setting vendor event mask (e7019570)
    • Supported BLE vendor HCI event reporting (e7019570)
    • Supported SPI log output options for HCI. (392c3031)
    • Fixed an issue where advertising data and scan response data were not reported together during BLE active scanning. (e9bc0121)
    • Supported change HID task size by Kconfig in HID example(https://github.com/espressif/esp-idf/pull/15320). (e7629d04)

    Controller

    • Add a feature to automatically initiate a data length update using the appropriate parameters when a PHY update or a connection interval update occurs for ESP32-C6 and ESP32-H2. (b120dad3)
    • Fixed a disconnection issue that occurred when using the Coded PHY to transmit data with a 7.5 ms connection interval and a Tx data length of 251 bytes for ESP32-C6 and ESP32-H2. (b120dad3)
    • Fixed an occasional disconnect issue caused by MIC errors on ESP32-C6 and ESP32-H2 (b120dad3)
    • Fixed BLE assert lld_con.c 1479 on ESP32-C3 and ESP32-S3 (e421c708)
    • Changed the maximum number of concurrent connections to 70 on ESP32-H2 (43b1fa99)
    • Fixed crash in btdm_controller_task on ESP32 (15f8397d)
    • Fixed scan HCI command timeout issue on ESP32 (15f8397d)
    • Fixed an occasional interrupt watchdog timeout issue when stopping scanning for ESP32-C2. (1a601ab3)
    • Added a feature that allows the Controller to continue receiving PDUs in the next connection event instead of entering latency after receiving a data packet on ESP32-C6, ESP32-H2. (1a601ab3)
    • Supported controller log compression on ESP32-C3 and ESP32-S3. (71c7d4a7)
    • Fixed an occasional connection timeout issue when utilizing BLE Flash Only feature for ESP32-C2. (c9b93bca)
    • Fixed an occasional interrupt watchdog timeout issue when establishing connection for ESP32-C2. (c9b93bca)
    • Fixed an occasional connection establishment failure issue when utilizing BLE Flash Only feature for ESP32-C2. (c9b93bca)
    • Add scheduling priority level configuration when internal scheduling conflicts on ESP32-H2,ESP32-C6. (c9b93bca)
    • Fixed occasional memory leaks in multi-connection scenarios on ESP32-H2 and ESP32-C6. (fe96a028)
    • Fixed an occasional MIC failure issue in Start Encryption procedure for ESP32-C2. (fe96a028)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2. (22ced0a2)
    • Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (22ced0a2)
    • Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (22ced0a2)
    • Improved security when receiving a connection request PDU with an invalid Access Address on ESP32 (48d3ac77)
    • Supported the PAwR feature on ESP32-C6, ESP32-H2. (8a9059fd)
    • Optimized check Access Address when receive connection request PDU on ESP32 (ddd00f1f)
    • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32. (706d22ac)
    • Fixed priority setting for BLE events on ESP32. (706d22ac)
    • Fixed disconnection issue when coexisting with other BLE events on ESP32. (706d22ac)
    • Fixed crash due to bandwidth full when updating connection params on ESP32. (706d22ac)
    • Supported multiple connection optimization vendor HCI command on ESP32. (706d22ac)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (547ecd2e)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (547ecd2e)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (547ecd2e)
    • Fixed BLE anonymous extended advertising filtering on ESP32-C3 and ESP32-S3. (547ecd2e)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (fcba3507)
    • Fixed an occasional sync lost issue on ESP32-C6, ESP32-H2. (fcba3507)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6, ESP32-H2. (ea1edc0c)
    • Fixed an occasional assertion issue during sync on ESP32-C6, ESP32-H2. (ea1edc0c)
    • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (e8aa9554)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (e8aa9554)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6, ESP32-H2. (85009a76)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6, ESP32-H2. (85009a76)
    • Fixed an occasional assertion issue during scanning on ESP32-C6. (85009a76)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6, ESP32-H2. (85009a76)
    • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/15789) (f9f1d1b1)
    • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (60aa069c)
    • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (60aa069c)
    • Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (60aa069c)
    • Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (60aa069c)
    • Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (05ebbbf0)
    • Fixed occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (05ebbbf0)
    • Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (05ebbbf0)
    • Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (05ebbbf0)
    • Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (05ebbbf0)
    • Fixed MIC error disconnection when pairing with an iOS device on ESP32-C3 and ESP32-S3. (eb643719)
    • Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (0ae87946)
    • Disable anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (0ae87946)
    • Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (0ae87946)
    • Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (0ae87946)
    • Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (01d62ded)
    • Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (01d62ded)
    • Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (01d62ded)
    • Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (6f80a5d7)
    • Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (6f80a5d7)
    • Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2. (6f80a5d7)
    • Fixed an occasional issue where the connPeripheralLatency parameter was not properly applied on ESP32-C6, ESP32-H2. (6f80a5d7)
    • Fixed a heap assertion issue when enabling BLE and ESP32C2_REV_MIN_200 for ESP32-C2 v2.0 (2d903795)
    • Fixed an occasional load access fault issue when performing ext_conn creation for ESP32-C2. (1f4106fc)
    • Added definitions for bluetooth hci vendor commands and events (1f4106fc)
    • Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2. (0b1eb900)
    • Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2. (0b1eb900)
    • Fixed GPIO unavailable warning when repeatedly reconfiguring HCI UART pins on ESP32-C2, ESP32-C6,ESP32-H2. (0b1eb900)
    • Reduced controller bin size for ESP32-C3 and ESP32-S3 (588f5660)
    • Fixed enhanced TX power setting and getting for legacy adv on ESP32-C3 and ESP32-S3. (39912032)
    • Fixed compatibility issues during the encryption procedure on ESP32-C3 and ESP32-S3. (39912032)
    • Fixed BLE assert lld_con.c 2387 on ESP32-C3 and ESP32-S3. (39912032)
    • Added BLE debug log module on ESP32-C3 and ESP32-S3. (f2c8eb0f)
    • Enhance Access Address validation in compatibility mode on ESP32. (0d0800d9)
    • Fixed the issue where disconnection events were not reported as a slave on ESP32. (0d0800d9)
    • Fixed scan duplicate filter failure when receiving ADV_DIRECT_IND for ESP32-C2. (fe44aa76)
    • Added continuous connection function when instant pass issue triggers on ESP32-H2 and ESP32-C6. (e9b7e6c4)
    • added channel assessment function on ESP32-H2 and ESP32-C6. (e9b7e6c4)

    Documentation

    • Added Bluetooth LE Multi-Connection Guide in API Guides (71ced00e)
    • Added Bluetooth LE Low Power Mode FAQ in API Guides (913dc181)
    • Updated ESP-Nimble SIG qualification version to core specification 6.1. (9fbc86cb)

    NimBLE

    • Fix tinycrypt related compilation issue (98b3fb7e)
    • Fixed PAwR Subevent Data Set error when data length set too large (21b65cd7)
    • Handle sync cancel during reattempt operations (03ae7637)
    • Added a check for periodic psync before processing (87f22a49)
    • Fix typos in NimBLE examples (https://github.com/espressif/esp-idf/pull/17824) (1722d626)
    • Fix compilation issues across different NimBLE examples (afddac09)
    • Add Read all local / remote supported feature HCI command /event. (07e91abe)
    • Fix array overflow caused by invalid connection handle indexing (717e3eae)
    • Added support for Channel Sounding host functionality. (a9dc9d78)
    • Use nimble platform mem malloc / free APIs (7e6e0d0b)
    • Added support to consider mbuf of different size during copying (bcb59bc6)
    • Update HCI log functions to use uint16_t for data length (01602a7f)
    • Rearrange NimBLE menuconfig options (0cb4f796)
    • Handled adv ext data setting in reattempt adv upon disconnect (efe7ba01)
    • Add indicate / notification code under correct flags [ Closes https://github.com/espressif/esp-idf/issues/16769 ] (8fb119de)
    • Fixed incorrect HCI status in connect event (c17c0021)
    • Updated reattempt count handling for periodic adv (4bf28d62)
    • Restructured table of README.md file of bleprph and blecent (cb46dca6)
    • Add connection failure event when connection fails (3231ed84)
    • Added helper APIs in NimBLE for gatt cache as exposed in Bluedroid (a32c2cc8)
    • Update ble_gatts_show_local to show CPFDs and CAFDs. (ea5415b5)
    • Fix include service definition handle being the same for all definitions. (ea5415b5)
    • Fix for attribute count mismatch between cached gatt db and actual db. (e114b009)
    • Update count parameter correctly by considering offset. (e114b009)
    • Fixed compilation issue due to BLE_GATTS flag (cdbc9978)
    • Clear GATT service entries counter upon GATT deinit (e6955dee)
    • Add packet allocation retry for limited iteration (8888f03a)
    • Add timestamp information to HCI logging data buffer (83f5d0ee)
    • Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234 ] (274c58c2)
    • Fix compilation issues when gatt caching is enabled in peripheral only mode (5846e218)
    • Add a missing instance of ble_hs_unlock() in a corner case. (34308ee2)
    • Added parameter in peer_init() to allocate memory for included services (7fcf7fd7)
    • Automatically initiate security and retry service request if service request fails due to insufficient security. (7bc593a5)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (7bc593a5)
    • Fix compilation issue when CSFCS is set to 0. (12913734)
    • Wrap BLE service API with extern "C" (12913734)
    • Fixed issue of Adv report not observed in PAwR example. (d0ffbceb)
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (94378a35)
    • Handle memory leak due to missing mempool_deinit call (80ba563e)
    • Add chip dependancy flag for Flow control feature (cefaaae6)
    • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (6ce383be)
    • Handled an async race condition with HCI outstanding packets counter (6111779b)
    • Add support for anonymous address type for whitelist (6111779b)
    • Fixed UUID type error in GATT caching API to search for included services. (db62e833)
    • Added api's to fetch gatt cache info (ee6c1c78)
    • Added option to enable stack to handle repeat pairing internally (6cc26e52)
    • Enabled Connection Subrating bit in ESP32C6 (d4274bc0)
    • Added SPS callback event to expose changes in scan parameters (d4274bc0)
    • Fixed incorrectly passed UUID in GATT Caching disovery operations (d4274bc0)
    • Fixed LLS crash when no callback was registered for LLS event (d4274bc0)
    • Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (d4274bc0)
    • Added runtime configurable support for observer role, security mode 1 level, and GATT caching (d4274bc0)
    • Optimized nimble throughput example by extended adv support and switching between different Phy modes. (f9725699)
    • feat(nimble): Added tutorials for PAwR examples (62f8f8ad)
    • Fix sync handle assignment for PAwR connection (726efa4e)
    • Fixed incorrect OTA address type assignment (faec5da2)
    • Corrected event posting in Read Remote Features event handling [ Closes https://github.com/espressif/esp-idf/issues/15670 ] (b5f45337)
    • Added missing ble_hs_unlock for periodic adv sync reattempt case. (0c6ca930)
    • Fix conversion for min-max itvl of periodic adv param in example (0c8508df)
    • Fix SMP command allocation from existing buffers (c4e013b0)
    • Add support for Vendor Event mask VSC (a1f57324)
    • Fix incorrect event deinit in gatt caching discovery (83a41981)
    • fix(nimble): Exposed the ble_gap_wl_tx_add API to add a device in whitelist (b523b9f9)
    • Fixed pairing failure issue when SC only mode is selected (126fdc33)
    • Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (8ea69f25)
    • Handle application code compilation issue due to removal of link_estab structure (fbec1c09)
    • Update controller data length upon connection creation. (22e5ec0c)
    • Deprecate BLE_GAP_EVENT_LINK_ESTAB event. (bec000aa)
    • Fixed compilation warnings in nimble examples. [ Closes https://github.com/espressif/esp-idf/issues/15157 ] (495b0fff)
    • Handle nested locks when BT_NIMBLE_DEBUG enabled (https://github.com/espressif/esp-idf/issues/15014, https://github.com/espressif/esp-idf/issues/15294, https://github.com/espressif/esp-idf/issues/15202) (495b0fff)
    • Updated README.md by removing unclear line (https://github.com/espressif/esp-idf/issues/15284) (495b0fff)
    • Additional PAwR changes support for ESP IP (495b0fff)
    • Added offset field that can be used during GATT server long read context (495b0fff)
    • Address compilation issue observed when WARN_WRITE_STRINGS is set. [PR: https://github.com/espressif/esp-nimble/pull/84 ] (495b0fff)
    • Enhanced error handling by adding to print core error definitions (495b0fff)
    • Added changes to save the gatt context in case of preemption (495b0fff)
    • Fixed nvs corruption due to BLE_ENV_ADV_DATA flag (495b0fff)
    • Handle not sending disconnect event if connect event was not sent. (495b0fff)
    • Restart adv / sync when periodic sync fails due to 0x3E (495b0fff)
    • Reset global variables during link disconnection (495b0fff)
    • Clear our and peer security records cleanly during unpair. (495b0fff)
    • Added HCI Read Remote Version Information command. (495b0fff)

    Power Management

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

    Bluetooth Common

    • Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information . (1f4106fc)

    Bluedroid

    • Security enhancements for Bluedroid Host Stack and Examples (844213cd)
    • Fixed missing BLE connection and disconnection events (5618f715)
    • Added API to retrieve the local BLE Identity Resolving Key (IRK) (53ac9fac)

    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) (888fe2c7)
    • Fixed the issue that unfixed core tasks may register or trigger software interrupts of the wrong core when calling the Bluetooth interface on ESP32 (77bb1f61)
    • Fixed the issue that disable Bluetooth controller may cause interrupt watchdog timeout on ESP32 (7c70024d)
    • Disable debug vendor HCI command on ESP32. (ff517176)
    • Added API to get/set low power clock source on ESP32 (abb9e304)

    Classic Bluetooth

    Bluedroid

    • Backported several security-related fixes to from Google Fluoride to esp-idf Bluedroid (0225da00)
    • Deprecate RSSI threshold related macros (4a2973ee)
    • Fixed missing NULL pointer check in l2c_fcr_clone_buf in Bluedroid (fc83f40e)
    • Split A2DP sink example to several simpler examples to demonstrate A2DP/AVRCP functions of different aspects (ce5507d6)
    • Fixed crash caused by performing A2DP deinitialization when initating an A2DP connection (48397642)
    • Added an API to create SPP server with a parameter that selects whether to create a corresponding SDP service record (cfecb229)
    • Fixed memory leak in HID host and HID device (ff4da9ef)
    • Fixed potential stack buffer overflow in the processing SDP response in Bluedroid (12899704)
    • Update the class of device before enabling inquiry scan to make it effective in inquiry scan response (acb302d3)
    • Fixed potential buffer overflow in the composition of AVRCP vendor dependent command in Bluedroid (51842c4d)
    • fix(bt/bluedroid): Fix the boundary conditions when checking EIR data (ae60a389)
    • Fixed potential buffer overflow vulnerability in Bluedroid (daca4d69)
    • fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (8f9a806d)
    • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (ab3034f7)
    • Fixed HFP AG data callback gets mistakenly cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (651f1e86)
    • Added AVRCP callback event for notification of profile ON/OFF state (53da6a3b)
    • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (420604d6)
    • Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (6108880c)
    • Added events for l2cap register and unregister vfs (6108880c)
    • Fixed write_read task stack overflow in l2cap example (6108880c)
    • Fixed the issue with l2cap not using dynamic memory (6108880c)
    • Fixed the issue that L2CAP server stop operation does not report the ESP_BT_L2CAP_SRV_STOP_EVT event (3437128b)
    • Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (d97e4904)
    • Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (c61fe8d9)
    • Fixed reporting of unexpected ESP_BT_GAP_DISC_STATE_CHANGED_EVT event upon ACL disconnection, due to uninitialized local variable (787406b1)
    • Fixed the issue that after SPP reaches the maximum number of connections, it will mistakenly free the server resources when disconnecting, causing the next server start to fail. (9c91ff78)
    • Fixed memory leaks in SPP callback mode (28035c98)
    • Fixed incorrect records in SDP record search response using 16-bit UUID (76ea699a)
    • Fixed error type returned when searching for service records of SIM Access Profile(SAP) in SDP (76ea699a)

    Controller

    • Fixed not reject connection request when auto accept is off and connect request event is masked on ESP32 (dd754fc2)
    • Fixed the hardware channel map error by ignoring invalid channel maps during AFH disable procedure on ESP32 (0dd0ec30)
    • Fixed improper handling of transaction collision during LMP encryption start/stop procedure on ESP32 (0dd0ec30)
    • Removed the assertion when new acl data packet is sent to controller while previous data transmission is not finished on ESP32 (466e4c5d)
    • Fixed the out of sync of data buffers between software and hardware on ESP32 (f13498dc)
    • Fixed the issue where modifying the btdm_pwr_state value would cause phy_disable to be called twice on ESP32 (f13498dc)
    • Fixed that peripheral does not authenticate agaist peer device when the first request was rejected on ESP32 (f13498dc)
    • Fixed the errors that SCO frame scheduling is not stopped fter the base ACL link has been released on ESP32 (f13498dc)
    • Fixed that Tx descriptor for FHS packet in page procedure may becomes empty after handshake failure on ESP32 (48d3ac77)
    • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (48d3ac77)
    • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT on repairing of the acceptor size on ESP32 (48d3ac77)
    • Ignored the reception of LMP_DETACH PDU during detach process on ESP32 (48d3ac77)
    • Fixed possible access to NULL pointers on ESP32 (48d3ac77)
    • Fixed missing of HCI event upon canceling truncated page procedure on ESP32 (48d3ac77)
    • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (48d3ac77)
    • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key on ESP32 (48d3ac77)
    • Fixed the incorrect unit of clock in CPB Rx event on ESP32 (4f91b240)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (b8002347)
    • Implemented a workaround for potential data packet exchange issues when secure connection is enabled on ESP32 (399353da)
    • Fixed ACL has few chance to run when it coexists with SCO on ESP32 (7fe8b9da)
    • Fixed errors in dynamic priority configuration in Bluetooth dual mode on ESP32 (7fe8b9da)
    • Fixed a crash issue caused by accessing external memory in ISR context on ESP32 (7fe8b9da)
    • Fix the incorrect unit of duration_min in CPB TX on ESP32 (6c52731c)
    • Recalculate the channel map when AFH is enabled on ESP32 (6c52731c)
    • Fixed assessing NULL pointer in case of handling earlier message when Bluetooth Classic connection gets disconnected (https://github.com/espressif/esp-idf/issues/15128) (ff517176)
    • Avoid accessing released ACL resources in SCO logic on ESP32 (ff517176)

    Coexistence

    • Fixed ESP32 cache disable crash issue at coexistence scenario. (7137596f)
    • Fixed the abnormal grant or priority value issue when the external coexistence pin floating (3e94617d)
    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (bf6a2263)
    • Fixed some external coexist issues. (517b018d)
    • Support BR/EDR (e)SCO and Wi-Fi coexistence. (79cdf85a)
    • Added coexistence scheme for BT Inquiry/Page coexist with WIFI (779100aa)

    Core System

    • fix c++ TLS classes destructors calls (https://github.com/espressif/esp-idf/issues/14360) (c7b762c4)
    • Fixed implementation of __atomic_test_and_set to be atomic (92a67188)
    • Ensure proper reset for crypto peripherals before software restart. This fixes a rare and intermittent secure boot verification failure based on RSA-PSS scheme. The fix is recommended for aggressive revocation config. Please see commit log for more details. (a8cc5b94)

    Panic handling

    Debugging

    Apptrace

    • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later. (f8dc3fc5)
    • Updated SEGGER SystemView source file version to v3.56 to support data plotting (f8dc3fc5)
    • Added CRC16 checksum of trace blocks to enable host-side data integrity verification. Strored in Xtensa perfmon register. (2c1fd672)
    • Fixed deadlock on sysview start (7f17e577)

    Core Dump

    Ethernet

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

    LWIP

    DHCP

    • Fixed DHCP server recv decline issue (0ce9affd)

    DHCP Server

    ESP Netif

    Low Power Features

    • Fixed power leakage in the LP peripheral power domain during Light Sleep when the HP peripheral domain remained powered on esp32c6. (29b7f654)
    • 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. (29b7f654)
    • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (36628fd8)
    • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset. (16d3dafd)
    • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (https://github.com/espressif/esp-idf/issues/16872) (16d3dafd)
    • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on esp32c6/esp32h2. (a805fe0d)
    • Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (452e609d)
    • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on esp32c6. (dccb4fdc)
    • Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (029dacde)
    • Allowed to keep SAR ADC power when using ADC_ULP_MODE. (https://github.com/espressif/esp-idf/issues/12426) (df04451e)
    • Fixed power leakage when external 32k slow clock source detection fails. (81ee3e87)
    • Warning the use of lightsleep GPIO/UART wakeup source if PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP option is enabled. (1e83cfe7)
    • Fixed the issue that esp32c2 may fail to wake up after entering deepsleep with external 32 kHz oscillator. (f4733573)
    • Added sleep duration validity check in esp_sleep_enable_timer_wakeup. (#15255) (5ec8b9c6)

    PHY

    • Added protection against double phy-disable operations by one modem source, which can result in hardware clock being switched off in coexistence scenario (09ce8748)
    • Updated librtc.a to fix coexist problems on ESP32 (0a3c5252)
    • Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (fa4f9f7a)
    • Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (54b9f8f9)
    • Optimization of RX calibration in high-interference environments. (6ff5fca1)

    Peripheral Drivers

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

    ADC

    GPIO

    I2S

    STD

    • Fixed STD mode initialization failure on ESP32 when using I2S_NUM_AUTO. (009ed2fd)

    LEDC

    MCPWM

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (44608441)

    RMT

    SD_HOST

    SDMMC

    SPI Flash

    TWAI

    Temperature Sensor

    • Add temprature calibration support on ESP32-C2/C6/H2/P4 (92638cbb)

    Touch Sensor

    UART

    USB

    • Updated USB Device examples to esp_tinyusb v2.0.0 (bef993f7)

    USB Host

    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. (5332b808)

    Power Management

    • Fixed regDMA contention issue between modem close rf and soc wakeup caused by default rf delay parameter (37f80e4e)
    • Fixed examples/system/light_sleep compilation fail on CONFIG_ESP_CONSOLE_NONE selected (e7117c7a)
    • Reduce current of ESP32-H2 in light sleep with TOP PD and flash PU (d474b5b1)
    • Fixed regDMA wait timeout caused by default wait parameters (2b823f7e)
    • The current leakage for ESP32 in light sleep has been decreased by 80uA (103bf988)
    • Fixed the issue of modem wakeup req always high caused by pmu min slp cycle update. (238266db)
    • Fixed possible assert in vTaskStepTick after turning on auto light sleep (0c28c65a)

    Security

    ESP Cert Bundle

    • Add entry for "Sectigo - Comodo AAA Services root" in the common CA cert authority list. This fixes problem with server verification with GitHub endpoint. Regression introduced in e174fc967e. (25354232)

    Flash Encryption

    • Fixed esp_flash_encryption_set_release_mode() API to program the efuse bit to level low only if the efuse is not already programmed. (5fcee267)

    MbedTLS

    • Updated mbedTLS version to 3.6.5 (a322e933)
    • If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (b8f6564a)

    Secure Boot

    • 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 (5fcee267)

    Storage

    NVS

    • Fixed the order of NVS page state changes in space reclaim function to allow recover from sudden power-off event. (11490198)
    • Set NVS default value for SAE identifier to NULL (dfe9d705)
    • Improved performance of BLOB get and set operations (ac8e7a79)
    • Fix NVS partition being incorrectly marked as encrypted by the build system (3e163c63)

    System Hardware

    • Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (c4d9d458)
    • Support to check the eFuse block revision during the startup. (401f9e7e)
    • Fixed esp32s3 possible cache_error triggered by another core accessing flash in esp_restart (f16e65b1)

    MMU

    MSPI

    • Improved the selection of timing tuning points when the last few tuning points succeed consecutively (6bb8f25f)

    PSRAM

    Toolchain

    Tools

    WI-FI

    • Fixed the issue that ESP32C6 RX packet failed when Station in modem state (6ebff332)
    • Added scan stop when user call smartconfig stop (60521048)
    • esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (238266db)

    Examples

    • Added max retry count for iperf station command (1b81a5ee)
    • Supported 11ax rate for cert test. (91993ac4)
    • Added GPIO output set command for cert test. (6ff5fca1)

    MAC

    • Resolved NAN crash by discarding out of slots Packets correctly (b0f57079)
    • B-TWT setup now respect user's dwell timeout configuration. (c188970a)
    • Fixed lmacTxDone assert issue in TX Fragment (c188970a)
    • Ensured Sta parses FTM Responder beacon correctly (035db94b)
    • Set NVS SAE pwe default value to SAE_PWE_BOTH for SoftAP and station (ac7dabaf)
    • Fixed some wifi bugs related to AMPDU (44e2e05c)
    • Fixed Wi-Fi can not send OMC (44e2e05c)
    • Fixed GCMP fragment TX issue. (8a19d06f)
    • Supported WAPI fragment TX and RX. (8a19d06f)
    • Fixed the issue where the WAPI unicast key index was incorrect after reconnection. (8a19d06f)
    • Fixed not clear disconnect reason status issue (c4b992a0)
    • Set dialog token of last FTM Response to Zero (https://github.com/espressif/esp-idf/issues/17235) (11cdbbe4)
    • Performed FTM in 40Mhz in disconnected State (11cdbbe4)
    • Fixed PTK key memory leak on deinit. (470a3246)
    • Fixed the crash issue when sending sleep NULL (461f5cc1)
    • Fixed TWT not closed in suspend state when wifi disconnected (461f5cc1)
    • Corrected the 'wifi_auth_mode_t' type sent during 'WIFI_EVENT_STA_CONNECTED' event (d4b1bfaf)
    • Fixed inactive time reset when wifi disconnect (876bbf9c)
    • Fixed cache access error after TWT setup (876bbf9c)
    • Fixed TX error 0xa1 (876bbf9c)
    • Fixed beacon timeout when TWT setup (876bbf9c)
    • Fixed open mode receive fragment packet fail issue. (bf4956d7)
    • Fixed the issue that STA fail to RX packet under modem state. (238266db)
    • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout. (238266db)
    • Fixed esp32 mac deinit stuck issue. (238266db)
    • The esp_wifi_set_config() API NOW cannot be called while Wi-Fi is connecting. (238266db)
    • Fixed the issue that STA fail to RX beacon when off channel under modem state. (238266db)
    • Fixed locking in incorrect state when stop_scan is called after wifi_connect (e3a508cd)
    • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries. (ecaac761)
    • Fixed STA cannot send keep alive when receive UDP packets (2631c87f)
    • Fixed STA BSS max idle period always use default value (2631c87f)
    • Fixed sleep without sending sleep null when enable BSS max idle (2631c87f)
    • Fixed channel TX power limitation does not take effect when connected AP switch channel (2631c87f)
    • Fixed TX power not update if country changes when enable multiple PHY init data bin (2631c87f)
    • Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (2631c87f)
    • Fixed phy data partition restoring default fails issue. (7407819b)
    • Fixed the WEP shared authentication association timeout issue. (7407819b)
    • Fixed the issue of disconnection from the AP due to ERSU compatibility. (7407819b)
    • Fixed occasional dropping of SA Query responses by SoftAP (a59cb59e)
    • Fixed an issue to prevent writing configuration to NVS when the station configuration remains unchanged. (e1831e3e)
    • Fixed issue that esp_wifi_set_tx_done_cb() should not process frames sent using esp_now_send(). (1f2e5264)
    • Added support for transition disable for SoftAP (fd2c0257)
    • Fixed TWT post just one event for multiple flow (34449e9b)
    • Fixed channel in rx_ctrl is zero when using sniffer (34449e9b)
    • Fixed compatibility issues and crash during scan (34449e9b)
    • Modified authmode to sta for sta connect event (db58c5fc)
    • Fixed disable external coexist fail issue. (6ff5fca1)

    Mesh

    • Fixed the mesh crash issue when changing mesh AP's authmode (5f8b1ae3)
    • Fixed the esp_mesh_scan_get_ap_record() error in chain topology (5f8b1ae3)

    Supplicant

    • Ensured EAPOL state machine is correctly terminated when WPS is reinitialized during an ongoing WPS session (WPS Registrar). (8146eccd)
    • Fixed an issue where WPS timers were not properly cancelled if a disconnection occurred during an active WPS session (WPS Enrollee). (8146eccd)
    • Fixed a crash where STA is freed before WPA3 SAE finishes (f9a379d3)
    • Fixed some invalid memory access in wpa_supplicant (635e9dc5)
    • Added support for WPA-Enterprise in Station mode (a96fb817)
    • Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (97429efb)
    • Cleared SAE-PK capability in Assoc Request when not enabled at STA. (e36aab1e)
    • Fixed pmksa expiration caused by sntp time synchronization issue. (08e3a502)
    • Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (00dd08c9)
    • Added check for WPS-PBC overlap detection in dual band. (12e51f52)
    • Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (12e51f52)
    • Ensured disconnection with previously connected AP when initiating WPS. (12e51f52)
    • Increased WPS message timeouts to address interoperability issues. (090362cd)
    • Fixed send_confirm value for SAE confirm according to specification. (d91940e1)
    • Added domain name validation support for EAP connection. (f3e7fc46)
    • Added optimized PSK implementation, closed https://github.com/espressif/esp-idf/issues/15072 (87319fa9)
    • Added some implementation changes in roaming. (fd2c0257)
    • Resolved WPS connectivity issue that caused failures when the station was already connected (777668bd)
    • Fixed issues reported by the static analyzer on GitHub (#15097, #15098, #15099). (eda82c2f)
    • Fixed memory leak occurring in SAE PK connection. (46b822ca)
    • Reduced WPS scan frequency to make it easier for users to enter the PIN on the AP. (388d63bc)

    Vendor

    • Fixed the memory leak when call esp_now_set peer_rate_config() (b7751e07)
    • Fixed the crash issue when vendor ie is NULL (8e542979)
    • Added more check when receiving ESP-NOW data (330d63dc)
    • Fixed the issue that STA connection information loss LR info on ESP32C6 (aa840f86)
  • 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

  • v6.0-beta1 d9ad0ad50b

    ESP-IDF Pre-release v6.0-beta1
    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-11-05 08:25:25 +00:00 | 9336 commits to master since this release

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

    Documentation for IDF v6.0-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v6.0-beta1/

    ESP-IDF v6.0-beta1 is a major update for ESP-IDF v5.x. Release v6.0 is mostly compatible with apps written for ESP-IDF v5.x, but there are some breaking changes (please consult the list below) and removal of deprecated functionality which will require code changes when updating projects. Release v5.5.1 is the latest stable release at the time of writing.

    We highly recommend referring to our migration guide while moving your apps from ESP-IDF v5.x to v6.0 release.

    Obtaining v6.0-beta1

    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 v6.0-beta1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v6.0-beta1
    cd esp-idf-v6.0-beta1/
    

    This is the recommended way of obtaining v6.0-beta1 of ESP-IDF.

    Download an archive with submodules included

    Attached to this release is an esp-idf-v6.0-beta1.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/v6.0-beta1/esp-idf-v6.0-beta1.zip

    Major changes

    Major New Features

    • Upgraded default C standard to gnu23 (03855b90)
    • Upgraded default C++ standard to gnu++26 (03855b90)
    • Supported loading idf.py extensions from the project's component directories and from installed Python packages (https://developer.espressif.com/blog/2025/10/idf_py_extension/) (34f658a2)
    • ESP-IDF v6.0 is upgrading to MbedTLS v4.x and the new PSA Crypto API. This work is still in progress, so upcoming beta(s) or RC releases may include further updates or breaking changes to crypto APIs.
    • Supported ESP32-P4 Version3 silicon

    Breaking Changes

    • Legacy drivers of ADC, DAC, I2S, Timer Group, PCNT, MCPWM, RMT, Temperature Sensor peripherals were removed
    • Application Utilities: The wifi_provisioning component is moved out of ESP-IDF and renamed to network_provisioning into external component https://github.com/espressif/idf-extra-components/tree/master/network_provisioning. The provisioning example and python provisioning tool are also moved to the new component directory. (105a64ab)
    • Application Utilities/CJSON: Move cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (269acda5)
    • Application Utilities/Provisioning: disable protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc4528)
    • Application Utilities/Provisioning: Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c22421)
    • Bootloader: Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfea)
    • Bootloader: Removed option for compiling bootloader with no optimization level (-O0, CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE). For debugging purposes, it is recommended to use the -Og (CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG) optimization level instead. (dea84337)
    • Build & Config: Default warnings are now considered as errors by default. This can be disabled by setting CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y (6efd36f4)
    • Build & Config: Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace35)
    • Build & Config: Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b90)
    • Build & Config: Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b90)
    • Build & Config: Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff13)
    • Build & Config: The binary generation target gen_signed_project_binary is no longer available as the build system drops the need for this target. (c8f68c72)
    • Build & Config: The binary generation gen_project_binary is now created during the __idf_build_binary() function invocation by the build system. Components, declaring dependency on this target could have build errors. For post-elf processing, the new idf_build_add_post_elf_dependenciy() must be used. (c8f68c72)
    • Build & Config: Global Cmake variables presented by the esptool_py viz., ESPTOOLPY, ESPSECUREPY, ESPEFUSEPY and ESPMONITOR are no longer available. These must be accessed via the idf_component_get_property() function. (c8f68c72)
    • Build & Config: The internal target variable, ${elf} is removed. Custom targets that need to add dependencies on the project elf must fetch the executable by querying the EXECUTABLE build property like idf_build_get_property(elf EXECUTABLE). (c8f68c72)
    • Build & Config: Components adding target dependencies on the encrypted-flash target unconditionally is not allowed any more. Such dependencies can only be done if CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT is enabled. (c8f68c72)
    • Build & Config: The build process may fail during linking if orphan sections are present. This can be resolved by removing custom section declarations or by explicitly placing orphan sections using linker fragment file. (a319aa90)
    • Classic Bluetooth/Bluedroid: esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735d)
    • Classic Bluetooth/Bluedroid: esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735d)
    • Classic Bluetooth/Bluedroid: esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735d)
    • Classic Bluetooth/Bluedroid: esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735d)
    • Core System: Removed deprecated STATUS enum from ets_sys.h, use ETS_STATUS instead. (166269fb)
    • Core System: The header esp_vfs_cdcacm.h has been moved to the new component esp_usb_cdc_rom_console, you will now have to add an explicit REQUIRES for esp_usb_cdc_rom_console if using any functions from this header. (1f0152dd)
    • Core System: Ring buffer functions are now placed in flash memory by default to save IRAM space. CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH Kconfig option has been removed. (11b80a7f)
    • Core System/ESP Event: Removed unnecessary freertos header includes, if your code relied on this implicit include from esp_event.h then please add the correct explicit includes, freertos/queue.h" and freertos/semphr.h to your files. (cb36cd3a)
    • Core System/Heap: MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see https://github.com/espressif/esp-idf/issues/14837) (75305c27)
    • Core System/Interrupts: Removed deprecated intr_types.h header, update to use esp_intr_types.h instead (365c8a3c)
    • Core System/Log: The following deprecated APIs have been removed: esp_log_buffer_hex(), esp_log_buffer_char(). (659ae57c)
    • Core System/Log: The following deprecated headers have been removed: esp_log_internal.h. (659ae57c)
    • Core System/Newlib: COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'. Default behavior is now to not evaluate expressions inside assert(X) when NDEBUG is set, which confirms to the C standard. (https://github.com/espressif/esp-idf/issues/2758) (33f92c8f)
    • Debugging/Apptrace: Removed destination parameter from all apptrace APIs. (8ee473d0)
    • Debugging/Apptrace: Changed the way apptrace is configured. Applications must implement esp_apptrace_get_init_params to provide app_trace parameters to the components (8ee473d0)
    • Debugging/Apptrace: Changed SystemView trace data destination configuration. Now it is controlled by the same configuration as the apptrace destination. It will not have its own destination configuration. (8ee473d0)
    • Debugging/Apptrace: Refactored apptrace UART related menuconfig options. CONFIG_APPTRACE_DEST_UARTx options are removed and CONFIG_APPTRACE_DEST_UART is added to keep the port number. (9f38fa1b)
    • Debugging/Apptrace: Moved gcov component out of the IDF and is now available in the ESP Component Registry as esp-gcov (5ac81c17)
    • Debugging/Apptrace: Deprecated ESP_APPTRACE_DEST_TRAX. Now it is replaced with ESP_APPTRACE_DEST_JTAG (fb3e6167)
    • Debugging/Apptrace: Changed esp_apptrace_down_buffer_config(). Now it requires esp_apptrace_dest_t dest as first parameter for API consistency. (fb3e6167)
    • Debugging/Apptrace: Removed CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX configuration option. (a0837666)
    • Debugging/Core Dump: Dropped CRC32 checksum support. Only SHA256 checksum is now used. (521f3e39)
    • Debugging/Core Dump: Dropped binary format support. Only ELF format is now supported. (521f3e39)
    • Debugging/Core Dump: Changed function esp_core_dump_partition_and_size_get(). Now it returns ESP_ERR_NOT_FOUND for blank partitions instead of ESP_ERR_INVALID_SIZE (https://github.com/espressif/esp-idf/issues/15153) (521f3e39)
    • Ethernet: Removed and migrated 3rd party Ethernet drivers outside of ESP-IDF. Add the related driver from component manager to use it. (61aaaf3a)
    • Ethernet: Removed RMII CLK Kconfig option for esp_eth component, use config structure to set this parameter. (bc421db4)
    • Ethernet: The esp_eth_phy_802_3_reset_hw API accepts only one parameter and resets the Ethernet PHY with internal timing configuration defined during initialization. (7a35466d)
    • FreeRTOS: Removed support for the user defined vPortCleanUpTCB() and the associated Kconfig option CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP. (75619d8e)
    • FreeRTOS: FreeRTOS functions are now placed in flash memory by default to save IRAM space. CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH Kconfig option has been removed. (11b80a7f)
    • FreeRTOS: The compatibility function xQueueGenericReceive() has been removed. Use xQueueReceive(), xQueuePeek(), or xQueueSemaphoreTake() as per your usecase. (3ef41363)
    • FreeRTOS: The compatibility function vTaskDelayUntil() has been removed. Use the function xTaskDelayUntil() instead. (3ef41363)
    • FreeRTOS: The compatibility function ulTaskNotifyTake() has been removed. Use the macro ulTaskNotifyTake() instead. (3ef41363)
    • FreeRTOS: The compatibility function xTaskNotifyWait() has been removed. Use the macro xTaskNotifyWait() instead. (3ef41363)
    • FreeRTOS: The following deprecated APIs have been removed: xTaskGetAffinity(), xTaskGetIdleTaskHandleForCPU(), xTaskGetCurrentTaskHandleForCPU(). (46160b0f)
    • LWIP/DHCP Server: The LWIP_DHCPS_ADD_DNS macro was removed. Applications must now enable DNS option in DHCP offers with esp_netif_dhcps_option() and configure DNS servers explicitly using esp_netif_set_dns_info(). (57013ba4)
    • LWIP/ESP Netif: Removes option to disable error return in esp netif receive function (3d5c2efb)
    • LWIP/ESP Netif: Deprecated API esp_netif_next() was removed. Users are suggested to iterate over interfaces using esp_netif_tcpip_exec(), or use esp_netif_find_if(). (ba0b61d9)
    • Peripheral Drivers: The periph_module_t enum type is refactored into shared_periph_module_t and only the modules that have multiple independent functions are kept. (f348a101)
    • Peripheral Drivers: Removed unnecessary dependencies for the driver component (22a0f9ae)
    • Peripheral Drivers: The driver/periph_ctrl.h and driver/rtc_cntl.h header files are removed. Please use esp_private/periph_ctrl.h and esp_private/rtc_ctrl.h instead. (e3190c63)
    • Peripheral Drivers: The io_loop_back config option is removed for all drivers, different peripheral drivers can still share the same GPIO number without having it. (1fa420ef)
    • Peripheral Drivers/ADC: Legacy ADC driver and legacy ADC calibration driver have been removed (807cbbf2)
    • Peripheral Drivers/DAC: The legacy DAC driver is removed. (d4455368)
    • Peripheral Drivers/DMA: The esp_dma_capable_malloc and esp_dma_capable_calloc functions are removed. The GDMA_ISR_IRAM_SAFE Kconfig option is removed. (3e09d4f2)
    • Peripheral Drivers/GPIO: Removed gpio_iomux_in, gpio_iomux_out public APIs. Please use gpio_iomux_input, gpio_iomux_output in esp_private/gpio.h if neccessary. (2fb938c7)
    • Peripheral Drivers/GPTimer: The legacy timer group driver is removed. (3b504812)
    • Peripheral Drivers/I2C: Legacy I2C driver (driver/i2c.h) is end-of-life and compile warning is added. (bb802914)
    • Peripheral Drivers/I2C: I2C slave version one driver is removed (456ae964)
    • Peripheral Drivers/I2C/I2C Master: I2C master transaction now will report ESP_ERR_INVALID_RESPONSE when NACK is detected. (6af87b62)
    • Peripheral Drivers/I2S: Removed 'i2s_port_t' type and use 'int' type instead. (726a4304)
    • Peripheral Drivers/I2S: The legacy I2S driver is removed. (e71e7552)
    • Peripheral Drivers/LCD: The NT35510 LCD device driver has been moved out of ESP-IDF and is now hosted in the Component Registry. (4589f33c)
    • Peripheral Drivers/LCD: Dropped the support of the legacy I2C master driver in the esp_lcd component (9cee386a)
    • Peripheral Drivers/LCD: The GPIO number type in the LCD driver has been changed from int to the more type-safe gpio_num_t. (6ea0fa1a)
    • Peripheral Drivers/LCD: The color_space and rgb_endian configuration options in the esp_lcd_panel_dev_config_t structure is replaced by the rgb_ele_order member, which sets the RGB element order. (6ea0fa1a)
    • Peripheral Drivers/LEDC: Removed LEDC_USE_RTC8M_CLK macro (e94d9cee)
    • Peripheral Drivers/LEDC: Removed ledc_timer_set API, and LEDC_APB_CLK_HZ, LEDC_REF_CLK_HZ macros (3fdb4731)
    • Peripheral Drivers/LEDC: esp_driver_gpio no longer is the public required component for esp_driver_ledc (3fdb4731)
    • Peripheral Drivers/MCPWM: Removed variadic generator APIs mcpwm_generator_set_actions_on_xxx (4e62b0e4)
    • Peripheral Drivers/MCPWM: The legacy MCPWM driver is removed. (0972e9d2)
    • Peripheral Drivers/MCPWM: Changed the default MCPWM group clock prescaler to 1 so that we can achieve a higher resolution. (https://github.com/espressif/esp-idf/issues/14815) (904d9526)
    • Peripheral Drivers/MCPWM: The io_od_mode member in the mcpwm_generator_config_t configuration structure has been removed. (1fa420ef)
    • Peripheral Drivers/PCNT: The legacy PCNT driver is removed. (81bb6a05)
    • Peripheral Drivers/RMT: The legacy RMT driver is removed. (9dc9d7de)
    • Peripheral Drivers/RMT: The io_od_mode member in the rmt_tx_channel_config_t configuration structure has been removed. (1fa420ef)
    • Peripheral Drivers/SDM: The legacy SDM driver is removed. (d6894a17)
    • Peripheral Drivers/SD_HOST/SDMMC: Changed public requirement to esp_driver_gpio to private requirement (dfe8ee58)
    • Peripheral Drivers/SD_HOST/SDMMC: Removed deprecated API esp_vfs_fat_sdmmc_unmount (a4c03ceb)
    • Peripheral Drivers/SD_HOST/SDMMC: The get_dma_info member in the sdmmc_host_t structure, as well as the sdspi_host_get_dma_info and sdmmc_host_get_dma_info functions, are removed. (3e09d4f2)
    • Peripheral Drivers/SPI: Removed deprecated HSPI and VSPI related IOMUX pin macros on ESP32 and ESP32S2 (a4c03ceb)
    • Peripheral Drivers/SPI Flash: Removed deprecated enum esp_flash_speed_t (a4c03ceb)
    • Peripheral Drivers/SPI Flash: Removed deprecated API spi_flash_reset_counters, spi_flash_dump_counters and spi_flash_get_counters (a4c03ceb)
    • Peripheral Drivers/SPI Flash Removed deprecated header file esp_spi_flash.h (a4c03ceb)
    • Peripheral Drivers/Temperature Sensor: The legacy temperature sensor driver is removed. (f4a45a30)
    • Peripheral Drivers/Touch Element: The component 'touch_element' in 'esp-idf' is moved to managed component (see https://components.espressif.com/components/espressif/touch_element/versions/1.0.0/readme). (be099ca8)
    • Peripheral Drivers/Touch Element: Touch Element Library is moved to managed component (https://components.espressif.com/components/espressif/touch_element/versions/1.0.0/readme). (be099ca8)
    • Peripheral Drivers/Touch Sensor: The dependencies of legacy touch sensor driver are removed from ULP touch driver, now you need to use int instead of touch_pad_t to express the touch channel ID. (30d0eded)
    • Peripheral Drivers/Touch Sensor: Removed touch_sensor_sample_config_t::bypass_shield_output on ESP32-P4, it is not supported any more. (ac24f96a)
    • Peripheral Drivers/Touch Sensor: Adjust touch channel number on P4 from 0-13 to 1-14. (c1666c80)
    • Peripheral Drivers/UART: The esp_rom_uart.h is deprecated and replaced by esp_rom_serial_output.h (ce92b0ab)
    • Peripheral Drivers/USB: Removed deprecated pin mappings for external USB PHY (1bbf04cb)
    • Peripheral Drivers/USB/USB Host: Remove usb component from esp-idf (4dc77d19)
    • Security/MbedTLS: Starting from ESP-IDF v5.5, there is a change in how the SHA sub-function APIs, esp_sha_block() and esp_sha_dma(), are used. Previously, these APIs used to set the SHA mode internally, however, in the updated version, you must explicitly set the SHA mode before invoking them. For instance, if you intend to use the SHA-256 algorithm, you must first call esp_sha_set_mode() with the argument SHA2_256. (8d0527d7)
    • Security/MbedTLS: Starting with ESP-IDF v6.0, all deprecated CA certificates have been removed from the mbedTLS certificate bundle. As a result, any firmware built with ESP-IDF v6.0 may fail to connect to endpoints that rely on these removed certificates. Thus, before upgrading deployed devices to firmware built with v6.0, thoroughly test all connectivity endpoints to ensure compatibility and avoid connection failures. (e05390f3)
    • Security/NVS Encryption: If Flash encryption is enabled on SoCs with the HMAC peripheral (SOC_HMAC_SUPPORTED) and NVS encryption is also enabled, the HMAC-based scheme will be selected by default instead of the Flash encryption scheme. (649741fa)
    • Storage/FATFS: Functions esp_vfs_fat_sdmmc_mount and esp_vfs_fat_sdspi_mount now return ESP_ERR_INVALID_ARG if any of the arguments are missing. (94083867)
    • Storage/VFS: Removed deprecated UART and UART-JTAG-serial API from vfs component, these APIs can still be found in the respective driver components. (fb79d920)
    • System Hardware: For ESP32-C6, the option to use RC32K clock as the RTC slow clock source has been completely removed (RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED, RTC_CLK_SRC_INT_RC32K) (e94d9cee)
    • System Hardware: Removed deprecated headers: {IDF_TARGET}/rtc.h and soc_memory_types.h. from esp_hw_support component. These headers are replaced by esp_rtc_time.h and esp_memory_utils.h respectively. (39d22252)
    • System Hardware/Memory Layout: Removed RTC_ related memory attributes on chips which do not support RTC memory (ba7d2447)
    • System Hardware/PSRAM: Removed deprecated header file esp_spiram.h (a4c03ceb)
    • Toolchain: Updated MacOS-x86_64 toolchain minimum OS version from 10.8 to 10.12 (released on September 20, 2016) (0223bfe5)
    • Tools: Removed old copy of Catch2 (catch). Catch2 is still available as a ESP-IDF component at ESP component registry. (392226b3)
    • Tools: Removed the legacy unit-test-app. It can still be found at the Component Registry (ab2829d6)
    • Tools: The minimal supported CMake version was upgraded from 3.16 to 3.22 (c43d3111)
    • Tools: Updated the minimal supported Python version to 3.10 (138336b9)
    • Tools: Autodetection was removed from idf.py efuse* commands in order to prevent accidental use of the wrong port (adbec6ed)
    • Tools: ESP-IDF no longer automates installation of gdbgui. idf.py gdbgui command can still be used, provided that the gdbgui tool is installed manually. (5799f556)
    • WI-FI: The function esp_rrm_send_neighbor_rep_request has been removed. Use esp_rrm_send_neighbor_report_request instead. (bdd8d257)
    • WI-FI: The functions esp_wifi_set_ant_gpio, esp_wifi_get_ant_gpio, esp_wifi_set_ant, and esp_wifi_get_ant have been removed. Please use the equivalent functions from the esp_phy component: esp_phy_set_ant_gpio, esp_phy_get_ant_gpio, esp_phy_set_ant, and esp_phy_get_ant. (bdd8d257)
    • WI-FI: The authentication modes WIFI_AUTH_WPA3_EXT_PSK and WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE have been removed. Use WIFI_AUTH_WPA3_PSK instead. (bdd8d257)
    • WI-FI: In the wifi_event_neighbor_report_t structure, the report field has been removed. Please use the n_report field instead, which is a flexible array member. (bdd8d257)
    • WI-FI: The function esp_wifi_config_espnow_rate has been removed. Use esp_now_set_peer_rate_config instead. (bdd8d257)
    • WI-FI: The header file components/esp_wifi/include/esp_interface.h has been removed. The wifi_interface_t enum is now defined in components/esp_wifi/include/esp_wifi_types_generic.h. The enum values (e.g., WIFI_IF_STA, WIFI_IF_AP) are no longer defined based on ESP_IF_WIFI_STA, ESP_IF_WIFI_AP, etc. (bdd8d257)
    • WI-FI: Field svc_info from structures wifi_nan_publish_cfg_t, wifi_nan_subscribe_cfg_t, wifi_nan_followup_params_t, wifi_event_ndp_indication_t, wifi_event_ndp_confirm_t has been removed. Please use the equivalent fields ssi and ssi_len instead. (bdd8d257)
    • WI-FI: Field peer_svc_info from structure wifi_event_nan_receive_t has been removed. Please use the equivalent fields ssi and ssi_len instead. (bdd8d257)
    • WI-FI: The function argument ndp_resp_needed of esp_wifi_nan_publish_service has been moved to structure wifi_nan_publish_cfg_t. (bdd8d257)
    • WI-FI: Field use_get_report_api from structure wifi_ftm_initiator_cfg_t and field ftm_report_data from structure wifi_event_ftm_report_t has been removed. Please use esp_wifi_ftm_get_report to fetch raw FTM report data instead. (bdd8d257)
    • WI-FI: The function esp_wifi_wps_start no longer accepts a timeout_ms argument. It should now be called as esp_wifi_wps_start(void). (bdd8d257)
    • WI-FI: The DPP event callback esp_supp_dpp_event_cb_t and event enum esp_supp_dpp_event_t have been removed. Please use Wi-Fi events directly (e.g., WIFI_EVENT_DPP_URI_READY, WIFI_EVENT_DPP_CFG_RECVD, WIFI_EVENT_DPP_FAILED). The function esp_supp_dpp_init no longer accepts a callback and should be called as esp_supp_dpp_init(void). (bdd8d257)
    • WI-FI: Added second channel field in wifi_action_tx_req_t structure. (44a66c75)

    Known Issues

    • For ESP32-C5, under coexistence mode with modem state enabled, calling get_regdma_intr_raw_signal occasionally (with a low probability) causes a task watchdog timeout.
    • For ESP32-C61, an occasional MIC error may occur during the Bluetooth LE encryption procedure.

    Changelog

    This is the list of changes since release v5.5.

    15.4

    Thread

    • Added APIs to start or stop the OpenThread stack (29d8fbe8)
    • Updated the OpenThread examples to use the new APIs (29d8fbe8)
    • Updated OpenThread examples to use esp_console. The ot prefix is required when running OpenThread CLI commands. (29d8fbe8)
    • Updated openthread submodule (3b3dd203) (2f4c63b1)
    • Fixed an issue with source address selection during network switching (aca957cf)
    • Use the ML-EID address for self-hosted services if OMR address is not preferred (e5d11d11)
    • Supported RCP over USB Serial JTAG interface (611176d8)
    • Handled MeshCoP mDNS service in state change callback (c9762032)
    • Updated openthread submodule (b945928) (c9762032)
    • Improved TREL message reception (ba2b0fd4)
    • Introduced a new API to register the console based openthread CLI command (5590a741)
    • Added a function to exit openthread main loop safely (1bb75b2f)
    • Added Thread network setup instruction for sntp example (016e8367)

    Application Utilities

    App Update

    • Fixed OTA failure when using partial download with AWS signed URL restricted to GET requests. Additionally, added a new API to get content-range from the HTTP response. (5aff8a9d)
    • Revised logic to always update non-running otadata at the time of setting ota boot partition (https://github.com/espressif/esp-idf/issues/14688) (be89fa36)

    CJSON

    ESP HTTP Client

    ESP HTTP Server

    ESP HTTPS OTA

    • Fixed partial download OTA to work on a single persistent connection rather than sending every range request on individual subsequent connections (92d4e3af)
    • Fix that ensures the data written during OTA updates is properly aligned to 16 bytes when flash encryption is enabled (20098cb7)

    ESP HTTPS Server

    Provisioning

    • disable protocomm security version 0 and 1 by default (f0cc4528)
    • disable protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc4528)
    • Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c22421)

    BLE

    • Fixed uninitialized return code in BLE Get Started - NimBLE examples (07d9bb90)
    • Added support for ESP32C61 revision v1.0 (22ae9722)
    • Removed support for ESP32C61 revision v0.2 (22ae9722)
    • Add Bluetooth LE CTE connless AoA/AoD example. (23d71fec)

    BluFi

    • Added an API to start advertising with specified name. (5152593a)

    Bluedroid

    • Fixed a memory leak during deinitialization when the service table was created but not started (7a20f719)
    • Fixed crash when deinitializing or disabling host during scanning (d822e9bb)
    • Added an API to set channel map for scanning or initiating. (76b28d82)
    • Fixed the status setting in the HCI event. (3216dfa3)
    • Fixed potential out-of-bounds memory access when resolving advertising data (c6923d2a)
    • Added BLE multiple connections examples. (fbea0c64)
    • Fixed the connection count limit in multi-connection. (fbea0c64)
    • Adjusted L2CAP round robin msg send strategy. (fbea0c64)
    • Supported multi-connection optimization vendor HCI command. (fbea0c64)
    • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (a3146c7b)
    • Fixed issue that caused failure in "BTM_GetSecurityFlags" (a8d3b480)
    • Fixed incorrect update of resolving_list_avail_size (a8d3b480)
    • Fixed issue where resolving list was not updated after the oldest device was removed (a8d3b480)
    • Fixed failure to disconnect when device record is cleared (a8d3b480)
    • Fixed build failure when some BLE features are disabled (09046275)
    • Support BLE vendor hci event reporting with corresponding parameters. (85d74cdd)
    • Support anonymous address type for white list. (a4fcd067)
    • Fixed extended advertising restart failure during reconnection. (a172dac0)
    • Fixed BLE SMP state machine inconsistency on disconnection (7d257229)
    • Fixed null pointer assert in l2c_link_check_send_pkts (f51c769d)
    • Fixed issue with deleting link key when classic Bluetooth is not used. (c91a8976)
    • Fixed validation logic for BLE GAP appearance configuration. (617d215f)
    • Increased maximum attribute value length to 517 to prevent data loss. (617d215f)

    Controller

    • Fixed occasional memory leaks in multi-connection scenarios on ESP32-H2 and ESP32-C6. (9fe51958)
    • Fixed an occasional MIC failure issue in Start Encryption procedure for ESP32-C2. (9fe51958)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2. (a3b8073d)
    • Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (a3b8073d)
    • Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (a3b8073d)
    • Supported the PAwR feature on ESP32-C6, ESP32-H2, ESP32-C61 and ESP32-C5. (e31611d6)
    • Improved security when receiving a connection request PDU with an invalid Access Address on ESP32n request PDU with an invalid Access Address on ESP32 (5540a8c8)
    • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32. (d26f2804)
    • Fixed priority setting for BLE events on ESP32. (d26f2804)
    • Fixed disconnection issue when coexisting with other BLE events on ESP32. (d26f2804)
    • Fixed crash due to bandwidth full when updating connection params on ESP32. (d26f2804)
    • Supported multiple connection optimization vendor HCI command on ESP32. (d26f2804)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (652fe76d)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (652fe76d)
    • Fixed BLE anonymous extended advertising filtering on ESP32-C3 and ESP32-S3. (652fe76d)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (652fe76d)
    • Optimized check Access Address when receive connection request PDU on ESP32 (63f7d7ea)
    • Fixed an occasional sync lost issue on ESP32-C6, ESP32-H2 and ESP32-C5. (5b11d5b2)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (5b11d5b2)
    • Fixed an occasional assertion issue during sync on ESP32-C6, ESP32-H2 and ESP32-C5. (dad2c533)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6, ESP32-H2 and ESP32-C5. (dad2c533)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (f1dd6da8)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6, ESP32-H2 and ESP32-C5. (71da5481)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6, ESP32-H2 and ESP32-C5. (71da5481)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6, ESP32-H2 and ESP32-C5. (71da5481)
    • Fixed an occasional assertion issue during scanning on ESP32-C6. (71da5481)
    • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (6897f906)
    • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/15789) (e178a09d)
    • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (b452748e)
    • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (b452748e)
    • Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (b452748e)
    • Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (b452748e)

    Documentation

    • Updated ESP-Nimble SIG qualification version to core specification 6.1. (51d5e8fd)
    • Added Bluetooth LE 6.0 features support status. (6588b008)

    Mesh

    • Support Device Firmware Update. (d5086b36)
    • Support for BLE 5.0 Extended Advertising in ESP-BLE Mesh communication (53249ade)

    NimBLE

    • Fix array overflow caused by invalid connection handle indexing (7ae7dcd1)
    • Added support for Channel Sounding host functionality. (03dd5e31)
    • Use nimble platform mem malloc / free APIs (7c1700b0)
    • Added support to consider mbuf of different size during copying (448b5c08)
    • Update HCI log functions to use uint16_t for data length (f8935f87)
    • Rearrange NimBLE menuconfig options (7a876031)
    • Handled adv ext data setting in reattempt adv (9ba0b373)
    • Add indicate / notification code under correct flags [ Closes https://github.com/espressif/esp-idf/issues/16769 ] (b7226154)
    • Fixed incorrect HCI status in connect event (d84d8ab1)
    • Updated reattempt count handling for periodic adv (d1b3fd17)
    • Restructured table of README.md file of bleprph and blecent (7ef32150)
    • Add connection failure event when connection fails (4dd26947)
    • Added helper api's in nimble. (a3808c92)
    • ISO minor support for NimBLE Host (74bb9f65)
    • Update ble_gatts_show_local to show CPFDs and CAFDs. (92c125d1)
    • Fix include service definition handle being the same for all definitions. (92c125d1)
    • Added VSC for Set Scan Channel Bitmap (4f84ba0a)
    • Fix for attribute count mismatch between cached gatt db and actual db (6fbc17c9)
    • Update count parameter correctly by considering offset. (6fbc17c9)
    • Fixed compilation issue due to BLE_GATTS flag (aa1c21fa)
    • Clear GATT service entries counter upon GATT deinit (d1ea4520)
    • Add timestamp information to HCI logging. (635169fd)
    • Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234 ] (2a1a76d6)
    • Add ble_ancs example to build-test-rules configuration file. (f03521b4)
    • Fix compilation issues when gatt caching is enabled in peripheral only mode (dffb03f0)
    • Add a missing instance of ble_hs_unlock() in a corner case. (90b88aff)
    • Added parameter in peer_init() to allocate memory for included services (304b561f)
    • Automatically initiate security and retry service request if service request fails due to insufficient security. (06995076)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (06995076)
    • Wrap BLE service API with extern "C" (5beacd1a)
    • Fix compilation issue when CSFCS is set to 0. (5beacd1a)
    • fix(nimble): Fixed issue of Adv report not observed in PAwR example. (beb6d79f)
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (52a6290c)
    • Handle memory leak due to missing mempool_deinit call (adcbdd7d)
    • Add Support for Apple Notification Center Service (ANCS) in NimBLE (2209a6c0)
    • Add chip dependancy flag for Flow control feature (ebd4caf3)
    • Added new Gattc + Gatts BLE coex example for nimble ( https://github.com/espressif/esp-idf/issues/12755) (925b5632)
    • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (644e38fb)
    • Provide support for anonymous address type for whitelist (01520e84)
    • Added a configurable option to select ext adv v2 command (01520e84)
    • Added fix for an async race condition with HCI outstanding packets counter (01520e84)
    • Fixed UUID type error in GATT caching API to search for included services. (c9bab9e0)
    • Added api's to fetch gatt cache info (764d722b)

    Bluetooth Common

    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) (b9223522)
    • Fixed the issue that unfixed core tasks may register or trigger software interrupts of the wrong core when calling the Bluetooth interface on ESP32 (a23fad19)

    Bootloader

    • Renamed linker file 'bootloader.ld' to 'bootloader.ld.in' (0367cfea)
    • Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfea)
    • Removed option for compiling bootloader with no optimization level (-O0, CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE). For debugging purposes, it is recommended to use the -Og (CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG) optimization level instead. (dea84337)
    • Added support for secondary bootloader on C5 and C6. Allowing for safe OTA updates of the bootloader. (e603f4ec)

    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) (d816c3fb)
    • Deprecated options are now correctly evaluated in linker fragment files (78329850)
    • Added zc* extensions build options for ESP32P4 (rev >= 3.0) (e0b69349)
    • Fixed build error for esp_ds peripheral with clang O2 optimisation (https://github.com/espressif/esp-idf/pull/17582) (5cf6b6d3)
    • Default warnings are now considered as errors by default. This can be disabled by setting CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y (6efd36f4)
    • Added zc* extensions build options for ESP32C5, ESP32C61 and ESP32H4 (22cae61e)
    • Added COMPILER_CXX_GLIBCXX_CONSTEXPR choice option to reduce C++ applications binary size (https://github.com/espressif/crosstool-NG/issues/67) (f3dba4f7)
    • Produced Cmake warnings if a component includes or builds from another component (746acf46)
    • Changed name of component newlib to esp_libc (0d101580)
    • Removed inclusion of <dirent.h> when <sys/dirent.h> is included (0a7ace35)
    • Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace35)
    • Added -mtune=esp-base option for RISC-V targets to improve size and performance for memcpy inlining (620d1cb5)
    • Created build system hooks for post-ELF file processing (https://github.com/espressif/esp-idf/issues/17251) (5eb8e746)
    • Fixed evaluation of dependencies based on Kconfig options in idf_component.yml files (b111672f)
    • Fixed an issue where optional Kconfig dependencies were not evaluated correctly unless idf.py reconfigure was run twice (de098b9a)
    • Reduced binary size for size-optimized xtensa builds by adding -mno-target-align compile option (https://github.com/espressif/esp-idf/pull/15677) (c433a763)
    • Enabled LIBC_OPTIMIZED_MISALIGNED_ACCESS by default (177dee61)
    • Upgraded default C standard to gnu23 (03855b90)
    • Upgraded default C++ standard to gnu++26 (03855b90)
    • Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b90)
    • Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b90)
    • Changed add_prebuilt_library function to create GLOBAL targets (a939f410)
    • Fixed the issue that linker fragments couldn't specify placements of symbols from prebuilt libraries (a939f410)
    • Switched to using __libc_init_array() instead of non-standard init_array() (44aeff13)
    • Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff13)
    • Added .preinit_array section to ELF to support C++ and sanitizer features (44aeff13)
    • The binary generation target gen_signed_project_binary is no longer available as the build system drops the need for this target. (c8f68c72)
    • The binary generation gen_project_binary is now created during the __idf_build_binary() function invocation by the build system. Components, declaring dependency on this target could have build errors. For post-elf processing, the new idf_build_add_post_elf_dependenciy() must be used. (c8f68c72)
    • Global Cmake variables presented by the esptool_py viz., ESPTOOLPY, ESPSECUREPY, ESPEFUSEPY and ESPMONITOR are no longer available. These must be accessed via the idf_component_get_property() function. (c8f68c72)
    • Updated esptool_py component to be an idempotent component in the build (c8f68c72)
    • The internal target variable, ${elf} is removed. Custom targets that need to add dependencies on the project elf must fetch the executable by querying the EXECUTABLE build property like idf_build_get_property(elf EXECUTABLE). (c8f68c72)
    • Components adding target dependencies on the encrypted-flash target unconditionally is not allowed any more. Such dependencies can only be done if CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT is enabled. (c8f68c72)
    • Changed default linker orphan section handling from warning to error (a319aa90)
    • The build process may fail during linking if orphan sections are present. This can be resolved by removing custom section declarations or by explicitly placing orphan sections using linker fragment file. (a319aa90)
    • Added support for conditional dependencies in idf_component.yml which depend on Kconfig option values (efcb8a5a)
    • Misspelled Kconfig[.projbuild] files are now detected by the build system (https://github.com/espressif/esp-idf-kconfig/issues/14) (47d20da4)

    Classic Bluetooth

    Bluedroid

    • Fixed the issue that HFP AG not report audio data to application when using external codec (b9223522)
    • fix(bt/bluedroid): Fix the boundary conditions when checking EIR data (3e0545f2)
    • Removed the code relying on compiler-specific extension for FAM in union (bdda8300)
    • Fixed potential buffer overflow vulnerability in Bluedroid (bf695d08)
    • esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735d)
    • esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735d)
    • esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735d)
    • esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735d)
    • fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (892ec6a1)
    • Fixed a description error in the classic Bluetooth GAP header file (19796461)
    • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (706b7c86)
    • Fixed AVRCP build issue when Cover Art feature is disabled (https://github.com/espressif/esp-idf/issues/16155) (4e8ad766)
    • Fixed HFP AG data callback gets mistakenly cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (cca744cd)
    • Added AVRCP callback event for notification of profile ON/OFF state (61771152)
    • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (fb6693c7)

    Controller

    • Removed the assertion when new acl data packet is sent to controller while previous data transmission is not finished on ESP32 (1904fd4d)
    • Fixed that peripheral does not authenticate agaist peer device when the first request was rejected on ESP32 (549a7272)
    • Fixed the errors that SCO frame scheduling is not stopped fter the base ACL link has been released on ESP32 (549a7272)
    • Fixed the out of sync of data buffers between software and hardware on ESP32 (549a7272)
    • Fixed the issue where modifying the btdm_pwr_state value would cause phy_disable to be called twice on ESP32 (549a7272)
    • Fixed the issue that sniff anchor point are mismatched between Central and Peripheral on ESP32 which prevented them from receiving peer packets. (c4a25116)
    • Fixed missing of HCI event upon canceling truncated page procedure on ESP32 (f82e101d)
    • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key on ESP32 (f82e101d)
    • Ignored the reception of LMP_DETACH PDU during detach process on ESP32 (f82e101d)
    • Fixed possible access to NULL pointers on ESP32 (f82e101d)
    • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (19796461)
    • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (19796461)
    • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT on repairing of the acceptor size on ESP32 (19796461)
    • Fixed that Tx descriptor for FHS packet in page procedure may becomes empty after handshake failure on ESP32 (19796461)
    • Fixed the incorrect unit of clock in CPB Rx event on ESP32 (8bca0ba4)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (c4bfb8ad)

    Coexistence

    • Added 802.15.4 status for internal coexistence (37322d4a)
    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (473f3169)

    Core System

    Console

    ESP Event

    • Removed unnecessary freertos header includes, if your code relied on this implicit include from esp_event.h then please add the correct explicit includes, freertos/queue.h" and freertos/semphr.h to your files. (cb36cd3a)

    ESP Timer

    Heap

    IPC

    • Allowed IPC recursion calls in esp_ipc_call (fdc32067)

    Interrupts

    • Removed deprecated intr_types.h header, update to use esp_intr_types.h instead (365c8a3c)

    Log

    • Optimized esp-idf components for binary logging usage (reducing image size) (b7da740f)
    • Fixed wrong year timestamp with LOG_TIMESTAMP_SOURCE_SYSTEM_FULL (https://github.com/espressif/esp-idf/issues/17451) (097f8a9f)
    • Removed deprecated functions and header file (659ae57c)
    • The following deprecated APIs have been removed: esp_log_buffer_hex(), esp_log_buffer_char(). (659ae57c)
    • The following deprecated headers have been removed: esp_log_internal.h. (659ae57c)
    • Fixed bin log config. It is available only for log version 2. (eb81a853)

    Newlib

    Panic handling

    Partition Table

    • Fixed partition table names must be only ASCII characters (9f6136d6)

    Pthread

    Watchdogs

    • Fixed Task watchdog not checking the return value from the interrupt allocator (f496b439)

    Debugging

    Apptrace

    • Removed destination parameter from all apptrace APIs. (8ee473d0)
    • Changed the way apptrace is configured. Applications must implement esp_apptrace_get_init_params to provide app_trace parameters to the components (8ee473d0)
    • Changed SystemView trace data destination configuration. Now it is controlled by the same configuration as the apptrace destination. It will not have its own destination configuration. (8ee473d0)
    • Refactored apptrace UART related menuconfig options. CONFIG_APPTRACE_DEST_UARTx options are removed and CONFIG_APPTRACE_DEST_UART is added to keep the port number. (9f38fa1b)
    • Moved gcov component out of the IDF and is now available in the ESP Component Registry as esp-gcov (5ac81c17)
    • Deprecated ESP_APPTRACE_DEST_TRAX. Now it is replaced with ESP_APPTRACE_DEST_JTAG (fb3e6167)
    • Changed esp_apptrace_down_buffer_config(). Now it requires esp_apptrace_dest_t dest as first parameter for API consistency. (fb3e6167)
    • Removed CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX configuration option. (a0837666)
    • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later. (52e88763)
    • Added CRC16 checksum of trace blocks to enable host-side data integrity verification. Strored in Xtensa perfmon register. (89adafa6)
    • Fixed deadlock on sysview start (b5303b5d)

    Core Dump

    GDB Stub

    • Added support for RISCV FPU and PIE registers (c7db2345)
    • Fixed segfault if registers changed not for running task (c7db2345)

    Documentation

    Ethernet

    • Removed and migrated 3rd party Ethernet drivers outside of ESP-IDF. Add the related driver from component manager to use it. (61aaaf3a)
    • Removed RMII CLK Kconfig option for esp_eth component, use config structure to set this parameter. (bc421db4)
    • The esp_eth_phy_802_3_reset_hw API accepts only one parameter and resets the Ethernet PHY with internal timing configuration defined during initialization. (7a35466d)
    • Added light sleep Ethernet retention for ESP32P4 (3fb1f9ad)
    • Added ioctl option to enable time stamping for all frame types (https://github.com/espressif/esp-idf/pull/16016) (48b37dd5)

    Examples

    • Removed references to components/ethernet_init to use managed ethernet_init component. (64df2867)

    FreeRTOS

    • The FreeRTOS port layer function xPortGetTickRateHz() has been deprecated and will be removed in the future. (25ffd0f1)
    • Removed support for the user defined vPortCleanUpTCB() and the associated Kconfig option CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP. (75619d8e)
    • Made task snapshot API public via freertos_debug.h. (df1e1c2b)
    • Fixed mistakenly stating that stack watermarks are reported in words, IDF reports these in bytes (2ca22098)
    • Fixed rv_xesppie registers save/restore on context switch (c7db2345)
    • FreeRTOS functions are now placed in flash memory by default to save IRAM space. CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH Kconfig option has been removed. (11b80a7f)
    • Added a Kconfig option CONFIG_FREERTOS_IN_IRAM to allow placement of FreeRTOS functions in IRAM. FreeRTOS functions are now placed in flash memory by default. (11b80a7f)
    • The compatibility function xQueueGenericReceive() has been removed. Use xQueueReceive(), xQueuePeek(), or xQueueSemaphoreTake() as per your usecase. (3ef41363)
    • The compatibility function vTaskDelayUntil() has been removed. Use the function xTaskDelayUntil() instead. (3ef41363)
    • The compatibility function ulTaskNotifyTake() has been removed. Use the macro ulTaskNotifyTake() instead. (3ef41363)
    • The compatibility function xTaskNotifyWait() has been removed. Use the macro xTaskNotifyWait() instead. (3ef41363)
    • The function pxTaskGetStackStart() is deprecated and a type safe version xTaskGetStackStart() has been added to idf_additions.h. (46160b0f)
    • The following deprecated APIs have been removed: xTaskGetAffinity(), xTaskGetIdleTaskHandleForCPU(), xTaskGetCurrentTaskHandleForCPU(). (46160b0f)
    • Changed vApplicationStackOverflowHook to be placed in flash when CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is enabled (6aeba187)

    IDF Additions

    LWIP

    DHCP

    • Fixed incorrect DHCP length calculation causes potential memory corruption for some longer options (ESP_NETIF_HOSTNAME_MAX_SIZE) (d9457b80)

    DHCP Server

    • The LWIP_DHCPS_ADD_DNS macro was removed. Applications must now enable DNS option in DHCP offers with esp_netif_dhcps_option() and configure DNS servers explicitly using esp_netif_set_dns_info(). (57013ba4)

    ESP Netif

    IPv6

    Low Power Features

    ULP

    LP Core

    • Added an API definition and implementation for the hardware mailbox (056c4042)
    • Added trap (exception) wake-up source for HP-CPU. If LP-Core trigger an exception it will now also wake-up the HP-Core from sleep with a trap wakeup cause. (0ac9dfbb)
    • 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. (b59b3665)
    • Fixed array-bound compile error for P4 when compiling with -Os (https://github.com/espressif/esp-idf/issues/17054) (5d98c901)
    • Updated the LP UART and LP I2C drivers to not enable interrupts but rather use raw interrupt registers to prevent the LP core from jumping to the default interrupt handler and aborting the LP core code. (a7e61220)

    ULP-RISC-V

    Networking

    Examples

    PHY

    Peripheral Drivers

    • The periph_module_t enum type is refactored into shared_periph_module_t and only the modules that have multiple independent functions are kept. (f348a101)
    • Removed unnecessary dependencies for the driver component (22a0f9ae)
    • The driver/periph_ctrl.h and driver/rtc_cntl.h header files are removed. Please use esp_private/periph_ctrl.h and esp_private/rtc_ctrl.h instead. (e3190c63)
    • The default console UART TX IO can now also be re-used as a signal input without interference from the drive of the console UART TX signal (https://github.com/espressif/esp-idf/issues/16764) (248c87ac)
    • The io_loop_back config option is removed for all drivers, different peripheral drivers can still share the same GPIO number without having it. (1fa420ef)
    • Call esp_pm APIs when only when CONFIG_PM_ENABLE is enabled, to save binary size (https://github.com/espressif/esp-idf/issues/15923) (8afb0fb9)
    • Deprecated periph_interrput_t and replaced it with periph_interrupt_t to fix the typo. (9c8ead5e)

    ADC

    Camera

    • Fixed DVP loss half frames error (37ba98d2)
    • Added a help function to allocate camera buffer (4e7bfc32)
    • Add power manage lock for esp_camera (a6c26c3e)

    DVP

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

    DAC

    • The legacy DAC driver is removed. (d4455368)

    DMA

    • Disallow burst sizes larger than 32 bytes when using DMA to access PSRAM on ESP32-C5 and ESP32-C61. (6e0dd058)
    • The esp_dma_capable_malloc and esp_dma_capable_calloc functions are removed. The GDMA_ISR_IRAM_SAFE Kconfig option is removed. (3e09d4f2)

    GPIO

    GPTimer

    • The legacy timer group driver is removed. (3b504812)

    H264

    • Added esp_h264 encoder and decoder example (3785a242)

    I2C

    I2C Master

    I2S

    ISP

    • Supported AWB module white balace gain configuration API and subwindow statitics API (53f96d85)
    • Supported Black Level Correction (BLC) driver on ESP32P4 REV3 (e13699a6)
    • Increased the valid hue depth from 256 levels to 360 levels in esp32p4 rev3 (2d9b6c11)

    JPEG

    • Changing color type definition from color structure to fourcc (06e5eeb4)
    • Added additional checks for JPEG markers to prevent potential exploitation of this vulnerability to attack ESP chips (5a14ccfe)
    • Support yuv444 yuv420 jpeg encoder format on esp32p4 revision 3 (e49093a2)
    • Fixed random black line appearance while jpeg decode (446e2fce)
    • Fixed wrong parameter in jpeg encoder memory sync which leads to cache error. (9b77416b)

    LCD

    • The underrun interrupt is supported on ESP32-P4 version 3.0 (a4806894)
    • The NT35510 LCD device driver has been moved out of ESP-IDF and is now hosted in the Component Registry. (4589f33c)
    • The MIPI DSI driver can draw bitmap of gray8 format on ESP32-P4 version 3.0 (f4c40f7e)
    • Dropped the support of the legacy I2C master driver in the esp_lcd component (9cee386a)
    • The GPIO number type in the LCD driver has been changed from int to the more type-safe gpio_num_t. (6ea0fa1a)
    • The color_space and rgb_endian configuration options in the esp_lcd_panel_dev_config_t structure is replaced by the rgb_ele_order member, which sets the RGB element order. (6ea0fa1a)
    • Reserved the GPIO used by RGB LCD in driver initialization and disconnect them from the LCD signals when deinitialize the driver (f071b546)
    • Corrected the hyperlink in README.md (https://github.com/espressif/esp-idf/issues/16389) (c7561dc4)

    LEDC

    MCPWM

    PARL_IO

    • Supported to set start/stop delay for valid signal on ESP32P4 V3.0 (a1f765b6)
    • Supported to append receive queue in the ISR context. (3750278c)
    • Supported to register buffer switched callback in loop transmission (ffebb321)
    • Supported PARLIO_TX with BitScrambler for mismatched input/output sizes on ESP32-C5 (https://github.com/espressif/esp-idf/issues/16122) (d6a4c374)
    • Expanded the upper limit of the buffer size that the Parallel IO can transmit in a single send on ESP32-C5 (f05d47c7)

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (22cfc7ef)
    • The legacy PCNT driver is removed. (81bb6a05)

    RMT

    SDM

    • Added sleep retention driver support, SDM module can be powered off during sleep and restored automatically after wakeup (ae221cb2)
    • The legacy SDM driver is removed. (d6894a17)

    SD_HOST

    • Supported UHS-I SDR104 (200MHz, 100MB/s) on ESP32P4 REV3 (4a383012)

    SDMMC

    • Changed public requirement to esp_driver_gpio to private requirement (dfe8ee58)
    • Added Kconfig option SDMMC_ENABLE_SDIO_SUPPORT to enable/disable SDIO specific steps in sdmmc_card_init (e2954eb3)
    • Removed deprecated API esp_vfs_fat_sdmmc_unmount (a4c03ceb)
    • Fixed sdmmc initialization issue caused by CMD52 CRC error (37733a87)
    • The get_dma_info member in the sdmmc_host_t structure, as well as the sdspi_host_get_dma_info and sdmmc_host_get_dma_info functions, are removed. (3e09d4f2)
    • Fixed multiple definitions of SD Card example pins issue in project Kconfig file (30f98140)
    • Fixed all pins need to be set issue when using slot0 on ESP32P4 (30f98140)
    • Introduced SD Host (SDMMC) new driver in driver/sd_host.h and driver/sd_host_sdmmc.h (b1999b5c)

    SDSPI

    SPI

    SPI Slave

    SPI Flash

    • Fixed the cache map 32M flash failed on esp32c5 (79cc42a9)
    • Fixed cpu start failed when log functions are put in flash on esp32c5 (92b90afa)
    • Removed deprecated enum esp_flash_speed_t (a4c03ceb)
    • Removed deprecated API spi_flash_reset_counters, spi_flash_dump_counters and spi_flash_get_counters (a4c03ceb)
    • Removed deprecated header file esp_spi_flash.h (a4c03ceb)
    • Fixed flash read failed in qio mode on external flash (65a6e9c2)
    • Fixed bootloader flash size is not accurate when flash size is larger than 32MB (142a8301)
    • Added GD55D256 flash chip support (de58c6d0)
    • Updated 32-bit address (16MB or more) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (bfe5caf5)
    • Fixed issue of escaping boundary check (d5b46540)
    • Make GD flash driver linked by default (561c7c48)
    • Added XM25QH256D flash support for new 32MB flash module (8ab564a7)

    TWAI

    Temperature Sensor

    Touch Element

    Touch Sensor

    • The dependencies of legacy touch sensor driver are removed from ULP touch driver, now you need to use int instead of touch_pad_t to express the touch channel ID. (30d0eded)
    • Support P4 Ver3 features: 1. force update benchmark; 2. touch_sensor_config_t::trigger_rise_cnt (ac24f96a)
    • Removed touch_sensor_sample_config_t::bypass_shield_output on ESP32-P4, it is not supported any more. (ac24f96a)
    • Fixed the issue in the legacy touch sensor driver that the read API can't be used from ISR context. (https://github.com/espressif/esp-idf/issues/17045) (d6221163)
    • Adjust touch channel number on P4 from 0-13 to 1-14. (c1666c80)
    • Fixed calculation of sleep intervals. (c1666c80)

    UART

    USB

    USB Device

    • Update USB Device examples to esp_tinyusb v2.0.0 (5efa5ab9)

    USB Host

    • Remove usb component from esp-idf (4dc77d19)
    • Relocated PHY code to esp_hw_support and removed deprecated APIs. (f4a86196)
    • Improved stability of the USB Host Library with external hubs (602941ef)
    • Add USB Host support for Full Speed peripheral on ESP32-P4 (94d71a8c)
    • Added support for custom FIFO sizing via HAL API (c06fa310)
    • Added option to allocate USB buffers in external RAM on ESP32-P4 (6d2f4b36)

    USB Serial JTAG

    Power Management

    • The current leakage for ESP32 in light sleep has been decreased by 80uA (2319386d)
    • Fixed the issue that ESP32C5 TX packet failed when DFS enabled (bacb0ce2)
    • Fixed examples/system/light_sleep compilation fail on CONFIG_ESP_CONSOLE_NONE selected (dc527fba)
    • Optimized the power consumption of esp32c5 in active state (2a861ead)
    • deepsleep current decrease about 7uA for C61 (17uA -> 10uA) (22f63191)

    Security

    AES

    ESP-TLS

    Flash Encryption

    • Fix esp_flash_encryption_set_release_mode() API to program the efuse bit to level low only if the efuse is not already programmed. (343fd794)

    Key Manager

    • Fix broken encrypted write operation to use efuses key instead of the Key Manger key when Flash Encryption is disabled. (fd7d9c9e)
    • Fix incorrect internal state management when starting a Key Manager operation (de36c803)

    MbedTLS

    • Dependent peripheral clock usage optimization for the ESP32-H2's revision v1.2 whose ECDSA peripheral does not use the MPI peripheral. (286f7fe0)
    • This release restructures the mbedTLS configuration system and adds support for configuration presets. (4e036983)
    • Fix build failure when using non-AES ciphers GCM operation fallback with CONFIG_MBEDTLS_GCM_C being disabled. (d8a3ef51)
    • Update mbedTLS version to 3.6.4. (5301d39f)
    • Adds in support for verifying cross signed certificates if the cross signed certificate is available in the trusted CA bundle. (1f4612ec)
    • Updated the common cert authorities csv (cmn_crt_authorities.csv - 01 Jun 2025) (c85075dc)
    • When using the esp_sha_block() and esp_sha_dma() APIs, the SHA mode needs to be explicitly set using the esp_sha_set_mode() API. (8d0527d7)
    • Starting from ESP-IDF v5.5, there is a change in how the SHA sub-function APIs, esp_sha_block() and esp_sha_dma(), are used. Previously, these APIs used to set the SHA mode internally, however, in the updated version, you must explicitly set the SHA mode before invoking them. For instance, if you intend to use the SHA-256 algorithm, you must first call esp_sha_set_mode() with the argument SHA2_256. (8d0527d7)
    • Updated the default root certificate bundle (cacrt_all.pem - 21 May 2025) (e05390f3)
    • Starting with ESP-IDF v6.0, all deprecated CA certificates have been removed from the mbedTLS certificate bundle. As a result, any firmware built with ESP-IDF v6.0 may fail to connect to endpoints that rely on these removed certificates. Thus, before upgrading deployed devices to firmware built with v6.0, thoroughly test all connectivity endpoints to ensure compatibility and avoid connection failures. (e05390f3)
    • Updated the deprecated root certificate bundle (cacrt_deprecated.pem - 21 May 2025) (e05390f3)
    • Fixes failing TLS handshake when running HTTPS Server with TLS1.3 (https://github.com/espressif/esp-idf/issues/15984) (619996f7)
    • Updated the common cert authorities csv (cmn_crt_authorities.csv - 18 May 2025) (4d59537d)

    NVS Encryption

    • If Flash encryption is enabled on SoCs with the HMAC peripheral (SOC_HMAC_SUPPORTED) and NVS encryption is also enabled, the HMAC-based scheme will be selected by default instead of the Flash encryption scheme. (649741fa)

    RNG

    Secure Boot

    • Fixed enabling ROM secure download mode when DIS_DOWNLOAD_MODE is already disabled (a249714f)
    • When Secure Boot is enabled, 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. (4e082efc)

    Storage

    • Added Block Device Layer support for esp_partition component (1e1b95cf)
    • Added new Block device layer interface component (d4e58bf7)
    • Added a mention of read-only NVS partitions in File System Considerations document (89254595)

    FATFS

    • Refactored FATFS VFS functions - body of convenience mounting functions split to smaller steps. (94083867)
    • Added esp_vfs_fat_format_drive and esp_vfs_fat_partition_drive functions. (94083867)
    • Functions esp_vfs_fat_sdmmc_mount and esp_vfs_fat_sdspi_mount now return ESP_ERR_INVALID_ARG if any of the arguments are missing. (94083867)

    LittleFS

    • Default LittleFS version in examples bumped to 1.20.0 (2aeec90f)

    NVS

    Partitions

    VFS

    • Removed deprecated UART and UART-JTAG-serial API from vfs component, these APIs can still be found in the respective driver components. (fb79d920)

    System Hardware

    • For ESP32-C6, the option to use RC32K clock as the RTC slow clock source has been completely removed (RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED, RTC_CLK_SRC_INT_RC32K) (e94d9cee)
    • Fixed assert when changing 8MD256 RTC slow clock source during OTA on esp32/esp32s2/esp32s3. (6f8dbe8a)
    • Removed deprecated headers: {IDF_TARGET}/rtc.h and soc_memory_types.h. from esp_hw_support component. These headers are replaced by esp_rtc_time.h and esp_memory_utils.h respectively. (39d22252)
    • Fixed the issue that LP_WDT is triggered in ROM after esp_restart reset if UART0 is disabled in App. (Affected targets: esp32c5/esp32c6/esp32h2) (2bd39311)
    • Auto adjust core voltage for different chip and different environment on ESP32-P4 (fa41e763)
    • only detect VDD digital for ESP32-C5 / C61 (22f63191)
    • Removed support of C5_ECO0 & C61_ECO0 / C61_ECO1 (22f63191)
    • Fixed compile error on esp_cpu_int_has_handler on ESP32-P4 (GitHub PR) (https://github.com/espressif/esp-idf/pull/15942 https://github.com/espressif/esp-idf/issues/15941) (184b993d)

    Efuse

    • Allowed custom key purposes (b0f34bd8)

    MMU

    • No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C5, C6, C61, H2 (ae3f20fa)

    Memory Layout

    • Removed RTC_ related memory attributes on chips which do not support RTC memory (ba7d2447)

    PSRAM

    TCP Transport

    Toolchain

    Tools

    WI-FI

    • Added support for NAN-USD (Unsynchronized Service Discovery), which depends on CONFIG_ESP_WIFI_NAN_USD_ENABLE (8e1ebcad)
    • Supported ESP32-C5 cert test example. (5f5f9638)
    • Fixed country code PK miss 2.4G permission (b2359412)
    • Added support for FT with SAE for station (b7deee95)
    • Added blacklisting logic in ROAM App. (e8f75f97)
    • Set NVS default value for SAE identifier to NULL (44736c8b)
    • The function esp_rrm_send_neighbor_rep_request has been removed. Use esp_rrm_send_neighbor_report_request instead. (bdd8d257)
    • The functions esp_wifi_set_ant_gpio, esp_wifi_get_ant_gpio, esp_wifi_set_ant, and esp_wifi_get_ant have been removed. Please use the equivalent functions from the esp_phy component: esp_phy_set_ant_gpio, esp_phy_get_ant_gpio, esp_phy_set_ant, and esp_phy_get_ant. (bdd8d257)
    • The authentication modes WIFI_AUTH_WPA3_EXT_PSK and WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE have been removed. Use WIFI_AUTH_WPA3_PSK instead. (bdd8d257)
    • In the wifi_event_neighbor_report_t structure, the report field has been removed. Please use the n_report field instead, which is a flexible array member. (bdd8d257)
    • The function esp_wifi_config_espnow_rate has been removed. Use esp_now_set_peer_rate_config instead. (bdd8d257)
    • The header file components/esp_wifi/include/esp_interface.h has been removed. The wifi_interface_t enum is now defined in components/esp_wifi/include/esp_wifi_types_generic.h. The enum values (e.g., WIFI_IF_STA, WIFI_IF_AP) are no longer defined based on ESP_IF_WIFI_STA, ESP_IF_WIFI_AP, etc. (bdd8d257)
    • Field svc_info from structures wifi_nan_publish_cfg_t, wifi_nan_subscribe_cfg_t, wifi_nan_followup_params_t, wifi_event_ndp_indication_t, wifi_event_ndp_confirm_t has been removed. Please use the equivalent fields ssi and ssi_len instead. (bdd8d257)
    • Field peer_svc_info from structure wifi_event_nan_receive_t has been removed. Please use the equivalent fields ssi and ssi_len instead. (bdd8d257)
    • The function argument ndp_resp_needed of esp_wifi_nan_publish_service has been moved to structure wifi_nan_publish_cfg_t. (bdd8d257)
    • Field use_get_report_api from structure wifi_ftm_initiator_cfg_t and field ftm_report_data from structure wifi_event_ftm_report_t has been removed. Please use esp_wifi_ftm_get_report to fetch raw FTM report data instead. (bdd8d257)
    • The function esp_wifi_wps_start no longer accepts a timeout_ms argument. It should now be called as esp_wifi_wps_start(void). (bdd8d257)
    • The DPP event callback esp_supp_dpp_event_cb_t and event enum esp_supp_dpp_event_t have been removed. Please use Wi-Fi events directly (e.g., WIFI_EVENT_DPP_URI_READY, WIFI_EVENT_DPP_CFG_RECVD, WIFI_EVENT_DPP_FAILED). The function esp_supp_dpp_init no longer accepts a callback and should be called as esp_supp_dpp_init(void). (bdd8d257)
    • Added second channel field in wifi_action_tx_req_t structure. (44a66c75)
    • Added switch channel API and remain on channel API for ESPNOW (44a66c75)
    • Fixed perform active scan on DFS channel (9b0733ba)
    • Fixed beacon timeout when TWT setup (9b0733ba)
    • Fixed bandwidth check not correct (51ed23be)
    • improved iperf performance of esp32c61 (51ed23be)
    • Fixed ESP-Touch v2 fail on 5G router, update version to v3.0.3 (ee064300)
    • Removed support for the ESP32C61 revision v0.2. (54fe3373)
    • Added support for the ESP32C61 revision v1.0. (54fe3373)
    • Fixed assert when htinfo not included in beacon/assoc response (ac5fe121)
    • Fixed assert when country code of ap we do not support (ac5fe121)
    • Added supported channels element and enable spectrum management (ac5fe121)
    • Added limition when set bandwidths and protocols (ac5fe121)
    • Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (50365096)
    • Fixed scan trigger failure after roam event (f9317393)

    Examples

    • Supported 11ax rate for cert test. (dd733465)

    MAC

    • Fixed PTK key memory leak on deinit. (65669733)
    • Fixed esp32 MAC deinit stuck issue (1d2147cb)
    • Fixed NAN API return status and NDP Peer inactivity detection (a44c3d44)
    • Fixed scan done event miss issue (2812a4e7)
    • Set dialog token of last FTM Response to Zero (https://github.com/espressif/esp-idf/issues/17235) (9fee9cc1)
    • Performed FTM in 40Mhz in disconnected State (9fee9cc1)
    • Corrected the 'wifi_auth_mode_t' type sent during 'WIFI_EVENT_STA_CONNECTED' event (e6a11ba8)
    • Fixed scan done event miss issue. (07db7c3c)
    • Added GCMP-128 cipher support for SoftAP mode. GCMP-256 SoftAP support was previously added as part of SAE Extended Key handling. (73e638ec)
    • Fixed TX error 0xa1 (4235058d)
    • Fixed cache access error after TWT setup (4235058d)
    • Add FTM Support for ESP32C61. (f50f6913)
    • Fixed inactive time reset when wifi disconnect (40eefe1d)
    • Fixed open mode receive fragment packet fail issue. (8448452e)
    • Fixed TWT cannot sleep on esp32c5 and esp32c61 (48b84ceb)
    • Fixed CPU cannot enter light sleep when TWT resume (48b84ceb)
    • Fixed rate index incorrect in 11a mode (48b84ceb)
    • Fixed the issue that wifi disconnect when sta scan in connected state (9ddef27e)
    • returned error if call esp_wifi_set_config() when STA is connecting (39a44b4a)
    • Fixed esp32 mac deinit stuck issue (39a44b4a)
    • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout. (a3cf6468)
    • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries. (11ad7e05)
    • Fixed STA cannot send keep alive when receive UDP packets (03e6dda2)
    • Fixed sleep without sending sleep null when enable BSS max idle (03e6dda2)
    • Fixed STA BSS max idle period always use default value (03e6dda2)
    • Fixed channel TX power limitation does not take effect when connected AP switch channel (03e6dda2)
    • Fixed the issue that STA fail to RX beacon when off channel under modem state. (abd5be52)
    • Added FTM support for ESP32-C5 v1.0 (https://github.com/espressif/esp-idf/issues/15909) (fbfa32c3)
    • Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (f1da7a55)
    • Fixed TX power not update if country changes when enable multiple PHY init data bin (f1da7a55)
    • Fixed locking in incorrect state when stop_scan is called after wifi_connect (c4aaceb4)

    Mesh

    Supplicant

    Vendor

    • Added more check when receiving ESP-NOW data (fed2fb0a)
  • v5.4.3 ea1c174c1c

    ESP-IDF Release v5.4.3
    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-10-21 11:15:46 +00:00 | 13363 commits to master since this release

    No known key found for this signature in database
    GPG key ID: 007EABA69AAC0C18

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

    ESP-IDF v5.4.3 is a bugfix release for ESP-IDF v5.4.

    Obtaining v5.4.3

    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.4.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.4.3
    cd esp-idf-v5.4.3/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.4.3.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.4.3/esp-idf-v5.4.3.zip

    Major changes

    Breaking Changes

    • The esp_wifi_set_config() API NOW cannot be called while Wi-Fi is connecting. (2d556f7c)
    • The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (e839ed58)
    • Adjust touch channel number on ESP32-P4 from 0-13 to 1-14. (435cf83a)

    Changelog

    15.4

    Thread

    • Fixed an issue with source address selection during network switching (7edf40d1)
    • Use the ML-EID address for self-hosted services if OMR address is not preferred (27934574)
    • Improved TREL message reception (26d4b9c9)
    • Handled MeshCoP mDNS service in state change callback (26d4b9c9)
    • Updated openthread submodule (b945928) (26d4b9c9)
    • Introduced a new API to register the console based openthread CLI command (26d4b9c9)
    • Supported RCP over USB Serial JTAG interface (3ecfb66e)
    • Added a function to exit openthread main loop safely (81470675)

    Application Utilities

    CJSON

    ESP HTTP Client

    • Fixed handling of errors while reading data from server using API esp_http_client_perform() (8d4f0af7)
    • Updated condition to close and cleanup the HTTP client (872bcb60)
    • Updated the postman root certificate for the esp_http_client example (7c822348)
    • Fixed memory leak in HTTP client when header parsing fails during fetch operation (95699fe5)
    • Fixed the often triggering of HTTP_EVENT_ERROR when the asynchronous client is set (7183a695)

    ESP HTTP Server

    ESP HTTPS Server

    BLE

    • Fixed uninitialized return code in BLE Get Started - NimBLE examples (ceb32b58)
    • Added Bluetooth LE CTE connless AoA/AoD example (45751f95)

    BluFi

    • Added API to start advertising with specified name (cc252485)

    Bluedroid

    • Fixed potential out-of-bounds memory access when resolve adv data (d66354c3)
    • Added BLE multiple connections examples (dfc29284)
    • Fixed the connection count limit in multi-connection (dfc29284)
    • Adjusted L2CAP round robin msg send strategy (dfc29284)
    • Supported multi-connection optimization vendor HCI command (dfc29284)
    • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (477aa4e0)
    • Fixed issue that caused failure in "BTM_GetSecurityFlags" (88d8f5d2)
    • Fixed incorrect update of resolving_list_avail_size (88d8f5d2)
    • Fixed issue where resolving list was not updated after the oldest device was removed (88d8f5d2)
    • Fixed failure to disconnect when device record is cleared (88d8f5d2)
    • Fixed extended adv restart failure during reconnection (2b0b65fb)
    • Fixed BLE SMP state machine inconsistency on disconnection (d07f840b)
    • Fixed null pointer assert in l2c_link_check_send_pkts (3e5d2c7d)
    • Fixed build failure when some BLE features are disabled (e6c334cb)

    Controller

    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2 (cf9d5885)
    • Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6 (cf9d5885)
    • Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2 (cf9d5885)
    • Improved security when receive connection request PDU with an invalid Access Address on ESP32 (203f114f)
    • Supported the PAwR feature on ESP32-C6 and ESP32-H2 (61ee93bc)
    • Optimized check Access Address when receive connection request PDU on ESP32 (175cb021)
    • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32 (8e094e70)
    • Fixed priority setting for BLE events on ESP32 (8e094e70)
    • Fixed disconnection issue when coexisting with other BLE events on ESP32 (8e094e70)
    • Fixed crash due to bandwidth full when updating connection params on ESP32 (8e094e70)
    • Supported multiple connection optimization vendor HCI command on ESP32 (8e094e70)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2 (94496778)
    • Fixed an occasional sync lost issue on ESP32-C6 and ESP32-H2 (94496778)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3 (65c03605)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3 (65c03605)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3 (65c03605)
    • Fixed BLE anonymous extended advertising filtering on ESP32-C3 and ESP32-S3 (65c03605)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6 and ESP32-H2 (68a63ff1)
    • Fixed an occasional assertion issue during sync on ESP32-C6 and ESP32-H2 (68a63ff1)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2 (b84ccbc4)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6 and ESP32-H2 (b84ccbc4)
    • Fixed an occasional assertion issue during scanning on ESP32-C6 (b84ccbc4)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2 (b84ccbc4)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (f5edc858)

    Documentation

    • Updated ESP-Nimble SIG qualification version to core specification 6.1 (d7d895ce)
    • Added Bluetooth LE 6.0 features support status (24dfb49e)

    NimBLE

    • Fixed incorrect HCI status in connect event (632ee747)
    • Updated reattempt count handling for periodic adv (484e6e25)
    • Restructured table of README.md file of bleprph and blecent (e252fb27)
    • Add connection failure event when connection fails (7912b04e)
    • Added ISO minor support for NimBLE Host (803d852c)
    • Added helper api's in nimble. (de407c69)
    • Fixed include service definition handle being the same for all definitions (d0ad380c)
    • Updated ble_gatts_show_local to show CPFDs and CAFDs (d0ad380c)
    • Added VSC for Set Scan Channel Bitmap (98f0a9b9)
    • Updated count parameter correctly by considering offset (bd708524)
    • Fixed for attribute count mismatch between cached gatt db and actual db (bd708524)
    • Fixed compilation issue due to BLE_GATTS flag (3dd20871)
    • Clear GATT service entries counter upon GATT deinit (ace0f634)
    • Added packet allocation retry for limited iteration (2ff67c4b)
    • Added timestamp information to HCI logging (c868984d)
    • Provided a way to make blufi advertising customizable (https://github.com/espressif/esp-idf/issues/16234) (a16d45ce)
    • Add ble_ancs example to build-test-rules configuration file (96ae24c8)
    • Fixed compilation issues when gatt caching is enabled in peripheral only mode (10a14131)
    • Added a missing instance of ble_hs_unlock() in a corner case (d1e87afe)
    • Added parameter in peer_init() to allocate memory for included services (66a5a588)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications (c52e8ee1)
    • Automatically initiated security and retry service request if service request fails due to insufficient security (c52e8ee1)
    • Fixed issue of Adv report not observed in PAwR example (f26f6e46)
    • Added Support for Apple Notification Center Service (ANCS) in NimBLE (81064fa0)
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples (03e9d2d7)
    • Fix compilation issue when CSFCS is set to 0 (de813ca8)
    • Wrap BLE service API with extern "C" (de813ca8)

    Bluetooth Common

    Controller

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

    Build & Config

    Classic Bluetooth

    Bluedroid

    • Prevented out-of-bounds access and add type check when resolving EIR data (2dac39bd)
    • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (8c002cf5)
    • Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (0f4cc8eb)
    • Fixed AVRCP build issue when Cover Art feature is disabled (https://github.com/espressif/esp-idf/issues/16155) (d4cf9d27)
    • Added AVRCP callback event for notification of profile ON/OFF state (27d2a245)

    Controller

    • Fixed the issue that sniff anchor pointer mismatched from Central and Peripheral on ESP32 which prevented them from receiving peer packets (76d19ae7)
    • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (203f114f)
    • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (203f114f)
    • Ignored received LMP_DETACH during detach process on ESP32 (203f114f)
    • Fixed missing event for truncated page cancel procedure on ESP32 (203f114f)
    • Fixed possible access to NULL pointers on ESP32 (203f114f)
    • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT on repairing of the acceptor size on ESP32 (203f114f)
    • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key on ESP32 (203f114f)
    • Fixed that Tx descriptor for FHS packet in page procedure may becomes empty after handshake failure on ESP32 (203f114f)
    • Fixed the incorrect unit of clock in CPB Rx event on ESP32 (e12ceb9d)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (21335ad1)

    Coexistence

    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32-C2 (32adb5f5)

    Core System

    Console

    ESP Timer

    IPC

    • Allowed IPC recursion calls in esp_ipc_call (a9ba29d6)

    Panic handling

    Debugging

    Apptrace

    • Updated SEGGER SystemView source file version to v3.56 to support data plotting (05cf51dc)
    • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later (05cf51dc)

    Core Dump

    • Fixed CONFIG_ESP_COREDUMP_MAX_TASKS_NUM option that was previously ignored, allowing users to limit the number of tasks included in core dumps (e155cfc2)

    FreeRTOS

    IDF Additions

    LWIP

    DHCP

    • Fixed incorrect DHCP length calculation causes potential memory corruption for some longer options (ESP_NETIF_HOSTNAME_MAX_SIZE) (fbac0723)

    DHCP Server

    ESP Netif

    IPv6

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

    Low Power Features

    • Fixed the issue where RTC_BOD may reset or get stuck when waking up from Deepsleep on ESP32-P4 (b2eefe5a)
    • Removed the support for switching power from DCDC to LDO during ESP32-P4 lightsleep (b2eefe5a)
    • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (a15becb5)
    • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (https://github.com/espressif/esp-idf/issues/16872) (b3c8bc44)
    • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset (b3c8bc44)
    • Fixed the issue where the sleep wakeup failed after reset when RTC_CLK_SRC_INT_8MD256 is enabled on ESP32/ESP32-C2/ESP32-C3/ESP32-S3 (https://github.com/espressif/esp-idf/issues/16243) (508441f9)
    • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on ESP32-C6/ESP32-H2 (080cccfb)
    • Fixed a possible wakeup failure on ESP32 if lightsleep/deepsleep was requested by Core1 (https://github.com/espressif/esp-idf/issues/16243) (fd78cc61)
    • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on ESP32-P4 (cc6b993b)

    ULP

    LP Core

    ULP-RISC-V

    PHY

    Peripheral Drivers

    ADC

    • Fixed RNG ADC stuck after deep sleep wakeup (d547f4fe)

    Camera

    • Fixed DVP loss half frames error (dc2f9df9)
    • Added a help function to allocate camera buffer (95c40cc8)

    DVP

    • Fixed wrong DMA descriptor type on ESP32-S3 (4877b2f1)

    GPIO

    I2C

    • Added gpio reserve check on i2c driver (0b78d625)
    • Make I2C nack error log as debug level, not force print anymore (0b78d625)

    I2S

    JPEG

    • Fixed random black line appearance while jpeg decode (066a24e6)
    • Fixed wrong parameter in jpeg encoder memory sync which leads to cache error (066a24e6)

    LEDC

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

    MCPWM

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (963fc922)

    RMT

    SD_HOST

    SDMMC

    • Fixed sdmmc initialization issue caused by CMD52 CRC error (f10ac3ee)

    SPI

    • Change ESP32-P4 SPI master default clock source to PLL to support up to 80M by default (0f6b6834)

    SPI Flash

    • Fixed issue of escaping boundary check (b3f05386)
    • Updated 32-bit address (16MB or more) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (58ddea79)

    Touch Sensor

    UART

    • Added UART DMA driver support on ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S3 (8a94f195)

    USB

    USB Host

    • Added USB Host support for Full Speed peripheral on ESP32-P4 (b3269af4)
    • Improved stability of the USB Host Library with external hubs (121b41a4)
    • Added support for custom FIFO sizing via HAL API (e055bd52)

    USB Serial JTAG

    • Changed USB Serial JTAG VFS read() to treat end-of-line characters as regular bytes with no early return (d727ae38)

    Power Management

    • The current leakage for ESP32 in light sleep has been decreased by 80uA (d626163d)

    Security

    • Fixed app image encryption length for secure update without secure boot case (3ad2b49d)
    • Added support for RSA decryption using the DS peripheral. Users can now leverage the DS peripheral with secure cert manager to securely store and use private keys for hardware-accelerated RSA decryption. (a1b7cc9f)
    • The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (e839ed58)

    ESP-TLS

    Flash Encryption

    • Fixed esp_flash_encryption_set_release_mode() API to program the eFuse bit to level low only if the eFuse is not already programmed (b0f6b878)

    MbedTLS

    • Dependent peripheral clock usage optimization for the ESP32-H2's revision v1.2 whose ECDSA peripheral does not use the MPI peripheral (c9161097)
    • Fixed build failure when using non-AES ciphers GCM operation fallback with CONFIG_MBEDTLS_GCM_C being disabled (c6599cbd)
    • Updated mbedTLS version to 3.6.4 (583fd13c)

    Secure Boot

    • When Secure Boot is enabled, 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 (b0f6b878)

    Storage

    Partitions

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

    System Hardware

    • Fixed assert when changing 8MD256 RTC slow clock source during OTA on ESP32/ESP32-S2/ESP32-S3 (7436ed4b)
    • Fixed the issue that LP_WDT is triggered in ROM after esp_restart reset if UART0 is disabled in app (Affected targets: ESP32-C5/ESP32-C6/ESP32-H2) (fb0e8de7)
    • Auto adjusted core voltage for different chip and different environment on ESP32-P4 (1abb219d)

    EFuse

    • Allowed custom key purposes (694c3a97)

    MMU

    • No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (489eba40)

    PSRAM

    Toolchain

    Tools

    WI-FI

    • Set NVS default value for SAE identifier to NULL (8574a0a6)
    • Added support for sending action frames on the target channel and remain on target channel for required duration (df2c1232)
    • Fixed scan trigger failure after roam event (c128e143)
    • Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (6f769323)
    • Added support for SoftAP SAE extended key (edeae998)
    • Fixed ESP32-C2 and ESP32-S2 TCP TX shake issue (a56f2016)

    Examples

    • Supported 11ax rate for cert test (59d86f5d)

    MAC

    • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout (d3a98e25)
    • Fixed the issue that wifi disconnect when sta scan in connected state (d3a98e25)
    • Fixed scan done event miss issue (d3a98e25)
    • Returned error if call esp_wifi_set_config() when STA is connecting (2d556f7c)
    • The esp_wifi_set_config() API NOW cannot be called while Wi-Fi is connecting (2d556f7c)
    • Fixed ESP32 mac deinit stuck issue (2d556f7c)
    • Corrected the 'wifi_auth_mode_t' type sent during 'WIFI_EVENT_STA_CONNECTED' event (11a46c0d)
    • Fixed inactive time reset when wifi disconnect (00ee8827)
    • Fixed cache access error after TWT setup (00ee8827)
    • Fixed TX error 0xa1 (00ee8827)
    • Fixed beacon timeout when TWT setup (00ee8827)
    • Fixed open mode receive fragment packet fail issue (2b2a722a)
    • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries (7ae6d4b0)

    Mesh

    • Fixed the mesh crash issue when changing mesh AP's authmode (edeae998)
    • Fixed the esp_mesh_scan_get_ap_record() error in chain topology (edeae998)

    Supplicant

    • Fixed crash to uninitialized roaming neighbor list lock (cc158ee7)
    • Disable suite-b configuration if Wi-Fi enterprise is not enabled (https://github.com/espressif/esp-idf/issues/17567) (f0ad8350)
    • Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (6b0b85b6)
    • Added support to limit EAP method supported by device based on user configuration (51257119)
    • Fixed pmksa expiration caused by sntp time synchronization issue. (ca0f2094)
    • Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (09bea2a5)
    • Added support for WPA-Enterprise in Station mode (28e9f352)
  • v5.2.6 9ef24e3e2a

    ESP-IDF Release v5.2.6
    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-09-30 01:15:22 +00:00 | 19337 commits to master since this release

    No known key found for this signature in database
    GPG key ID: 73BD817307D0D67C

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

    ESP-IDF v5.2.6 is a bugfix release for ESP-IDF v5.2.

    Obtaining v5.2.6

    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.2.6 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.2.6
    cd esp-idf-v5.2.6/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.2.6.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.2.6/esp-idf-v5.2.6.zip

    Major changes

    Breaking Changes

    • Security: The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (ad73b587)
    • WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (25c1ad81)
    • Security/MbedTLS: If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (046c0b5b)
    • Bluetooth Common: Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information. (a40b0e24)
    • Application Utilities/Provisioning: Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (04438b11)
    • 15.4/MAC: Added a duration argument for ieee802154_receive_at() (a1a3fd17)

    Changelog

    15.4

    MAC

    • Added Tx/Rx frame dumping for debugging. (04c8baa9)
    • Added a duration argument for ieee802154_receive_at() (a1a3fd17)

    Thread

    • Introduced a new API to register the console based openthread CLI command (0ab1ea2a)
    • Fixed an issue with source address selection during network switching (30d8d309)
    • Use the ML-EID address for self-hosted services if OMR address is not preferred (26a967f8)
    • Improved TREL message reception (54b9e7d9)
    • Handled MeshCoP mDNS service in state change callback (54b9e7d9)
    • Updated openthread submodule (b945928) (54b9e7d9)
    • Added a function to exit openthread main loop safely (eb189a4a)
    • Supported bus_latency configuration for Thread BR (b6aafcc5)
    • Updated openthread submodule (ec2b0d487) (3fc25f25)
    • Supported periodic parent search mechanism for MTD (2dfb9701)
    • Added a function to ensure monotonically increasing frame counter (2fe91e26)
    • Added a callback to handle rcp reset failure (2fe91e26)
    • Bound DNS server to unspecified netif on Border Router (2fe91e26)
    • Supported DNS resolution / forwarding for Thread BR (26d2451d)
    • Fixed recursive multicast packet forwarding issue (26d2451d)
    • Updated openthread submodule (8c30b93) (26d2451d)
    • Fixed CSL issue in which RX is not turned off during idle periods (a1a3fd17)
    • Supported hardware reset RCP while processing RCP failure for the example ot_br (b60bf2c5)
    • Added an API to set RCP version string (dc1e3c72)

    Application Utilities

    CJSON

    • Update to latest upstream cJSON master. (6956b7c3)

    ESP HTTP Client

    • Updated the postman root certificate for the esp_http_client example. (c139db38)
    • Fixed memory leak in HTTP client when header parsing fails during fetch operation. (75ec6391)
    • Added a configuration to set address type (c78a0c58)

    ESP HTTPS Server

    • Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the Key Usage parameter due to the change in Python3.13's default ssl context requirements. (2652435b)

    Provisioning

    • Update security2 scheme to fix the incorrect AES-GCM IV usage (04438b11)
    • Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (04438b11)

    BLE

    • Added Bluetooth LE CTE connless AoA/AoD example. (d6893a70)
    • Add Bluetooth LE 5 1 direction finding feature. (ebd8f96a)

    BluFi

    • Added API to start advertising with specified name. (380548fb)
    • Added support for stopping adv in BLUFI for nimble (1f0451f5)
    • Fixed crash issue during memcpy in example. (895e05db)

    Bluedroid

    • Fixed potential out-of-bounds memory access when resolve adv data (53dfc861)
    • Added BLE multiple connections examples. (5f7a1b0a)
    • Supported multi-connection optimization vendor HCI command. (5f7a1b0a)
    • Fixed the connection count limit in multi-connection. (5f7a1b0a)
    • Adjusted L2CAP round robin msg send strategy. (5f7a1b0a)
    • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (2892755f)
    • Fixed failure to disconnect when device record is cleared (6f0fd4eb)
    • Fixed issue that caused failure in "BTM_GetSecurityFlags" (6f0fd4eb)
    • Fixed incorrect update of resolving_list_avail_size (6f0fd4eb)
    • Fixed issue where resolving list was not updated after the oldest device was removed (6f0fd4eb)
    • Fixed build failure when some BLE features are disabled (12761a52)
    • Fixed extended adv restart failure during reconnection. (a62362a7)
    • Fixed BLE SMP state machine inconsistency on disconnection (ccda0fbd)
    • Fixed null pointer assert in l2c_link_check_send_pkts (975bea85)
    • Fixed issue with deleting link key when classic Bluetooth is not used. (376593aa)
    • Increased maximum attribute value length to 517 to prevent data loss. (a033a491)
    • Fixed validation logic for BLE GAP appearance configuration. (a033a491)
    • Added sync_cte_type in bluedroid PA sync function (6aec36cf)
    • Added throughput mode for BLE SPP example. (8d3cc19a)
    • Fixed missing event reporting in esp_ble_create_sc_oob_data. (11ea6924)
    • Fixed BLE crash when disabling bluedroid host. (11ea6924)
    • Fixed potential uint32_t overflow in BLE btu_start_timer. (11ea6924)
    • Fixed memory leak issue when using dynamic memory and deinitializing the host. (11ea6924)
    • Added a new API esp_bt_config_file_path_get()to retrieve the Bluetooth configuration file path used for storing bond keys in the NVS module. (11ea6924)
    • Added esp_ble_gap_read_channel_map API to retrieve the BLE channel map of a connected device. (11ea6924)
    • Added BLE eddystone sender example. (ba7c4844)
    • Reported cte_type in periodic adv report if CTE feature is enabled (88c1a010)
    • Supported BLE iso in bluedroid host (b0f1d71b)
    • Supported BLE CTE in bluedroid host (b0f1d71b)
    • Supported BLE bluedroid host power control feature (b0f1d71b)
    • Supported BLE bluedroid host connection subrating feature (b0f1d71b)
    • Supported BLE vendor HCI event reporting (311f33cf)
    • Supported BLE setting vendor event mask (311f33cf)
    • Added support for the "Read Periodic Advertiser List Size" command. (4e6d2095)
    • Added Read Long Characteristic Values example. (3d8f6f1c)
    • Reduced bluedroid host bin size (0de2a4c2)
    • Supported changing HID task size via Kconfig in the HID example(https://github.com/espressif/esp-idf/pull/15320) (d309e7c3)
    • Fixed an issue where advertising data and scan response data were not reported together during BLE active scanning. (ba662438)

    Controller

    • Fixed an occasional interrupt watchdog timeout issue in case of adv/scan or conn/scan coex scenario for ESP32-C2. (2bc90b12)
    • Improve security when receive connection request PDU with an invalid Access Address on ESP32 (29b25b58)
    • Supported the PAwR feature on ESP32-C6 and ESP32-H2. (797369b1)
    • Optimized check Access Address when receive connection request PDU on ESP32 (8c81db29)
    • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32. (bbba4f57)
    • Support multiple connection optimization vendor HCI command on ESP32. (bbba4f57)
    • Fixed priority setting for BLE events on ESP32. (bbba4f57)
    • Fixed disconnection issue when coexisting with other BLE events on ESP32. (bbba4f57)
    • Fixed crash due to bandwidth full when updating connection params on ESP32. (bbba4f57)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (2feca412)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (2feca412)
    • Fixed BLE anonymous extended advertising filtering. (2feca412)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (2feca412)
    • Fixed an occasional sync lost issue on ESP32-C6, ESP32-H2 and ESP32-C5. (22c184ef)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (22c184ef)
    • Fixed an occasional assertion issue during sync on ESP32-C6, ESP32-H2. (7ee856b6)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6, ESP32-H2. (7ee856b6)
    • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (a0a8a352)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (a0a8a352)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2. (cf25bf46)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2. (cf25bf46)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6 and ESP32-H2. (cf25bf46)
    • Fixed an occasional assertion issue during scanning on ESP32-C6. (cf25bf46)
    • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/15789) (9b9103c5)
    • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (e3e92620)
    • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (e3e92620)
    • Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (e3e92620)
    • Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (e3e92620)
    • Fixed occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (b1d3a654)
    • Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (b1d3a654)
    • Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (b1d3a654)
    • Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (b1d3a654)
    • Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (b1d3a654)
    • Fixed MIC error disconnection when pairing with an iOS device on ESP32-C3 and ESP32-S3. (123e6270)
    • Disable anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (4a49e2bf)
    • Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (4a49e2bf)
    • Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (4a49e2bf)
    • Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (4a49e2bf)
    • Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (f8d2e8f7)
    • Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (f8d2e8f7)
    • Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (f8d2e8f7)
    • Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (100d130c)
    • Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2. (100d130c)
    • Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (100d130c)
    • Fixed bluetooth controller flash only bug if hci-uart is enabled on ESP32-C3 and ESP32-S3 (88c1a010)
    • Fixed a heap assertion issue when enabling BLE and ESP32C2_REV_MIN_200 for ESP32-C2 v2.0 (a67f6742)
    • Fixed an occasional load access fault issue when performing ext_conn creation for ESP32-C2. (a40b0e24)
    • Added definitions for bluetooth hci vendor commands and events (a40b0e24)
    • Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2. (5a0899e1)
    • Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2. (5a0899e1)
    • Added a function to maintain the connection when an instant pass issue occurs on ESP32-C2. (64288caf)
    • Fixed extended advertising interval upper limit issue on ESP32-C6 and ESP32-H2 (https://github.com/espressif/esp-idf/issues/15240) (64288caf)
    • Reduced controller bin size for ESP32-C3 and ESP32-S3 (bd3611b4)
    • Fixed enhanced TX power setting and getting for legacy adv on ESP32-C3 and ESP32-S3. (8d3429a4)
    • Fixed BLE assert lld_con.c 2387 on ESP32-C3 and ESP32-S3. (8d3429a4)
    • Fixed compatibility issues during the encryption procedure on ESP32-C3 and ESP32-S3. (8d3429a4)
    • Added BLE debug log module on ESP32-C3 and ESP32-S3. (fbcc36a0)
    • Fixed scan duplicate filter failure when receiving ADV_DIRECT_IND for ESP32-C2. (ac5760d2)
    • Added channel assessment function on ESP32-H2 and ESP32-C6. (ac5760d2)
    • Added continuous connection function when instant pass issue triggers on ESP32-H2 and ESP32-C6. (ac5760d2)
    • Fixed the issue where disconnection events were not reported as a slave on ESP32. (5670a06d)
    • Enhance Access Address validation in compatibility mode on ESP32. (5670a06d)

    Mesh

    • Optimized the performance of remote provisioning (e7fe0f3a)
    • Fixed an unprovisioned device may be provisioned by provisioner and remote provisioning client at the same time (e7fe0f3a)

    NimBLE

    • Add connection failure event when connection fails (36773cb6)
    • Added helper api's in nimble. (c91db96c)
    • Update ble_gatts_show_local to show CPFDs and CAFDs. (976f011d)
    • Fix include service definition handle being the same for all definitions. (976f011d)
    • Added VSC for Set Scan Channel Bitmap (dbdb3d9d)
    • Update count parameter correctly by considering offset. (98e32013)
    • Fix for attribute count mismatch between cached gatt db and actual db. (98e32013)
    • Fixed compilation issue due to BLE_GATTS flag (e37e13cc)
    • Clear GATT service entries counter upon GATT deinit (0440c5ab)
    • Add packet allocation retry for limited iteration (5ad898d6)
    • Add timestamp information to HCI logging. (3a98c37e)
    • Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234 ] (e29f9e56)
    • Fix compilation issues when gatt caching is enabled in peripheral only mode (12640204)
    • Add a missing instance of ble_hs_unlock() in a corner case. (2d1c1a3d)
    • Added parameter in peer_init() to allocate memory for included services (6377b2c6)
    • Automatically initiate security and retry service request if service request fails due to insufficient security. (b3d4982c)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (b3d4982c)
    • Wrap BLE service API with extern "C" (6298e6bd)
    • Fix compilation issue when CSFCS is set to 0. (6298e6bd)
    • Fixed issue of Adv report not observed in PAwR example. (ff55478e)
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (eaededdb)
    • Handle memory leak due to missing mempool_deinit call (3b0c5eb8)
    • Add chip dependancy flag for Flow control feature (9dbbc9ac)
    • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (6693ca59)
    • Added fix for an async race condition with HCI outstanding packets counter (b8106e90)
    • Added handling for anonymous address type for whitelist (b8106e90)
    • Fixed UUID type error in GATT caching API to search for included services. (a43badf3)
    • Added api's to fetch gatt cache info (a825b026)
    • Added option to enable stack to handle repeat pairing internally (28d343b8)
    • Added runtime configurable support for observer role, security mode 1 level, and GATT caching (b7f72266)
    • Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (b7f72266)
    • Fixed LLS crash when no callback was registered for LLS event (b7f72266)
    • Added SPS callback event to expose changes in scan parameters (b7f72266)
    • Fixed incorrectly passed in GATT Caching disovery operations (b7f72266)
    • Enabled Connection Subrating bit in ESP32C6 (b7f72266)
    • Optimized nimble throughput example by extended adv support and switching between different Phy modes. (b0994e39)
    • feat(nimble): Added tutorials for PAwR examples (d924b24b)
    • Fix sync handle assignment for PAwR connection (8b918efa)
    • Fixed incorrect OTA address type assignment (8446cfd3)
    • Corrected event posting in Read Remote Features event handling [ Closes https://github.com/espressif/esp-idf/issues/15670 ] (51b965e2)
    • Added missing ble_hs_unlock for periodic adv sync reattempt case. (73173121)
    • Fix conversion for min-max itvl of periodic adv param in example (daeceb73)
    • Fix SMP command allocation (e11caaa3)
    • Add support for Vendor Event mask VSC (9c52dde2)
    • Fix incorrect event deinit in gatt caching discovery (74826982)
    • Exposed the ble_gap_wl_tx_add API to add a device in whitelist (f9cbfdd0)
    • Fixed pairing failure issue when SC only mode is selected (96876be6)
    • Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (4fdc80dc)
    • Update controller data length upon connection creation. (31fb0693)
    • Handle application code compilation issue due to removal of link_estab structure (31fb0693)
    • Deprecate BLE_GAP_EVENT_LINK_ESTAB event. (f1b3eab7)
    • Save the gatt context in case of preemption (4459b5f4)
    • Enhanced error handling by adding to print core error definitions (4459b5f4)
    • Handle nested locks when BT_NIMBLE_DEBUG enabled (https://github.com/espressif/esp-idf/issues/15014, https://github.com/espressif/esp-idf/issues/15294, https://github.com/espressif/esp-idf/issues/15202) (4459b5f4)
    • Restart adv / sync when periodic sync fails due to 0x3E (4459b5f4)
    • Updated README.md by removing unclear line (https://github.com/espressif/esp-idf/issues/15284) (4459b5f4)
    • Fixed nvs corruption due to BLE_ENV_ADV_DATA flag (4459b5f4)
    • Handle not sending disconnect event if connect event was not sent (4459b5f4)
    • Added offset information in GATT server long read context (4459b5f4)
    • Fixed compilation issue observed when WARN_WRITE_STRINGS is set . [ PR: https://github.com/espressif/esp-nimble/pull/84 ] (4459b5f4)

    Bluetooth Common

    • Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information . (a40b0e24)

    Bluedroid

    • Set default value of BT_BLUEDROID_ESP_COEX_VSC to n if software coexistence is not required, (28a44997)

    Controller

    • Fixed the issue that disable Bluetooth controller may cause interrupt watchdog timeout on ESP32 (ac22ab71)
    • Disable debug vendor HCI command on ESP32. (72b8f2b5)
    • Added API to get/set low power clock source on ESP32 (a15149b5)

    Build & Config

    • Changed build fatal error to warning when the ESP_ROM_ELF_DIR environment variable is not set (c7b61358)

    Classic Bluetooth

    Bluedroid

    • fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (c0b36dc1)
    • Cleanups and improvement of safety in string handling in Bluetooth examples (52a4768b)
    • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (cce7a735)
    • Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (4b5bc330)
    • Added AVRCP callback event for notification of profile ON/OFF state (caa76535)
    • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (28027d6b)
    • Fixed the issue that L2CAP server stop operation does not report the ESP_BT_L2CAP_SRV_STOP_EVT event (55f921c0)
    • Added events for l2cap register and unregister vfs (d5631925)
    • Fixed write_read task stack overflow in l2cap example (d5631925)
    • Fixed the issue with l2cap not using dynamic memory (d5631925)
    • Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (d5631925)
    • Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (aee70c6e)
    • Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (fed9272f)
    • Fixed memory leaks in SPP callback mode (90ea23be)
    • Fixed reporting of unexpected ESP_BT_GAP_DISC_STATE_CHANGED_EVT event upon ACL disconnection, due to uninitialized local variable (0e3b0486)
    • Fixed the issue that after SPP reaches the maximum number of connections, it will mistakenly free the server resources when disconnecting, causing the next server start to fail. (0c94dc3a)
    • Fixed incorrect records in SDP record search response using 16-bit UUID (41c2b799)
    • Fixed error type returned when searching for service records of SIM Access Profile(SAP) in SDP (41c2b799)

    Controller

    • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT on repairing of the acceptor size on ESP32 (29b25b58)
    • Fixed TX descriptor for page FHS is empty after handshake failure on ESP32 (29b25b58)
    • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (29b25b58)
    • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (29b25b58)
    • Ignored received LMP_DETACH during detach process (29b25b58)
    • Fixed missing event for truncated page cancel on ESP32 (29b25b58)
    • Fixed possible access to NULL pointers (29b25b58)
    • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key (29b25b58)
    • Fixed the incorrect unit of clk in CPB rx event on ESP32 (136aef90)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (34ef87c6)
    • Implemented a workaround for potential data packet exchange issues when secure connection is enabled on ESP32 (45dc5a05)
    • Fixed ACL has few chance to run when it coexists with SCO on ESP32 (6e841c26)
    • Fixed errors in dynamic priority configuration in Bluetooth dual mode on ESP32 (6e841c26)
    • Fixed a crash issue caused by accessing external memory in ISR context on ESP32 (6e841c26)
    • Fix the incorrect unit of duration_min in CPB TX on ESP32 (26d5744f)
    • Recalculate the channel map when AFH is enabled on ESP32 (26d5744f)
    • Fixed assessing NULL pointer in case of handling earlier message when Bluetooth Classic connection gets disconnected (https://github.com/espressif/esp-idf/issues/15128) (72b8f2b5)
    • Avoid accessing released ACL resources in SCO logic on ESP32 (72b8f2b5)
    • Added HCI_BT_VENDOR_SET_EVT_MASK command to control reporting of vendor event on ESP32 (5670a06d)
    • Added AFH related vendor hci command and event on ESP32 (5670a06d)

    Coexistence

    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (8b2e98fe)
    • Fixed some external coexist issues. (9c8d7725)
    • Support BR/EDR (e)SCO and Wi-Fi coexistence. (f7add8b9)
    • Added coexistence scheme for BT Inquiry/Page coexist with WIFI (1657868c)

    Core System

    • Fixed implementation of __atomic_test_and_set to be atomic (9270825e)
    • fix c++ TLS classes destructors calls (https://github.com/espressif/esp-idf/issues/14360) (fb672606)
    • Ensure proper reset for crypto peripherals before software restart. This fixes a rare and intermittent secure boot verification failure based on RSA-PSS scheme. The fix is recommended for aggressive revocation config. Please see commit log for more details. (a488c9f9)
    • Fixed esp_ptr_executable to specifically check if the pointer is in PSRAM memory on esp32p4. (64c7909c)
    • Corrected the address used to fetch the application image header during system startup (1beb0bcd)

    ESP Event

    Heap

    • Fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not being able to be used together with CONFIG_HEAP_TLSF_USE_ROM_IMPL. (cf740a14)

    Interrupts

    Log

    • Moved esp_log_writev to IRAM (4e30b885)

    Newlib

    Panic handling

    Debugging

    Apptrace

    • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later. (d15d1b0f)
    • Updated SEGGER SystemView source file version to v3.56 to support data plotting (d15d1b0f)
    • Store CRC16 checksum of trace blocks in Xtensa perfmon register to enable host-side data integrity verification. (9f2918c5)
    • Fix deadlock on sysview start (f0b6cc43)

    Core Dump

    • Fix CONFIG_ESP_COREDUMP_MAX_TASKS_NUM option that was previously ignored, allowing users to limit the number of tasks included in core dumps. (7e095182)

    FreeRTOS

    IDF Additions

    • Updated xRingbufferReceive() and xRingbufferReceiveFromISR() APIs to restrict them from being called to retrieve items from allow-split buffers. (20ab752e)

    IDF Kernel

    LWIP

    DHCP

    • Fixde DHCP server recv decline issue (1ad5d0eb)

    DHCP Server

    ESP Netif

    Low Power Features

    • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (5a4f6756)
    • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (https://github.com/espressif/esp-idf/issues/16872) (ad3067d5)
    • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset. (ad3067d5)
    • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on esp32c6/esp32h2. (e2b8e00c)
    • Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (d8e4249f)
    • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on esp32p4/esp32c6. (4cb3bf8c)
    • Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (6dc1044a)
    • Allowed to keep SAR ADC power when using ADC_ULP_MODE. (https://github.com/espressif/esp-idf/issues/12426) (adfc9aa6)
    • Fixed power leakage when external 32k slow clock source detection fails. (e9d48c89)
    • Warning the use of lightsleep GPIO/UART wakeup source if PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP option is enabled. (07f409ec)
    • Fixed the issue that esp32c2 may fail to wake up after entering deepsleep with external 32 kHz oscillator. (28ebdd47)
    • Added sleep duration validity check in esp_sleep_enable_timer_wakeup. (#15255) (d6c2868b)

    ULP

    LP Core

    PHY

    • Added protection against double phy-disable operations by one modem source, which can result in hardware clock being switched off in coexistence scenario (ef0e87ce)
    • Updated librtc.a to fix coexist problems on ESP32 (41456680)
    • Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (97a7cba8)
    • Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (8af1fc79)
    • Optimization of RX calibration in high-interference environments. (f7157029)

    Peripheral Drivers

    ADC

    Analog Comparator

    • Corrected the supported interrupt priority to 0~3 (cf8633f5)

    GPIO

    I2C

    I2S

    LEDC

    MCPWM

    • Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (ac835573)

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (105967af)

    RMT

    SD_HOST

    SDMMC

    SPI

    SPI Master

    • Supported rx sample point adjust using spi_device_interface_config_t::sample_point on esp32h2 v1.2 and later. (e6f49c04)
    • Fixed SPI stop after remove devices which using RC_FAST as clock source on ESP32-C6 and ESP32-H2 (602fe5b9)

    SPI Flash

    TWAI

    Temperature Sensor

    • Add temprature calibration support on ESP32-C2/C6/H2 (86210328)

    Touch Sensor

    UART

    USB

    • Changed USB CDC VFS read() function to directly return with the bytes available, instead of waiting for more bytes to reach the requested size when in non blocking mode (2bde2d8e)

    USB Device

    • Fixed incorrect pull-up resistor settings on the USB PHY that prevented the device from being detected by the host. (b6a74a4c)

    USB Host

    USB Serial JTAG

    Power Management

    • Fixed regdma wait timeout caused by default wait parameters (a3bcc906)
    • The current leakage for ESP32 in light sleep has been decreased by 80uA (300d52a3)
    • Fixed the issue of modem wakeup req always high caused by pmu min slp cycle update. (25c1ad81)
    • Fixed possible assert in vTaskStepTick after turning on auto light sleep (68f07110)

    Security

    ESP Cert Bundle

    • Add entry for "Sectigo - Comodo AAA Services root" in the common CA cert authority list. This fixes problem with server verification with GitHub endpoint. Regression introduced in e174fc967e. (26ed75df)

    MbedTLS

    • Update mbedTLS version to 3.6.4. (559a092d)
    • If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (046c0b5b)

    Storage

    NVS

    • Fix NVS partition being incorrectly marked as encrypted by the build system (015e4f1b)

    VFS

    • Fix incorrect open and close behavior for /dev/console (590682f8)

    System Hardware

    • Fixed ESP32-S3 possible cache_error triggered by another core accessing flash in esp_restart (1512f758)
    • Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (d2f17920)

    MMU

    MSPI

    • Improved the selection of timing tuning points when the last few tuning points succeed consecutively (2bb1dfbf)

    PSRAM

    TCP Transport

    Toolchain

    Tools

    • Added requirements file for the new IDE feature of installing Python packages for IDE support (a884d70b)
    • Explicitly disabled pip 'user' option, when installing ESP-IDF python virtual environment. (https://github.com/espressif/esp-idf/issues/16189) (1a4fd9b8)
    • Fixed idf_tools.py install tools@version command to be able to install specific tool versions. (e2e209c2)
    • Updated ccache version to 4.11.2 (https://github.com/espressif/idf-installer/issues/305) (e5fb4799)
    • Fixed processing of packages with dots in their names in Python dependency checks (cc0f7dbd)
    • Fixed deprecation warnings when using extractall() on Python 3.12 and newer (92a165dd)
    • Added input validation of optional install features (0a8d338a)
    • Switched to flashing ESP32-C3 with stub when the USB Serial/JTAG mode is used (6c6ea275)
    • Avoided generating intermediate placements without sections in ldgen (5e577dcd)

    WI-FI

    • Added support for SoftAP SAE extended key (e38272a7)
    • esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (25c1ad81)
    • Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (cbc19ed1)
    • Fixed STA BSS max idle period always use default value (d19cb147)
    • Fixed sleep without sending sleep null when enable BSS max idle (d19cb147)
    • Fixed STA cannot send keep alive when receive UDP packets (d19cb147)
    • Fixed channel TX power limitation does not take effect when connected AP switch channel (d19cb147)
    • Added the missing brackets for the C++ guards for a few header files. (https://github.com/espressif/esp-idf/issues/14991) (bd186a3f)

    Examples

    MAC

    • Added GCMP-128 cipher support for SoftAP mode. GCMP-256 SoftAP support was previously added as part of SAE Extended Key handling. (9740e64d)
    • Corrected the 'wifi_auth_mode_t' type sent during 'WIFI_EVENT_STA_CONNECTED' event (9740e64d)
    • Fixed inactive time reset when wifi disconnect (1e8dc228)
    • Fixed cache access error after TWT setup (1e8dc228)
    • Fixed TX error 0xa1 (1e8dc228)
    • Fixed beacon timeout when TWT setup (1e8dc228)
    • Fixed open mode receive fragment packet fail issue. (5156bff4)
    • Fixed locking in incorrect state when stop_scan is called after wifi_connect (d33d1cb6)
    • Fixed the issue that STA fail to RX packet under modem state. (25c1ad81)
    • Fixed the issue that STA fail to RX beacon when off channel under modem state. (25c1ad81)
    • The esp_wifi_set_config() API NOW cannot be called while Wi-Fi is connecting. (25c1ad81)
    • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout. (25c1ad81)
    • Fixed esp32 mac deinit stuck issue. (25c1ad81)
    • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries. (76c857c7)
    • Fixed TX power not update if country changes when enable multiple PHY init data bin (cde5a854)
    • Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (cde5a854)
    • Supported service specific info in NAN service discovery frames (https://github.com/espressif/esp-idf/issues/12473, https://github.com/espressif/esp-idf/issues/13366) (d9fbf875)
    • Fixed the WEP shared authentication association timeout issue. (6af91442)
    • Fixed the issue of disconnection from the AP due to ERSU compatibility. (6af91442)
    • Fixed phy data partition restoring default fails issue. (6af91442)
    • Fixed occasional dropping of SA Query responses by SoftAP (3be6ef2a)
    • Fixed an issue to prevent writing configuration to NVS when the station configuration remains unchanged. (4a9260ce)
    • Fixed issue that esp_wifi_set_tx_done_cb() should not process frames sent using esp_now_send(). (c22d3d0f)
    • Added support for transition disable for SoftAP (c3d5d5d1)
    • Fixed TWT post just one event for multiple flow (cfd0f479)
    • Fixed channel in rx_ctrl is zero when using sniffer (cfd0f479)
    • Fixed compatibility issues and crash during scan (cfd0f479)
    • Added timer to send wake null after STA received association response (b2cd934f)
    • Modified authmode to sta for sta connect event (0f8d37cb)
    • Fixed disable external coexist fail issue. (f7157029)

    Mesh

    Supplicant

    • Added support for WPA-Enterprise in Station mode (3046997b)
    • Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (9916fbe3)
    • Fixed pmksa expiration caused by sntp time synchronization issue. (a75f3cb4)
    • Added check for WPS-PBC overlap detection in dual band. (488ac504)
    • Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (488ac504)
    • Ensured disconnection with previously connected AP when initiating WPS. (488ac504)
    • Cleared SAE-PK capability in Assoc Request when not enabled at STA. (5c9f2823)
    • Increased WPS message timeouts to address interoperability issues. (d4e4efde)
    • Fixed send_confirm value for SAE confirm according to specification. (ae079cc2)
    • Added optimized PSK implementation, closed https://github.com/espressif/esp-idf/issues/15072 (7b18d6bd)
    • Added domain name validation support for EAP connection. (486dfded)
    • Added some implementation changes in roaming. (c3d5d5d1)
    • Resolved WPS connectivity issue that caused failures when the station was already connected (ea249953)
    • Fixed memory leak occurring in SAE PK connection. (d7b13d0e)
    • Reduced WPS scan frequency to make it easier for users to enter the PIN on the AP. (90be9328)
    • Fixed issues reported by the static analyzer on GitHub (#15097, #15098, #15099). (404f5d50)

    Vendor

    • Added more check when receiving ESP-NOW data (58d15fd2)
    • Fixed the issue that STA connection information loss LR info on ESP32C6 (cea68523)
    • Fixed the scan information error in LR only mode (b2cd934f)
  • v5.5.1 fcae32885b

    ESP-IDF Release v5.5.1
    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-08-30 13:42:33 +00:00 | 11636 commits to master since this release

    No known key found for this signature in database
    GPG key ID: 1AF25F3CD37D9114

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

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

    Obtaining v5.5.1

    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.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5.1
    cd esp-idf-v5.5.1/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.5.1.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.1/esp-idf-v5.5.1.zip

    Major changes

    Major New Features

    • Support for ESP32-C5 is initially added.
    • Support for ESP32-C61 is initially added.
    • System Hardware: Auto adjust core voltage for different chip and different environment on ESP32-P4 (0291ab0d)

    Known Issues

    • For ESP32-C5, the fine timing measurement is not functional.
    • For ESP32-C61, in complex coexistence scenarios, Power-on Reset and RTC BOD SYS reset may occur with low probability.

    Changelog

    15.4

    Thread

    • Fixed an issue with source address selection during network switching (e00fa1de)
    • Use the ML-EID address for self-hosted services if OMR address is not preferred (c4ac82fc)
    • Introduced a new API to register the console based openthread CLI command (97e07a01)
    • Improved TREL message reception (97e07a01)
    • Handled MeshCoP mDNS service in state change callback (97e07a01)
    • Updated openthread submodule (b945928) (97e07a01)
    • Supported RCP over USB Serial JTAG interface (3e94cf12)

    Application Utilities

    ESP HTTP Client

    ESP HTTP Server

    BLE

    • Added Bluetooth LE CTE connectionless AoA/AoD example. (3fa646e5)
    • Removed support for ESP32C61 revision v0.2 (589c8b82)
    • Added support for ESP32C61 revision v1.0 (589c8b82)

    Bluedroid

    • Fixed failure to disconnect when device record is cleared (032b6d80)
    • Fixed issue that caused failure in "BTM_GetSecurityFlags" (032b6d80)
    • Fixed incorrect update of resolving_list_avail_size (032b6d80)
    • Fixed issue where resolving list was not updated after the oldest device was removed (032b6d80)
    • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (59af1425)
    • Fixed build failure when some BLE features are disabled (c168ca3f)

    Controller

    • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32. (731f1176)
    • Supported multiple connection optimization vendor HCI command on ESP32. (731f1176)
    • Fixed priority setting for BLE events on ESP32. (731f1176)
    • Fixed disconnection issue when coexisting with other BLE events on ESP32. (731f1176)
    • Fixed crash due to bandwidth full when updating connection params on ESP32. (731f1176)
    • Optimized check Access Address when receive connection request PDU on ESP32 (aa2c410b)
    • Fixed an occasional sync lost issue on ESP32-C6, ESP32-H2 and ESP32-C5. (f7d35622)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (f7d35622)
    • Fixed an occasional assertion issue during sync on ESP32-C6, ESP32-H2 and ESP32-C5. (da257a96)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6, ESP32-H2 and ESP32-C5. (da257a96)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (4bb1ad72)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (4bb1ad72)
    • Fixed BLE anonymous extended advertising filtering. (4bb1ad72)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (4bb1ad72)

    NimBLE

    • Update count parameter correctly by considering offset. (201b9178)
    • Fix for attribute count mismatch between cached gatt db and actual db. (201b9178)
    • Fixed compilation issue due to BLE_GATTS flag (160883a4)
    • Clear GATT service entries counter upon GATT deinit (d74a625d)
    • Add packet allocation retry for limited iteration (75e4f8db)
    • Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234 ] (f9ce2bf5)
    • Add timestamp information to HCI logging. (9f523adf)
    • Add ble_ancs example to build-test-rules configuration file. (941d9871)
    • Automatically initiate security and retry service request if service request fails due to insufficient security. (76a7dd5a)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (76a7dd5a)
    • Added parameter in peer_init() to allocate memory for included services (76a7dd5a)
    • Add a missing instance of ble_hs_unlock() in a corner case. (76a7dd5a)
    • Fix compilation issues when gatt caching is enabled in peripheral only mode (76a7dd5a)

    Bootloader

    • Supported SECONDARY Bootloader (589c8b82)

    Build & Config

    Classic Bluetooth

    Bluedroid

    • Cleanups and improvement of safety in string handling in Bluetooth examples (148c36d8)
    • Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (9c2e03ba)
    • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (5e1cb0fc)
    • Fixed AVRCP build issue when Cover Art feature is disabled (https://github.com/espressif/esp-idf/issues/16155) (1d9e3dfa)

    Controller

    • Fixed the incorrect unit of clk in CPB rx event on ESP32 (1e8b07ec)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (2045b120)

    Core System

    Console

    Debugging

    Apptrace

    • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later. (aea3d880)

    LWIP

    DHCP

    • Fixed incorrect DHCP length calculation causes potential memory corruption for some longer options (ESP_NETIF_HOSTNAME_MAX_SIZE) (bcd56c74)

    ESP Netif

    Low Power Features

    MQTT

    PHY

    Peripheral Drivers

    ADC

    • Fixed inaccurate ADC readings at high input voltages on ESP32-C5 (589c8b82)

    Camera

    • Fixed DVP loss half frames error (4d19e6be)

    DMA

    • Disallow burst sizes larger than 32 bytes when using DMA to access PSRAM on ESP32-C5 and ESP32-C61. (7b478f3e)

    LCD

    • Reserved the GPIO used by RGB LCD in driver initialization and disconnect them from the LCD signals when deinitialize the driver (6fd9c541)

    PARL_IO

    • Supported to register buffer switched callback in loop transmission (589c8b82)

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (782ffe1a)

    RMT

    SD_HOST

    SDMMC

    • Fixed sdmmc initialization issue caused by CMD52 CRC error (79d842df)

    SPI

    • Change ESP32P4 spi master default clock source to PLL to support up to 80M by default (88400723)
    • Fixed slave mode with dma RX data error on ESP32C5 (c2c08767)

    SPI Flash

    • Added GD55D256 flash chip support (f997e42e)
    • Fixed issue of escaping boundary check (536a8076)
    • Updated 32-bit address (16MB or more) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (cbf01d9e)
    • Added XM25QH256D flash support for new 32MB flash module (589c8b82)
    • Make GD flash driver linked by default (589c8b82)

    TWAI

    Touch Sensor

    USB

    • Changed USB CDC VFS read() to treat end-of-line characters as regular bytes, with no early return (73bdf0ac)
    • Changed USB CDC VFS read() to return with available data when in blocking mode (73bdf0ac)

    USB Host

    • Add USB Host support for Full Speed peripheral on ESP32-P4 (31fd483c)

    USB Serial JTAG

    • Changed USB Serial JTAG VFS read() to treat end-of-line characters as regular bytes, with no early return (73bdf0ac)

    Power Management

    • Optimized the power consumption of ESP32-C5 in active state (589c8b82)

    Security

    • Added support for RSA decryption using the DS peripheral. Users can now leverage the DS peripheral with secure cert manager to securely store and use private keys for hardware-accelerated RSA decryption. (570ecdc1)

    MbedTLS

    • Fix build failure when using non-AES ciphers GCM operation fallback with CONFIG_MBEDTLS_GCM_C being disabled. (96836ab1)
    • Update mbedTLS version to 3.6.4. (5c02c6fc)

    Storage

    LittleFS

    • Default LittleFS version in examples bumped to 1.20.0 (ec5d4c59)

    System Hardware

    • Fix assert when changing 8MD256 RTC slow clock source during OTA on esp32/esp32s2/esp32s3. (92a09ce7)
    • Auto adjust core voltage for different chip and different environment on ESP32-P4 (0291ab0d)

    PSRAM

    • Fixed PSRAM chip's lack of cross-page transaction support issue on ESP32C5 / C61 (0ef3fb49)
    • Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3, P4, C5, C61 (031ed78a)

    TCP Transport

    • Added HTTP redirect (301 - Moved Permanently) to transport websocket. (8c21713e)

    Toolchain

    Tools

    WI-FI

    • fix bandwidth check not correct (6d012bbe)
    • improve iperf performance of esp32c61 (6d012bbe)
    • Fixed ESP-Touch v2 fail on 5G router, update version to v3.0.3 (250f2484)
    • fix inactive time reset when wifi disconnect (8f36e23c)
    • fix cache access error after twt setup (8f36e23c)
    • fix tx error 0xa1 (8f36e23c)
    • Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (9c4aa443)
    • Fixed scan trigger failure after roam event (307c3f0e)
    • Removed support for the ESP32C61 revision v0.2. (589c8b82)
    • Added support for the ESP32C61 revision v1.0. (589c8b82)

    MAC

    • Fixed scan done event miss issue. (6d012bbe)
    • Support 11ax rate for cert test. (ceb11cd5)
    • Added GCMP-128 cipher support for SoftAP mode. GCMP-256 SoftAP support was previously added as part of SAE Extended Key handling. (250f2484)
    • Fixed open mode receive fragment packet fail issue. (8f36e23c)
    • Add FTM Support for ESP32C61. (8f36e23c)

    Supplicant

    • Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (14ae5166)
    • Fixed pmksa expiration caused by sntp time synchronization issue. (8f36e23c)
    • Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (4eb565de)
    • Added support to limit EAP method supported by device based on user configuration (95e3ea8f)
  • v5.3.4 1b459d9c49

    ESP-IDF Release v5.3.4
    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-08-14 13:07:31 +00:00 | 16318 commits to master since this release

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

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

    ESP-IDF v5.3.4 is a bugfix release for ESP-IDF v5.3.

    Obtaining v5.3.4

    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.3.4 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.4
    cd esp-idf-v5.3.4/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.3.4.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.3.4/esp-idf-v5.3.4.zip

    Major changes

    Breaking changes

    • WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (c7f4ebdf)
    • Security: The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (cddc6685)
    • Security / MbedTLS: If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (52b43b31)
    • Peripheral Drivers / Touch Sensor: Adjust touch channel number on P4 from 0-13 to 1-14. (dc625ba1)
    • Peripheral Drivers / SD_HOST / SDMMC: Function sdmmc_host_init no longer returns ESP_ERR_INVALID_STATE when the SDMMC host is already initialized, now it returns ESP_OK. (a3aa4388)
    • 15.4 / MAC: Added a duration argument for ieee802154_receive_at() (4eddf0c4)

    Changelog

    This is the list of changes since release v5.3.3.

    15.4

    MAC

    • Added Tx/Rx frame dumping for debugging (935f6609)
    • Added a duration argument for ieee802154_receive_at() (4eddf0c4)

    Thread

    • Use the ML-EID address for self-hosted services if OMR address is not preferred (b9460c59)
    • Supported RCP over USB Serial JTAG interface (838a24e7)
    • Added a function to exit openthread main loop safely (39515e22)
    • Supported bus_latency configuration for Thread BR (c16caab0)
    • Updated openthread submodule (ec2b0d487) (4c8ebb98)
    • Supported OT_BR example for ESP32-P4 (4c8ebb98)
    • Supported periodic parent search mechanism for MTD (165bacc9)
    • Added a function to ensure monotonically increasing frame counter (da117743)
    • Added a callback to handle rcp reset failure (da117743)
    • Bound DNS server to unspecified netif on Border Router (da117743)
    • Supported DNS resolution / forwarding for Thread BR (d84c4174)
    • Fixed recursive multicast packet forwarding issue (d84c4174)
    • Updated openthread submodule (8c30b93) (d84c4174)
    • Fixed CSL issue in which RX is not turned off during idle periods (4eddf0c4)

    Application Utilities

    CJSON

    • Update to latest upstream cJSON master. (2be4cef6)

    ESP HTTP Client

    ESP HTTP Server

    ESP HTTPS Server

    • Fixed the HTTP server Async handler example for multiple /long URI requests and handled some error conditions. (https://github.com/espressif/esp-idf/issues/15587) (df74d2bc)
    • Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the Key Usage parameter due to the change in Python3.13's default ssl context requirements. (35270425)

    BLE

    BluFi

    • Added support for stopping adv in BLUFI for nimble (9e042f6d)

    Bluedroid

    • Fixed extended adv restart failure during reconnection. (96c50f99)
    • Fixed BLE SMP state machine inconsistency on disconnection (d1159f63)
    • Fixed null pointer assert in l2c_link_check_send_pkts (8ef86912)
    • Fixed issue with deleting link key when classic Bluetooth is not used. (1dd628e4)
    • Increased maximum attribute value length to 517 to prevent data loss. (60cd7f50)
    • Fixed validation logic for BLE GAP appearance configuration. (60cd7f50)
    • Added sync_cte_type in bluedroid PA sync fucntion (b158614c)
    • Added throughput mode for BLE SPP example. (c854f7f1)
    • Added BLE eddystone sender example. (ee7e35a3)
    • Fixed missing event reporting in esp_ble_create_sc_oob_data. (2216ed92)
    • Fixed BLE crash when disabling bluedroid host. (2216ed92)
    • Fixed potential uint32_t overflow in BLE btu_start_timer. (2216ed92)
    • Fixed memory leak issue when using dynamic memory and deinitializing the host. (2216ed92)
    • Added support for the "Read Periodic Advertiser List Size" command. (8c0f3749)
    • Added Read Long Characteristic Values example. (2a45026a)
    • Supported BLE iso in bluedroid host (46153441)
    • Supported BLE CTE in bluedroid host (46153441)
    • Supported BLE bluedroid host power control feature (46153441)
    • Supported BLE bluedroid host connection subrating feature (46153441)
    • Added a new API esp_bt_config_file_path_get() to retrieve the Bluetooth configuration file path used for storing bond keys in the NVS module. (46153441)
    • Added esp_ble_gap_read_channel_map() API to retrieve the BLE channel map of a connected device. (46153441)

    Controller

    • Optimized check Access Address when receive connection request PDU on ESP32 (8926bc48)
    • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (a42a69f2)
    • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (a42a69f2)
    • Fixed BLE anonymous extended advertising filtering. (a42a69f2)
    • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (a42a69f2)
    • Fixed an occasional sync lost issue on ESP32-C6 and ESP32-H2. (37db553e)
    • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (37db553e)
    • Fixed an occasional assertion issue during sync on ESP32-C6 and ESP32-H2 (c5f68964)
    • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6 and ESP32-H2. (c5f68964)
    • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (4009aa6e)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (4009aa6e)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2. (4a01630b)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2. (4a01630b)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6 and ESP32-H2. (4a01630b)
    • Fixed an occasional assertion issue during scanning on ESP32-C6. (4a01630b)
    • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/15789) (ade43f3b)
    • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (88cb3027)
    • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (88cb3027)
    • Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (88cb3027)
    • Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (88cb3027)
    • Fixed occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (29c26da8)
    • Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (29c26da8)
    • Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (29c26da8)
    • Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (29c26da8)
    • Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (29c26da8)
    • Fixed MIC error disconnection when pairing with an iOS device on ESP32-C3 and ESP32-S3. (6946068a)
    • Disable anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (aa5357ab)
    • Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (aa5357ab)
    • Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (aa5357ab)
    • Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (aa5357ab)
    • Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (182b1583)
    • Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (182b1583)
    • Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (182b1583)
    • Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (c399ca8f)
    • Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2. (c399ca8f)
    • Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (c399ca8f)
    • Fixed an occasional issue where the connPeripheralLatency parameter was not properly applied on ESP32-C6, ESP32-H2. (c399ca8f)
    • Fixed an occasional load access fault issue when performing ext_conn creation for ESP32-C2. (5de769cb)
    • Added a function to maintain the connection when an instant pass issue occurs on ESP32-C2. (5de769cb)
    • Fixed extended advertising interval upper limit issue on ESP32-C6 and ESP32-H2 (https://github.com/espressif/esp-idf/issues/15240) (5de769cb)
    • Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2. (97016c98)
    • Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2. (97016c98)
    • Fixed GPIO unavailable warning when repeatedly reconfiguring HCI UART pins on ESP32-C2, ESP32-C6, ESP32-H2. (97016c98)

    Mesh

    • Optimized the performance of remote provisioning (4e7e58f4)
    • Fixed an unprovisioned device may be provisioned by provisioner and remote provisioning client at the same time (4e7e58f4)

    NimBLE

    • Add timestamp information to HCI logging. (2138198e)
    • Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234\] (9d031f25)
    • Add a missing instance of ble_hs_unlock() in a corner case. (e2c9605f)
    • Added Bluetooth LE CTE connless AoA/AoD example. (bcba4339)
    • Added parameter in peer_init() to allocate memory for included services (be58299d)
    • Automatically initiate security and retry service request if service request fails due to insufficient security. (fed967df)
    • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (fed967df)
    • Wrap BLE service API with extern "C" (cf343ab4)
    • Fix compilation issue when CSFCS is set to 0. (cf343ab4)
    • Fixed issue of Adv report not observed in PAwR example. (34868cf3)
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (9fc65dca)
    • Handle memory leak due to missing mempool_deinit call (f506bf27)
    • Add Support for Apple Notification Center Service (ANCS) in NimBLE (1a6c26d7)
    • Add chip dependancy flag for Flow control feature (95b3176f)
    • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (7e99457c)
    • Added support for anonymous address type for whitelist (4d862687)
    • Added fix for an async race condition with HCI outstanding packets counter (4d862687)
    • Add configurable option to select ext adv v2 command (4d862687)
    • Fixed UUID type error in GATT caching API to search for included services. (37c0d836)
    • Added api's to fetch gatt cache info (d56f1b5c)
    • Added option to enable stack to handle repeat pairing internally (d00ce574)
    • Added runtime configurable support for observer role, security mode 1 level, and GATT caching (9e99b2af)
    • Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (9e99b2af)
    • Fixed LLS crash when no callback was registered for LLS event (9e99b2af)
    • Added SPS callback event to expose changes in scan parameters (9e99b2af)
    • Fixed incorrectly passed in GATT Caching disovery operations (9e99b2af)
    • Enabled Connection Subrating bit in ESP32C6 (9e99b2af)
    • Optimized nimble throughput example by extended adv support and switching between different Phy modes. (207db463)
    • feat(nimble): Added tutorials for PAwR examples (a11b8f79)
    • Fix sync handle assignment for PAwR connection (33eb5fc7)
    • Updated event posting in Read Remote Features event handling [ Closes https://github.com/espressif/esp-idf/issues/15670 ] (5ac38469)
    • Addressed incorrect OTA address type assignment (5ac38469)
    • Fix conversion for min-max itvl of periodic adv param in example (84c41607)
    • Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (002c737d)
    • Made ble_gap_wl_tx_add API visible to applications to add a device in whitelist (70c9a757)
    • Add support for Vendor Event mask VSC (70c9a757)
    • Fix SMP command allocation (70c9a757)
    • Fix incorrect event deinit in gatt caching discovery (70c9a757)
    • Add Bluetooth LE 5 1 direction finding feature. (70c9a757)

    Bootloader

    • Fixed partition size cannot exceed 16MB issue, when CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH or CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH is on (48deddea)

    Build & Config

    Classic Bluetooth

    Bluedroid

    • Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (575007a2)
    • Added AVRCP callback event for notification of profile ON/OFF state (ede2d093)
    • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (ed87d1d3)
    • Fixed the issue that L2CAP server stop operation does not report the ESP_BT_L2CAP_SRV_STOP_EVT event (1977c705)
    • Added events for l2cap register and unregister vfs (8b833682)
    • Fixed write_read task stack overflow in l2cap example (8b833682)
    • Fixed the issue with l2cap not using dynamic memory (8b833682)
    • Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (8b833682)
    • Fixed memory leaks in SPP callback mode (dd8d184f)
    • Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (5a011faf)
    • Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (91a8ee90)
    • Fixed reporting of unexpected ESP_BT_GAP_DISC_STATE_CHANGED_EVT event upon ACL disconnection, due to uninitialized local variable (4adf4003)
    • Fixed the issue that after SPP reaches the maximum number of connections, it will mistakenly free the server resources when disconnecting, causing the next server start to fail. (60341250)

    Controller

    • Fixed bt hci event was not report to host when hci command was sent on ESP32 (24bc87db)
    • Fixed the incorrect unit of clk in CPB rx event on ESP32 (c04f7e06)
    • Fixed LMP legacy and secure authentication collision bugs on ESP32 (b0781fe4)
    • Implemented a workaround for potential data packet exchange issues when secure connection is enabled on ESP32 (82b1690b)
    • Fixed ACL has few chance to run when it coexists with SCO on ESP32 (3a0d5d78)
    • Fixed errors in dynamic priority configuration in Bluetooth dual mode on ESP32 (3a0d5d78)
    • Fixed a crash issue caused by accessing external memory in ISR context on ESP32 (3a0d5d78)
    • Fix the incorrect unit of duration_min in CPB TX on ESP32 (916f1992)
    • Recalculate the channel map when AFH is enabled on ESP32 (916f1992)

    Coexistence

    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (778e5011)
    • Support BR/EDR (e)SCO and Wi-Fi coexistence. (52331299)

    Core System

    Heap

    • Fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not being able to be used together with CONFIG_HEAP_TLSF_USE_ROM_IMPL. (ce31db18)

    Interrupts

    • Fixed a bug in the interrupt allocator that resulted in the level of shared interrupt being overwritten with the last level given. (fe631a74)

    Newlib

    Panic handling

    Watchdogs

    • The LP-WDT on ESP32-P4 now takes into account the value EFUSE_WDT_DELAY when setting the timeout (6d8f288b)

    Debugging

    Apptrace

    • Store CRC16 checksum of trace blocks in Xtensa perfmon register to enable host-side data integrity verification. (ef4c750d)
    • Fix deadlock on sysview start (087d7db4)

    Ethernet

    • Fixed ESP32P4 EMAC REF RMII CLK output mode (dcd92c96)
    • Fixed ESP32P4 EMAC flow control enable (dcd92c96)

    FreeRTOS

    IDF Additions

    • Updated xRingbufferReceive() and xRingbufferReceiveFromISR() APIs to restrict them from being called to retrieve items from allow-split buffers. (b187b74b)

    IDF Kernel

    LWIP

    DHCP

    • Fixed DHCP server recv decline issue (72ae23c6)

    DHCP Server

    ESP Netif

    Low Power Features

    • Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (4871de8e)
    • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on esp32p4/esp32c6. (8752e3fe)
    • Fixed deepsleep leakage after USB HS phy is initialized on esp32p4 (96037e9c)
    • Fixed the issue that esp32p4 may get stuck when entering deepsleep. (b7cdd6ea)
    • Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (b78ef760)
    • Allowed to keep SAR ADC power when using ADC_ULP_MODE. (https://github.com/espressif/esp-idf/issues/12426) (e63d13e0)
    • Fixed power leakage when external 32k slow clock source detection fails. (a3441381)
    • Warning the use of lightsleep GPIO/UART wakeup source if PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP option is enabled. (ca42f3e1)

    ULP

    LP Core

    • Updated the LP UART and LP I2C drivers to not enable interrupts but rather use raw interrupt registers to prevent the LP core from jumping to the default interrupt handler and aborting the LP core code. (0c7bd3e9)
    • Fixed accumulation of wakeup cause bits in ULP (https://github.com/espressif/esp-idf/issues/15794) (9e2fe50f)

    ULP-RISC-V

    PHY

    Peripheral Drivers

    ADC

    Analog Comparator

    • Fixed the issue that unit1 can't generate the ETM event properly (5ad0818c)
    • Corrected the supported interrupt priority to 0~3 (5ad0818c)

    Camera

    • Fixed Cache-Safe build error (d69f12a7)

    GPIO

    I2C

    I2S

    JPEG

    • Fixed wrong parameter in jpeg encoder memory sync which leads to cache error. (9f5cea4d)
    • Fixed random black line appearance while jpeg decode (9f5cea4d)
    • Fixed the issue that jpeg encoder blocked when the output buffer is not sufficient. (430695b8)
    • Fixed handing of invalid JPEG marker (cff4d595)
    • Added support for decoding JPEG images without Huffman table (cff4d595)
    • Correctly set JPEG restart interval (cff4d595)

    LCD

    LEDC

    MCPWM

    • Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (c590bc5b)

    PARL_IO

    • Fixed an issue where prematurely disabling PARL_IO TX caused errors in subsequent transmissions. (3816f5f2)

    PCNT

    • Fixed race condition causing accum_value loss on counter overflow (22e579da)

    PPA

    • Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (7356a999)

    RMT

    SD_HOST

    SDMMC

    • Improved checking of SD being busy and always requesting SD to send status, even if a write operation failed. (0de3c919)
    • Fixed sdmmc initialization issue caused by CMD52 CRC error (14fc8010)
    • Fixed multiple definitions of SD Card example pins issue in project Kconfig file (a2c53e56)
    • Fixed all pins need to be set issue when using slot0 on ESP32P4 (a2c53e56)
    • Function pointer to sdmmc_host_deinit is now not used as default deinitialization function in SDMMC_HOST_DEFAULT() define macro. Instead sdmmc_host_deinit_slot is used which has int slot argument to deinitialize slots and the SDMMC host gracefully. sdmmc_host_deinit can still be called and forces the host deinitialization even if slots are still in use. (a3aa4388)
    • Function sdmmc_host_init no longer returns ESP_ERR_INVALID_STATE when the SDMMC host is already initialized, now it returns ESP_OK. (a3aa4388)
    • Fixed transfer timeout due to higher priority tasks (https://github.com/espressif/esp-idf/issues/13934) (13cf4ba8)

    SPI

    • Change ESP32P4 spi master default clock source to PLL to support up to 80M by default (17264e67)
    • Fixed the issue that driver objects may be allocated from PSRAM unintentionally (d47c37f2)

    SPI Flash

    TWAI

    Touch Element

    Touch Sensor

    UART

    USB

    USB Device

    • Fixed incorrect pull-up resistor settings on the USB PHY that prevented the device from being detected by the host. (b4baef0e)

    USB Host

    USB Serial JTAG

    Power Management

    • Fixed regdma wait timeout caused by default wait parameters (bea47a18)
    • Fixed the issue of modem wakeup req always high caused by pmu min slp cycle update. (c7f4ebdf)
    • Fixed possible assert in vTaskStepTick after turning on auto light sleep (c06e9d3a)

    Security

    MbedTLS

    • Update mbedTLS version to 3.6.4. (7cdc3aeb)
    • Make mbedtls SHA1 software support configurable (8e825839)
    • If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (52b43b31)

    Storage

    • Concurrent use of more SDMMC devices (SD cards, eMMC, etc.) is now possible. (a3aa4388)

    NVS

    System Hardware

    • Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (9312c359)

    MMU

    MSPI

    • Improved the selection of timing tuning points when the last few tuning points succeed consecutively (da5f469d)
    • Improved the PSRAM timing tuning configurations on ESP32P4 (da5f469d)

    PSRAM

    TCP Transport

    • Added an API to configure the addr family (635c4190)

    Toolchain

    Tools

    WI-FI

    Examples

    • Fixed some issues in roaming app (6c1754a0)

    MAC

    • Fixed the issue that STA fail to RX packet under modem state. (c7f4ebdf)
    • Fixed the issue that STA fail to RX beacon when off channel under modem state. (c7f4ebdf)
    • returned error if call esp_wifi_set_config() when STA is connecting. (c7f4ebdf)
    • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout. (c7f4ebdf)
    • Fixed esp32 mac deinit stuck issue. (c7f4ebdf)
    • Fixed locking in incorrect state when stop_scan is called after wifi_connect (717be307)
    • Fixed some external coexist issues. (4baebdcd)
    • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries. (96b3442c)
    • Fixed STA cannot send keep alive when receive UDP packets (18b48329)
    • Fixed STA BSS max idle period always use default value (18b48329)
    • Fixed sleep without sending sleep null when enable BSS max idle (18b48329)
    • Fixed channel TX power limitation does not take effect when connected AP switch channel (18b48329)
    • Fixed the issue that TWT just post one event for multiple flows (df274a32)
    • Fixed TX power not update if country changes when enable multiple PHY init data bin (df274a32)
    • Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (df274a32)
    • Supported service specific info in NAN service discovery frames (https://github.com/espressif/esp-idf/issues/12473, https://github.com/espressif/esp-idf/issues/13366) (fe6f2d08)
    • Fixed issue that esp_wifi_set_tx_done_cb() should not process frames sent using esp_now_send(). (63897919)
    • Added DS parameter in probe requests from STA (d63d26d5)
    • Fixed the WEP shared authentication association timeout issue. (8e95ca29)
    • Fixed phy data partition restoring default fails issue. (8e95ca29)
    • Fixed occasional dropping of SA Query responses by SoftAP (7615c09c)

    Mesh

    Supplicant

    • Added support for WPA-Enterprise in Station mode (8bbe5001)
    • Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (7be9480d)
    • Added support to limit EAP method supported by device based on user configuration (2061f0c3)
    • Fixed pmksa expiration caused by sntp time synchronization issue. (30c47e8c)
    • Cleared SAE-PK capability in Assoc Request when not enabled at STA. (9a8d1bf3)
    • Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (d2b851d7)
    • Ensured disconnection with previously connected AP when initiating WPS. (d2b851d7)
    • Disabled IP renew skip by default since most AP don't support it. (37acb543)
    • Fixed issues reported by static analyzer. (37acb543)
    • Increased WPS message timeouts to address interoperability issues. (0a0b9bf0)
    • Added domain name validation support for EAP connection. (e4b89c0d)
    • Fixed send_confirm value for SAE confirm according to specification. (0ac4b9a4)
    • Added optimized PSK implementation (https://github.com/espressif/esp-idf/issues/15072) (02dcf4f3)

    Vendor

    • Added more check when receiving ESP-NOW data (b22ca796)
    • Fixed the issue that STA connection information loss LR info on ESP32C6 (cb1e3407)
    • Fixed the scan information error in LR only mode (181aeb82)
  • v5.5 8c750b088c

    ESP-IDF Release v5.5
    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-07-18 12:47:31 +00:00 | 12119 commits to master since this release

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

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

    ESP-IDF v5.5 is a minor update for ESP-IDF v5.4. Release v5.5 is mostly compatible with apps written for ESP-IDF v5.4.

    Obtaining v5.5

    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 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5
    cd esp-idf-v5.5/
    

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

    Download an archive with submodules included

    Attached to this release is an esp-idf-v5.5.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/esp-idf-v5.5.zip

    Major changes

    Major New Features

    Support for New SoCs

    Other Features

    • Greatly improved support for placing IRAM code into flash, especially in when using CONFIG_SPI_FLASH_AUTO_SUSPEND. For a list of all such configs see sdkconfig.flash_auto_suspend_iram_reduction
    • Coexistence: Supported BR/EDR (e)SCO and Wi-Fi coexistence. (79eb59dc)
    • Security: Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C6 (9ee8daf3)
    • Log: Added Log v2 (the choice between v1 and v2 is made by CONFIG_LOG_VERSION). Supported centralized log formatting via a single handler for all log macros. (ec990f4a)
    • Log: Added support for binary logging in Log v2 (33cab69f)
    • Heap: Added per task peak heap usage information when heap task tracking is enabled (6ef7ad67)
    • BitScrambler: Added BitScrambler loopback (memory2memory) driver (c8d4e1b0)
    • RMT: Added a new encoder for RMT TX driver, it allows the whole encoding session being controlled by the BitScrambler program. (34280444)
    • PARL_IO: Supported to embed a BitScrambler program in the parlio_tx_unit_transmit function (929e1495)
    • PARL_IO: Supported the infinite loop transmission for PARL_IO_TX. (8e591a21)
    • Storage/FATFS: Added options CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT and CONFIG_FATFS_DONT_TRUST_LAST_ALLOC to control how free space is calculated for a FATFS volume (https://github.com/espressif/esp-idf/issues/15241) (58fbcfb4)
    • Storage/NVS: Added limited support of nvs for bootloader (8255ba29)
    • Storage/NVS: Added support for read-only NVS partitions smaller than 0x3000 (no empty pages, have to be flagged as "readonly" in the partition table CSV file) (https://github.com/espressif/esp-idf/issues/15317) (3ab1ddaa)
    • Storage: Added support for std::filesystem (https://github.com/espressif/esp-idf/pull/13736) (37652904)
    • Toolchain: Added support to link with picolibc (enable with "CONFIG_LIBC_PICOLIBC=y") (f297a9d4)
    • Build & Config: Added support for conditional dependencies in idf_component.yml which depend on Kconfig option values (b43b2001)
    • Core System: Added CONFIG_ESP_SYSTEM_USE_FRAME_POINTER to enable frame pointer generation, simplifying backtracing at runtime. (52b558d2)
    • UART: Added UART DMA driver support (f66a750a)
    • UART: Added support for HP UART wakeup modes UART_WK_MODE_FIFO_THRESH, UART_WK_MODE_START_BIT, and UART_WK_MODE_CHAR_SEQ for ESP32-C5, ESP32-C6, ESP32-C61 and ESP32-H2. (8e25a37f)
    • SD-Host: Supported UHS-I SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) on ESP32P4 (ed8ec9de)
    • ISP: Supported bypassing ISP to receive data from MIPI CSI (f3f3cad0)
    • JPEG: Added support for decoding JPEG images without Huffman table (e12db428)
    • I2S: Supported PDM data format (RAW/PCM) selection (56349e6d)
    • LCD: Supported to simulate SPI/I80 interface LCD by Parlio peripheral (96323188)
    • LCD: Support color conversion for MIPI LCD driver (ad476afb)
    • SPI Flash: New feature for software resume when auto-suspend enabled, improve performance (df1a7d5b)
    • SPI Flash: Add a new example for supporting customized nor flash driver which can be used both in app and bootloader (2b1c27fe)
    • TWAI: Added a unified driver interface to support both TWAI and TWAI-FD peripheral (a16f621e)
    • Touch Sensor: Support ULP touch sensor driver on ESP32-P4 (afda4c18)
    • USB: Added support for OTG1.1 PHY on ESP32-P4 (70ead76a)
    • USB: Added select functionality to the USB CDC driver (1fa268c7)
    • USB Host: Added support for Low-Speed devices connected through Full-Speed HUB (https://github.com/espressif/esp-idf/issues/15683) (0ead3627)
    • USB Host: Added support for 2 USB instances on ESP32-P4 (1805efb0)
    • System Hardware: Add RTC battery backup support on ESP32-H2 (d8166220)
    • MSPI: Supported 120MHz Flash frequency timing tuning on ESP32P4 (4cb18200)

    Breaking Changes

    • WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (60e884b4)
    • WI-FI: Changed espnow sending callback function parameter mac_addr to esp_now_send_info_t. (2b390b2b)
    • Security / MbedTLS: If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (21f59bd0)
    • Bluetooth Common: Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information. (16ba8f89)
    • 15.4: Added a duration argument for ieee802154_receive_at() (82bd44d6)
    • Application Utilities / Provisioning Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (4f5bed28)
    • System Hardware: Internal RC32K clock is unstable at extreme temperatures and is not recommended for use. For ESP32C6, to continue to use RC32K clock as the RTC slow clock source now requires to select RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED Kconfig first; For ESP32H2/P4, this option is completely removed. (87716075)
    • Bluetooth Common / Controller: Moved esp_wifi_bt_power_domain_on and esp_wifi_bt_power_domain_off from esp_bt.h to esp_phy_init.h (45bd677c)
    • Wi-Fi: Modified the type of "bandwidth" and comment in wifi_ap_record_t. (5c3cb06d)
    • Tools: Python 3.8 support has been deprecated. ESP-IDF requires Python 3.9 or newer versions. (30b13b13)
    • ESP HTTPS Server: Updated the config ESP_TLS_SERVER_CERT_SELECT_HOOK in esp_https_server component (401fa7b0)
    • Newly Added
    • Security/MbedTLS: Starting from ESP-IDF v5.5, there is a change in how the SHA sub-function APIs, esp_sha_block() and esp_sha_dma(), are used. Previously, these APIs used to set the SHA mode internally, however, in the updated version, you must explicitly set the SHA mode before invoking them. For instance, if you intend to use the SHA-256 algorithm, you must first call esp_sha_set_mode() with the argument SHA2_256. (b37d4b33)
    • Peripheral Drivers/Touch Sensor: Adjust touch channel number on P4 from 0-13 to 1-14. (80abd1c7)

    Major Bug Fixes

    Changelog

    This is the list of changes since release v5.4.

    15.4

    • Added support for the ESP32C5 revision v0.2 (35d17049)

    MAC

    • Added Tx/Rx frame dumping for debugging. (fcbe4930)
    • Added a duration argument for ieee802154_receive_at() (82bd44d6)
    • Set 802.15.4 energy scan duration before cca (61a8aa80)
    • Supported IEEE802.15.4 ISR callbacks registration feature (a29589e2)
    • Supported configuring 15.4 PTI at runtime (6f8c76df)
    • Introduced a series of APIs to set/get 15.4 O-QPSK 2.4G PHY txpower for each channels. (2e301113)
    • Supported setting/getting ACK timeout APIs (9d1a4eba)
    • Supported rx buffer and txrx statistics in 802.15.4 debugging mode (41b083d2)
    • Returned ESP_FAIL if enh-ack generating logic was not implemented. (a1ec2782)

    Thread

    • Updated openthread submodule (ec2b0d487) (8836310b)
    • Supported OT_BR example for ESP32-P4 (8836310b)
    • Supported bus_latency configuration for Thread BR (77efe91c)
    • Supported periodic parent search mechanism for MTD (b79b7ac2)
    • Added a callback to handle rcp reset failure (bdf0ccaa)
    • Bound DNS server to unspecified netif on Border Router (211074d7)
    • Supported DNS resolution / forwarding for Thread BR (3eed1624)
    • Fixed recursive multicast packet forwarding issue (3eed1624)
    • Added a function to ensure monotonically increasing frame counter (c0ba3613)
    • Fixed CSL issue in which RX is not turned off during idle periods (82bd44d6)
    • Added an API to to set RCP version string (c2e90612)
    • Supported hardware reset RCP while processing RCP failure for the example ot_br (3c74432f)
    • Fixed SRP server to support zero number of subtype item when updating service (e9914423)
    • Supported otPlatRadioGetPreferredChannelMask, added a configuration to set the preferred channel mask. (2e301113)
    • Fixed the conflict in the DNS hook when both Wi-Fi and Thread are enabled (5a261da8)
    • Added set dns server address API for Thread network interface (5a261da8)
    • Added Thread connect support in protocol_common component (7d46a4a0)
    • Supported custom header file for openthread configuration (42cbc7aa)
    • Fixed the bug that 3-wire external coexistence on ESP32-H2 does not work properly (8576f40c)
    • Supported RCP compatibility mismatch error handler (37305679)
    • Enabled bbr feature to support multicast by default (37305679)
    • Supported modifying port and txt in SRP server (37305679)
    • Fixed the issue of incorrect duration and channel configuration in otPlatRadioEnergyScan calls (7bc93933)
    • Added OpenThread dataset changed event (a2f35850)
    • Supported to allocate NAT64 session from PSRAM. (8ac260a9)
    • Newly Added
    • Added a function to exit openthread main loop safely (f7046307)

    Zigbee

    • Updated Zigbee Gateway example to use ot_rcp instead of esp_zigbee_rcp (47c8ca55)
    • Updated the Zigbee examples to be based on the ESP-Zigbee 1.6.x release (47c8ca55)
    • Removed the esp_zigbee_rcp example (47c8ca55)

    Application Utilities

    App Update

    CJSON

    • Update to latest upstream cJSON master. (07787485)

    ESP HTTP Client

    ESP HTTP Server

    ESP HTTPS OTA

    ESP HTTPS Server

    • Fixed the HTTP server Async handler example for multiple /long URI requests and handled some error conditions. (https://github.com/espressif/esp-idf/issues/15587) (fbc38a95)
    • Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the Key Usage parameter due to the change in Python3.13's default ssl context requirements. (ccf71785)
    • Optimized memory usage for HTTP request with dynamic memory allocation for header and CONFIG_HTTPD_MAX_REQ_HDR_LEN now serving as the maximum limit. (e3e49d74)
    • Updated the config ESP_TLS_SERVER_CERT_SELECT_HOOK in esp_https_server component (401fa7b0)
    • Newly Added
    • Fixed httpd_register_uri_handler api for memory leak (https://github.com/espressif/esp-idf/issues/15878) (95b7c023)

    ESP Local Control

    Provisioning

    • Update security2 scheme to fix the incorrect AES-GCM IV usage (4f5bed28)
    • Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (4f5bed28)
    • Fix hostname resolving for IPv6-only host (7aaab5a3)

    BLE

    • Removed support for the ESP32C5 revision v0.1 (35d17049)
    • Added support for the ESP32C5 revision v0.2 (35d17049)
    • Add Bluetooth LE direction finding feature (CTE) for ESP32-H2. (aac2e92f)
    • Fixed crash in BLE HID host example during logging (817de148)

    BluFi

    Bluedroid

    • Increased maximum attribute value length to 517 to prevent data loss. (f03b0fe0)
    • Fixed validation logic for BLE GAP appearance configuration. (f03b0fe0)
    • Added sync_cte_type in bluedroid PA sync fucntion (38628f98)
    • Added throughput mode for BLE SPP example. (3b16d5cf)
    • Reported cte_type in periodic adv report if CTE feature is enabled (241afda2)
    • Fixed missing event reporting in esp_ble_create_sc_oob_data. (21ca2378)
    • Fixed BLE crash when disable bluedroid host. (21ca2378)
    • Fixed potential uint32_t overflow in BLE btu_start_timer. (21ca2378)
    • Fixed memory leak issue when using dynamic memory and deinitializing the host. (21ca2378)
    • Added a new API esp_bt_config_file_path_get() to retrieve the Bluetooth configuration file path used for storing bond keys in the NVS module. (21ca2378)
    • Added esp_ble_gap_read_channel_map() API to retrieve the BLE channel map of a connected device. (21ca2378)
    • Supported BLE iso feature in bluedroid host (6d3bd5df)
    • Supported BLE CTE feature in bluedroid host (6d3bd5df)
    • Supported BLE bluedroid host power control feature (6d3bd5df)
    • Supported BLE bluedroid host connection subrating feature (6d3bd5df)
    • Added BLE eddystone sender example. (2217fb81)
    • Supported read periodic advertiser list size command. (bcea8c98)
    • Added Read Long Characteristic Values example. (5787da0a)
    • Supported SPI log output options for HCI. (5f2a7f4d)
    • Fixed an issue where advertising data and scan response data were not reported together during BLE active scanning. (1bfc6edd)
    • Supported BLE vendor hci event reporting (8ad16fd5)
    • Supported BLE setting vendor event mask (8ad16fd5)
    • Reduced bluedroid host bin size (7d751dcc)
    • Supported change HID task size by Kconfig in HID example(https://github.com/espressif/esp-idf/pull/15320). (b51d4d2a)
    • Optimized the references to BLE GATT related APIs. (19b5381c)
    • Added BLE get started examples for Bluedroid. (b87ba038)
    • Added config for saving BLE bonding keys to NVS flash. (79aae54f)
    • Fixed connection params copying when creating BLE connection. (b6b0758e)
    • Supported setting BLE connection parameters when creating connection. (93257ed7)
    • Fixed event reporting upon completion of preferred connection parameter settings. (79f26ad6)
    • Fixed the issue where the BLE channel selection algorithm event was not reported. (21acfc28)
    • Fixed an issue where BLE connection creation failed due to an invalid own address type. (f420609c)
    • Added BLE 5.0 throughput examples. (5910fc82)
    • Fixed a build failure in Classic Bluetooth that occurred when dynamic memory was enabled and BLE was disabled. (c014ced2)
    • Fixed BLE build failure when enabling dynamic memory with BLE 5.0 (08f1c368)
    • Newly Added
    • Fixed extended adv restart failure during reconnection. (7b1cbb89)
    • Fixed BLE SMP state machine inconsistency on disconnection (624175fc)
    • Fixed null pointer assert in l2c_link_check_send_pkts (9a74093e)
    • Fixed issue with deleting link key when classic Bluetooth is not used. (0e585a29)

    Controller

    • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (a3edce57)
    • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (a3edce57)
    • Fixed an occasional packet loss issue in multi-connection scenarios on ESP32-C6. (a3edce57)
    • Fixed a crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (a3edce57)
    • Fixed an occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (3f2f57a3)
    • Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (3f2f57a3)
    • Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (3f2f57a3)
    • Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (3f2f57a3)
    • Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (3f2f57a3)
    • Fixed disconnection due to MIC error when pairing with an iOS device on ESP32-C3 and ESP32-S3. (7a3925a5)
    • Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (7ee1bf0c)
    • Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (7ee1bf0c)
    • Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (7ee1bf0c)
    • Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (57fd0513)
    • Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2 and ESP32-C5. (57fd0513)
    • Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (57fd0513)
    • Fixed an occasional issue where the connPeripheralLatency parameter was not properly applied on ESP32-C6, ESP32-H2 and ESP32-C5. (57fd0513)
    • Disabled anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (1edf45e3)
    • Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (1edf45e3)
    • Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (1edf45e3)
    • Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (1edf45e3)
    • Fixed bluetooth controller flash only bug if hci-uart is enabled on ESP32-C3 and ESP32-S3 (241afda2)
    • Fixed a heap assertion issue when enabling BLE and ESP32C2_REV_MIN_200 for ESP32-C2 v2.0 (f7218f77)
    • Fixed an occasional load access fault issue when performing ext_conn creation for ESP32-C2. (16ba8f89)
    • Added definitions for bluetooth hci vendor commands and events (16ba8f89)
    • Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C61. (8d97ce5d)
    • Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C61. (8d97ce5d)
    • Fixed gpio unavailable warning when repeatedly reconfiguring hci uart pins on ESP32-C2, ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C61. (8d97ce5d)
    • Added a function to maintain the connection when an instant pass issue occurs on ESP32-C2. (cafbd7bd)
    • Fixed extended advertising interval upper limit issue on ESP32-C6 and ESP32-H2. (cafbd7bd)
    • Reduced controller bin size and heap for ESP32-C3 and ESP32-S3 (f941b0d9)
    • Fixed enhanced TX power setting and getting for legacy adv on ESP32-C3 and ESP32-S3. (7e00ea43)
    • Fixed BLE assert lld_con.c 2387 on ESP32-C3 and ESP32-S3(https://github.com/espressif/esp-idf/issues/14938) (7e00ea43)
    • Fixed compatibility issues during the encryption procedure on ESP32-C3 and ESP32-S3. (7e00ea43)
    • Added BLE debug log module on ESP32-C3 and ESP32-S3. (0461e2ff)
    • Added channel assessment function on ESP32-H2 and ESP32-C6. (5abfc059)
    • Won't terminate the connection when instant pass issue triggers on ESP32-H2 and ESP32-C6. (5abfc059)
    • Fixed the issue where disconnection events were not reported as a slave on ESP32. (1f84180a)
    • Enhance Access Address validation in compatibility mode on ESP32. (1f84180a)
    • Fixed scan duplicate filter failure when receiving ADV_DIRECT_IND for ESP32-C2. (07ce83a3)
    • Fixed an occasional assertion issue when msys memory cannot be obtained on ESP32-C6 and ESP32-H2. (8563c2fc)
    • Fixed an issue where the default tx power of connection is incorrect after setting the scan tx power on ESP32-C6 and ESP32-H2. (8563c2fc)
    • Fixed an issue that failed to establish a connection using a resolvable private address on ESP32-C2. (8563c2fc)
    • Updated the BLE rom.ld file for ESP32-C2 v1.0, v1.1, v1.2 and v2.0. (8563c2fc)
    • Supported for putting ble code into flash on ESP32-C6 and ESP32-H2. (8563c2fc)
    • Fixed an issue that failed to establish a connection using a resolvable private address on ESP32-C6 and ESP32-H2. (8563c2fc)
    • Fixed an occasional ACL disconnect issue under multiple connections on ESP32-C6 and ESP32-H2. (8563c2fc)
    • Supported resolving peer RPA to identity address when creating connection on ESP32-C3 and ESP32-S3. (3f6d1f64)
    • Fixed peer address type error in HCI LE meta event on ESP32-C3 and ESP32-S3. (3f6d1f64)
    • Resolved assertion failure “assert lld_scan.c 1728, param 00000000 00000000” on ESP32-C3 and ESP32-S3. (3f6d1f64)
    • Fixed BLE assert rwble.c 505 param 00400010 on ESP32-C3 and ESP32-S3. (3f6d1f64)
    • Fixed setting random address failed when extended advertising is enabled on ESP32-C3 and ESP32-S3. (3f6d1f64)
    • Added parameter validation for Periodic Advertising Enable on ESP32-C3 and ESP32-S3. (3f6d1f64)
    • Added config to enable/disable BLE channel assessment and ping procedure on ESP32. (6cc06c6c)
    • Fixed BLE assert in lld_evt.c at line 2353 on ESP32. (6cc06c6c)
    • Fixed interrupt watchdog timeout when shutdown BT controller on ESP32. (6cc06c6c)
    • Provided DTM configuration command in HCI example. (60fea222)
    • Fixed that the resolvable private address does not change when light sleep is enabled on ESP32C3 and ESP32S3 (ad42627d)
    • Fixed an occasional ACL disconnect issue with long running time on ESP32-C2. (8458cfff)
    • Fixed an occasional ACL packet loss issue when Central frequently sends data on ESP32-C2. (8458cfff)
    • Fixed an occasional WDT issue with long running time on ESP32-C2. (8458cfff)
    • Added a verification step for the Access Address within the CONNECT_IND PDU on ESP32-C3 and ESP32-S3. (397fb43d)
    • Fixed BLE 5.0 duplicate scan issue for chained packets on ESP32-C3 and ESP32-S3. (397fb43d)
    • Fixed a occasional wdt issue in multi-connection scenarios on ESP32-C6. (3075efd8)
    • Fixed an occasional ACL disconnect issue when updating connection parameters on ESP32-H2. (3075efd8)
    • Fixed BLE assert ke_mem.c 267 on ESP32-C3 and ESP32-S3 (bcfe6469)
    • Removed BLE creating connection assertion when the connection already exists on ESP32. (d54390ec)
    • Fixed an issue where the scan window occasionally became smaller than expected when light sleep was enabled on ESP32-C2. (4f226b4e)
    • Fixed an issue where extended scan failed to correctly set the coexistence scheme status on ESP32-C2. (4f226b4e)
    • Fixed an occasional issue where ADV fails to transmit on channel 38 on ESP32-C2. (4f226b4e)
    • Fixed occasional ACL disconnect when light sleep is enabled on ESP32C61. (a3922cd1)
    • Supported for putting code in flash on ESP32-C2 (ea31e155)
    • Fixed occasional crash issue in low memory scenarios on ESP32C6 and ESP32H2. (1f49c9a8)
    • Supported for running controller code in flash-only mode on ESP32-C3 and ESP32-S3 (92e4b80a)
    • Added a verification step for the Access Address within the CONNECT_IND PDU on ESP32. (1acc70f4)
    • Newly Added
    • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (5c6701aa)
    • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (5c6701aa)
    • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6, ESP32-H2 and ESP32-C5. (24e32368)
    • Fixed an occasional abnormal scanning stop issue on ESP32-C6, ESP32-H2 and ESP32-C5. (24e32368)
    • Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6, ESP32-H2 and ESP32-C5. (24e32368)
    • Fixed an occasional assertion issue during scanning on ESP32-C6. (24e32368)
    • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/15789) (fc71a864)

    Documentation

    • Updated the Bluetooth SIG Qualification information for ESP32-C6. (96af7b4a)
    • Updated the BLE feature support status in API Guides. (96af7b4a)
    • Added Bluetooth SIG Qualification information to API Guides. (fa41fafd)

    Mesh

    • Support for using multiple advertising instances on BLE Mesh (305f1c1e)
    • Optimized the performance of remote provisioning (604ccb8f)
    • Fixed an issue where an unprovisioned device could be simultaneously provisioned by both a provisioner and a remote provisioning client. (604ccb8f)
    • Supported Proxy Client and Proxy Server coexistence (d74bf059)
    • Support BLE 5.0 on Bluedroid and NimBLE host. (87e4f63c)

    NimBLE

    • Added new Gattc + Gatts BLE coex example for nimble . (06ee44ef)
    • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (5273ba97)
    • Added support for anonymous address type for whitelist (4498eea2)
    • Added fix for an async race condition with HCI outstanding packets counter (4498eea2)
    • Add configurable option to select ext adv v2 command (4498eea2)
    • Added api's to fetch gatt cache info (f8cdf02b)
    • Added option to enable stack to handle repeat pairing internally (7cf5dacd)
    • Added runtime configurable support for observer role, security mode 1 level, and GATT caching (386a3905)
    • Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (386a3905)
    • Fixed LLS crash when no callback was registered for LLS event (386a3905)
    • Added SPS callback event to expose changes in scan parameters (386a3905)
    • Fixed incorrectly passed in GATT Caching disovery operations (386a3905)
    • Enabled Connection Subrating bit in ESP32C6 (386a3905)
    • Optimized nimble throughput example by extended adv support and switching between different Phy modes. (e0da61ca)
    • feat(nimble): Added tutorials for PAwR examples (61d1a1ff)
    • Fix sync handle assignment for PAwR connection (cc98f5b2)
    • Fixed incorrect OTA address type assignment [ Closes https://github.com/espressif/esp-idf/issues/15740 ] (771e9db7)
    • Corrected event posting in Read Remote Features event handling [ Closes https://github.com/espressif/esp-idf/issues/15670 ] (1c468f68)
    • Added missing ble_hs_unlock for periodic adv sync reattempt case. (cc4fc21b)
    • Fix conversion for min-max itvl of periodic adv param in example (6e1f0716)
    • Fix SMP command allocation (ffe83c23)
    • Add support for Vendor Event mask VSC (bbca89da)
    • Fix incorrect event deinit in gatt caching discovery (77346e0b)
    • Exposed the ble_gap_wl_tx_add API to add a device in whitelist (b1effd0c)
    • Fixed pairing failure issue when SC only mode is selected (3eeca52e)
    • Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (030cdf98)
    • Handle application code compilation issue due to removal of link_estab structure (cf169a40)
    • Update controller data length upon connection creation. (3bf56f7d)
    • Deprecate BLE_GAP_EVENT_LINK_ESTAB event. (10800641)
    • Handle not sending disconnect event if connect event was not sent (d65d2fd4)
    • Add offset in GATT server long read context (9411fd0a)
    • Restart adv / sync when periodic sync fails due to 0x3E (90bad97f)
    • Enhanced error handling by adding to print core error definitions (cefefb3d)
    • Fixed nvs corruption due to BLE_ENV_ADV_DATA flag (b70c995b)
    • Address compilation issue observed when WARN_WRITE_STRINGS is set . [ PR: https://github.com/espressif/esp-nimble/pull/84 ] (a1154699)
    • Updated README.md by removing unclear line (https://github.com/espressif/esp-idf/issues/15284) (6e596644)
    • Handle nested locks when BT_NIMBLE_DEBUG enabled (https://github.com/espressif/esp-idf/issues/15014, https://github.com/espressif/esp-idf/issues/15294, https://github.com/espressif/esp-idf/issues/15202) (56fb641d)
    • Fix compilation warnings in nimble examples. [ Closes https://github.com/espressif/esp-idf/issues/15157 ] (5dda7315)
    • Clear our and peer security records cleanly during unpair. (a77c4e7e)
    • Additional PAwR changes support for ESP IP (a77c4e7e)
    • Added HCI Read Remote Version Information command. (a77c4e7e)
    • Reset global variables during link disconnection (4a071793)
    • Corrected storing method of csfc to nvs (724663ee)
    • Fixed coverity reported issues. (d0ffd254)
    • fix(nimble): Save the gatt context in case of preemption (429d9982)
    • Fixed compilation issue for combination of Ext Adv and Reattempt connection flag. (e2882a11)
    • Add ATT Tx queue cleanup during link disconnection (32a5b6e4)
    • Fix compilation issues when BLE_MAX_STORE_BOND is set to 0. [ https://github.com/espressif/esp-idf/issues/14712 ] (172bebe4)
    • Added a check for invalid offset (2100a5a0)
    • Added change to assign correct peer OTA address type (27a48c03)
    • Fixed memory leak issue in BluFi Example (9ee2f9e1)
    • Updated error print function to include HCI opcode information (a6b1b33c)
    • Changing esp_rom_printf to ESP_LOGI when memory allocation fails (c3381e74)
    • Corrected link_estab event handling parameters (4885e24e)
    • Changed CSFC max size to avoid invalid NVS overflow event (2c31596a)
    • Added fixes for CVE-2024-(47248/47249/47250/51569) vulnerabilities for nimble (a8691924)
    • Added a function for printing HCI error definition (79930189)
    • Fix compilation issue in esp_hid_host example (5d250a23)
    • Replace ESP_LOG* with esp_rom_printf in controller context callback (2d1a2a7a)
    • Add support for Multiple Variable Length Notifications. (e5177611)
    • Add support for Multiple EATT bearers. (e5177611)
    • Added support of LE GATT Security Level Characteristic (e5177611)
    • Fixed issue in L2CAP regarding incorrect comparison between SDU length and MTU/MPS (e5177611)
    • Added menuconfig option to enable SC only mode. (e5177611)
    • Added fix to clear IRK from controller when clearing keys from NVS during signed write operation (e5177611)
    • Add support for ATT over Enhanced L2CAP Credit Based Flow Control Mode. (e5177611)
    • Fixed memory issue in multiple L2CAP COC connections. (e5177611)
    • Added support for AD Types Advertising Interval - Long, LE Supported Features, and Encrypted Advertising Data (e5177611)
    • Added menuconfig option to enable L2CAP Enhanced COC (e5177611)
    • Fixed issues in connection subrating request. (e5177611)
    • Fixed crash issue in read multiple variable length callback (e5177611)
    • Added support for PAwR feature (e5177611)
    • Added a host config to enable/disable SC Only mode (e5177611)
    • Fixed Device Information, Battery Level service and Scan Parameters [ https://github.com/espressif/esp-idf/issues/14864 ] (e5177611)
    • Resolved watchdog due to memory exceed prints (8eeb3e20)
    • Nimble Error logs in case of memory overflow/failure (749cfa1c)
    • Removed min/max macro definition from os.h (https://github.com/espressif/esp-idf/issues/14840) (393b7410)
    • Newly Added
    • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (aac26c84)
    • Fixed issue of Adv report not observed in PAwR example. (2f3351f1)
    • Add Support for Apple Notification Center Service (ANCS) in NimBLE (39ebd0b1)
    • Wrap BLE service API with extern "C" (e17993b1)
    • Fix compilation issue when CSFCS is set to 0. (e17993b1)
    • Add chip dependancy flag for Flow control feature (e536aa67)
    • Handled memory leak due to missing mempool_deinit call (e536aa67)

    Bluetooth Common

    • Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information . (16ba8f89)
    • Add support for converting BT HCI logs to btsnoop format. (39eb6732)

    Bluedroid

    • Set default value of BT_BLUEDROID_ESP_COEX_VSC to n if software coexistence is not required, (895bb2af)

    Controller

    • Fixed the issue that disable Bluetooth controller may cause interrupt watchdog timeout on ESP32 (be5cad56)
    • Disable debug vendor HCI command on ESP32. (bdd9077b)
    • Added API to get/set low power clock source on ESP32 (ef740321)
    • Move esp_wifi_bt_power_domain_on and esp_wifi_bt_power_domain_off from esp_bt.h to esp_phy_init.h (45bd677c)

    Bootloader

    • Fixed partition size cannot exceed 16MB issue, when CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH or CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH is on (574b27d0)
    • Added a new custom bootloader example that implements multiboot (55955a5c)
    • Added support to use flash MMU page size from app binary header (4c6cda73)
    • Added the CMake variable BOOTLOADER_EXTRA_COMPONENT_DIRS, making it possible to add extra components to the bootloader build, without the need to place them in bootloader_components/ (56922248)

    Build & Config

    Classic Bluetooth

    Bluedroid

    • Added support for initializing secure connection host support feature during Bluedroid initialization (ee9c524b)
    • Fixed the issue that l2cap stop server did not report the ESP_BT_L2CAP_SRV_STOP_EVT event (141d19ce)
    • Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (660898dc)
    • Added events for l2cap register and unregister vfs (03c229e9)
    • Fixed write_read task stack overflow in l2cap example (03c229e9)
    • Fixed the issue with l2cap not using dynamic memory (03c229e9)
    • Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (5f3097f2)
    • Refactor HFP and A2DP audio data path to support using external codec (96244e08)
    • Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (fb0a087d)
    • Fixed the issue that PBAC may free undefined memory when connection close with service discovery failed (569f97da)
    • Fixed the issue that some memory in OBEX not being freed when deinitializing Bluedroid (569f97da)
    • Fixed reporting of unexpected ESP_BT_GAP_DISC_STATE_CHANGED_EVT event upon ACL disconnection, due to uninitialized local variable (2bf3fd52)
    • Fixed the issue that after SPP reaches the maximum number of connections, it will mistakenly free the server resources when disconnecting, causing the next server start to fail. (9ba55278)
    • Fixed memory leaks in SPP callback mode (9aaa7f82)
    • Add sdkconfig for SDP size options (https://github.com/espressif/esp-idf/pull/15321) (26a1b69a)
    • Add Kconfig option to keep device bonding information when HID virtual cable unplugging (f390fcbd)
    • Fixed incorrect records in SDP record search response using 16-bit UUID (9dde33e8)
    • Fixed error type returned when searching for SAP records (9dde33e8)
    • Support get play status feature in AVRCP CT (6109542f)
    • Fixed memory leak issue in esp_avrc_ct_cover_art_get_image API (cb3ac742)
    • Support Phone Book Access profile client role (cb3ac742)
    • Fixed NULL pointer access exception in HFP callback handler (c8b9ea3b)
    • Disconnect SDP connection on receiving incorrect response or the ACL connection will never be released (56a55c09)
    • Fixed the incorrect service UUID in the callback parameter of ESP_SDP_SEARCH_COMP_EVT due to byte alignment issue (4097a27c)
    • Added HFP callback event for notification of profile ON/OFF state (6c62e08b)
    • Fixed AVRCP compatibility issue on absolute volume synchronization (f0ab5513)
    • Fixed memory leak for synchronous data queue when disabling Bluedroid (bb5a53c6)
    • Newly Added
    • Added AVRCP callback event for notification of profile ON/OFF state (c4747aae)
    • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (0ea73a92)

    Controller

    • Implemented a workaround for potential data packet exchange issues when secure connection is enabled on ESP32 (ee9c524b)
    • Fixed a crash issue caused by accessing external memory in ISR context on ESP32 (eb0d3677)
    • Fixed ACL has few chance to run when it coexists with SCO on ESP32 (abe76801)
    • Fixed errors in dynamic priority configuration in Bluetooth dual mode on ESP32 (abe76801)
    • Fix the incorrect unit of duration_min in CPB TX on ESP32 (dbe3c111)
    • Recalculate the channel map when AFH is enabled on ESP32 (dbe3c111)
    • Fixed assessing NULL pointer in case of handling earlier message when Bluetooth Classic connection gets disconnected (https://github.com/espressif/esp-idf/issues/15128) (94cfe394)
    • Avoid accessing released ACL resources in SCO logic on ESP32 (94cfe394)
    • Fixed no release of event scheduling element in after SNIFF negotiation failure on ESP32 (https://github.com/espressif/esp-idf/issues/13605) (9f68b151)
    • Removed an assertion in SCO data TX handler after disconnection on ESP32 (https://github.com/espressif/esp-idf/issues/15176, https://github.com/espressif/esp-idf/issues/15084) (9f68b151)
    • Fixed missing critical protections on linked-list structure of (e)SCO buffers on ESP32 (21e07da1)
    • Fixed the issue where the pause and resume encryption requests were not initiated after the link key upgrade completion on ESP32 (04429da4)
    • Fixed the issue that the create_conn_cancel_cmd was rejected to cancel connection creation process and returned inappropriate error code in some states on ESP32 (2b8c581e)
    • Fixed duplicated encryption restart process when new lk type is semi-permanent key on ESP32 (df69b78a)
    • Fixed the issue where HCI_Encryption_Change was not reported to host after changing the key type, even when the encryption mode was correctly changed via HCI_Set_Connection_Encryption command on ESP32 (df69b78a)
    • Fixed zero attempt value set by role switch which cause fatal hardware error on ESP32 (e4102c54)
    • Fixed missing of critical protection for the free method of (e)SCO buffers on ESP32 (e4102c54)
    • Fixed wrong logic in handling sniff transaction collision at slave side on ESP32. (7bc8b998)
    • Fixed the issue ACL is stopped too early before eSCO on ESP32. This issue can cause ACL Perihperal to be unable to receive acknowledgements from the ACL Central, resulting in an infinite retransmission of a certain packet on the Peripheral side. (7bc8b998)
    • Fix crash upon name request from peer device without setting local device name on ESP32 (203e5432)
    • Set the QoS value to the minimum value if the calculated QoS is less than the minumum on ESP32 (203e5432)

    Coexistence

    • Supported BR/EDR (e)SCO and Wi-Fi coexistence. (79eb59dc)
    • Fixed disable external coexist fail issue. (5fd47af0)
    • Added coexistence scheme for BT Inquiry/Page coexist with WIFI (22869af2)
    • Newly Added
    • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (6fd5f514)

    Core System

    • Added unit test ordering by file path and line number (https://github.com/espressif/esp-idf/issues/15529) (182b33ef)
    • Fixed DRAM_DMA_ALIGNED_ATTR for ESP32-P4 (53e84d97)
    • Ensure proper reset for crypto peripherals before software restart. This fixes a rare and intermittent secure boot verification failure based on RSA-PSS scheme. The fix is recommended for aggressive revocation config. Please see commit log for more details. (e37c47f6)
    • Added CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS option to improve memcpy/memcmp/memmove/str[n]cpy/str[n]cmp performance for misaligned memory access for riscv chips. (a31f4877)
    • Fixed system console not correctly outputting to usb-serial-jtag secondary output console on newer chips (afedcb7c)
    • Fixed esp_ptr_executable to specifically check if the pointer is in PSRAM memory on esp32p4. (7e93f4b5)
    • Fixed missing implementation of __atomic_test_and_set required by GCC 14 (https://github.com/espressif/esp-idf/issues/15167) (66cf5184)
    • Improved detection of illegal writes to flash rodata on ESP32-S3, exception should now trigger faster and provide more accurate error information. (b0776182)
    • Deprecated TARGET/rtc.h header file, these have been replaced by esp_rtc_time.h (2e6a6c0d)
    • Fixed linker script for ESP32-C3, ESP32-S2 and ESP32-S3, reducing Flash usage by up to 512 bytes. (bcd80c92)
    • Fixed esp-ringbuf logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER (184a8aa6)
    • Fixed typo in ROM API documentation (https://github.com/espressif/esp-idf/pull/14518) (b6be76f5)
    • Corrected the address used to fetch the application image header during system startup (5504a596)
    • Newly Added
    • Fixed an issue that prevented RTC reserved area to have a size multiple of 4 (https://github.com/espressif/esp-idf/issues/13082) (59865667)

    Console

    ESP Event

    ESP Timer

    • Added option for placing functions in flash if using flash-auto-suspend (ee87960c)

    Heap

    Interrupts

    • Added kconfig option CONFIG_ESP_INTR_IN_IRAM for placing interrupt related API into flash when using CONFIG_SPI_FLASH_AUTO_SUSPEND (e8240916)
    • Fixed spelling mistakes in the soc/interrupts.h (https://github.com/espressif/esp-idf/pull/15273) (04078794)
    • Implemented a way to allocate a shared interrupt specifying the interrupt line destination. (8dfcafa1)
    • Fixed a bug in the interrupt allocator that resulted in the level of shared interrupt being overwritten with the last level given. (8dfcafa1)
    • Fixed wrongly reserved interrupt for WiFi on ESP32-H2 (cfe70218)

    Linux target

    Log

    Newlib

    • Updated usleep() to ensure it never sleeps for less than the requested duration. For multi-tick delays, it now also yields CPU time more effectively (https://github.com/espressif/esp-idf/pull/15132) (15c349b0)
    • Added kconfig option CONFIG_LIBC_MISC_IN_IRAM for placing newlib related API into flash when using CONFIG_SPI_FLASH_AUTO_SUSPEND (3fdcf318)
    • Removed unnecessary IRAM attributes from some newlib functions, slightly reducing IRAM usage. (70371347)
    • Added kconfig option CONFIG_LIBC_LOCKS_PLACE_IN_IRAM for allowing newlib lock API to be placed into flash if deselected. If these APIs are not used from IRAM ISRs where cache is disabled then placing them in flash saves ~1KB of IRAM. (70371347)

    Panic handling

    Partition Table

    • Fixed partition table names must be only ASCII characters (4aa47aac)
    • Supported primary subtypes partitions for bootloader and partition_table types (1a419e59)

    Pthread

    Watchdogs

    • The LP-WDT on ESP32-P4 now takes into account the value EFUSE_WDT_DELAY when setting the timeout (4608cc0e)
    • Fixed an issue on ESP32-P4 causing unexpected WDT resets and preventing halting after a panic when CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT set (648a3001)

    Debugging

    • Moved gdbinit files generation to CMake configuration stage (2a6e0843)
    • Added "--gdb-commands"/"-x"/"-ex" options for "idf.py <gdb|gdbgui|gdbtui>" to pass custom options to GDB (2a6e0843)

    Apptrace

    Core Dump

    • Hide the --chip-rev argument in idf.py coredump-* help because it is need for older ESP-IDF versions only (969ea94a)
    • Fixed potential checksum errors by using a buffer to write to flash. (1b71db8d)

    GDB Stub

    • Supported riscv xesppie extension (f667ba73)

    Documentation

    • Corrected LP Core documentation about esp_idf_monitor usage (33c340a3)
    • Changed PDF download link to a HTML zip archive download (813b98ca)
    • Updated information about debugging the heap. (0564e9d4)

    Ethernet

    FreeRTOS

    • Introduced Kconfig option CONFIG_FREERTOS_PLACE_ISR_FUNCTIONS_INTO_FLASH to allow placing FreeRTOS APIs called from ISR context in to Flash memory. (5ba12ea9)

    IDF Additions

    IDF Kernel

    • Fixed an issue where automatic light-sleep can cause FreeRTOS ticks to jump and cause unexpected timeouts (https://github.com/espressif/esp-idf/issues/15642) (6a740a94)
    • Fixed an issue in HWLP coprocessor support where, due to a hardware bug, the previous context could be incorrectly restored in certain cases. (d3fd64d6)
    • Added a Coverity error suppression comment to tasks.c during idle task name copy operation. (c776de61)
    • Fixed an issue where the idle task name copy operation could result in an out-of-bounds memory access. (2c4588bb)
    • Fixed an issue where the idle tasks in SMP configuration could be non null-terminaated strings. (2c4588bb)

    LWIP

    DHCP

    DHCP Server

    ESP Netif

    • Added infrastructure to IGMP and MLD configure MAC address filter based on joined multicast group (eba9549b)
    • Added support for additional PPP server properties (DNS servers, passive connection) (https://github.com/espressif/esp-idf/pull/15459) (23c73cdc)
    • Fixed IP address notification from DHCP client after lease expiry and renewal (584fc500)
    • Fixed esp_netif bridge glue layer for targets with no WiFi support (e65c9a52)
    • Enable user to set route priority after esp_netif creation. (9e2671dc)
    • Added time stamp value retrieval via L2 TAP interface. (7f07c9de)
    • Newly Added
    • Fixed reassigning the last static IP address after disconnection and reconnection (cf8dad07)

    TCP

    Low Power Features

    • Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (cd1601f4)
    • Fixed the issue that esp32p4 may get stuck when entering deepsleep. (7f46f615)
    • Fixed deepsleep leakage after USB HS phy is initialized on esp32p4 (693dfe6b)
    • Supported switch to VBAT power supply in deep sleep on esp32p4. (45f495cb)
    • Updated the bootloader clock configuration method to not disable the LP Timer interrupt (https://github.com/espressif/esp-idf/issues/15751) (465b159c)
    • Allowed to keep SAR ADC power when using ADC_ULP_MODE. (https://github.com/espressif/esp-idf/issues/12426) (22f0ee54)
    • Optimized CPU IDLE power consumption by enabling automatic clock gating of CPU/Cache/memory. (38fcc41f)
    • Fixed power leakage when external 32k slow clock source detection fails. (1304fdc3)
    • Fixed the issue that esp32c2 may fail to wake up after entering deepsleep with external 32 kHz oscillator. (2d1c99e7)
    • Warning the use of lightsleep GPIO/UART wakeup source if PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP option is enabled. (e57f02e9)
    • Fixed the issue that accessing external storage (Flash/PSRAM) after waking up from light sleep may get wrong data when ESP_SLEEP_KEEP_DCDC_ALWAYS_ON is not enabled on ESP32-P4. (5fd4104d)
    • Added sleep duration validity check in esp_sleep_enable_timer_wakeup. (#15255) (e95103aa)

    ULP

    LP Core

    ULP-RISC-V

    Networking

    Examples

    PHY

    • Added config for esp32c2 to move IRAM func to flash (e9d2d033)
    • Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (e408213b)
    • Improved esp32s2 recv 24M Block Ack packet performance, revert finally (578c8b85)
    • Optimization of RX calibration in high-interference environments (d5f2447b)
    • Supported PHY changes for ESP32-H2 revision v1.2 (915762c5)
    • Fixed the issue of inaccurate calibration warning information.(https://github.com/espressif/esp-idf/issues/14963) (7443dded)

    Peripheral Drivers

    ADC

    Analog Comparator

    • Fixed the issue that unit1 can't generate the ETM event properly (f2cf0f0e)
    • Corrected the supported interrupt priority to 0~3 (f2cf0f0e)

    BitScrambler

    • Add support for extra instruction as found in ESP32-C5 (5d63f251)
    • Add BitScrambler loopback (memory2memory) driver (c8d4e1b0)

    Camera

    • Added SC030IOT DVP camera support to dvp_isp_dsi example (35708ec1)
    • Fixed Cache-Safe build error (6184bdaa)
    • Added camera/dvp_isp_dsi example that uses a camera sensor with ISP_DVP interface (0d68aa85)

    DMA

    GDMA

    GPIO

    GPTimer

    I2C

    I2S

    ISP

    • Supported bypassing ISP to receive data from MIPI CSI (f3f3cad0)
    • Supported byte endianness swapping (f3f3cad0)
    • Fixed the issue that calling esp_isp_demosaic_disable for non-RAW output format would cause data incorrectness (ebdb804d)
    • Added LSC programming guide (4c9154ba)

    JPEG

    • Fixed the issue that jpeg encoder blocked when the output buffer is not sufficient. (c07e2705)
    • Fixed handing of invalid JPEG marker (430bb9dc)
    • Added support for decoding JPEG images without Huffman table (e12db428)
    • Correctly set JPEG restart interval (f7bfa95d)
    • Fixed get wrong gray information via get_information api (d1c0d6e5)
    • Fixed the com marker size when encoding a picture (3cc9d426)
    • Newly Added
    • Fixed wrong parameter in jpeg encoder memory sync which leads to cache error. (5a04cfde)
    • Fixed random black line appearance while jpeg decode (5a04cfde)

    LCD

    SPI_LCD

    LDO

    • LDO can output the voltage reaching power rail 3.3V (cf8521ab)
    • Output voltage is calibrated with eFuse data (05beacad)

    LEDC

    LP_I2S

    • Added LP I2S and LP VAD programming guides (038a6667)

    MCPWM

    PARL_IO

    • Supported to embed a BitScrambler program in the parlio_tx_unit_transmit function (929e1495)
    • Supported to set start/stop delay for valid signal on ESP32C5 (c4768eaf)
    • Added programming guide for PARL_IO_TX. (a25e7ab5)
    • Supported the infinite loop transmission for PARL_IO_TX. (8e591a21)
    • Fixed line address error in simple rgb matrix example. (f0cee06d)
    • Fixed an issue where prematurely disabling PARL_IO TX caused errors in subsequent transmissions. (fce82302)
    • Updated the rgb_matrix example to use LVGL v9. (ef437b7b)

    PCNT

    PPA

    • Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (65044efa)

    RMT

    SDIO Slave

    • Added SDIO Slave driver support on ESP32-C5 (67e5e59d)
    • Fixed issue that SDIO Slave peripheral may be powered off in lightsleep on C6, H2 and P4 (676f5194)

    SD_HOST

    • Supported UHS-I SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) on ESP32P4 (ed8ec9de)

    SDMMC

    SPI

    • Fixed the issue that driver objects may be allocated from PSRAM unintentionally (1bbb20cf)
    • Supported place slave_hd driver code to flash to save IRAM by disabling SPI_SLAVE_ISR_IN_IRAM (50be9735)
    • Added enabld/disable API for power management in slave and slave-hd driver (f2c8b320)
    • Support change device's frequency by spi_transaction_t::override_freq_hz (https://github.com/espressif/esp-idf/issues/13753) (c7a0e454)
    • Supported SPI slave and slave HD driver sleep retention on ESP32C6/H2/P4/C5/C61 (b0be36de)
    • Fixed P4 spi master no DMA polling transaction error on cache sync. (dee6ad56)

    SPI Master

    • Fixed SPI stop after remove devices which using RC_FAST as clock source on ESP32C6 and H2 (68b79fc1)
    • Supported rx sample point adjust using spi_device_interface_config_t::sample_point on esp32h2 v1.2 and later. (d78f270b)

    SPI Slave

    • Fixed HD example and driver error with addr&len not align to 64 on ESP32-P4 (3b4f2a9a)

    SPI Flash

    • Added mutual exclusion between CONFIG_SPI_FLASH_ROM_IMPL and CONFIG_ESPTOOLPY_OCT_FLASH (64ff6ec2)
    • Added flash suspend chip version check on esp32h2 and esp32c6 (628cca14)
    • Fixed flash encryption write verify (https://github.com/espressif/esp-idf/issues/15380) (eb5c2485)
    • Add CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM for moving some flash functions from iram to flash in order to save RAM memory (dbd2aa8c)
    • Fixed build fail when rom_patch config disabled (https://github.com/espressif/esp-idf/issues/15229) (0cc16717)
    • Add a configuration to enable auto suspend status check to improve performance. (bd5945d1)
    • Fixed double exception after Flash no-OS API caused by branch predictor on ESP32-P4 (f93e720c)
    • Fixed Cache states not recorded issue when using Flash no-OS APIs on ESP32-H2/P4/C6 (f93e720c)
    • Add a new example for supporting customized nor flash driver which can be used both in app and bootloader (2b1c27fe)
    • New feature for software resume when auto-suspend enabled, improve performance (df1a7d5b)
    • Add suspend support on a winbond chip (e84b59cf)

    TWAI

    Temperature Sensor

    Touch Element

    Touch Sensor

    • Fixed concurrent issue in the legacy touch v1 (esp32) driver (cee5a3d3)
    • Fixed the issue that tie option doesn't take effect. (762cf053)
    • Fixed touch read WDT timeout issue on esp32 (https://github.com/espressif/esp-idf/issues/15629) (5b185da0)
    • Support ULP touch sensor driver on ESP32-P4 (afda4c18)
    • Support runtime re-configuration for debug purpose (581cbca5)
    • Checks if the timer is active before stopping it (legacy driver) (83547737)
    • Fix unexpected touch start on RTC peripheral init (legacy driver) (83547737)
    • Support ESP32 in the new touch driver. (57a893d2)
    • Support RTC power down during the sleep. (c39b8729)
    • Support ESP32-S2 & ESP32-S3 in the new touch driver. (cb4442d9)
    • Newly Added
    • Adjust touch channel number on P4 from 0-13 to 1-14. (80abd1c7)
    • Fixed calculation of sleep intervals. (80abd1c7)

    UART

    USB

    USB Device

    • Updated USB MSC Device documentation with performance optimization results for ESP32-S3, ESP32-P4, and ESP32-S2. (ea57c1b4)
    • Fixed incorrect pull-up resistor settings on the USB PHY that prevented the device from being detected by the host. (409af75a)

    USB Host

    USB Serial JTAG

    Power Management

    • deepsleep current decrease about 7uA for C61 (17uA -> 10uA) (10a690fe)
    • Fixed the issue that TBTT interrupt timing error when BLE low power clock source is configured to use main xtal on ESP32-C6 v0.1 and later version (c5082073)
    • Fixed possible assert in vTaskStepTick after turning on auto light sleep (fe3da716)
    • Optimized IRAM memory usage in the esp32c2 power management module (186f2a89)
    • Fixed the issue of modem wakeup req always high caused by pmu min slp cycle update (b93ac473)
    • Added runtime sleep clock control for peripherals to be used/kept during light sleep (921cfa0a)
    • Fixed the issue of WiFi BB FSM hang caused by modem system clock synchronization (05d7a4c2)
    • Fixed the issue of mmu table content loss due to default sd signal for esp32c61 (06aea27e)
    • Fixed wifi power save beacon timeout issue and optimize phy sleep for esp32c5 (76754569)
    • Fixed the issue of abnormal leakage current caused by floating and isolation of the Flash or PSRAM CS pin during sleep (9c421495)
    • Fixed the issue of cpu execution exception caused by floating and isolation of the Flash and PSRAM CS pin during sleep (9c421495)
    • Fixed esp32p4 USB OTG phy suspend failure causing high power consumption in light sleep. (01b1191e)
    • Fixed the crash of esp_pm auto-lightsleep when PM_TRACE is enabled. (35cdecb1)
    • Fixed the JTAG IO current leakage issue when esp32p4 turns off RTC_PERIPH power domain in deepsleep (bba3063b)
    • Fixed bbpll cali fail bug under low temp on ESP32-H2. (2b6894eb)
    • Fixed issue of ESP32-C5 and ESP32-C61 fail to enter light sleep using EXT1 wakeup source after disable exited EXT1 IO and enable other EXT1 IO (b4e28be7)
    • Fixed a deadlock that occurred when a high-priority task and a low-priority task changed PM mode at the same time (c5ada2e8)
    • Supported to query PHY RF used time. (c8b67235)
    • Fixed the issue of wifi rx packet loss when switchng soc root clock source (1f479754)
    • Fixed the issue of mmu table content loss due to default sd signal (1f479754)
    • Fixed CPU switch fail due to bbpll cali fail bug under low temp on ESP32-H2 (63fdde6c)
    • Improved esp_timer timing accuracy after light sleep is rejected (ae4c4464)
    • Newly Added
    • Fixed the issue that ESP32C5 TX packet failed when DFS enabled (12191f26)

    Security

    ESP-TLS

    Flash Encryption

    • Support XTS-AES pseudo round function on ESP32H2 chip version v1.2 (a45b6e7b)

    MbedTLS

    • Adds support for dynamic buffer for TLS 1.3 handshake. (https://github.com/espressif/esp-idf/issues/15448) (ff555428)
    • Fixes certificate verification errors affecting TLS 1.3 connections and digital signing peripheral.(https://github.com/espressif/esp-idf/issues/14907) (11890df9)
    • Update mbedTLS version to 3.6.3. (21f59bd0)
    • If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (21f59bd0)
    • Make mbedtls SHA1 software support configurable (8e4cbdfe)
    • Updated the default root certificate bundle (cacrt_all.pem - 25 Feb 2025) (2c68d2d2)
    • Updated the deprecated root certificate bundle (cacrt_deprecated.pem - 25 Feb 2025) (2c68d2d2)
    • Support AES pseudo round function on ESP32H2 chip version v1.2 (a45b6e7b)
    • Fix external memory corruption caused due to unaligned length cache sync of external memory buffers (f6591ab8)
    • Newly Added
    • When using the esp_sha_block() and esp_sha_dma() APIs, the SHA mode needs to be explicitly set using the esp_sha_set_mode() API. (b37d4b33)
    • Starting from ESP-IDF v5.5, there is a change in how the SHA sub-function APIs, esp_sha_block() and esp_sha_dma(), are used. Previously, these APIs used to set the SHA mode internally, however, in the updated version, you must explicitly set the SHA mode before invoking them. For instance, if you intend to use the SHA-256 algorithm, you must first call esp_sha_set_mode() with the argument SHA2_256. (b37d4b33)
    • Fixes failing TLS handshake when running HTTPS Server with TLS1.3 (6e82c7a0)

    Storage

    FATFS

    LittleFS

    NVS

    VFS

    System Hardware

    • only detect VDD digital for ESP32-C5 / C61 (10a690fe)
    • not support C5_ECO0 & C61_ECO0 / C61_ECO1 (10a690fe)
    • Fixed compile error on esp_cpu_int_has_handler on ESP32-P4 (GitHub PR) (https://github.com/espressif/esp-idf/pull/15942 https://github.com/espressif/esp-idf/issues/15941) (27b85137)
    • Improved voltage convergence of C5 chips for better stability (27593562)
    • Fixed the issue that xtal32k may fail during startup (37c3ed63)
    • Fixed esp32s3 possible cache_error triggered by another core accessing flash in esp_restart (aa2f638e)
    • Switched to flashing with stub with ESP32-C3 when USB Serial/JTAG mode is used (7317d96b)
    • Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (50e3a2bc)
    • Supported ESP32-H2 revision v1.2 (9b876d93)
    • Supported ESP32-C2 chip rev2.0 (93aea4f6)
    • Internal RC32K clock is unstable at extreme temperatures and is not recommended for use. For ESP32-C6, to continue to use RC32K clock as the RTC slow clock source now requires to select RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED Kconfig first; For ESP32-H2/P4, this option is completely removed. (87716075)
    • Fixed the issue that after OTA application changes the slow clock source, the modem module not work during lightsleep on esp32c6/esp32h2/eps32c5/esp32c61. (f5ae64bf)
    • Fixed a possible crash on esp_restart if PSRAM is used (56db9a28)
    • Fixed the issue that after OTA application changes the slow clock source, the RTC slow clock is missing and causes a stuck at esp_restart on esp32c6/esp32h2/esp32p4. (cceadc4c)

    BOD

    Cache

    Efuse

    • Supported eFuses for ESP32-C5 ECO2 (v1.0) (01e9f8f3)
    • Added efuse ADC calibration fields for ESP32-P4 (ce608534)

    MMU

    MSPI

    • Improved the selection of timing tuning points when the last few tuning points succeed consecutively (54238257)
    • Improved the PSRAM timing tuning configurations on ESP32P4 (54238257)
    • Fixed CPU and MSPI frequency mismatch issue leading to watchdog reset during sleep flow on ESP32P4 (19bff0e4)
    • Fixed startup stuck under Flash QIO and XIP_PSRAM 200MHz condition (https://github.com/espressif/esp-idf/issues/14979) (1ddf0052)
    • Supported 120MHz Flash frequency timing tuning on ESP32P4 (4cb18200)

    PSRAM

    TCP Transport

    Toolchain

    Tools

    • Added ability to read tool version from the file specified with tool_info_file keyword in tools.json (0181d1b1)
    • Fixed processing of packages with dots in their names in Python dependency checks (0b56c58e)
    • Added input validation of optional install features (cf5989ca)
    • Fixed deprecation warnings when using extractall() on Python 3.12 and newer (b4be4c2a)
    • Deactivated the previously set ESP-IDF environment every time the export script runs (on Unix systems only) (cd1c5aa0)
    • Added a check before clearing IDF_PYTHON_ENV_PATH to prevent unintentional data loss when incorrectly set. (7125ee5a)
    • Docs: Added missing python-pip install dependency for ArchLinux (https://github.com/espressif/esp-idf/pull/15527) (2433000d)
    • Included basic system information in the diagnostic report (57b2ef83)
    • Allowed passing purge file as an argument to idf-diag (395984e4)
    • Avoided generating intermediate placements without sections in ldgen (814c5f1c)
    • Added BitScrambler assembler and related unit tests (c8d4e1b0)
    • Enforced utf-8 encoding with Python open() function. (16ba8b7e)
    • Added idf_diag.py diagnostic tool that collects information about ESP-IDF and failed build to assist in investigating reported issues (9da2e3ad)
    • Improved suggestion for fixing missing header file (56032589)
    • Added detected ESP_PYTHON for executing activate.py in export.fish (https://github.com/espressif/esp-idf/issues/15058) (a16f3590)
    • Fixed a bug so creating a project or a component with idf.py preserves the file mode of ESP-IDF files (757d74ab)
    • Enabled enforcement of the IDF_PATH environment variable for path detection in the export.sh script by setting IDF_PATH_FORCE=1. (475e4b1d)
    • Added DFU support for ESP32-P4 (a57e4d7b)
    • idf_tools.py: pip and setuptools are upgraded separately so the setuptools version dependency would be handled by the upgraded pip (82c26fd6)
    • Respected the IDF_PYTHON_ENV_PATH value in the export scripts (https://github.com/espressif/esp-idf/issues/15006) (93a604df)
    • Fixed a typo in the QEMU documentation (https://github.com/espressif/esp-idf/pull/14966) (e61653e6)
    • Added an informational message to install/export scripts about the current IDF_PATH being used or set (a2c399c0)
    • Added information about the idf_version.txt file storing the ESP-IDF version in each Python environment directory (4110d148)
    • Documented the need to set the ESP_IDF_VERSION environment variable while performing custom installation (4110d148)
    • Added autocomplete for @-arguments of idf.py with file names (cef2624e)
    • IDF Monitor: Enabled decoding addresses and panic outside of the main app (e.g. bootloader, ULP, TEE) (6495a831)
    • Added basic description about SBOM (Software Bill of Materials) for ESP-IDF projects (7fcbdb9c)
    • Python 3.8 is no longer supported by the community, therefore, ESP-IDF installations will require Python 3.9 or newer versions (30b13b13)
    • Displayed additional details if imports in idf.py are unsuccessful (5bae0b92)
    • Used the --unify option with esp-idf-size to combine sizes for same output sections, such as .bss (cf087cb8)
    • Guides for project configuration and component configuration are added, together with an overview of various files participating in the configuration of ESP-IDF project (06508329)
    • Improved activate.py error messages and added information on enabling detailed debug option. (72308ca0)
    • Newly Added
    • IDF Monitor: Added note about limitation of auto coloring feature with multiline messages (https://github.com/espressif/esp-idf/issues/15793) (4a210608)

    WI-FI

    Examples

    MAC

    • Fixed STA cannot send keep alive when receive UDP packets (ad5d3625)
    • Fixed STA BSS max idle period always use default value (ad5d3625)
    • Fixed sleep without sending sleep null when enable BSS max idle (ad5d3625)
    • Fixed channel TX power limitation does not take effect when connected AP switch channel (ad5d3625)
    • Added FTM support for ESP32-C5 v1.0 (https://github.com/espressif/esp-idf/issues/15909) (ce340fcc)
    • Fixed locking in incorrect state when stop_scan is called after wifi_connect (ce340fcc)
    • Fixed TX power not update if country changes when enable multiple PHY init data bin (ce340fcc)
    • Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (ce340fcc)
    • Fixed the issue that rx bcn failed when sta off channel under modem state (ce340fcc)
    • Fixed some external coexist issues. (7aabeaea)
    • Fixed the issue that cannot enable MCS8/9 when set he_mcs9_enabled (0f6e0674)
    • Fixed phy data partition restoring default fails issue(https://github.com/espressif/esp-idf/issues/14698) (59cd0731)
    • Fixed an issue to prevent writing configuration to NVS when the station configuration remains unchanged. (55712011)
    • Supported Wi-Fi beacon sample feature to optimize power consumption. (323119a0)
    • Supported Beacon Drop feature to optimize power consumption in dirty environment. (323119a0)
    • Fixed the issue that sta rx packet failed under modem state. (b93ac473)
    • Fixed negotiated bandwidth not correct (8a981447)
    • Added band check when config SoftAP (8a981447)
    • Fixed the noise floor error on ESP32C5 (https://github.com/espressif/esp-idf/issues/15594) (488e1f88)
    • Fixed occasional dropping of SA Query responses by SoftAP (13953d5e)
    • Added DS parameter in probe requests from STA (893a02ea)
    • Fixed the WEP shared authentication association timeout issue. (eaa77b6c)
    • Fixed TWT post just one event for multiple flow (3547cefa)
    • Fixed the issue of disconnection from the AP due to ERSU compatibility (1c5983cd)
    • Fixed second channel is always below in ht40 on 5G band (cfed129e)
    • Fixed issue that esp_wifi_set_tx_done_cb() should not process frames sent using esp_now_send(). (7a5684d4)
    • Modified authmode to sta for sta connect event (95ce1c08)
    • Fixed issue of increased stack usage when 'failure_retry_cnt' is set in station configuration and Wi-Fi driver internally re-tries connection attempts (6f0dad28)
    • Fixed the issue of failing to connect to a shared WEP AP. (47cc1b77)
    • Fixed esp32c6 watchdog issue when BSS max idle period is 1 (9ede4c27)
    • Add support for transition disable for softap (cc8bef39)
    • Fixed incorrect ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME (30c34271)
    • Updated coexistence power management period when Wi-Fi PS type being changed (30c34271)
    • Fixed for crash while receiving deauth in esp32c2 v2.0 (7a305c02)
    • Changed SoftAP default dtim_period to 1 (2414b285)
    • Added a parameter to enable or disable send QoS NULL to keep live during TWT (0c07ee6b)
    • Fixed the issue that STA did not receive Probe Responses in some coexistence scenarios when wifi band is 5G. (56672162)
    • Fixed the issue that STA connects twice simultaneously. (56672162)
    • Fixed STA failing to sleep when connecting to connected AP. (56672162)
    • Fixed the issue that association failed In WPA3 encryption mode. (56672162)
    • Newly Added
    • Fixed rate index incorrect in 11a mode (c66052e5)
    • Fixed TWT cannot sleep on esp32c5 and esp32c61 (c66052e5)
    • Fixed cpu cannot enter light sleep when TWT resume (c66052e5)
    • Fixed the issue that wifi disconnect when sta scan in connected state (60e884b4)
    • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries. (60e884b4)
    • returned error if call esp_wifi_set_config() when sta is connecting (60e884b4)
    • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout. (60e884b4)
    • Fixed esp32 mac deinit stuck issue (60e884b4)

    Mesh

    Supplicant

    Vendor

    • Added more check when receiving ESP-NOW data (ad5d3625)
    • Fixed the issue that STA connection information loss LR info on ESP32C5 v1.0 (933a4322)
    • Fixed LR issues that LR info does not exist in connect information (0f6e0674)
    • Changed the max data length to 1470 bytes for ESP-NOW v2.0 (a3bd31f3)
    • Fixed the scan information error in LR only mode (14b96764)
    • Added OUI check for ESPNOW(https://github.com/espressif/esp-idf/issues/9577) (1f46216a)
    • Added new APIs to set/get user OUI for ESPNOW (1f46216a)
    • supported ieee80211_tx using 11ax or 11ac rates to send (2cbb9f23)
    • The AES IV can be random value for ESPTouch v2 (a71eb45c)