Releases: espressif/esp-idf
ESP-IDF Release v5.5.4
Documentation for IDF v5.5.4 is available at https://docs.espressif.com/projects/esp-idf/en/v5.5.4/
ESP-IDF v5.5.4 is a bugfix release for ESP-IDF v5.5.
Obtaining v5.5.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.5.4 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5.4
cd esp-idf-v5.5.4/
This is the recommended way of obtaining v5.5.4 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.5.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.5.4/esp-idf-v5.5.4.zip
Major changes
Major Bugfixes
- Fixed the issue of potential NimBLE host connection loss in ESP-IDF v5.5.3 release on ESP32 / ESP32C3 / ESP32S3 (IDFGH-17350)
Changelog
For full list of changes, please refer to ESP-IDF v5.5.4 Release Notes in Espressif 's release notes database.
ESP-IDF Release v5.3.5
Documentation for IDF v5.3.5 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3.5/
ESP-IDF v5.3.5 is a bugfix release for ESP-IDF v5.3.
Obtaining v5.3.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.3.5 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.5
cd esp-idf-v5.3.5/
This is the recommended way of obtaining v5.3.5 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3.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.3.5/esp-idf-v5.3.5.zip
Major changes
Breaking Changes
- 15.4/Thread: Updated OpenThread examples to use esp_console. The
otprefix is required when running OpenThread CLI commands. (fd0fd24) - Peripheral Drivers/SPI: The SPI master and slave no longer accepts
ESP_INTR_FLAG_SHAREDas interrupt flag during initialization. (d3316dc)
Changelog
For full list of changes, please refer to ESP-IDF v5.3.5 Release Notes in Espressif 's release notes database.
ESP-IDF Release v6.0
Documentation for IDF v6.0 is available at https://docs.espressif.com/projects/esp-idf/en/v6.0/
ESP-IDF v6.0 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.
We highly recommend referring to our migration guide while moving your apps from ESP-IDF v5.x to v6.0 release. Note that from v6.0 (final release) onward, and for all future IDF releases, the full changelog of release notes will be published on the ESP Release Notes site.
Obtaining v6.0
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 --recursive https://github.com/espressif/esp-idf.git esp-idf-v6.0
cd esp-idf-v6.0/
This is the recommended way of obtaining v6.0 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v6.0.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/esp-idf-v6.0.zip
Major changes
Major New Features
-
ESP-IDF v6.0 upgrades to MbedTLS v4.x and adopts the new PSA Crypto API, marking a major shift toward a PSA-first cryptography policy
-
Upgraded default C standard to gnu23 (03855b9)
-
Upgraded default C++ standard to gnu++26 (03855b9)
-
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/) (34f658a)
-
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_provisioninginto 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. (105a64a) - Application Utilities/CJSON: Moved cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (269acda)
- 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%). (7da79a6)
- 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%). (7da79a6)
- Application Utilities/ESP HTTPS OTA: Moved partial-download feature under a newly added config to reduce default flash footprint (b72e532)
- 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%). (7da79a6)
- Application Utilities/Provisioning: Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c2242)
- Application Utilities/Provisioning: Disabled protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc452)
- 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. (7da79a6)
- BLE/BluFi: BluFi Security is updated to use SHA256 from MD5 (dc38765)
- BLE/BluFi: BluFi Security is updated to migrate to 3072 based FFDHE keys (dc38765)
- BLE/BluFi: BluFi Security is updated to use AES-256 from AES-128 (dc38765)
- 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. (dea8433) - Bootloader: Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfe)
- 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. (a319aa9)
- Build & Config: The binary generation target
gen_signed_project_binaryis no longer available as the build system drops the need for this target. (c8f68c7) - Build & Config: The binary generation
gen_project_binaryis 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 newidf_build_add_post_elf_dependenciy()must be used. (c8f68c7) - Build & Config: Global Cmake variables presented by the
esptool_pyviz.,ESPTOOLPY,ESPSECUREPY,ESPEFUSEPYandESPMONITORare no longer available. These must be accessed via theidf_component_get_property()function. (c8f68c7) - 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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c7) - Build & Config: Components adding target dependencies on the
encrypted-flashtarget unconditionally is not allowed any more. Such dependencies can only be done ifCONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENTis enabled. (c8f68c7) - Build & Config: Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff1)
- Build & Config: Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace3)
- Build & Config: Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Default warnings are now considered as errors by default. This can be disabled by setting
CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y(6efd36f) - 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. (effa1e4)
- Classic Bluetooth/Bluedroid: esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735)
- Classic Bluetooth/Bluedroid: esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735)
- Classic Bluetooth/Bluedroid: esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735)
- Classic Bluetooth/Bluedroid: esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735)
- Classic Bluetooth/Bluedroid: Deprecate RSSI threshold related macros (7a2e19c)
- Core System: Ring buffer functions are now placed in flash memory by default to save IRAM space.
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASHKconfig option has been removed. (11b80a7) - Core System: Removed deprecated STATUS enum from
ets_sys.h, use ETS_STATUS instead. (166269f) - Core System: The header
esp_vfs_cdcacm.hhas been moved to the new componentesp_usb_cdc_rom_console, you will now have to add an explicitREQUIRESforesp_usb_cdc_rom_consoleif using any functions from this header. (1f0152d) - Core System/ESP Event: Removed unnecessary freertos header includes, if your code relied on this implicit include from
esp_event.hthen please add the correct explicit includes,freertos/queue.h"andfreertos/semphr.hto your files. (cb36cd3) - Core System/Heap: MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see #14837) (75305c2)
- Core System/Interrupts: Removed deprecated intr_types.h header, update to use
esp_intr_types.hinstead (365c8a3) - Core System/Log: The following deprecated APIs have been removed:
esp_log_buffer_hex(),esp_log_buffer_char(). (659ae57) - Core System/Log The following deprecated headers have been removed:
esp_log_internal.h. (659ae57) - Core System/Newlib: COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'. Default behavior is now to not evaluate expressions inside
assert(X)whenNDEBUGis set, which confirms to the C standard. (#2758) (33f92c8) - Debugging/Apptrace: Deprecated ESP_APPTRACE_DEST_TRAX. Now it is replaced with ESP_APPTRACE_DEST_JTAG (fb3e616)
- Debugging/Apptrace: Changed esp_apptra...
ESP-IDF Pre-release v6.0-rc1
Documentation for IDF v6.0-rc1 is available at https://docs.espressif.com/projects/esp-idf/en/v6.0-rc1/
ESP-IDF v6.0-rc1 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.3 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. Note that from v6.0 (final release) onward, and for all future IDF releases, the full changelog of release notes will be published on the ESP Release Notes site.
Obtaining v6.0-rc1
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-rc1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v6.0-rc1
cd esp-idf-v6.0-rc1/
This is the recommended way of obtaining v6.0-rc1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v6.0-rc1.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-rc1/esp-idf-v6.0-rc1.zip
Major changes
Major New Features
-
ESP-IDF v6.0 upgrades to MbedTLS v4.x and adopts the new PSA Crypto API, marking a major shift toward a PSA-first cryptography policy
-
Upgraded default C standard to gnu23 (03855b9)
-
Upgraded default C++ standard to gnu++26 (03855b9)
-
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/) (34f658a)
-
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_provisioninginto 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. (105a64a) - Application Utilities/CJSON: Moved cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (269acda)
- 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%). (7da79a6)
- 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%). (7da79a6)
- Application Utilities/ESP HTTPS OTA: Moved partial-download feature under a newly added config to reduce default flash footprint (b72e532)
- 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%). (7da79a6)
- Application Utilities/Provisioning: Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c2242)
- Application Utilities/Provisioning: Disabled protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc452)
- 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. (7da79a6)
- BLE/BluFi: BluFi Security is updated to use SHA256 from MD5 (dc38765)
- BLE/BluFi: BluFi Security is updated to migrate to 3072 based FFDHE keys (dc38765)
- BLE/BluFi: BluFi Security is updated to use AES-256 from AES-128 (dc38765)
- 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. (dea8433) - Bootloader: Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfe)
- 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. (a319aa9)
- Build & Config: The binary generation target
gen_signed_project_binaryis no longer available as the build system drops the need for this target. (c8f68c7) - Build & Config: The binary generation
gen_project_binaryis 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 newidf_build_add_post_elf_dependenciy()must be used. (c8f68c7) - Build & Config: Global Cmake variables presented by the
esptool_pyviz.,ESPTOOLPY,ESPSECUREPY,ESPEFUSEPYandESPMONITORare no longer available. These must be accessed via theidf_component_get_property()function. (c8f68c7) - 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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c7) - Build & Config: Components adding target dependencies on the
encrypted-flashtarget unconditionally is not allowed any more. Such dependencies can only be done ifCONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENTis enabled. (c8f68c7) - Build & Config: Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff1)
- Build & Config: Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace3)
- Build & Config: Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Default warnings are now considered as errors by default. This can be disabled by setting
CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y(6efd36f) - 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. (effa1e4)
- Classic Bluetooth/Bluedroid: esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735)
- Classic Bluetooth/Bluedroid: esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735)
- Classic Bluetooth/Bluedroid: esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735)
- Classic Bluetooth/Bluedroid: esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735)
- Classic Bluetooth/Bluedroid: Deprecate RSSI threshold related macros (7a2e19c)
- Core System: Ring buffer functions are now placed in flash memory by default to save IRAM space.
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASHKconfig option has been removed. (11b80a7) - Core System: Removed deprecated STATUS enum from
ets_sys.h, use ETS_STATUS instead. (166269f) - Core System: The header
esp_vfs_cdcacm.hhas been moved to the new componentesp_usb_cdc_rom_console, you will now have to add an explicitREQUIRESforesp_usb_cdc_rom_consoleif using any functions from this header. (1f0152d) - Core System/ESP Event: Removed unnecessary freertos header includes, if your code relied on this implicit include from
esp_event.hthen please add the correct explicit includes,freertos/queue.h"andfreertos/semphr.hto your files. (cb36cd3) - Core System/Heap: MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see #14837) (75305c2)
- Core System/Interrupts: Removed deprecated intr_types.h header, update to use
esp_intr_types.hinstead (365c8a3) - Core System/Log: The following deprecated APIs have been removed:
esp_log_buffer_hex(),esp_log_buffer_char(). (659ae57) - Core System/Log The following deprecated headers have been removed:
esp_log_internal.h. (659ae57) - Core System/Newlib: COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'. Default behavior is now to not evaluate expressions inside
assert(X)whenNDEBUGis set, which confirms to the C standard. (#2758) (33f92c8) - Debugging/Apptrace: Deprecated ESP_APPT...
ESP-IDF Release v5.5.3
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_SHAREDas interrupt flag during initialization. (2fad74c)
Changelog
15.4
MAC
- Updated the 'ieee802154_get_recent_rssi' API to obtain real-time RSSI from baseband (cbed615)
- Replaced the TX pending feature with backoff-based retransmission mechanism (2544a15)
- Added pending tables and APIs for multipan interfaces (7cef83e)
- Fixed ACK pending bit handling when pending-enhance is enabled (7cef83e)
Thread
- Supported OTA examples over Thread interface (61ca635)
- Supported RCP debugging via Spinel (405f144)
- Updated openthread submodule (a12ff0d0f) (021f8da)
- Replaced iperf command from ot-cli-extension with iperf-cmd (ee58372)
Application Utilities
ESP HTTP Client
- Added fix to prevent out-of-bounds read in Digest auth causing a potential security vulnerability (6d0a7a0)
ESP HTTP Server
- Fixed a potential deadlock that can happen with Websocket server while using HTTPD_QUEUE_WORK_BLOCKING (#17591) (8b6e9b0)
- Fixed the WebSocket implementation to stop reading data when the peer closes the connection. (#17822) (ffc215c)
ESP HTTPS OTA
- Added fix to Align the OTA written length to 16 bytes during OTA resumption when flash encryption is enabled. (961abe6)
Protocomm
- Added validation for Security1 client verifier data (4cd5e63)
- Added security checks for buffer overflow / incorrect length handling (ee7543c)
BLE
BluFi
- Supported setting BLE encryption for blufi example (1d78301)
Bluedroid
- Fixed GATT response timeout setting (b4a987a)
- Improved debugging by adding more logs and thread diagnostic tools (b4a987a)
- Supported bluedroid host PAwR feature (482f7d4)
- Supported bluedroid host Advertising Coding Selection feature (482f7d4)
- Supported bluedroid host channel sounding feature (482f7d4)
- Supported LE Security Levels Characteristic (482f7d4)
- Supported bluedroid host encryption with mbedTLS (2a8fd3c)
- Supported bluedroid host encryption with TinyCrypt (2a8fd3c)
- Supported bluedroid encrypted advertising data (2a8fd3c)
- Added bluedroid encrypted advertising data examples (2a8fd3c)
- Optimized bluedroid some code (5ca6847)
- Increased maximum notify/indication registration limit in Bluedroid (IDFGH-16690) (e78cf39)
- Added retry mechanism for Periodic Advertising Create Sync to improve synchronization reliability (e78cf39)
- Fixed multiple potential issues and strengthened security in Bluedroid, including memory safety vulnerabilities and improper packet validation (e78cf39)
- Added flow diagrams to Bluedroid BLE examples to improve documentation clarity and onboarding experience (e78cf39)
- Introduced BLE ACL latency measurement example for evaluating round-trip latency between central and peripheral device (e78cf39)
- Replaced hardcoded advertising-type values with descriptive macros across Bluedroid examples (IDFGH-16960) (e78cf39)
- 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 (e78cf39)
- Reduced bluedroid host bin size (43cc92f)
- Fixed bluedroid host get white list size error (43cc92f)
- Fixed a potential UAF issue in BLE ATT when a disconnection process is ongoing (35b1b78)
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. (2cbffea)
- Fixed an occasional interrupt watchdog timeout issue when stopping scanning for ESP32-C2. (2cbffea)
- Fixed crash in btdm_controller_task on ESP32 (17cd450)
- Fixed scan HCI command timeout issue on ESP32 (17cd450)
- Changed the maximum number of concurrent connections to 70 on ESP32-H2 (0a10858)
- Fixed an occasional Interrupt Watchdog Timeout issue in an edge case of Multi-ADV scenario for ESP32-C2. (daf364e)
- 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. (e4d066c)
- Fixed an occasional disconnect issue caused by MIC errors on ESP32-C6, ESP32-H2 and ESP32-C5. (e4d066c)
- 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.. (e4d066c)
- 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. (c601ffd)
Documentation
- Added BLE Multi-Connection Guide in API Guides (8c7d825)
Mesh
- Support Device Firmware Update. (41bcb17)
- Supported using unified crypto implementation in Bluetooth Mesh (b92c91c)
NimBLE
- Added API to read the currently used local IRK (516e2ef)
- Fix tinycrypt related compilation issue (728d58a)
- Add support for static passkey (728d58a)
- Update report_map_len to uint16_t (espressif/esp-nimble#74) (728d58a)
- Modified NVS namespace for storing peer device GATT data (728d58a)
- Memory optimization with dynamic memory allocations support. (728d58a)
- Added Helper function to find identity address from RPA address (516e2ef)
- Add AD type macros in example (64150ac)
- Fix NULL psync access in periodic advertising sync lost. (d4a83ca)
- Reset HID services during deinit (1f51d48)
- Modified API's which parse advertising data (1f51d48)
Build & Config
- ldgen: Fixed non-default symbol placement for symbols created by the compiler during inter-procedural optimization (IPA) (f0538f3)
- Fixed inconsistent MINIMAL_BUILD status in menuconfig when a custom COMPONENTS list is defined (ca22d0e)
- Fixed the IMPORTED_LOCATION error that occurred when using the file-based API with CMake version 4.2 and newer (#18103) (9c0f87f)
Classic Bluetooth
Bluedroid
- Added an API to create SPP server with a parameter that selects whether to create a corresponding SDP service record (ec191d2)
- Fixed crash caused by performing A2DP deinitialization when initating an A2DP connection (e0c12ad)
- Allows downgrading AVRCP version to 1.5 by disabling the Cover Art feature (8c47552)
- Fixed missing NULL pointer check in l2c_fcr_clone_buf in Bluedroid (1e9f631)
- Deprecate RSSI threshold related macros (7a628dc)
- Split A2DP sink example to several simpler examples to demonstrate A2DP/AVRCP functions of different aspects (7c18387)
- Fix the status judgment in registration of A2DP source stream end point (0e194e6)
- Backported several security-related fixes to from Google Fluoride to esp-idf Bluedroid (dae755c)
- Fix index boundary check and function return values during A2DP SEP registration (f56bea3)
- Fixed failure of buffer allocation in L2CAP throughput test by optimizing L2CAP memory footprint (9c49790)
- Fix bluetooth L2CAP data transmission stops after a failed write (9c49790)
- Check whether to overwrite number of BR/EDR controller max synchronous connections if Bluedroid HFP is enabled on ESP32 (88ee44c)
- 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 (17cd450)
- Fixed wrong key type was notified during changing connection link key on ESP32 (bd79273)
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. (2ddcb62)
Heap
ESP-IDF Pre-release v6.0-beta2
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 (03855b9)
- Upgraded default C++ standard to gnu++26 (03855b9)
- 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/) (34f658a)
- 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_provisioninginto 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. (105a64a) - Application Utilities/CJSON: Moved cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (269acda)
- 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%). (7da79a6)
- 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%). (7da79a6)
- Application Utilities/ESP HTTPS OTA: Moved partial-download feature under a newly added config to reduce default flash footprint (b72e532)
- 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%). (7da79a6)
- Application Utilities/Provisioning: Disabled protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc452)
- Application Utilities/Provisioning: Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c2242)
- 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. (7da79a6)
- Bootloader: Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfe)
- 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. (dea8433) - 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. (effa1e4)
- Build & Config: Default warnings are now considered as errors by default. This can be disabled by setting
CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y(6efd36f) - Build & Config: Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace3)
- Build & Config: Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff1)
- Build & Config The binary generation target
gen_signed_project_binaryis no longer available as the build system drops the need for this target. (c8f68c7) - Build & Config: The binary generation
gen_project_binaryis 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 newidf_build_add_post_elf_dependenciy()must be used. (c8f68c7) - Build & Config: Global Cmake variables presented by the
esptool_pyviz.,ESPTOOLPY,ESPSECUREPY,ESPEFUSEPYandESPMONITORare no longer available. These must be accessed via theidf_component_get_property()function. (c8f68c7) - 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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c7) - Build & Config: Components adding target dependencies on the
encrypted-flashtarget unconditionally is not allowed any more. Such dependencies can only be done ifCONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENTis enabled. (c8f68c7) - 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. (a319aa9)
- Classic Bluetooth/Bluedroid: Deprecate RSSI threshold related macros (7a2e19c)
- Classic Bluetooth/Bluedroid: esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735)
- Classic Bluetooth/Bluedroid: esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735)
- Classic Bluetooth/Bluedroid: esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735)
- Classic Bluetooth/Bluedroid: esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735)
- Core System: Removed deprecated STATUS enum from
ets_sys.h, use ETS_STATUS instead. (166269f) - Core System: The header
esp_vfs_cdcacm.hhas been moved to the new componentesp_usb_cdc_rom_console, you will now have to add an explicitREQUIRESforesp_usb_cdc_rom_consoleif using any functions from this header. (1f0152d) - Core System: Ring buffer functions are now placed in flash memory by default to save IRAM space.
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASHKconfig option has been removed. (11b80a7) - Core System/ESP Event: Removed unnecessary freertos header includes, if your code relied on this implicit include from
esp_event.hthen please add the correct explicit includes,freertos/queue.h"andfreertos/semphr.hto your files. (cb36cd3) - Core System/Heap: MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see #14837) (75305c2)
- Core System/Interrupts: Removed deprecated intr_types.h header, update to use
esp_intr_types.hinstead (365c8a3) - Core System/Log: The following deprecated APIs have been removed:
esp_log_buffer_hex(),esp_log_buffer_char(). (659ae57) - Core System/Log: The following deprecated headers have been removed:
esp_log_internal.h. (659ae57) - Core System/Newlib: COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'. Default behavior is now to not evaluate expressions inside
assert(X)whenNDEBUGis set, which confirms to the C standard. (#2758) (33f92c8) - Debugging/Apptrace: Removed destination parameter from all apptrace APIs. (8ee473d)
- Debugging/Apptrace: Changed the way apptrace is configured. Applications must implement
esp_apptrace_get_init_paramsto provide app_trace parameters to the components (8ee473d) - Debugging/Apptrace: Changed SystemView trace data destination configuration. Now it is controlled by the same configuration a...
ESP-IDF Release v5.1.7
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() (c70a55c)
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. (84467ec) - BLE/Controller: Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (22ced0a)
- BLE/Controller: Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (22ced0a)
- 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 . (1f4106f)
- 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. (6383285)
- 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. (b8f6564)
- WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (238266d)
Changelog
15.4
MAC
- Replaced the TX pending feature with backoff-based retransmission mechanism. (5dd4123)
- Added compensation on the energy detection result for H2 (37f1adb)
- Changed the default cca threshold to -75dBm (7a9eee1)
- Added Tx/Rx frame dumping for debugging. (4f75a02)
- Added a duration argument for ieee802154_receive_at() (c70a55c)
Thread
- Fixed an issue where NVS was not opened from the configured partition (89fd89a)
- Fixed a potential stack overflow issue in TREL browse (d7793f8)
- Fixed an occasional multicast router initialization failure (a244862)
- Fixed a deadlock issue in DNS resolver (a244862)
- Supported multicast forwarding cache filter in Thread BR (7a9eee1)
- Updated openthread submodule (36b14d3ef) (7a9eee1)
- Supported DHCPv6 PD feature (7a9eee1)
- Supported custom netif config during initialization (32e99fa)
- Added APIs to start or stop the OpenThread stack (dffaf91)
- Updated the OpenThread examples to use the new APIs (dffaf91)
- Updated OpenThread examples to use esp_console. The
otprefix is required when running OpenThread CLI commands. (dffaf91) - Updated openthread submodule (3b3dd203) (680a36b)
- Introduced a new API to register the console based openthread CLI command (e4c8197)
- Fixed an issue with source address selection during network switching (bb1446e)
- Use the ML-EID address for self-hosted services if OMR address is not preferred (53b06b3)
- Handled MeshCoP mDNS service in state change callback (e5d6848)
- Updated openthread submodule (b945928) (e5d6848)
- Improved TREL message reception (e5d6848)
- Added a function to exit openthread main loop safely (9b9f496)
- Supported bus_latency configuration for Thread BR (daf9fa4)
- Updated openthread submodule (ec2b0d487) (4e71c78)
- Supported periodic parent search mechanism for MTD (63b29d8)
- Added a function to ensure monotonically increasing frame counter (fdfa0ed)
- Bound DNS server to unspecified netif on Border Router (fdfa0ed)
- Added a callback to handle rcp reset failure (fdfa0ed)
- Supported DNS resolution / forwarding for Thread BR (9834161)
- Fixed recursive multicast packet forwarding issue (9834161)
- Updated openthread submodule (8c30b93) (9834161)
- Fixed CSL issue in which RX is not turned off during idle periods (c70a55c)
Application Utilities
CJSON
- Updated cJSON to v1.7.19 (b4afd60)
ESP HTTP Client
- Updated the postman root certificate for the esp_http_client example. (3e9fdf0)
- Fixed memory leak in HTTP client when header parsing fails during fetch operation. (0eaf976)
ESP HTTPS Server
- Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the
Key Usageparameter due to the change in Python3.13's default ssl context requirements. (3d5cf55)
Protocomm
- Add security checks for buffer overflow / incorrect length handling (a861dc3)
- add validation for Security1 client verifier data (7463bd8)
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. (84467ec)
BLE
- Fixed uninitialized return code in BLE Get Started - NimBLE examples (f4c3f90)
- Add Bluetooth LE 5 1 direction finding feature. (f099935)
BluFi
- Added an API to start advertising with specified name. (1c926f0)
- Added support for stopping adv in BLUFI for nimble (b7ea118)
Bluedroid
- Fixed the issue that extend advertising might not restart if the connection fails (5a9a1bb)
- Fixed Bluetooth LE incorrect device record count issue (5618f71)
- Improved debugging by adding more logs and thread diagnostic tools. (53f1ef0)
- Fixed GATT response timeout setting. (53f1ef0)
- Fixed a memory leak during deinitialization when the service table was created but not started (2590dcf)
- Fixed crash when deinitializing or disabling host during scanning (ba358f7)
- Added an API to set channel map for scanning or initiating. (4bca78f)
- Fixed the status setting in the HCI event. (5f96c34)
- Fixed potential out-of-bounds memory access when resolving advertising data (035e2f5)
- Added Bluetooth LE multiple connections examples. (bfa7681)
- Fixed the connection count limit in multi-connection. (bfa7681)
- Supported multi-connection optimization vendor HCI command. (bfa7681)
- Adjusted L2CAP round robin msg send strategy. (bfa7681)
- Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (2d7044e)
- Fixed incorrect update of resolving_list_avail_size (0151678)
- Fixed issue where resolving list was not updated after the oldest device was removed (0151678)
- Fixed issue that caused failure in "BTM_GetSecurityFlags" (0151678)
- Fixed failure to disconnect when device record is cleared (0151678)
- Fixed extended advertising restart failure during reconnection. (cf95955)
- Fixed BLE SMP state machine inconsistency on disconnection (f1d4845)
- Fixed null pointer assert in l2c_link_check_send_pkts (7bc49c1)
- Fixed issue with deleting link key when classic Bluetooth is not used. (58fd178)
- Fixed validation logic for BLE GAP appearance configuration. (0522298)
- Increased maximum attribute value length to 517 to prevent data loss. (0522298)
- Added throughput mode for BLE SPP example. (65d725f)
- Fixed missing event reporting in
esp_ble_create_sc_oob_data. (b171e3b) - Fixed memory leak issue when using dynamic memory and deinitializing the host. (b171e3b)
- Fixed BLE crash when disabling bluedroid host. (b171e3b)
- Fixed potential uint32_t overflow in BLE
btu_start_timer. (b171e3b) - Added BLE eddystone sender example. (fa41c50)
- Added support for the "Read Periodic Advertiser List Size" command. (64d22a4)
- Added Read Long Characteristic Values example. (5bf714f)
- Supported BLE setting vendor event mask (e701957)
- Supported BLE vendor HCI event reporting (e701957)
- Supported SPI log output options for HCI. (392c303)
- Fixed an issue where advertising data and scan response data were not reported together during BLE active scanning. (e9bc012)
- Supported change HID task size by Kconfig in HID example(#15320). (e7629d0)
Controller
- Add a feature to automatically initiate a data length update using the appropriate parameters whe...
ESP-IDF Release v5.5.2
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. (e93f0e5)
- BLE/Controller: Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (e93f0e5)
- SPI Flash: Added a new argument
flagstoesp_flash_os_functions_t::start. The caller and implementer needs to handle this argument properly. (0f4b384) - 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. (e81ca4b)
- WI-FI: Added second channel field in the
wifi_action_tx_req_tstructure. (d14ce1f)
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 (ea36c4f)
- 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 (18531ed)
- Fixed PSRAM write stuck after reset on ESP32-C5/C61 (ddb9f5d)
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 (332c73b)
- Changed the default cca threshold to -75dBm (0586744)
Thread
- Fixed a potential stack overflow issue in TREL browse (332c73b)
- Fixed an occasional multicast router initialization failure (332c73b)
- Fixed a deadlock issue in DNS resolver (332c73b)
- Fixed an issue where NVS was not opened from the configured partition (332c73b)
- Supported custom netif config during initialization (6334043)
- Updated openthread submodule (36b14d3ef) (0586744)
- Supported multicast forwarding cache filter in Thread BR (0586744)
- Supported DHCPv6 PD feature (0586744)
- Added APIs to start or stop the OpenThread stack (31b8066)
- Updated the OpenThread examples to use the new APIs (31b8066)
- Updated OpenThread examples to use esp_console. The
otprefix is required when running OpenThread CLI commands. (31b8066) - Updated openthread submodule (3b3dd203) (7b45a16)
- Resolved the RCP data transmission issue over USB Serial JTAG (166e12c)
Application Utilities
CJSON
- Updated cJSON to v1.7.19 (847ceb6)
ESP HTTP Client
- Fixed handling of errors while reading data from server using API esp_http_client_perform(). (8a4f0c5)
- Updated condition to close and cleanup the HTTP client (d0ffafb)
ESP HTTP Server
- Fixed the response status in Captive portal example. (344266f)
- Fixed http(s) server request close order with LRU purge enabled. (#17470) (0313a36)
- Added support for pre-handshake callback, which is executed before upgrading to WebSocket protocol. (b966e39)
ESP HTTPS OTA
- Added fix to ensure the data written during OTA updates is properly aligned to 16 bytes when flash encryption is enabled (cfba6ee)
- Fixed partial download OTA to work on a single persistent connection rather than sending every range request on individual subsequent connections (5058b75)
ESP HTTPS Server
- Fixed the issue where a second request on the same socket was blocked after the first async request succeeded.(#16998) (1970cc7)
BLE
- Fixed uninitialized return code in BLE Get Started - NimBLE examples (a62dc1d)
BluFi
- Added an API to start advertising with specified name. (6b7d55a)
Bluedroid
- Fixed Bluetooth LE incorrect device record count issue (8789584)
- Fixed the issue that extend advertising might not restart if the connection fails (a63ae74)
- Fixed crash when deinitializing or disabling host during scanning (d4a52b1)
- Added an API to set channel map for scanning or initiating. (690e83d)
- Fixed the status setting in the HCI event. (7aee10f)
- Fixed potential out-of-bounds memory access when resolving advertising data (56bef4d)
- Added Bluetooth LE multiple connections examples. (ba4300c)
- Supported multi-connection optimization vendor HCI command. (ba4300c)
- Fixed the connection count limit in multi-connection. (ba4300c)
- Adjusted L2CAP round robin msg send strategy. (ba4300c)
Controller
- Fixed BLE assert lld_con.c 1479 on ESP32-C3 and ESP32-S3. (2a039e3)
- Supported controller log compression on ESP32-C3 and ESP32-S3. (91dd2ae)
- Fixed the disconnection issue caused by a MIC error on ESP32-C61. (443bbf5)
- Fixed an occasional connection establishment failure issue when utilizing BLE Flash Only feature for ESP32-C2. (25186fb)
- Fixed an occasional interrupt watchdog timeout issue when establishing connection for ESP32-C2. (25186fb)
- Fixed an occasional connection timeout issue when utilizing BLE Flash Only feature for ESP32-C2. (25186fb)
- Add scheduling priority level configuration when internal scheduling conflicts on ESP32-H2,ESP32-C6 and ESP32-C5. (25186fb)
- Fixed occasional memory leaks in multi-connection scenarios on ESP32-H2 and ESP32-C6. (38694c3)
- Fixed an occasional MIC failure issue in Start Encryption procedure for ESP32-C2. (38694c3)
- Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (e93f0e5)
- Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2. (e93f0e5)
- Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6. (e93f0e5)
- Improved security when receiving a connection request PDU with an invalid Access Address on ESP32 (326f10b)
- Supported the PAwR feature on ESP32-C6, ESP32-H2, ESP32-C61 and ESP32-C5. (7d73f5e)
Documentation
- Added Bluetooth LE Low Power Mode FAQ in API Guides (d1f4a0c)
- Updated ESP-Nimble SIG qualification version to core specification 6.1. (65bd466)
- Added Bluetooth LE 6.0 features support status. (f7bad9f)
Mesh
- Support for BLE 5.0 Extended Advertising in ESP-BLE Mesh communication (db87284)
- Adds log-compression support when building Bluetooth LE Mesh applications. (636daf1)
NimBLE
- Handle sync cancel during reattempt operations (51493f9)
- Added a check for periodic psync before processing (df08d0d)
- Fix compilation issues across different NimBLE examples (df08d0d)
- Support runtime memory alloc for mempool. (df08d0d)
- Fix typos in NimBLE examples (#17824) (85604da)
- Add Read all local / remote supported feature HCI command /event. (dfccdf1)
- Update HCI log functions to use uint16_t for data length (025e5f2)
- Fix array overflow caused by invalid connection handle indexing (bf41c80)
- Add support for host side support for Channel Sounding. (39b9662)
- Use nimble platform mem malloc / free APIs (38917f3)
- Handled adv ext data setting in reattempt adv (e8ff0a5)
- Rearrange NimBLE menuconfig options (54de9c4)
- Add indicate / notification code under correct flags [ Closes https://github.com//issues/16769 ] (965e2e4)
- Fixed incorrect HCI status in connect event (a2c5d88)
- Updated reattempt count handling for periodic adv (b0ec8fe)
- Restructured table of README.md file of bleprph and blecent (aa82f52)
- Updated ble_gatts_show_local API to show CPFDs and CAFDs. (37eaa4c)
- Added helper api's in nimble. (37eaa4c)
- Fix include service definition handle being the same for all definitions. (37eaa4c)
- Added VSC for Set Scan Channel Bitmap. (37eaa4c)
- ISO minor support for NimBLE Host (37eaa4c)
- Add connection failure event when connection fails (37eaa4c)
Power Management
- Fixed occasional sleep enter failure due to BLE waking up too soon (25186fb)
Bluetooth Common
Bluedroid
- Fixed missing BLE connect and disconnect events (8789584)
- Security Enhancements for Bluedroid Host Stack and Examples (5cf7ec6)
- Added API to retrieve the local BLE Identity Resolving Key (IRK) (c5d19fd)
Controller
ESP-IDF Pre-release v6.0-beta1
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 (03855b9)
- Upgraded default C++ standard to gnu++26 (03855b9)
- 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/) (34f658a)
- 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_provisioninginto 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. (105a64a) - Application Utilities/CJSON: Move cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (269acda)
- Application Utilities/Provisioning: disable protocomm security version 0 and 1 by default. If required then security 0/1 configs should be explicitly enabled. (f0cc452)
- Application Utilities/Provisioning: Fixed wifi_prov_mgr_deinit api return type and handled error case in wifi_prov_mgr example (b9c2242)
- Bootloader: Renamed linker file 'bootloader.ld' to 'bootloader.ld.in'. Custom bootloader build scripts update might be required. (0367cfe)
- 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. (dea8433) - Build & Config: Default warnings are now considered as errors by default. This can be disabled by setting
CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS = y(6efd36f) - Build & Config: Removed inclusion of <dirent.h> when <sys/dirent.h> is included. Include <dirent.h> for function declarations (0a7ace3)
- Build & Config: Upgraded default C standard to gnu23. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Upgraded default C++ standard to gnu++26. Code changes may be required to fix new warnings. (03855b9)
- Build & Config: Changed the execution order of non-priority C++ constructors and functions marked with attribute((constructor)) from descending to ascending (44aeff1)
- Build & Config: The binary generation target
gen_signed_project_binaryis no longer available as the build system drops the need for this target. (c8f68c7) - Build & Config: The binary generation
gen_project_binaryis 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 newidf_build_add_post_elf_dependenciy()must be used. (c8f68c7) - Build & Config: Global Cmake variables presented by the
esptool_pyviz.,ESPTOOLPY,ESPSECUREPY,ESPEFUSEPYandESPMONITORare no longer available. These must be accessed via theidf_component_get_property()function. (c8f68c7) - 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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c7) - Build & Config: Components adding target dependencies on the
encrypted-flashtarget unconditionally is not allowed any more. Such dependencies can only be done ifCONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENTis enabled. (c8f68c7) - 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. (a319aa9)
- Classic Bluetooth/Bluedroid: esp_bt_dev_get_device_name has been deprecated and now it is replaced with esp_bt_gap_get_device_name (7cac735)
- Classic Bluetooth/Bluedroid: esp_bt_dev_set_device_name has been deprecated and now it is replaced with esp_bt_gap_set_device_name (7cac735)
- Classic Bluetooth/Bluedroid: esp_hf_ag_devices_status_indchange has been deprecated and now it is replaced with esp_hf_ag_ciev_report (7cac735)
- Classic Bluetooth/Bluedroid: esp_spp_init has been deprecated and now it is replaced with esp_spp_enhanced_init (7cac735)
- Core System: Removed deprecated STATUS enum from
ets_sys.h, use ETS_STATUS instead. (166269f) - Core System: The header
esp_vfs_cdcacm.hhas been moved to the new componentesp_usb_cdc_rom_console, you will now have to add an explicitREQUIRESforesp_usb_cdc_rom_consoleif using any functions from this header. (1f0152d) - Core System: Ring buffer functions are now placed in flash memory by default to save IRAM space.
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASHKconfig option has been removed. (11b80a7) - Core System/ESP Event: Removed unnecessary freertos header includes, if your code relied on this implicit include from
esp_event.hthen please add the correct explicit includes,freertos/queue.h"andfreertos/semphr.hto your files. (cb36cd3) - Core System/Heap: MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see #14837) (75305c2)
- Core System/Interrupts: Removed deprecated intr_types.h header, update to use
esp_intr_types.hinstead (365c8a3) - Core System/Log: The following deprecated APIs have been removed:
esp_log_buffer_hex(),esp_log_buffer_char(). (659ae57) - Core System/Log: The following deprecated headers have been removed:
esp_log_internal.h. (659ae57) - Core System/Newlib: COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'. Default behavior is now to not evaluate expressions inside
assert(X)whenNDEBUGis set, which confirms to the C standard. (#2758) (33f92c8) - Debugging/Apptrace: Removed destination parameter from all apptrace APIs. (8ee473d)
- Debugging/Apptrace: Changed the way apptrace is configured. Applications must implement
esp_apptrace_get_init_paramsto provide app_trace parameters to the components (8ee473d) - 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. (8ee473d)
- 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. (9f38fa1)
- Debugging/Apptrace: Moved gcov component out of the IDF and is now available in the ESP Component Registry as esp-gcov (5ac81c1)
- Debugging/Apptrace: Deprecated ESP_APPTRACE_DEST_TRAX. Now it is replaced with ESP_APPTRACE_DEST_JTAG (fb3e616)
- Debugging/Apptrace: Changed esp_apptrace_down_buffer_config(). Now it requires
esp_apptrace_dest_t destas first parameter for API consistency. (fb3e616) - Debugging/Apptrace: Removed
CONFIG_APPTRACE_PENDING_DATA_SIZE_MAXconfiguration option. (a083766) - Debugging/Core Dump: Dropped CRC32 checksum support. Only SHA256 checksum is now used. (521f3e3)
- Debugging/Core Dump: Dropped binary format support. Only ELF format is now supported. (521f3e3)
- Debugging/Core Dump: Changed function
esp_core_dump_partition_and_size_get(). Now it returnsESP_ERR_NOT_FOUNDfor blank partitions instead ofESP_ERR_INVALID_SIZE(#15153) (521f3e3) - Ethernet: Removed and migrated 3rd p...
ESP-IDF Release v5.4.3
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. (2d556f7) - 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. (e839ed5)
- Adjust touch channel number on ESP32-P4 from 0-13 to 1-14. (435cf83)
Changelog
15.4
Thread
- Fixed an issue with source address selection during network switching (7edf40d)
- Use the ML-EID address for self-hosted services if OMR address is not preferred (2793457)
- Improved TREL message reception (26d4b9c)
- Handled MeshCoP mDNS service in state change callback (26d4b9c)
- Updated openthread submodule (b945928) (26d4b9c)
- Introduced a new API to register the console based openthread CLI command (26d4b9c)
- Supported RCP over USB Serial JTAG interface (3ecfb66)
- Added a function to exit openthread main loop safely (8147067)
Application Utilities
CJSON
- Update cJSON to v1.7.19 (bf0c45e)
ESP HTTP Client
- Fixed handling of errors while reading data from server using API
esp_http_client_perform()(8d4f0af) - Updated condition to close and cleanup the HTTP client (872bcb6)
- Updated the postman root certificate for the esp_http_client example (7c82234)
- Fixed memory leak in HTTP client when header parsing fails during fetch operation (95699fe)
- Fixed the often triggering of HTTP_EVENT_ERROR when the asynchronous client is set (7183a69)
ESP HTTP Server
- Added support for pre-handshake callback which is executed before upgrading to WebSocket protocol (a301c06)
- Fixed multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (#15767, #15235) (b257023)
- Fixed httpd_register_uri_handler api for memory leak (#15878) (7ac6f01)
ESP HTTPS Server
- Fixed the issue where a second request on the same socket was blocked after the first async request succeeded (#16998) (bf24dfc)
BLE
- Fixed uninitialized return code in BLE Get Started - NimBLE examples (ceb32b5)
- Added Bluetooth LE CTE connless AoA/AoD example (45751f9)
BluFi
- Added API to start advertising with specified name (cc25248)
Bluedroid
- Fixed potential out-of-bounds memory access when resolve adv data (d66354c)
- Added BLE multiple connections examples (dfc2928)
- Fixed the connection count limit in multi-connection (dfc2928)
- Adjusted L2CAP round robin msg send strategy (dfc2928)
- Supported multi-connection optimization vendor HCI command (dfc2928)
- Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (477aa4e)
- Fixed issue that caused failure in "BTM_GetSecurityFlags" (88d8f5d)
- Fixed incorrect update of resolving_list_avail_size (88d8f5d)
- Fixed issue where resolving list was not updated after the oldest device was removed (88d8f5d)
- Fixed failure to disconnect when device record is cleared (88d8f5d)
- Fixed extended adv restart failure during reconnection (2b0b65f)
- Fixed BLE SMP state machine inconsistency on disconnection (d07f840)
- Fixed null pointer assert in l2c_link_check_send_pkts (3e5d2c7)
- Fixed build failure when some BLE features are disabled (e6c334c)
Controller
- Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2 (cf9d588)
- Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6 (cf9d588)
- Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2 (cf9d588)
- Improved security when receive connection request PDU with an invalid Access Address on ESP32 (203f114)
- Supported the PAwR feature on ESP32-C6 and ESP32-H2 (61ee93b)
- Optimized check Access Address when receive connection request PDU on ESP32 (175cb02)
- Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32 (8e094e7)
- Fixed priority setting for BLE events on ESP32 (8e094e7)
- Fixed disconnection issue when coexisting with other BLE events on ESP32 (8e094e7)
- Fixed crash due to bandwidth full when updating connection params on ESP32 (8e094e7)
- Supported multiple connection optimization vendor HCI command on ESP32 (8e094e7)
- Fixed an occasional assert issue in case of controller disable on ESP32-C2 (9449677)
- Fixed an occasional sync lost issue on ESP32-C6 and ESP32-H2 (9449677)
- Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3 (65c0360)
- Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3 (65c0360)
- Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3 (65c0360)
- Fixed BLE anonymous extended advertising filtering on ESP32-C3 and ESP32-S3 (65c0360)
- Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6 and ESP32-H2 (68a63ff)
- Fixed an occasional assertion issue during sync on ESP32-C6 and ESP32-H2 (68a63ff)
- Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2 (b84ccbc)
- 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 (b84ccbc)
- Fixed an occasional assertion issue during scanning on ESP32-C6 (b84ccbc)
- Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2 (b84ccbc)
- Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (f5edc85)
Documentation
- Updated ESP-Nimble SIG qualification version to core specification 6.1 (d7d895c)
- Added Bluetooth LE 6.0 features support status (24dfb49)
NimBLE
- Fixed incorrect HCI status in connect event (632ee74)
- Updated reattempt count handling for periodic adv (484e6e2)
- Restructured table of README.md file of bleprph and blecent (e252fb2)
- Add connection failure event when connection fails (7912b04)
- Added ISO minor support for NimBLE Host (803d852)
- Added helper api's in nimble. (de407c6)
- Fixed include service definition handle being the same for all definitions (d0ad380)
- Updated ble_gatts_show_local to show CPFDs and CAFDs (d0ad380)
- Added VSC for Set Scan Channel Bitmap (98f0a9b)
- Updated count parameter correctly by considering offset (bd70852)
- Fixed for attribute count mismatch between cached gatt db and actual db (bd70852)
- Fixed compilation issue due to BLE_GATTS flag (3dd2087)
- Clear GATT service entries counter upon GATT deinit (ace0f63)
- Added packet allocation retry for limited iteration (2ff67c4)
- Added timestamp information to HCI logging (c868984)
- Provided a way to make blufi advertising customizable (#16234) (a16d45c)
- Add ble_ancs example to build-test-rules configuration file (96ae24c)
- Fixed compilation issues when gatt caching is enabled in peripheral only mode (10a1413)
- Added a missing instance of
ble_hs_unlock()in a corner case (d1e87af) - Added parameter in
peer_init()to allocate memory for included services (66a5a58) - Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications (c52e8ee)
- Automatically initiated security and retry service request if service request fails due to insufficient security (c52e8ee)
- Fixed issue of Adv report not observed in PAwR example (f26f6e4)
- Added Support for Apple Notification Center Service (ANCS) in NimBLE (81064fa)
- Added sdkconfig with options to showcase DRAM reduction for NimBLE examples (03e9d2d)
- Fix compilation issue when CSFCS is set to 0 (de813ca)
- Wrap BLE service API with extern "C" (de813ca)
Bluetooth Common
Controller
- Fixed the issue that BTBB might not reinitialize after stopping and starting Bluetooth when coexisting with WiFi on ESP32 (#15841) (0926ce5)
- Fixed the issue that unfixed core tasks may register or trigger software interrupts of the wrong core when calling the Bluetooth interface on ESP32 (c66629e)
...