-
ESP-IDF Release v5.5.3
Stablereleased this
2026-02-17 13:34:29 +00:00 | 9894 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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. (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
- Fixed a potential deadlock that can happen with Websocket server while using HTTPD_QUEUE_WORK_BLOCKING (https://github.com/espressif/esp-idf/issues/17591) (
8b6e9b0d) - Fixed the WebSocket implementation to stop reading data when the peer closes the connection. (https://github.com/espressif/esp-idf/issues/17822) (
ffc215cf)
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
- Added API to read the currently used local IRK (
516e2efd) - Fix tinycrypt related compilation issue (
728d58ab) - Add support for static passkey (
728d58ab) - Update report_map_len to uint16_t (https://github.com/espressif/esp-nimble/issues/74) (
728d58ab) - Modified NVS namespace for storing peer device GATT data (
728d58ab) - Memory optimization with dynamic memory allocations support. (
728d58ab) - Added Helper function to find identity address from RPA address (
516e2efd) - Add AD type macros in example (
64150ac6) - Fix NULL psync access in periodic advertising sync lost. (
d4a83caa) - Reset HID services during deinit (
1f51d482) - Modified API's which parse advertising data (
1f51d482)
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
- Fixed a heap tracer bug that caused a startup crash when static memory usage was too high (https://github.com/espressif/esp-idf/issues/17232) (
e2cc50cb) - Fixed the advanced heap tracing example name in its README file (https://github.com/espressif/esp-idf/issues/17233) (
e2cc50cb)
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
- Fixed ESP32-P4 ADC2 oneshot do not claim apb periph clock (
7837f4b6) - Fixed ADC hw calibration do not free apb periph clock (https://github.com/espressif/esp-idf/pull/16130) (
7837f4b6) - Fixed ADC continuous mode ISR not in IRAM issue leading to panic on ESP32 and ESP32-S2 (https://github.com/espressif/esp-idf/issues/17526) (
1c37e720)
Camera
- Fixed CSI and ISP_DVP driver RX buffer data corrupted issue due to cache coherence issue caused by cache autowriteback (
79cd3060)
DMA
- Added alignment checks for DMA when flash encryption is enabled.(https://github.com/espressif/esp-idf/issues/17708) (
03b5c7eb)
I2C
I2C Master
- Added timeout range check (https://github.com/espressif/esp-idf/issues/17930) (
d4b93a44) - Fixed LOG_LOCAL_LEVEL redefinition error when CONFIG_I2C_ENABLE_DEBUG_LOG is enabled (https://github.com/espressif/esp-idf/issues/17877) (
1f590bc0)
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
subwindowfield toesp_isp_awb_config_tfor 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
- Fixed the issue that SPI MISO can't be used with LCD D/C together (https://github.com/espressif/esp-idf/pull/17858) (
fa715731)
DSI_LCD
- Allow set the pixel clock frequency with float value (
499441c5)
PARL_IO
- Parlio RX driver can accept unaligned user buffer (https://github.com/espressif/esp-idf/issues/17581) (
e5b4993c) - Added more strict buffer size check for parlio_tx (https://github.com/espressif/esp-idf/issues/17970) (
5cdf6f44) - fixed Parlio RX opposite sample edge issue (https://github.com/espressif/esp-idf/issues/18012) (
694116ff)
PPA
- Added notes about SRM bilinear interpolation algorithm in programming guide (https://github.com/espressif/esp-idf/issues/17531) (
36972d56) - Removed PPA_SRM_COLOR_MODE_YUV444 as a valid SRM output color mode (
36972d56) - Fixed a potential issue on SRM operations may get stuck on DMA (
36972d56) - Fixed PPA SRM YUV422/420 incorrect DMA descriptor port mode block size (
36972d56)
SD_HOST
SDMMC
- Fixed repeated resetting of GPIO 0 when calling
sdmmc_host_deinitfunction with an uninitialized slot (3ca37598)
SDSPI
- Added an option to modify the waiting time for MISO before sending next command - can help speed up transaction speed for e.g. SD cards on boards with no or incorrect pull-up resistors (https://github.com/espressif/esp-idf/issues/16909, https://github.com/espressif/esp-idf/issues/10493) (
0fd9f0aa) - Fixed missing error handling in
sdspi_host_start_commandfunction when callingspi_device_acquire_busfunction (0fd9f0aa)
SPI
- The SPI master and slave no longer accepts
ESP_INTR_FLAG_SHAREDas interrupt flag during initialization. (2fad74c3)
SPI Master
- SPI Master can transfer PSRAM buffers with DMA directly without extra copy (
003eaf08)
TWAI
- Supports get free queue size and improve logs and API docs (https://github.com/espressif/esp-idf/pull/17888)(https://github.com/espressif/esp-idf/issues/17884)(https://github.com/espressif/esp-idf/issues/17882) (
4bccb20a)
Touch Sensor
- Fixed touch channel 8/9 enable mask bit swap issue (
b36dfcf5) - Fixed non-symmetric gpio reserve/revoke in Touch Sensor driver (https://github.com/espressif/esp-idf/issues/17806) (
e5b4993c)
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_statisticsandnvs_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
- Fixed cache sync operation concurrency issue that leads to system crash (https://github.com/espressif/esp-idf/issues/18023) (
9615bfa2)
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
- Upgraded openocd version to v0.12.0-esp32-20251215 (
fbfa940c)
Tools
- Updated
ccacheversion to 4.12.1 (https://github.com/espressif/esp-idf/issues/17756) (b214c68c) - Updated example commands defining
@argument_filewith quotations (https://github.com/espressif/esp-idf/issues/18077) (4fec7af6)
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)
- Peripheral Drivers/SPI The SPI master and slave no longer accepts
-
released this
2026-01-26 08:17:22 +00:00 | 7883 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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_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. (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_binaryis no longer available as the build system drops the need for this target. (c8f68c72) - 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. (c8f68c72) - 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. (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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c72) - 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. (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.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. (1f0152dd) - 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. (11b80a7f) - 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. (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.hinstead (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)whenNDEBUGis 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_paramsto 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 destas first parameter for API consistency. (fb3e6167) - Debugging/Apptrace: Removed
CONFIG_APPTRACE_PENDING_DATA_SIZE_MAXconfiguration 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 returnsESP_ERR_NOT_FOUNDfor blank partitions instead ofESP_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 optionCONFIG_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_FLASHKconfig option has been removed. (11b80a7f) - FreeRTOS: The compatibility function
xQueueGenericReceive()has been removed. UsexQueueReceive(),xQueuePeek(), orxQueueSemaphoreTake()as per your usecase. (3ef41363) - FreeRTOS: The compatibility function
vTaskDelayUntil()has been removed. Use the functionxTaskDelayUntil()instead. (3ef41363) - FreeRTOS: The compatibility function
ulTaskNotifyTake()has been removed. Use the macroulTaskNotifyTake()instead. (3ef41363) - FreeRTOS: The compatibility function
xTaskNotifyWait()has been removed. Use the macroxTaskNotifyWait()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_tenum type is refactored intoshared_periph_module_tand 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.handdriver/rtc_cntl.hheader files are removed. Please useesp_private/periph_ctrl.handesp_private/rtc_ctrl.hinstead. (e3190c63) - Peripheral Drivers: The
io_loop_backconfig 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_mallocandesp_dma_capable_callocfunctions are removed. TheGDMA_ISR_IRAM_SAFEKconfig 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_outpublic APIs. Please usegpio_iomux_input,gpio_iomux_outputin 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
intto the more type-safegpio_num_t. (6ea0fa1a) - Peripheral Drivers/LCD: The
color_spaceandrgb_endianconfiguration options in theesp_lcd_panel_dev_config_tstructure is replaced by thergb_ele_ordermember, 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_modemember in themcpwm_generator_config_tconfiguration 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_modemember in thermt_tx_channel_config_tconfiguration 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_gpioto 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_infomember in thesdmmc_host_tstructure, as well as thesdspi_host_get_dma_infoandsdmmc_host_get_dma_infofunctions, are removed. (3e09d4f2) - Peripheral Drivers/SPI: The SPI master and slave no longer accepts
ESP_INTR_FLAG_SHAREDas 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
flagsis added toesp_flash_os_functions_t::start. Caller and implementer should handle this argument properly. (f409428b) - Peripheral Drivers/SPI Flash: Remove
SPI_FLASH_ROM_DRIVER_PATCHoption 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_countersandspi_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
intinstead oftouch_pad_tto express the touch channel ID. (30d0eded) - Peripheral Drivers/Touch Sensor: Removed
touch_sensor_sample_config_t::bypass_shield_outputon 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.his deprecated and replaced byesp_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 callpsa_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 usingesp_ecdsa_free_pk_context()(7da79a65) - Security/MbedTLS: The
use_tee_sec_stg_keyflag has been removed. ECDSA private key operations using ESP-TEE secure storage can now be performed by just specifyingtee_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()andesp_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 callesp_sha_set_mode()with the argumentSHA2_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_mountandesp_vfs_fat_sdspi_mountnow returnESP_ERR_INVALID_ARGif 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
vfscomponent, 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.handsoc_memory_types.h.fromesp_hw_supportcomponent. These headers are replaced byesp_rtc_time.handesp_memory_utils.hrespectively. (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 gdbguicommand can still be used, provided that thegdbguitool 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_tstructure. (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
otprefix 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
- 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. (105a64ab) - Update
esp_http_clientexample root certificate (https://github.com/espressif/esp-idf/issues/16132) (72cc5dee)
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
- Moved cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (
269acda5)
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) - Added fix to prevent out-of-bounds read in Digest auth causing a potential security vulnerability (
7a337412) - Updated condition to dispatch FINISH event during HTTP response read (https://github.com/espressif/esp-idf/issues/17437) (
e6f94597) - Clarified esp_http_client_set_post_field() usage: post data must be set to NULL to avoid reuse (https://github.com/espressif/esp-idf/issues/17053) (
6f5ec4b5) - Fixed handling of errors while reading data from server using API esp_http_client_perform(). (
71d34921) - Added new HTTP state
HTTP_STATE_CONNECTINGand made states public (https://github.com/espressif/esp-idf/issues/16019) (056e4a41) - Updated condition to close and cleanup the HTTP client (https://github.com/espressif/esp-idf/issues/16070) (
056e4a41) - Fixed issue during enabling digest auth in esp client (https://github.com/espressif/esp-idf/issues/17238) (
4a69fcbd) - Updated postman root certificate dependency to esp_crt_bundle for https_aysnc request from esp_http_client_example (
5c15e41d) - Fixed often triggering of HTTP_EVENT_ERROR when asynchronous client is set (https://github.com/espressif/esp-idf/pull/16075, https://github.com/espressif/esp-idf/issues/16075) (
4e12ed06) - Fixed memory leak in HTTP client when header parsing fails during fetch operation. (
c6cc4030) - Added with new HTTP client event HTTP_EVENT_ON_STATUS_CODE. (
bfc5e1b2) - Fixed description for API esp_http_client_fetch_headers (https://github.com/espressif/esp-idf/pull/16204) (
a1b9581a)
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) - Fixed the response status in Captive portal example. (
79f6849d) - Fixed http(s) server request close order with LRU purge enabled. (https://github.com/espressif/esp-idf/pull/17470) (
030ba7d8) - Fixed memory leak issue for esp_http_server scratch buffer. (https://github.com/espressif/esp-idf/pull/17501) (
b789445a) - Added support for pre-handshake callback, which is executed before upgrading to WebSocket protocol. (
a783974d) - Upgraded the restful_server example to use Vue3 and Vuetify3. (
1f82b347) - Fixed multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (https://github.com/espressif/esp-idf/pull/15767, https://github.com/espressif/esp-idf/issues/15235) (
464d03f9) - Fix the regression cause in httpd_cookie_key_value due to commit
4a47cf8(https://github.com/espressif/esp-idf/pull/16202) (09202785) - Fixed httpd_register_uri_handler api for memory leak (https://github.com/espressif/esp-idf/issues/15878) (
54e071a8)
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
- Updating to mbedTLS 4.x with PSA migration increases the flash footprint. For https_server, the flash impact increases about 27KB (~3.08%). (
7da79a65) - Added optional configuration for client cert verification (https://github.com/espressif/esp-idf/pull/17641) (
66827746) - Fixed the issue where a second request on the same socket was blocked after the first async request succeeded.(https://github.com/espressif/esp-idf/issues/16998) (
fd5b86d0) - Added the API in esp_http_sever to return unparsed headers data buffer (https://github.com/espressif/esp-idf/issues/15857) (
dee2895a)
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-reportbuild 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
sdkconfigfile 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 reconfigurewas 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_libraryfunction to createGLOBALtargets (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_binaryis no longer available as the build system drops the need for this target. (c8f68c72) - 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. (c8f68c72) - Global Cmake variables presented by the
esptool_pyviz.,ESPTOOLPY,ESPSECUREPY,ESPEFUSEPYandESPMONITORare no longer available. These must be accessed via theidf_component_get_property()function. (c8f68c72) - Updated
esptool_pycomponent 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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c72) - 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. (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_handleparameter inESP_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
- 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. (
bffd1ac2) - The component
esp_vfs_consolehas been renamedesp_stdioand will henceforth be responsible for all stdio related functionality. (19e09974) - Fixed "defalut" typos in esp_rom function names (https://github.com/espressif/esp-idf/issues/17668) (
86b39c63) - Added functionality to reset a ringbuffer (https://github.com/espressif/esp-idf/pull/17524) (
4c589d62) - Fixed an issue where the ESP32-P4 chip could encounter exceptions or hang when exiting the WFI (Wait For Interrupt) state. (
3124e047) - Removed deprecated STATUS enum from
ets_sys.h, use ETS_STATUS instead. (166269fb) - 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. (1f0152dd) - Added a Kconfig option
CONFIG_RINGBUF_IN_IRAMto allow placement ofesp_ringbuffunctions in IRAM. Ring buffer functions are now placed in flash memory by default. (11b80a7f) - 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. (11b80a7f) - Added Kconfig options for placing system-related APIs into flash when using
CONFIG_SPI_FLASH_AUTO_SUSPEND(ff53d5d3) - Added
xt_specreg.hwith Xtensa special register definitions with theXT_REG_prefix and deprecatedspecreg.h(https://github.com/espressif/esp-idf/pull/16040, https://github.com/espressif/esp-idf/issues/12723) (7023f5bf) - Fixed esp_ptr_executable and esp_ptr_byte_accessible to consider TCM memory (https://github.com/espressif/esp-idf/pull/15998, https://github.com/espressif/esp-idf/issues/15996) (
fd9b2fab) - fix an issue that prevented RTC reserved area to have a size multiple of 4 (https://github.com/espressif/esp-idf/issues/13082) (
1e516f0f)
Console
- Updated parsing of escape sequences in linenoise to read every character of the sequence seprately (https://github.com/espressif/esp-idf/issues/16762) (
361c1b1f)
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. (cb36cd3a)
ESP Timer
- Changed esp_timer_init_os to return ESP_OK if esp_timer already initialized. Now ESP-IDF will not abort the start-up process if esp_timer was initilized from a user constructor before the system tries to init it (https://github.com/espressif/esp-idf/issues/9679) (
88c9af78) - Fixed potential buffer overflow with esp_timer_dump() (https://github.com/espressif/esp-idf/issues/17008) (
32d85658)
Heap
- Fixed a heap tracer bug that caused a startup crash when static memory usage was too high (https://github.com/espressif/esp-idf/issues/17232) (
798e2105) - Fixed the advanced heap tracing example name in its README file (https://github.com/espressif/esp-idf/issues/17233) (
798e2105) - MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see https://github.com/espressif/esp-idf/issues/14837) (
75305c27) - Changed patched TLSF ROM functions to be placed in flash (
6aeba187)
IPC
- Allowed IPC recursion calls in esp_ipc_call (
fdc32067)
Interrupts
- Removed deprecated intr_types.h header, update to use
esp_intr_types.hinstead (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
- 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. (https://github.com/espressif/esp-idf/issues/2758) (33f92c8f) - Added kconfig option for configurable buffer length for assert msgs (https://github.com/espressif/esp-idf/issues/17454) (
f25ae480)
Panic handling
- Fixed infinite loop in
.eh_frame-based backtracing when DWARF unwind information was missing. (686165a7) - Fixed an issue where the panic handler may reboot even though it is configured to dump the CPU registers and halt (https://github.com/espressif/esp-idf/issues/17260) (
7a6559f7)
Partition Table
- Fixed partition table names must be only ASCII characters (
9f6136d6)
Pthread
- Adds timed locks for pthread_rwlock (https://github.com/espressif/esp-idf/issues/16099) (
7b621ad8)
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_paramsto 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 destas first parameter for API consistency. (fb3e6167) - Removed
CONFIG_APPTRACE_PENDING_DATA_SIZE_MAXconfiguration 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
- Fixed
CONFIG_ESP_COREDUMP_MAX_TASKS_NUMoption that was previously ignored, allowing users to limit the number of tasks included in core dumps. (https://github.com/espressif/esp-idf/issues/14407) (b98d27c7) - Dropped CRC32 checksum support. Only SHA256 checksum is now used. (
521f3e39) - Dropped binary format support. Only ELF format is now supported. (
521f3e39) - Changed function
esp_core_dump_partition_and_size_get(). Now it returnsESP_ERR_NOT_FOUNDfor blank partitions instead ofESP_ERR_INVALID_SIZE(https://github.com/espressif/esp-idf/issues/15153) (521f3e39)
GDB Stub
- Added support for RISCV FPU and PIE registers (
c7db2345) - Fixed segfault if registers changed not for running task (
c7db2345)
Documentation
- Updated Get Started for installing ESP-IDF using ESP-IDF Installation Manager (
1ee108c7) - Updates documentation for QEMU based build and test (https://github.com/espressif/esp-idf/pull/17464, https://github.com/espressif/esp-idf/issues/17458) (
43713480) - Fixed wrong link to Putty in getting started (https://github.com/espressif/esp-idf/pull/17444) (
8b96e820) - Updated missing Chinese translation in Build System documentation (https://github.com/espressif/esp-idf/pull/16236) (
4bdd6b6f) - Updated CLion documentation (https://github.com/espressif/esp-idf/pull/15944) (
a9cdd337) - Updated the links in the COMPATIBILITY.md (https://github.com/espressif/esp-idf/pull/16025) (
94143f2f) - Restructured the Error Handling doc in terms of macros (https://github.com/espressif/esp-idf/pull/15930) (
9d0d1d26) - Updated ulp-riscv doc regarding the ULP I2C hardware limitation. (https://github.com/espressif/esp-idf/pull/15917) (
e9aa543a)
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 optionCONFIG_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_FLASHKconfig option has been removed. (11b80a7f) - Added a Kconfig option
CONFIG_FREERTOS_IN_IRAMto 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. UsexQueueReceive(),xQueuePeek(), orxQueueSemaphoreTake()as per your usecase. (3ef41363) - The compatibility function
vTaskDelayUntil()has been removed. Use the functionxTaskDelayUntil()instead. (3ef41363) - The compatibility function
ulTaskNotifyTake()has been removed. Use the macroulTaskNotifyTake()instead. (3ef41363) - The compatibility function
xTaskNotifyWait()has been removed. Use the macroxTaskNotifyWait()instead. (3ef41363) - The function
pxTaskGetStackStart()is deprecated and a type safe versionxTaskGetStackStart()has been added toidf_additions.h. (46160b0f) - The following deprecated APIs have been removed:
xTaskGetAffinity(),xTaskGetIdleTaskHandleForCPU(),xTaskGetCurrentTaskHandleForCPU(). (46160b0f) - Changed
vApplicationStackOverflowHookto be placed in flash whenCONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASHis enabled (6aeba187)
IDF Additions
- Fixed full no-split buffer frees item incorrectly (https://github.com/espressif/esp-idf/issues/17466) (
eeb4ec56)
LWIP
- allow task stack from SPIRAM except for ESP32 ECO2 and below (https://github.com/espressif/esp-idf/issues/17827) (
798cf55b) - Removed deprecated sntp.h, users should include esp_sntp.h (
406c7f3e) - Removed deprecated ping.h and esp_ping.h, users should include ping_sock.h (
406c7f3e) - Deprecated header sntp.h for lwip/app port layer has been removed. Users should include
esp_sntp.h. (406c7f3e) - Deprecated header ping.h and esp_ping.h for lwip/app port layer has been removed. Users should include
ping_sock.h. (406c7f3e) - Added support for NETIF link callback (https://github.com/espressif/esp-idf/issues/17463) (
9063a6c2) - Updated TCP/IP task name to "tcpip" to be more descriptive (https://github.com/espressif/esp-idf/pull/13523) (
31602cbe) - Fixed wrong deallocation in lwip port layer (https://github.com/espressif/esp-idf/pull/11534) (
5c7a2371) - Removed: CONFIG_LWIP_DHCPS_ADD_DNS. DNS option in DHCP responses now depends only on runtime config. (
57013ba4) - Fixed DHCP ARP check issue (
67e149c9)
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
- No release notes (
42abb32a) - Added support for MTU initial settings and runtime configuration (https://github.com/espressif/esp-idf/issues/11613, https://github.com/espressif/esp-idf/issues/15319) (
8a64cc15) - Added support for posting event on SNTP time update (
b3afa26a) - Removes option to disable error return in esp netif receive function (
3d5c2efb) - Added support for network interface UP and DOWN events (
82d8f9f6) - Fixed minor memory leak if PPP netif creation fails (https://github.com/espressif/esp-idf/pull/17472) (
7ab29a89) - Added support for
IP_EVENT_ASSIGNED_IP_TO_CLIENTto include DHCP client hostname (opt 12) when CONFIG_LWIP_DHCPS_REPORT_CLIENT_HOSTNAME is enabled (https://github.com/espressif/esp-idf/issues/10706) (747c172f) - 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) - Fixed esp_netif_ip6_get_addr_type() to be const correct (https://github.com/espressif/esp-idf/issues/15882) (
fe059bc5) - Fixed documentation rendering of doxygen groups in esp_netif.h (https://github.com/espressif/esp-idf/issues/16993) (
c33b88db) - Fixed reassigning the last static IP address after disconnection and reconnection (
bc34abb2) - Changed IP event name from
IP_EVENT_AP_STAIPASSIGNEDtoIP_EVENT_ASSIGNED_IP_TO_CLIENTto reflect that any network interface could act as a DHCP client or server (https://github.com/espressif/esp-idf/issues/15663) (ce6e136e) - Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
469a39bb)
IPv6
- Added support for Route Information Options in IPv6 Neighbor Discovery (ND6 RIO) (https://github.com/espressif/esp-lwip/issues/73) (
84b969ec) - Added support for configuring IPv6 duplicate detection attempts (https://github.com/espressif/esp-idf/pull/10700) (
a74725a3)
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 deprecateesp_sleep_get_wakeup_cause()(60d9ca99) - Support user configurable low power analog mode by
esp_sleep_enable_lowpower_analog_modeif 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_statusalways 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
- Added a pulse counter example code for ulp riscv core to find out the highest possible frequency of pulses that can be counted by ULP core (
0f776d31) - Added support for ADC Unit 2 on RISCV co processors (https://github.com/espressif/esp-idf/issues/17515) (
cdef6dce) - Fixed an issue where I2C error prints in ulp_riscv_i2c component were not getting disabled by using esp_log_level_set API (https://github.com/espressif/esp-idf/issues/17425) (
031a2f2f) - Returned error code back to application for ULP RISC-V I2C read/write errors (Closes https://github.com/espressif/esp-idf/issues/15904) (
031a2f2f) - Fixed the ulp_riscv_delay_cycles() to handle small delays correctly (https://github.com/espressif/esp-idf/issues/16891) (
d9241bf5)
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
- Added option to use polling mode for SPI Ethernet modules in protocols examples (https://github.com/espressif/esp-idf/pull/16869) (
5aab43eb) - Removed modbus examples, examples available at esp-modbus repository. (
be5e48bf)
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_tenum type is refactored intoshared_periph_module_tand only the modules that have multiple independent functions are kept. (f348a101) - Removed unnecessary dependencies for the driver component (
22a0f9ae) - The
driver/periph_ctrl.handdriver/rtc_cntl.hheader files are removed. Please useesp_private/periph_ctrl.handesp_private/rtc_ctrl.hinstead. (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_backconfig 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_tand replaced it withperiph_interrupt_tto fix the typo. (9c8ead5e)
ADC
- Fixed ADC continuous mode ISR not in IRAM issue leading to panic on ESP32 and ESP32-S2 (https://github.com/espressif/esp-idf/issues/17526) (
240c5d09) - Fixed ADC function abnormal on 32k XTAL clock pin on esp32c6/esp32h2/esp32c5/esp32c61/esp32p4 (
77383478) - removed deprecated ADC continuous format config (
a88b299a) - Fixed ESP32 ADC2 continuous loss sample times (https://github.com/espressif/esp-idf/issues/10612) (
23dc9a9f) - Fix temp_sensor error after adc continuous start (https://github.com/espressif/esp-idf/issues/15524) (
3ec95025) - Added ADC continuous parse data API (
8222f884) - Fixed ESP32-P4 ADC2 wrong channel-to-gpio mapping (
8222f884) - Fixed inaccurate ADC readings at high input voltages on ESP32-C5 (
7aca6243) - Fixed ESP32-P4 ADC2 oneshot do not claim apb periph clock (
f638d5e0) - Fixed ADC hw calibration do not free apb periph clock (https://github.com/espressif/esp-idf/pull/16130) (
f638d5e0) - Legacy ADC driver and legacy ADC calibration driver have been removed (
807cbbf2) - Legacy ADC driver and legacy ADC calibration driver have been removed (
807cbbf2)
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_mallocandesp_dma_capable_callocfunctions are removed. TheGDMA_ISR_IRAM_SAFEKconfig option is removed. (3e09d4f2)
GDMA
- Fixed race condition in gdma resource allocation and free (
611f5cc3)
GPIO
- Fixed the issue that gpio_output_enable and gpio_output_disable would not take effect if the IO was routing to an output signal through IOMUX. (
0e6525a9) - Add "rom_" prefix to all GPIO ROM functions in components/esp_rom/esp32xx/include/esp32xx/rom/gpio.h (
7f0f043e) - Added the esp_err_t return type to gpio_uninstall_isr_service (https://github.com/espressif/esp-idf/issues/14114) (
7f0f043e) - MAX_PAD_GPIO_NUM, MAX_GPIO_NUM, and DIG_IO_HOLD_BIT_SHIFT macros have been removed. (
7f0f043e) - Fixed the issue where the hold state of the GPIO corresponding to XTAL_32K_P was destroyed during reset or deepsleep. (https://github.com/espressif/esp-idf/issues/17419) (
3a0eba4c) - Fix USB DP pin unusable after CPU reset for ESP32-S3 and ESP32-C3 if USJ_ENABLE_USB_SERIAL_JTAG is deselected in menuconfig (https://github.com/espressif/esp-idf/issues/17488) (
f1e6e66f) - Updated the generic gpio example to avoid conflicts between the default GPIO numbers and USB peripherals (https://github.com/espressif/esp-idf/issues/16244) (
5df7a0a8) - Use enum values when assigning "pull_[up|down]_en" fields of "gpio_config" (https://github.com/espressif/esp-idf/pull/17241) (
451cfc91) - Fixed the issue that on ESP32, the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (
2319386d) - Calling gpio_reset_pin on an input only pin should not produce an error message (https://github.com/espressif/esp-idf/pull/17047) (
df5bff7a) - Support clock output feature for esp32c5 & esp32c61. (
e8ef3053) - Improved some RTC_IO LL functions performance by avoiding "read-modify-write" operation (
2fbd8779) - Removed
gpio_iomux_in,gpio_iomux_outpublic APIs. Please usegpio_iomux_input,gpio_iomux_outputin esp_private/gpio.h if neccessary. (2fb938c7) - Removed unsupported GPIO_OUTPUT_SET macro for ESP32-P4 (https://github.com/espressif/esp-idf/issues/16050) (
2fb938c7)
GPTimer
- The legacy timer group driver is removed. (
3b504812)
H264
- Added esp_h264 encoder and decoder example (
3785a242)
I2C
- Change type of
write.datamember ini2c_operation_job_tfromuint8_t *toconst uint8_t *(https://github.com/espressif/esp-idf/issues/17585) (23b76aaf) - Legacy I2C driver (
driver/i2c.h) is end-of-life and compile warning is added. (bb802914) - Disable the open drain mode on deinit (https://github.com/espressif/esp-idf/issues/17737) (
2fb0c3cd) - Add
i2c_slave_reset_tx_fifofunction to allow reset the tx fifo state of i2c slave device (https://github.com/espressif/esp-idf/issues/16241) (a8ace9db) - Fix the potential wdt might happen after nack. (
12c633fd) - Remove I2C PULL UP notice log (https://github.com/espressif/esp-idf/pull/13963) (
5aceeadd) - Add u8g2 example based on i2c master driver (
02b2f699) - Fix a typo in the documentation of
i2c_master_probefunction (https://github.com/espressif/esp-idf/issues/17475) (00e5effb) - Fixed wrong clock name when the used clock is REF_TICK. (https://github.com/espressif/esp-idf/pull/17422) (
5efe1dbe) - Updated the i2c basic example to correct the timeout parameter in I2C API calls (https://github.com/espressif/esp-idf/issues/17246) (
185a1c5a) - Fixed i2c read value via several
read jobsmight lose data (https://github.com/espressif/esp-idf/issues/16231) (92df25e7) - Make I2C nack error log as debug level, not force print anymore. (
5aa9d6ae) - I2C slave version one driver is removed (
456ae964) - Added gpio reserve check on i2c driver (
b1b99b30)
I2C Master
- Added timeout range check (https://github.com/espressif/esp-idf/issues/17930) (
5848016f) - I2C master transaction now will report ESP_ERR_INVALID_RESPONSE when NACK is detected. (
6af87b62) - Now write buffer in
i2c_master_transmit_multi_buffer_info_tis a const (https://github.com/espressif/esp-idf/issues/16890) (5053084a)
I2S
- Fixed the
rw_posandcurr_ptrinvalid issue while big gap between the two 'write' or 'read'. (31115887) - Removed 'i2s_port_t' type and use 'int' type instead. (
726a4304) - Fixed incorrect ffmpeg command in documentation (https://github.com/espressif/esp-idf/issues/17653) (
b8a0d88a) - Support to constitute full-duplex mode for STD and TDM automatically when the channel configuration are same. (
a5bd9d2d) - Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (
a19ad8df) - Added PLL240M clock source on ESP32-S3/C6 (https://github.com/espressif/esp-idf/issues/17056) (
a19ad8df) - The legacy I2S driver is removed. (
e71e7552)
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
subwindowfield toesp_isp_awb_config_tfor 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
intto the more type-safegpio_num_t. (6ea0fa1a) - The
color_spaceandrgb_endianconfiguration options in theesp_lcd_panel_dev_config_tstructure is replaced by thergb_ele_ordermember, 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
- Add ETM support for LEDC peripheral (https://github.com/espressif/esp-idf/issues/11855) (
8242e691) - Add power management support for ledc_basic example (https://github.com/espressif/esp-idf/issues/17517) (
8242e691) - Update anonymous nested struct for correct documentation building (https://github.com/espressif/esp-idf/issues/8813) (
13f42250) - Removed LEDC_USE_RTC8M_CLK macro (
e94d9cee) - Removed ledc_timer_set API, and LEDC_APB_CLK_HZ, LEDC_REF_CLK_HZ macros (
3fdb4731) - esp_driver_gpio no longer is the public required component for esp_driver_ledc (
3fdb4731) - Forced the new duty update to wait until its last duty update finishes for ESP32 (
3fdb4731)
MCPWM
- Removed variadic generator APIs
mcpwm_generator_set_actions_on_xxx(4e62b0e4) - Fixed the division by zero error when input expect resolution was too low.(https://github.com/espressif/esp-idf/issues/17665) (
31087078) - Fixed FOC example frequency calculation (https://github.com/espressif/esp-idf/issues/17015) (
9f43c02e) - The legacy MCPWM driver is removed. (
0972e9d2) - Supported to get last latched capture value directly. (
0972e9d2) - 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) - The
io_od_modemember in themcpwm_generator_config_tconfiguration structure has been removed. (1fa420ef) - Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (
5945ad1a)
PARL_IO
- Support the unaligned receive buffer in Parlio RX driver. (https://github.com/espressif/esp-idf/issues/17581) (
88c27e55) - 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)
PPA
- PPA color mode enum values are now compatible with ESP FourCC (
36134f64) - Added notes about SRM bilinear interpolation algorithm in programming guide (https://github.com/espressif/esp-idf/issues/17531) (
36134f64) - Removed PPA_SRM_COLOR_MODE_YUV444 as a valid SRM output color mode (
36134f64) - Fixed a potential issue on SRM operations may get stuck on DMA (
36134f64)
RMT
- Improve the stability of ESP32 when pm is enabled (
77b6cfb7) - Fixed RMT TX disable timeout on ESP32 when
mem_block_symbolsis large. (https://github.com/espressif/esp-idf/issues/17692) (3b0d8508) - The
rmt_receivefunction can accept a buffer from PSRAM (01a27c8a) - The legacy RMT driver is removed. (
9dc9d7de) - Enhanced the inspection of the size of encoded symbols in loop transmission. (
f160701c) - Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (https://github.com/espressif/esp-idf/issues/15948) (
7324fc6d) - Supported unaligned receive buffer with DMA, the driver will help to do the alignment internally (
7324fc6d) - Supported to set initial level before any TX transmission (https://github.com/espressif/esp-idf/issues/16068) (
7324fc6d) - Fixed the state of a simple encoder when mem_full and done occur together.(https://github.com/espressif/esp-idf/issues/17244) (
844dc17b) - Enable the internal pull-up resistor in the onewire bus example (
5f1ad2c1) - The
io_od_modemember in thermt_tx_channel_config_tconfiguration structure has been removed. (1fa420ef) - Added flags names and enhance the readability of the document (https://github.com/espressif/esp-idf/issues/15929, https://github.com/espressif/esp-idf/issues/15933) (
3baaa8c8)
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_blockdevcomponent) interface forsdmmccomponent (6cd8b82d) - Changed public requirement to
esp_driver_gpioto 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_infomember in thesdmmc_host_tstructure, as well as thesdspi_host_get_dma_infoandsdmmc_host_get_dma_infofunctions, 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.handdriver/sd_host_sdmmc.h(b1999b5c)
SDSPI
- Added an option to modify the waiting time for MISO before sending next command - can help speed up transaction speed for e.g. SD cards on boards with no or incorrect pull-up resistors (https://github.com/espressif/esp-idf/issues/16909, https://github.com/espressif/esp-idf/issues/10493) (
56160675) - Fixed missing error handling in
sdspi_host_start_commandfunction when callingspi_device_acquire_busfunction (56160675)
SPI
- The SPI master and slave no longer accepts
ESP_INTR_FLAG_SHAREDas interrupt flag during initialization. (28999c81) - Added note and workaround for esp32 spi slave hold MISO pin issue (https://github.com/espressif/esp-idf/issues/8638) (
f4e999fd) - Added note for esp32 spi slave with DMA but real trans_len unaligned to 4 bytes (https://github.com/espressif/esp-idf/issues/2085) (
f4e999fd) - Fixed spi device turn to maximum speed when override_freq uninitialized (https://github.com/espressif/esp-idf/issues/17460) (
f4e999fd) - Removed deprecated HSPI and VSPI related IOMUX pin macros on ESP32 and ESP32S2 (
a4c03ceb) - Fixed slave mode with dma RX data error on ESP32C5 (
c8fcebd9) - Fixed spi master full duplex with dma enabled but single RX data error on ESP32C5, C61 (
323e9425) - Change ESP32P4 spi master default clock source to PLL to support up to 80M by default (
d8fa822a)
SPI Master
- SPI Master can transfer PSRAM buffers with DMA directly without extra copy (
311bec8f)
SPI Slave
- Added a note about drive capability for GPIO pins in SPI slave example (https://github.com/espressif/esp-idf/pull/17268) (
4bd3661f)
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
flagsis added toesp_flash_os_functions_t::start. Caller and implementer should handle this argument properly. (f409428b) - Added Block device layer (
esp_blockdevcomponent) interface forspi_flashcomponent (7c4eac9e) - Fix flash software suspend doesn't perform efficiently on esp32h2 (
8811f2ec) - Remove
SPI_FLASH_ROM_DRIVER_PATCHoption 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_countersandspi_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
- Improve new driver transmits API description (https://github.com/espressif/esp-idf/issues/17883) (
30e864c1) - Supports get free queue size and improve logs and API docs (https://github.com/espressif/esp-idf/pull/17888)(https://github.com/espressif/esp-idf/issues/17884)(https://github.com/espressif/esp-idf/issues/17882) (
30e864c1) - Removed the errata config option and apply workaround automatically (
9245d8ee) - Deprecate the legacy twai driver API (
74710439) - Fixed ESP32C5 can't receive frame in listen_only mode when multiple node on bus (https://github.com/espressif/esp-idf/issues/17461) (
e8ec9546) - Fixed
[tx|rx]_error_countempty fromtwai_node_get_info(https://github.com/espressif/esp-idf/issues/17434) (e8ec9546) - Fixed using
twai_make_dual_filter()to config dual filter for 29-bits ext_id (https://github.com/espressif/esp-idf/issues/17504) (e8ec9546) - More accurate the
sample_pointcalculation when usingtwai_timing_basic_config_t::sp_permill(https://github.com/espressif/esp-idf/issues/17522) (e8ec9546) - Fixed the issue that legacy twai driver can't send frame with dlc equals to zero (https://github.com/espressif/esp-idf/issues/17467) (
fecbfdc8) - Added a new TWAI example to drive XiaoMi "CyberGear" servo with a console CLI. (
c6d7d5d4) - Removed unsupported busoff and clkout signals on ESP32-C5 (
6fdaf37e) - Added support for calling
twai_node_transmit()from ISR contexts, enabling real-time CAN frame transmission from interrupt handlers with automatic context detection and ISR-safe queue operations. (5c97f962) - Fixed DLC larger than 255 in received frame from
twai_node_receive_from_isr(4e5401ec) - Added API
twai_node_transmit_wait_all_done()(54a9c2e1) - Improve the quanta_resolution_hz formula of
twai_timing_config_t(https://github.com/espressif/esp-idf/pull/17002, https://github.com/espressif/esp-idf/issues/16996) (f5e9a24c) - Update twai examples with new driver API and simplified them (https://github.com/espressif/esp-idf/issues/8461) (
675fe2d4) - Fixed build warnings in the cxx environment (https://github.com/espressif/esp-idf/issues/16999) (
7d1e974f)
Temperature Sensor
- Fixed cpp compiling warning for temperature sensor (https://github.com/espressif/esp-idf/issues/17656) (
068c8ab9) - remove spurious printf (https://github.com/espressif/esp-idf/pull/16211) (
94765b5b) - The legacy temperature sensor driver is removed. (
f4a45a30)
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) - Touch Element Library is moved to managed component (https://components.espressif.com/components/espressif/touch_element/versions/1.0.0/readme). (
be099ca8)
Touch Sensor
- Fixed non-symmetric gpio reserve/revoke in Touch Sensor driver (https://github.com/espressif/esp-idf/issues/17806) (
88c27e55) - Fixed touch channel 8/9 enable mask bit swap issue (
681c6a2f) - Fixed touch current measuring channel workaround and added test for it (https://github.com/espressif/esp-idf/pull/17759) (
37b8f8f3) - The dependencies of legacy touch sensor driver are removed from ULP touch driver, now you need to use
intinstead oftouch_pad_tto 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_outputon 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
- Fixed UHCI RX buffer data potential corrupted issue due to cache coherence issue caused by cache autowriteback (
8bd344c8) - Removed soc/uart_channel.h. All UART GPIO lookup equivalent macros can be found in soc/uart_pins.h (
4fbcab88) - Fixed the issue that interrupt watchdog would get triggered on uart_driver_install if uart_driver_delete was called previously on ESP32-C5 (https://github.com/espressif/esp-idf/issues/17779) (
0e6525a9) - Fixed an issue that some UART ports would generate a BRK_DET interrupt directly after module enabled (register reseted) (
0e6525a9) - Fixed the issue that LP watchdog would get triggered on esp_restart if uart_driver_delete was called previously on ESP32-C5 (
0e6525a9) - Fixed parenthesis typo on UART_INTR_CONFIG_FLAG macro (https://github.com/espressif/esp-idf/issues/17885) (
0e6525a9) - Fixed incorrect uart_get_tx_buffer_free_size API behavior (https://github.com/espressif/esp-idf/issues/15859) (
d76364c2) - Added support for UART DTR and DSR signals (https://github.com/espressif/esp-idf/issues/15987, https://github.com/espressif/esp-idf/issues/6211) (
8651d6c2) - The
esp_rom_uart.his deprecated and replaced byesp_rom_serial_output.h(ce92b0ab) - Fixed uart_release_pin logic if switching only specific pins with uart_set_pin (
dc527fba)
USB
- Fixed USB-Serial-JTAG and USB-OTG1.1 PHY swapping on ESP32-P4 (https://github.com/espressif/esp-idf/pull/17831) (
5d313add) - Added USB support for ESP32-H4 (
4f578d83) - Updated USB Device examples to esp_tinyusb v2.0.0 (
5efa5ab9) - Added CherryUSB host and device demo example (
36229958) - Updated cdcacm_rx_cb and cdcacm_tx_cb placement when CONFIG_ESP_CONSOLE_USB_CDC_SUPPORT_ETS_PRINTF (https://github.com/espressif/esp-idf/issues/17000) (
4c9c3083) - Removed deprecated pin mappings for external USB PHY (
1bbf04cb) - Changed USB CDC VFS read() to treat end-of-line characters as regular bytes, with no early return (
2f4c5d27) - Changed USB CDC VFS read() to return with available data when in blocking mode (
2f4c5d27) - Updated ESP32-P4 USB pins for mass production version (https://github.com/espressif/esp-idf/issues/16136) (
32bee685) - Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (https://github.com/espressif/esp-idf/pull/15932, https://github.com/espressif/esp-idf/issues/15912) (
27099e1c)
USB Device
- [Peripheral Drivers / USB / USB Device] Added handling of Remote Wakeup feature in USB Device HID example (https://github.com/espressif/esp-idf/issues/13804) (
35fffe96)
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
- [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) - Support runtime TLS version and ciphersuite list configuration for https server (https://github.com/espressif/esp-idf/issues/17660) (
02af1db1) - Updated esp-tls docs for non TLS connections (https://github.com/espressif/esp-idf/pull/17652, https://github.com/espressif/esp-idf/issues/17598) (
59f5bb45) - Added missing event tracker during mbedtls read operation (https://github.com/espressif/esp-idf/issues/16239) (
57211968)
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 callpsa_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 usingesp_ecdsa_free_pk_context()(7da79a65) - The
use_tee_sec_stg_keyflag has been removed. ECDSA private key operations using ESP-TEE secure storage can now be performed by just specifyingtee_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_Cbeing 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()andesp_sha_dma()APIs, the SHA mode needs to be explicitly set using theesp_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()andesp_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 callesp_sha_set_mode()with the argumentSHA2_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
- Fixed startup workflow to emit warning when
nvs_keyspartition is missing instead of returning error (https://github.com/espressif/esp-idf/pull/17710) (0da946d0)
RNG
- Added new entropy source for RNG on ESP32P4 ECO5 (
0cf98bdf) - Improved RNG documentation (https://github.com/espressif/esp-idf/issues/14665) (
0fa59a25)
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_MODEin 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_driveandesp_vfs_fat_partition_drivefunctions. (94083867) - Functions
esp_vfs_fat_sdmmc_mountandesp_vfs_fat_sdspi_mountnow returnESP_ERR_INVALID_ARGif 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_statisticsandnvs_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
- Added error-returning variants for partition find APIs (https://github.com/espressif/esp-idf/issues/9281) (
053fb47e) - Added support for partitions larger than 4MB on Linux target (
94b81282)
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
vfscomponent, 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.handsoc_memory_types.h.fromesp_hw_supportcomponent. These headers are replaced byesp_rtc_time.handesp_memory_utils.hrespectively. (39d22252) - Fixed the issue that LP_WDT is triggered in ROM after
esp_restartreset 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
- Fixed cache sync operation concurrency issue that leads to system crash (https://github.com/espressif/esp-idf/issues/18023) (
6831592b)
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
- Upgraded default C standard to gnu23 (
-
ESP-IDF Release v5.1.7
Stablereleased this
2026-01-26 01:33:42 +00:00 | 21460 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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
otprefix 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
- Updated cJSON to v1.7.19 (
b4afd60f)
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 Usageparameter 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 faultissue when performingext_conncreation 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_handleparameter inESP_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_readtask 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_EVTevent (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_EVTevent 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_minin 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
- Fixed infinite loop in
.eh_frame-based backtracing when DWARF unwind information was missing. (ebc10497) - Fixed multi-core race condition in the panic handler when enabling RTC WDT. (
e39f0bfb) - Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (https://github.com/espressif/esp-idf/issues/15166, https://github.com/espressif/esp-idf/issues/15018, https://github.com/espressif/esp-idf/issues/10110) (
4aa92562)
Debugging
- Replaced deprecated
flushregsGDB command withmaintenance flush register-cache(https://github.com/espressif/esp-idf/pull/11535) (705bbfd4)
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
- Fixed
CONFIG_ESP_COREDUMP_MAX_TASKS_NUMoption that was previously ignored, allowing users to limit the number of tasks included in core dumps. (https://github.com/espressif/esp-idf/issues/14407) (2700f404)
Ethernet
- Fixed W5500 poor performance in 10 Mbps mode. (
b8a639d0)
LWIP
- Fixed ping component to retrieve network interface name in a TCP/IP thread safe manner (https://github.com/espressif/esp-idf/issues/14982) (
79c784f8)
DHCP
- Fixed DHCP server recv decline issue (
0ce9affd)
DHCP Server
- Added support for multiple DNS servers in DHCP server functionality. (https://github.com/espressif/esp-idf/pull/15057) (
2998f854)
ESP Netif
- Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
a99faa38)
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 deprecateesp_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_statusalways 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_SLEEPoption 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
- Fixed ESP32 ADC2 continuous loss sample times (https://github.com/espressif/esp-idf/issues/10612) (
4606518a) - Fixed ADC function abnormal on 32k XTAL clock pin on esp32c6/esp32h2 (
557b6ac4) - Fixed ESP32-S2 ADC calibration loss resolution(https://github.com/espressif/esp-idf/issues/15671) (
3ff7fa0c)
GPIO
- Fixed the issue where the hold state of the GPIO corresponding to XTAL_32K_P was destroyed during reset or deepsleep. (https://github.com/espressif/esp-idf/issues/17419) (
3862660e) - Fixed the issue that on ESP32, the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (
103bf988) - Calling gpio_reset_pin on an input only pin should not produce an error message (https://github.com/espressif/esp-idf/pull/17047) (
103bf988) - Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (https://github.com/espressif/esp-idf/issues/14931) (
900d633d) - Forbidden to enable pull-up, pull-down on input-only IOs (
900d633d) - Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (https://github.com/espressif/esp-idf/issues/15797) (
48b31628) - Fixed the issue that configuring RTCIO as GPIO causes other initialized RTCIO to function abnormally on esp32s2 & esp32s3. (https://github.com/espressif/esp-idf/issues/10404, https://github.com/espressif/esp-idf/issues/12681) (
db5f597a)
I2S
- Support to constitute full-duplex mode for STD and TDM automatically when the channel configuration are same. (
e686c015) - Fixed the
rw_posandcurr_ptrinvalid issue while big gap between the two 'write' or 'read'. (f1feeee0) - Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (
81417bf1) - Added PLL240M clock source on ESP32-S3/C6 (https://github.com/espressif/esp-idf/issues/17056) (
81417bf1) - Fixed the false buf catenate while use preload (https://github.com/espressif/esp-idf/issues/15775) (
4ccd9af6) - Fixed i2s inappropriate check and assign sequence (https://github.com/espressif/esp-idf/issues/15648) (
bd351372) - Added check for minimum sample rate (https://github.com/espressif/esp-idf/issues/15659) (
bd351372) - Fixed failure when GDMA is set IRAM_SAFE but I2S not (https://github.com/espressif/esp-idf/issues/15533) (
be6934bc) - Added check for i2s DMA buffer array allocation (https://github.com/espressif/esp-idf/issues/15607) (
be6934bc) - Fixed clock not update issue when re-configure the slot (https://github.com/espressif/esp-idf/issues/15256) (
6a00758e)
STD
- Fixed STD mode initialization failure on ESP32 when using
I2S_NUM_AUTO. (009ed2fd)
LEDC
- Forced the new duty update to wait until its last duty update finishes for ESP32 (
7abf4408) - Fix potential assert failure in ledc_fade_stop due to race condition (https://github.com/espressif/esp-idf/issues/15580) (
77f41c70) - Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2 (
63da8bb6)
MCPWM
- Fixed the division by zero error when input expect resolution was too low.(https://github.com/espressif/esp-idf/issues/17665) (
e6ebab97) - Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (
06becec8)
PCNT
- Fixed race condition causing accum_value loss on counter overflow (
44608441)
RMT
- Improve the stability of ESP32 when pm is enabled (
dccf69b1) - Enhanced the inspection of the size of encoded symbols in loop transmission. (
336336c7) - Fixed RMT TX disable timeout on ESP32 when mem_block_symbols is large. (https://github.com/espressif/esp-idf/issues/17692) (
df63f949) - Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (https://github.com/espressif/esp-idf/issues/15948) (
83dbd983) - Supported to set initial level before any TX transmission (https://github.com/espressif/esp-idf/issues/16068) (
83dbd983) - Enable the internal pull-up resistor in the onewire bus example (
8093434a) - Fixed the race condition when between
rmt_receiveand receive ISR (https://github.com/espressif/esp-idf/issues/15842) (54ade189) - Enhanced the
rmt_receive_config_terror message (https://github.com/espressif/esp-idf/issues/15836) (54ade189) - Fixed the panic when the number of received symbols is a multiple of the memory block size. (
d9825b03)
SD_HOST
SDMMC
- Improved checking of SD being busy and always requesting SD to send status, even if a write operation failed. (
1cc32e7b) - Fixed transfer timeout due to higher priority tasks (https://github.com/espressif/esp-idf/issues/13934) (
f8c8779b)
SPI Flash
- Fixed issue of escaping boundary check (
26307750) - Fixed build fail when rom_patch config disabled (https://github.com/espressif/esp-idf/issues/15229) (
7ee30e14)
TWAI
- Fixed twai assert failed during recover (https://github.com/espressif/esp-idf/issues/9697)(https://github.com/espressif/esp-idf/pull/15484) (
d02ac835)
Temperature Sensor
- Add temprature calibration support on ESP32-C2/C6/H2/P4 (
92638cbb)
Touch Sensor
- Fixed tie option take no effect issue. (
7143b718) - Fixed concurrent issue in the legacy touch v1 (esp32) driver (
7143b718) - Fixed touch read WDT timeout issue on esp32 (https://github.com/espressif/esp-idf/issues/15629) (
7143b718)
UART
- Fixed incorrect uart_get_tx_buffer_free_size API behavior (https://github.com/espressif/esp-idf/issues/15859) (
e7117c7a) - Fixed an issue that some UART ports would generate a BRK_DET interrupt directly after module enabled (register reseted) (
e7117c7a) - Fixed uart_release_pin logic if switching only specific pins with uart_set_pin (
e7117c7a) - Eliminated the possibility of garbled data sent/received from the UART port during sleep process (
3b145a2a) - Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (https://github.com/espressif/esp-idf/issues/15695) (
3b145a2a) - Updated uart_get_baudrate API documentation (https://github.com/espressif/esp-idf/issues/15449) (
3b145a2a) - Allowed TX and RX configure to the same pin in uart_set_pin (https://github.com/espressif/esp-idf/issues/14787) (
80915d4d) - Fixed potential UART_SELECT_READ_NOTIF race condition (
80915d4d)
USB
- Updated USB Device examples to esp_tinyusb v2.0.0 (
bef993f7)
USB Host
- Fixed possible deadlock when closing a device that was not previously opened (
653eec6f) - Fixed crash during sudden disconnection (https://github.com/espressif/esp-idf/issues/13364) (https://github.com/espressif/esp-idf/issues/15290) (
6df6ab7d)
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
vTaskStepTickafter turning on auto light sleep (0c28c65a)
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) - Updated ECDSA-P192 support for ESP32H2. (
63832856) - Fix secure boot (ECDSA) build failure for ESP32-C6 target (https://github.com/espressif/esp-idf/issues/15856) (
7b372143) - Fixed Memory protection interrupt check for ESP32S2 (PERI1 bus) (https://github.com/espressif/esp-idf/issues/15359) (
8285cd14)
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_hostnamebefore the connection begins. No change is required if the application usesesp-tlslayer. (b8f6564a)
Secure Boot
- Fixed the Secure Boot behaviour to write disable
SECURE_BOOT_SHA384_EN/ECDSA_CURVE_MODEin 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
- Fixed API thread-safety in
esp_mmu_map.h(https://github.com/espressif/esp-idf/pull/15564) (b0947e36) - Fixed spi_flash_phys2cache return addr in PSRAM issue when SPIRAM_FETCH_INSTRUCTIONS or SPIRAM_RODATA enabled (
0d00802f) - Supported call esp_mmu_paddr_find_caps with any physical address offsets (https://github.com/espressif/esp-idf/issues/14988) (
6d851a70)
MSPI
- Improved the selection of timing tuning points when the last few tuning points succeed consecutively (
6bb8f25f)
PSRAM
- Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3 (
f0d3cbbb) - Supported UnilC Octal PSRAM on ESP32S3 (
c5ccf3d4) - Fixed external RAM .bss and .noinit section vaddr calculations (https://github.com/espressif/esp-idf/pull/15513) (
d001a5a7)
Toolchain
- Upgraded toolchain version to esp-12.2.0_20250801 (
4105adb9) - Upgraded openocd version to v0.12.0-esp32-20250707 (
f8dc3fc5) - Update ESP ROM ELFs to version 20240305 (
393ec174)
Tools
- Fixed the
idf.py confservercommand failing because of small buffer size by increasing the default buffer size and adding the--buffer-sizeargument to further adjust the value if needed (https://github.com/espressif/esp-idf/issues/18018, https://github.com/espressif/esp-idf/issues/18017) (c1e26334) - Updated
ccacheversion to 4.12.1 (https://github.com/espressif/esp-idf/issues/17756) (811b233e) - Added a fix to prevent Windows from unsuccessfully building the ESP-IDF root directory (
7ef85f82) - Added requirements file for the new IDE feature of installing Python packages for IDE support (
0c4a4ef0) - Explicitly disabled pip "user" option when installing the ESP-IDF Python virtual environment (https://github.com/espressif/esp-idf/issues/16189) (
700330da) - Fixed
idf_tools.py install tools@versioncommand to be able to install specific tool versions (66fb9df6) - Fixed processing of packages with dots in their names in Python dependency checks (
f90d09e6) - Fixed deprecation warnings when using
extractall()on Python 3.12 and newer (7d78f36f) - Added input validation of optional install features (
e6106d0e) - Switched to flashing ESP32-C3 with stub when the USB Serial/JTAG mode is used (
954ac358)
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
- 15.4/MAC: Added a duration argument for ieee802154_receive_at() (
-
ESP-IDF Release v5.5.2
Stablereleased this
2025-12-24 14:34:49 +00:00 | 10650 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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
flagstoesp_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_tstructure. (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
otprefix 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
- Updated cJSON to v1.7.19 (
847ceb63)
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
- Fixed the response status in Captive portal example. (
344266f2) - Fixed http(s) server request close order with LRU purge enabled. (https://github.com/espressif/esp-idf/pull/17470) (
0313a369) - Added support for pre-handshake callback, which is executed before upgrading to WebSocket protocol. (
b966e396)
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
- Fixed the issue where a second request on the same socket was blocked after the first async request succeeded.(https://github.com/espressif/esp-idf/issues/16998) (
1970cc7a)
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 reconfigurewas 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
- Fixed potential buffer overflow with esp_timer_dump() (https://github.com/espressif/esp-idf/issues/17008) (
a511f3be)
IPC
- Allowed IPC recursion calls in esp_ipc_call (
7109c7b9)
Log
- Fixed wrong year timestamp with LOG_TIMESTAMP_SOURCE_SYSTEM_FULL (https://github.com/espressif/esp-idf/issues/17451) (
a0f071f7)
Panic handling
- Fixed infinite loop in
.eh_frame-based backtracing when DWARF unwind information was missing. (9a186c2a) - Fixed an issue where the panic handler may reboot even though it is configured to dump the CPU registers and halt (https://github.com/espressif/esp-idf/issues/17260) (
5665e9da)
Debugging
Core Dump
- Fixed
CONFIG_ESP_COREDUMP_MAX_TASKS_NUMoption that was previously ignored, allowing users to limit the number of tasks included in core dumps. (https://github.com/espressif/esp-idf/issues/14407) (03b0d7f1)
Documentation
- Updates documentation for QEMU based build and test (https://github.com/espressif/esp-idf/pull/17464, https://github.com/espressif/esp-idf/issues/17458) (
c59ec8a3)
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
- Fixed full no-split buffer frees item incorrectly (https://github.com/espressif/esp-idf/issues/17466) (
445c732f)
LWIP
- allow task stack from SPIRAM except for ESP32 ECO2 and below (https://github.com/espressif/esp-idf/issues/17827) (
e2493ad0) - Fix dhcp arp check issue (
93603cd3)
ESP Netif
- Fixed documentation rendering of doxygen groups in esp_netif.h (https://github.com/espressif/esp-idf/issues/16993) (
3f7579d1)
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 deprecateesp_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
- Fixed the ulp_riscv_delay_cycles() to handle small delays correctly (https://github.com/espressif/esp-idf/issues/16891) (
3a6614bf) - Fixed an issue where I2C error prints in ulp_riscv_i2c component were not getting disabled by using esp_log_level_set API (https://github.com/espressif/esp-idf/issues/17425) (
4b2b5d7b) - Returned error code back to application for ULP RISC-V I2C read/write errors (Closes https://github.com/espressif/esp-idf/issues/15904) (
4b2b5d7b)
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
- Fixed ADC function abnormal on 32k XTAL clock pin on esp32c6/esp32h2/esp32c5/esp32c61/esp32p4 (
01b9a1dd) - Fixed ESP32-P4 ADC2 wrong channel-to-gpio mapping (
dc7304b7) - Added ADC continuous parse data API (
dc7304b7) - Fixed ESP32 ADC2 continuous loss sample times (https://github.com/espressif/esp-idf/issues/10612) (
fd980a7b)
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
- Fixed the issue that gpio_output_enable and gpio_output_disable would not take effect if the IO was routing to an output signal through IOMUX. (
1d5fcc6d) - Fixed the issue where the hold state of the GPIO corresponding to XTAL_32K_P was destroyed during reset or deepsleep. (https://github.com/espressif/esp-idf/issues/17419) (
d7bdd17d) - Fix USB DP pin unusable after CPU reset for ESP32-S3 and ESP32-C3 if USJ_ENABLE_USB_SERIAL_JTAG is deselected in menuconfig (https://github.com/espressif/esp-idf/issues/17488) (
2f63581f) - Fixed the issue that on ESP32, the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (
d3177152) - Calling gpio_reset_pin on an input only pin should not produce an error message (https://github.com/espressif/esp-idf/pull/17047) (
d3177152) - Improved some RTC_IO LL functions performance by avoiding "read-modify-write" operation (
d3177152) - Removed unsupported GPIO_OUTPUT_SET macro for ESP32-P4 (https://github.com/espressif/esp-idf/issues/16050) (
d3177152) - Support clock output feature for esp32c5 & esp32c61. (
d421c996)
I2C
- Fixed i2c read value via several read jobs might lose data (https://github.com/espressif/esp-idf/issues/16231) (
9d21fa25) - Disable the open drain mode on deinit (https://github.com/espressif/esp-idf/issues/17737) (
5a44b731) - Make I2C nack error log as debug level, not force print anymore. (
f7ddaefd) - Added gpio reserve check on i2c driver (
f7ddaefd)
I2C Master
- Now write buffer in
i2c_master_transmit_multi_buffer_info_tis a const (https://github.com/espressif/esp-idf/issues/16890) (e3c2bab3)
I2S
- Fixed the
rw_posandcurr_ptrinvalid 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
- Fixed the division by zero error when input expect resolution was too low.(https://github.com/espressif/esp-idf/issues/17665) (
42e7e40f) - Fixed FOC example frequency calculation (https://github.com/espressif/esp-idf/issues/17015) (
a7dbebf9)
PARL_IO
- Supported to set start/stop delay for valid signal on ESP32P4 V3.0 (
5ab2e6e0)
RMT
- Improve the stability of ESP32 when pm is enabled (
7fd2f231) - Fixed RMT TX disable timeout on ESP32 when
mem_block_symbolsis large. (https://github.com/espressif/esp-idf/issues/17692) (31bae90a) - Enhanced the inspection of the size of encoded symbols in loop transmission. (
082ba145) - Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (https://github.com/espressif/esp-idf/issues/15948) (
6adb0e5f) - Supported to set initial level before any TX transmission (https://github.com/espressif/esp-idf/issues/16068) (
6adb0e5f)
SPI Flash
- New argument
flagsis added toesp_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
- Update twai examples with new driver API and simplified them (https://github.com/espressif/esp-idf/issues/8461) (
82ed0c7c) - Added API
twai_node_transmit_wait_all_done()(82ed0c7c) - Fixed the issue that legacy twai driver can't send frame with dlc equals to zero (https://github.com/espressif/esp-idf/issues/17467) (
82ed0c7c) - Fixed ESP32C5 can't receive frame in listen_only mode when multiple node on bus (https://github.com/espressif/esp-idf/issues/17461) (
82ed0c7c) - Fixed
[tx|rx]_error_countempty fromtwai_node_get_info(https://github.com/espressif/esp-idf/issues/17434) (82ed0c7c) - Fixed using
twai_make_dual_filter()to config dual filter for 29-bits ext_id (https://github.com/espressif/esp-idf/issues/17504) (82ed0c7c) - More accurate the
sample_pointcalculation when usingtwai_timing_basic_config_t::sp_permill(https://github.com/espressif/esp-idf/issues/17522) (82ed0c7c) - Removed unsupported busoff and clkout signals on ESP32-C5 (
ee5f84e6) - Added support for calling
twai_node_transmit()from ISR contexts, enabling real-time CAN frame transmission from interrupt handlers with automatic context detection and ISR-safe queue operations. (e7975156) - Fixed DLC larger than 255 in received frame from
twai_node_receive_from_isr(e9790c04)
Temperature Sensor
- Fixed cpp compiling warning for temperature sensor (https://github.com/espressif/esp-idf/issues/17656) (
e68c2aeb)
Touch Sensor
- Fixed touch current measuring channel workaround and added test for it (https://github.com/espressif/esp-idf/pull/17759) (
ef75607d) - Support P4 Ver3 features: 1. force update benchmark; 2.
touch_sensor_config_t::trigger_rise_cnt(25c6d757)
UART
- Fixed incorrect uart_get_tx_buffer_free_size API behavior (https://github.com/espressif/esp-idf/issues/15859) (
1d5fcc6d) - Fixed the issue that LP watchdog would get triggered on esp_restart if uart_driver_delete was called previously on ESP32-C5 (
1d5fcc6d) - 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) (
1d5fcc6d) - Fixed uart_release_pin logic if switching only specific pins with uart_set_pin (
1d5fcc6d) - Fixed an issue that some UART ports would generate a BRK_DET interrupt directly after module enabled (register reseted) (
1d5fcc6d) - Fixed the issue that interrupt watchdog would get triggered on uart_driver_install if uart_driver_delete was called previously on ESP32-C5 (https://github.com/espressif/esp-idf/issues/17779) (
1d5fcc6d)
USB
- Fixed USB-Serial-JTAG and USB-OTG1.1 PHY swapping on ESP32-P4 (https://github.com/espressif/esp-idf/pull/17831) (
feaa12ec) - Updated cdcacm_rx_cb and cdcacm_tx_cb placement when CONFIG_ESP_CONSOLE_USB_CDC_SUPPORT_ETS_PRINTF (https://github.com/espressif/esp-idf/issues/17000) (
24a36e5c) - Added CherryUSB host and device demo example (
65dd7433) - Updated USB Device examples to esp_tinyusb v2.0.0 (
bc3457ca)
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
- Added missing event tracker during mbedtls read operation (
1e538c13) - Updated esp-tls docs for non TLS connections (https://github.com/espressif/esp-idf/pull/17652, https://github.com/espressif/esp-idf/issues/17598) (
d5161cb2)
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
- Fixed startup workflow to emit warning when
nvs_keyspartition is missing instead of returning error (https://github.com/espressif/esp-idf/pull/17710) (4a6a2312)
RNG
- Added new entropy source for RNG on ESP32P4 Rev3.0 (
d9573783) - Improved RNG documentation (https://github.com/espressif/esp-idf/issues/14665) (
d28a8a0d)
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_MODEin 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
- Added PSRAM 250M support for ESP32P4 V3 and upper versions (
d66ebb86) - Removed PSRAM 200M support from experimental features, now it's a stable feature (
d66ebb86) - make SPIRAM_USE_MEMMAP available for all targets, regression from
d2858847(https://github.com/espressif/esp-idf/issues/17764) (04341697)
Toolchain
- Upgraded toolchain version to esp-14.2.0_20251107 (
501405d8) - Upgraded qemu version to esp_develop_9.2.2_20250817 (
95d2e964) - Upgraded gdb version to 16.3_20250913 (
e9022434) - Fixed linkage rules for libc_nano.a if CONFIG_SPIRAM_CACHE_WORKAROUND=y (https://github.com/espressif/esp-idf/issues/17004, https://github.com/espressif/esp-idf/issues/17436) (
d64a4539)
Tools
- Added a fix to prevent Windows from unsuccessfully building the ESP-IDF root directory (
38b434c5) - Fixed the
idf.py confservercommand failing because of small buffer size by increasing the default buffer size and adding the--buffer-sizeargument to further adjust the value if needed (https://github.com/espressif/esp-idf/issues/18018, https://github.com/espressif/esp-idf/issues/18017) (13614adb) - idf_tools.py: Fixed warning message to show correct allowed install options (https://github.com/espressif/esp-idf/pull/17586) (
bb70fdaa) - Fixed click's deprecation warnings (
__version__, click.MultiCommand) (37385bf4)
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_tstructure. (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
- Replaced use of mbedtls_ctr_drbg with esp_mbedtls_random() (
ceb3780d) - Fixed crash to uninitialized roaming neighbor list lock (
e7dd48e8) - Disable suite-b configuration if Wi-Fi enterprise is not enabled (https://github.com/espressif/esp-idf/issues/17567) (
b8bd0705) - Fix DPP remain on channel executing in loop (
4fcab145)
- BLE/Controller: Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2. (
-
released this
2025-11-05 08:25:25 +00:00 | 9336 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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_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. (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_binaryis no longer available as the build system drops the need for this target. (c8f68c72) - 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. (c8f68c72) - 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. (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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c72) - 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. (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.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. (1f0152dd) - 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. (11b80a7f) - 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. (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.hinstead (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)whenNDEBUGis 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_paramsto 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 destas first parameter for API consistency. (fb3e6167) - Debugging/Apptrace: Removed
CONFIG_APPTRACE_PENDING_DATA_SIZE_MAXconfiguration 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 returnsESP_ERR_NOT_FOUNDfor blank partitions instead ofESP_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 optionCONFIG_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_FLASHKconfig option has been removed. (11b80a7f) - FreeRTOS: The compatibility function
xQueueGenericReceive()has been removed. UsexQueueReceive(),xQueuePeek(), orxQueueSemaphoreTake()as per your usecase. (3ef41363) - FreeRTOS: The compatibility function
vTaskDelayUntil()has been removed. Use the functionxTaskDelayUntil()instead. (3ef41363) - FreeRTOS: The compatibility function
ulTaskNotifyTake()has been removed. Use the macroulTaskNotifyTake()instead. (3ef41363) - FreeRTOS: The compatibility function
xTaskNotifyWait()has been removed. Use the macroxTaskNotifyWait()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_tenum type is refactored intoshared_periph_module_tand 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.handdriver/rtc_cntl.hheader files are removed. Please useesp_private/periph_ctrl.handesp_private/rtc_ctrl.hinstead. (e3190c63) - Peripheral Drivers: The
io_loop_backconfig 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_mallocandesp_dma_capable_callocfunctions are removed. TheGDMA_ISR_IRAM_SAFEKconfig option is removed. (3e09d4f2) - Peripheral Drivers/GPIO: Removed
gpio_iomux_in,gpio_iomux_outpublic APIs. Please usegpio_iomux_input,gpio_iomux_outputin 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
intto the more type-safegpio_num_t. (6ea0fa1a) - Peripheral Drivers/LCD: The
color_spaceandrgb_endianconfiguration options in theesp_lcd_panel_dev_config_tstructure is replaced by thergb_ele_ordermember, 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_modemember in themcpwm_generator_config_tconfiguration 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_modemember in thermt_tx_channel_config_tconfiguration 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_gpioto 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_infomember in thesdmmc_host_tstructure, as well as thesdspi_host_get_dma_infoandsdmmc_host_get_dma_infofunctions, 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_countersandspi_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
intinstead oftouch_pad_tto express the touch channel ID. (30d0eded) - Peripheral Drivers/Touch Sensor: Removed
touch_sensor_sample_config_t::bypass_shield_outputon 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.his deprecated and replaced byesp_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()andesp_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 callesp_sha_set_mode()with the argumentSHA2_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_mountandesp_vfs_fat_sdspi_mountnow returnESP_ERR_INVALID_ARGif any of the arguments are missing. (94083867) - Storage/VFS: Removed deprecated UART and UART-JTAG-serial API from
vfscomponent, 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.handsoc_memory_types.h.fromesp_hw_supportcomponent. These headers are replaced byesp_rtc_time.handesp_memory_utils.hrespectively. (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 gdbguicommand can still be used, provided that thegdbguitool 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_tstructure. (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
otprefix 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
- 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. (105a64ab) - Update
esp_http_clientexample root certificate (https://github.com/espressif/esp-idf/issues/16132) (72cc5dee)
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
- Move cJSON from ESP-IDF to managed components (https://github.com/espressif/idf-extra-components/tree/master/cjson) (
269acda5) - No release notes (
b8b4a4f0) - Update to latest upstream cJSON master. (
9750c219)
ESP HTTP Client
- Updated condition to dispatch FINISH event during HTTP response read (https://github.com/espressif/esp-idf/issues/17437) (
e6f94597) - Clarified esp_http_client_set_post_field() usage: post data must be set to NULL to avoid reuse (https://github.com/espressif/esp-idf/issues/17053) (
6f5ec4b5) - Fixed handling of errors while reading data from server using API esp_http_client_perform(). (
71d34921) - Added new HTTP state
HTTP_STATE_CONNECTINGand made states public (https://github.com/espressif/esp-idf/issues/16019) (056e4a41) - Updated condition to close and cleanup the HTTP client (https://github.com/espressif/esp-idf/issues/16070) (
056e4a41) - Fixed issue during enabling digest auth in esp client (https://github.com/espressif/esp-idf/issues/17238) (
4a69fcbd) - Updated postman root certificate dependency to esp_crt_bundle for https_aysnc request from esp_http_client_example (
5c15e41d) - Fixed often triggering of HTTP_EVENT_ERROR when asynchronous client is set (https://github.com/espressif/esp-idf/pull/16075, https://github.com/espressif/esp-idf/issues/16075) (
4e12ed06) - Fixed memory leak in HTTP client when header parsing fails during fetch operation. (
c6cc4030) - Added with new HTTP client event HTTP_EVENT_ON_STATUS_CODE. (
bfc5e1b2) - Fixed description for API esp_http_client_fetch_headers (https://github.com/espressif/esp-idf/pull/16204) (
a1b9581a)
ESP HTTP Server
- fixes http(s) server request close order with LRU purge enabled. (https://github.com/espressif/esp-idf/pull/17470) (
030ba7d8) - Fixed memory leak issue for esp_http_server scratch buffer. (https://github.com/espressif/esp-idf/pull/17501) (
b789445a) - Added support for pre-handshake callback, which is executed before upgrading to WebSocket protocol. (
a783974d) - Upgraded the restful_server example to use Vue3 and Vuetify3. (
1f82b347) - Fixes multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (https://github.com/espressif/esp-idf/pull/15767, https://github.com/espressif/esp-idf/issues/15235) (
464d03f9) - Fix the regression cause in httpd_cookie_key_value due to commit
4a47cf8(https://github.com/espressif/esp-idf/pull/16202) (09202785) - Fixed httpd_register_uri_handler api for memory leak (https://github.com/espressif/esp-idf/issues/15878) (
54e071a8)
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
- Fixed the issue where a second request on the same socket was blocked after the first async request succeeded.(https://github.com/espressif/esp-idf/issues/16998) (
fd5b86d0) - Added the API in esp_http_sever to return unparsed headers data buffer (https://github.com/espressif/esp-idf/issues/15857) (
dee2895a)
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 reconfigurewas 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_libraryfunction to createGLOBALtargets (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_binaryis no longer available as the build system drops the need for this target. (c8f68c72) - 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. (c8f68c72) - Global Cmake variables presented by the
esptool_pyviz.,ESPTOOLPY,ESPSECUREPY,ESPEFUSEPYandESPMONITORare no longer available. These must be accessed via theidf_component_get_property()function. (c8f68c72) - Updated
esptool_pycomponent 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 theEXECUTABLEbuild property likeidf_build_get_property(elf EXECUTABLE). (c8f68c72) - 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. (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_handleparameter inESP_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
- The component
esp_vfs_consolehas been renamedesp_stdioand will henceforth be responsible for all stdio related functionality. (19e09974) - Fixed "defalut" typos in esp_rom function names (https://github.com/espressif/esp-idf/issues/17668) (
86b39c63) - Added functionality to reset a ringbuffer (https://github.com/espressif/esp-idf/pull/17524) (
4c589d62) - Fixed an issue where the ESP32-P4 chip could encounter exceptions or hang when exiting the WFI (Wait For Interrupt) state. (
3124e047) - Removed deprecated STATUS enum from
ets_sys.h, use ETS_STATUS instead. (166269fb) - 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. (1f0152dd) - Added a Kconfig option
CONFIG_RINGBUF_IN_IRAMto allow placement ofesp_ringbuffunctions in IRAM. Ring buffer functions are now placed in flash memory by default. (11b80a7f) - 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. (11b80a7f) - Added Kconfig options for placing system-related APIs into flash when using
CONFIG_SPI_FLASH_AUTO_SUSPEND(ff53d5d3) - Added
xt_specreg.hwith Xtensa special register definitions with theXT_REG_prefix and deprecatedspecreg.h(https://github.com/espressif/esp-idf/pull/16040, https://github.com/espressif/esp-idf/issues/12723) (7023f5bf) - Fixed esp_ptr_executable and esp_ptr_byte_accessible to consider TCM memory (https://github.com/espressif/esp-idf/pull/15998, https://github.com/espressif/esp-idf/issues/15996) (
fd9b2fab) - fix an issue that prevented RTC reserved area to have a size multiple of 4 (https://github.com/espressif/esp-idf/issues/13082) (
1e516f0f)
Console
- Updated parsing of escape sequences in linenoise to read every character of the sequence seprately (https://github.com/espressif/esp-idf/issues/16762) (
361c1b1f)
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. (cb36cd3a)
ESP Timer
- Changed esp_timer_init_os to return ESP_OK if esp_timer already initialized. Now ESP-IDF will not abort the start-up process if esp_timer was initilized from a user constructor before the system tries to init it (https://github.com/espressif/esp-idf/issues/9679) (
88c9af78) - Fixed potential buffer overflow with esp_timer_dump() (https://github.com/espressif/esp-idf/issues/17008) (
32d85658)
Heap
- MALLOC_CAP_EXEC capability only defined when no memory protection is enabled (see https://github.com/espressif/esp-idf/issues/14837) (
75305c27) - Changed patched TLSF ROM functions to be placed in flash (
6aeba187)
IPC
- Allowed IPC recursion calls in esp_ipc_call (
fdc32067)
Interrupts
- Removed deprecated intr_types.h header, update to use
esp_intr_types.hinstead (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
- 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. (https://github.com/espressif/esp-idf/issues/2758) (33f92c8f) - Added kconfig option for configurable buffer length for assert msgs (https://github.com/espressif/esp-idf/issues/17454) (
f25ae480)
Panic handling
- Fixed infinite loop in
.eh_frame-based backtracing when DWARF unwind information was missing. (686165a7) - Fixed an issue where the panic handler may reboot even though it is configured to dump the CPU registers and halt (https://github.com/espressif/esp-idf/issues/17260) (
7a6559f7)
Partition Table
- Fixed partition table names must be only ASCII characters (
9f6136d6)
Pthread
- Adds timed locks for pthread_rwlock (https://github.com/espressif/esp-idf/issues/16099) (
7b621ad8)
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_paramsto 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 destas first parameter for API consistency. (fb3e6167) - Removed
CONFIG_APPTRACE_PENDING_DATA_SIZE_MAXconfiguration 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
- Fixed
CONFIG_ESP_COREDUMP_MAX_TASKS_NUMoption that was previously ignored, allowing users to limit the number of tasks included in core dumps. (https://github.com/espressif/esp-idf/issues/14407) (b98d27c7) - Dropped CRC32 checksum support. Only SHA256 checksum is now used. (
521f3e39) - Dropped binary format support. Only ELF format is now supported. (
521f3e39) - Changed function
esp_core_dump_partition_and_size_get(). Now it returnsESP_ERR_NOT_FOUNDfor blank partitions instead ofESP_ERR_INVALID_SIZE(https://github.com/espressif/esp-idf/issues/15153) (521f3e39)
GDB Stub
- Added support for RISCV FPU and PIE registers (
c7db2345) - Fixed segfault if registers changed not for running task (
c7db2345)
Documentation
- Updates documentation for QEMU based build and test (https://github.com/espressif/esp-idf/pull/17464, https://github.com/espressif/esp-idf/issues/17458) (
43713480) - Fixed wrong link to Putty in getting started (https://github.com/espressif/esp-idf/pull/17444) (
8b96e820) - Updated missing Chinese translation in Build System documentation (https://github.com/espressif/esp-idf/pull/16236) (
4bdd6b6f) - Updated CLion documentation (https://github.com/espressif/esp-idf/pull/15944) (
a9cdd337) - Updated the links in the COMPATIBILITY.md (https://github.com/espressif/esp-idf/pull/16025) (
94143f2f) - Restructured the Error Handling doc in terms of macros (https://github.com/espressif/esp-idf/pull/15930) (
9d0d1d26) - Updated ulp-riscv doc regarding the ULP I2C hardware limitation. (https://github.com/espressif/esp-idf/pull/15917) (
e9aa543a)
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 optionCONFIG_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_FLASHKconfig option has been removed. (11b80a7f) - Added a Kconfig option
CONFIG_FREERTOS_IN_IRAMto 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. UsexQueueReceive(),xQueuePeek(), orxQueueSemaphoreTake()as per your usecase. (3ef41363) - The compatibility function
vTaskDelayUntil()has been removed. Use the functionxTaskDelayUntil()instead. (3ef41363) - The compatibility function
ulTaskNotifyTake()has been removed. Use the macroulTaskNotifyTake()instead. (3ef41363) - The compatibility function
xTaskNotifyWait()has been removed. Use the macroxTaskNotifyWait()instead. (3ef41363) - The function
pxTaskGetStackStart()is deprecated and a type safe versionxTaskGetStackStart()has been added toidf_additions.h. (46160b0f) - The following deprecated APIs have been removed:
xTaskGetAffinity(),xTaskGetIdleTaskHandleForCPU(),xTaskGetCurrentTaskHandleForCPU(). (46160b0f) - Changed
vApplicationStackOverflowHookto be placed in flash whenCONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASHis enabled (6aeba187)
IDF Additions
- Fixed full no-split buffer frees item incorrectly (https://github.com/espressif/esp-idf/issues/17466) (
eeb4ec56)
LWIP
- Added support for NETIF link callback (https://github.com/espressif/esp-idf/issues/17463) (
9063a6c2) - Updated TCP/IP task name to "tcpip" to be more descriptive (https://github.com/espressif/esp-idf/pull/13523) (
31602cbe) - Fixed wrong deallocation in lwip port layer (https://github.com/espressif/esp-idf/pull/11534) (
5c7a2371) - Removed: CONFIG_LWIP_DHCPS_ADD_DNS. DNS option in DHCP responses now depends only on runtime config. (
57013ba4) - Fixed DHCP ARP check issue (
67e149c9)
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
- Removes option to disable error return in esp netif receive function (
3d5c2efb) - Added support for network interface UP and DOWN events (
82d8f9f6) - Fixed minor memory leak if PPP netif creation fails (https://github.com/espressif/esp-idf/pull/17472) (
7ab29a89) - Added support for
IP_EVENT_ASSIGNED_IP_TO_CLIENTto include DHCP client hostname (opt 12) when CONFIG_LWIP_DHCPS_REPORT_CLIENT_HOSTNAME is enabled (https://github.com/espressif/esp-idf/issues/10706) (747c172f) - 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) - Fixed esp_netif_ip6_get_addr_type() to be const correct (https://github.com/espressif/esp-idf/issues/15882) (
fe059bc5) - Fixed documentation rendering of doxygen groups in esp_netif.h (https://github.com/espressif/esp-idf/issues/16993) (
c33b88db) - Fixed reassigning the last static IP address after disconnection and reconnection (
bc34abb2) - Changed IP event name from
IP_EVENT_AP_STAIPASSIGNEDtoIP_EVENT_ASSIGNED_IP_TO_CLIENTto reflect that any network interface could act as a DHCP client or server (https://github.com/espressif/esp-idf/issues/15663) (ce6e136e) - Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
469a39bb)
IPv6
- Added support for Route Information Options in IPv6 Neighbor Discovery (ND6 RIO) (https://github.com/espressif/esp-lwip/issues/73) (
84b969ec) - Added support for configuring IPv6 duplicate detection attempts (https://github.com/espressif/esp-idf/pull/10700) (
a74725a3)
Low Power Features
- 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 deprecateesp_sleep_get_wakeup_cause()(60d9ca99) - Support user configurable low power analog mode by
esp_sleep_enable_lowpower_analog_modeif 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_statusalways 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
- 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
- Added a pulse counter example code for ulp riscv core to find out the highest possible frequency of pulses that can be counted by ULP core (
0f776d31) - Added support for ADC Unit 2 on RISCV co processors (https://github.com/espressif/esp-idf/issues/17515) (
cdef6dce) - Fixed an issue where I2C error prints in ulp_riscv_i2c component were not getting disabled by using esp_log_level_set API (https://github.com/espressif/esp-idf/issues/17425) (
031a2f2f) - Returned error code back to application for ULP RISC-V I2C read/write errors (Closes https://github.com/espressif/esp-idf/issues/15904) (
031a2f2f) - Fixed the ulp_riscv_delay_cycles() to handle small delays correctly (https://github.com/espressif/esp-idf/issues/16891) (
d9241bf5)
Networking
Examples
- Added option to use polling mode for SPI Ethernet modules in protocols examples (https://github.com/espressif/esp-idf/pull/16869) (
5aab43eb) - Removed modbus examples, examples available at esp-modbus repository. (
be5e48bf)
PHY
- 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
- The
periph_module_tenum type is refactored intoshared_periph_module_tand only the modules that have multiple independent functions are kept. (f348a101) - Removed unnecessary dependencies for the driver component (
22a0f9ae) - The
driver/periph_ctrl.handdriver/rtc_cntl.hheader files are removed. Please useesp_private/periph_ctrl.handesp_private/rtc_ctrl.hinstead. (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_backconfig 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_tand replaced it withperiph_interrupt_tto fix the typo. (9c8ead5e)
ADC
- Fix temp_sensor error after adc continuous start (https://github.com/espressif/esp-idf/issues/15524) (
3ec95025) - Added ADC continuous parse data API (
8222f884) - Fixed ESP32-P4 ADC2 wrong channel-to-gpio mapping (
8222f884) - Fixed inaccurate ADC readings at high input voltages on ESP32-C5 (
7aca6243) - Fixed P4 ADC2 oneshot do not claim apb periph clock (
f638d5e0) - Fixed ADC hw calibration do not free apb periph clock (https://github.com/espressif/esp-idf/pull/16130) (
f638d5e0) - Legacy ADC driver and legacy ADC calibration driver have been removed (
807cbbf2) - Legacy ADC driver and legacy ADC calibration driver have been removed (
807cbbf2)
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_mallocandesp_dma_capable_callocfunctions are removed. TheGDMA_ISR_IRAM_SAFEKconfig option is removed. (3e09d4f2)
GPIO
- Fixed the issue where the hold state of the GPIO corresponding to XTAL_32K_P was destroyed during reset or deepsleep. (https://github.com/espressif/esp-idf/issues/17419) (
3a0eba4c) - Fix USB DP pin unusable after CPU reset for ESP32-S3 and ESP32-C3 if USJ_ENABLE_USB_SERIAL_JTAG is deselected in menuconfig (https://github.com/espressif/esp-idf/issues/17488) (
f1e6e66f) - Updated the generic gpio example to avoid conflicts between the default GPIO numbers and USB peripherals (https://github.com/espressif/esp-idf/issues/16244) (
5df7a0a8) - Use enum values when assigning "pull_[up|down]_en" fields of "gpio_config" (https://github.com/espressif/esp-idf/pull/17241) (
451cfc91) - Fixed the issue that on ESP32, the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (
2319386d) - Calling gpio_reset_pin on an input only pin should not produce an error message (https://github.com/espressif/esp-idf/pull/17047) (
df5bff7a) - Support clock output feature for esp32c5 & esp32c61. (
e8ef3053) - Improved some RTC_IO LL functions performance by avoiding "read-modify-write" operation (
2fbd8779) - Removed
gpio_iomux_in,gpio_iomux_outpublic APIs. Please usegpio_iomux_input,gpio_iomux_outputin esp_private/gpio.h if neccessary. (2fb938c7) - Removed unsupported GPIO_OUTPUT_SET macro for ESP32-P4 (https://github.com/espressif/esp-idf/issues/16050) (
2fb938c7)
GPTimer
- The legacy timer group driver is removed. (
3b504812)
H264
- Added esp_h264 encoder and decoder example (
3785a242)
I2C
- Change type of
write.datamember ini2c_operation_job_tfromuint8_t *toconst uint8_t *(https://github.com/espressif/esp-idf/issues/17585) (23b76aaf) - Legacy I2C driver (
driver/i2c.h) is end-of-life and compile warning is added. (bb802914) - Disable the open drain mode on deinit (https://github.com/espressif/esp-idf/issues/17737) (
2fb0c3cd) - Add
i2c_slave_reset_tx_fifofunction to allow reset the tx fifo state of i2c slave device (https://github.com/espressif/esp-idf/issues/16241) (a8ace9db) - Fix the potential wdt might happen after nack. (
12c633fd) - Remove I2C PULL UP notice log (https://github.com/espressif/esp-idf/pull/13963) (
5aceeadd) - Add u8g2 example based on i2c master driver (
02b2f699) - Fix a typo in the documentation of
i2c_master_probefunction (https://github.com/espressif/esp-idf/issues/17475) (00e5effb) - Fixed wrong clock name when the used clock is REF_TICK. (https://github.com/espressif/esp-idf/pull/17422) (
5efe1dbe) - Updated the i2c basic example to correct the timeout parameter in I2C API calls (https://github.com/espressif/esp-idf/issues/17246) (
185a1c5a) - Fixed i2c read value via several
read jobsmight lose data (https://github.com/espressif/esp-idf/issues/16231) (92df25e7) - Make I2C nack error log as debug level, not force print anymore. (
5aa9d6ae) - I2C slave version one driver is removed (
456ae964) - Added gpio reserve check on i2c driver (
b1b99b30)
I2C Master
- I2C master transaction now will report ESP_ERR_INVALID_RESPONSE when NACK is detected. (
6af87b62) - Now write buffer in
i2c_master_transmit_multi_buffer_info_tis a const (https://github.com/espressif/esp-idf/issues/16890) (5053084a)
I2S
- Fixed the
rw_posandcurr_ptrinvalid issue while big gap between the two 'write' or 'read'. (31115887) - Removed 'i2s_port_t' type and use 'int' type instead. (
726a4304) - Fixed incorrect ffmpeg command in documentation (https://github.com/espressif/esp-idf/issues/17653) (
b8a0d88a) - Support to constitute full-duplex mode for STD and TDM automatically when the channel configuration are same. (
a5bd9d2d) - Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (
a19ad8df) - Added PLL240M clock source on ESP32-S3/C6 (https://github.com/espressif/esp-idf/issues/17056) (
a19ad8df) - The legacy I2S driver is removed. (
e71e7552)
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
intto the more type-safegpio_num_t. (6ea0fa1a) - The
color_spaceandrgb_endianconfiguration options in theesp_lcd_panel_dev_config_tstructure is replaced by thergb_ele_ordermember, 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
- Update anonymous nested struct for correct documentation building (https://github.com/espressif/esp-idf/issues/8813) (
13f42250) - Removed LEDC_USE_RTC8M_CLK macro (
e94d9cee) - Removed ledc_timer_set API, and LEDC_APB_CLK_HZ, LEDC_REF_CLK_HZ macros (
3fdb4731) - esp_driver_gpio no longer is the public required component for esp_driver_ledc (
3fdb4731) - Forced the new duty update to wait until its last duty update finishes for ESP32 (
3fdb4731)
MCPWM
- Removed variadic generator APIs
mcpwm_generator_set_actions_on_xxx(4e62b0e4) - Fixed the division by zero error when input expect resolution was too low.(https://github.com/espressif/esp-idf/issues/17665) (
31087078) - Fixed FOC example frequency calculation (https://github.com/espressif/esp-idf/issues/17015) (
9f43c02e) - The legacy MCPWM driver is removed. (
0972e9d2) - Supported to get last latched capture value directly. (
0972e9d2) - 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) - The
io_od_modemember in themcpwm_generator_config_tconfiguration structure has been removed. (1fa420ef) - Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (
5945ad1a)
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
- Fixed RMT TX disable timeout on ESP32 when
mem_block_symbolsis large. (https://github.com/espressif/esp-idf/issues/17692) (3b0d8508) - The
rmt_receivefunction can accept a buffer from PSRAM (01a27c8a) - The legacy RMT driver is removed. (
9dc9d7de) - Enhanced the inspection of the size of encoded symbols in loop transmission. (
f160701c) - Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (https://github.com/espressif/esp-idf/issues/15948) (
7324fc6d) - Supported unaligned receive buffer with DMA, the driver will help to do the alignment internally (
7324fc6d) - Supported to set initial level before any TX transmission (https://github.com/espressif/esp-idf/issues/16068) (
7324fc6d) - Fixed the state of a simple encoder when mem_full and done occur together.(https://github.com/espressif/esp-idf/issues/17244) (
844dc17b) - Enable the internal pull-up resistor in the onewire bus example (
5f1ad2c1) - The
io_od_modemember in thermt_tx_channel_config_tconfiguration structure has been removed. (1fa420ef) - Added flags names and enhance the readability of the document (https://github.com/espressif/esp-idf/issues/15929, https://github.com/espressif/esp-idf/issues/15933) (
3baaa8c8)
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_gpioto 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_infomember in thesdmmc_host_tstructure, as well as thesdspi_host_get_dma_infoandsdmmc_host_get_dma_infofunctions, 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.handdriver/sd_host_sdmmc.h(b1999b5c)
SDSPI
- Added an option to modify the waiting time for MISO before sending next command - can help speed up transaction speed for e.g. SD cards on boards with no or incorrect pull-up resistors (https://github.com/espressif/esp-idf/issues/16909, https://github.com/espressif/esp-idf/issues/10493) (
56160675) - Fixed missing error handling in
sdspi_host_start_commandfunction when callingspi_device_acquire_busfunction (56160675)
SPI
- Added note and workaround for esp32 spi slave hold MISO pin issue (https://github.com/espressif/esp-idf/issues/8638) (
f4e999fd) - Added note for esp32 spi slave with DMA but real trans_len unaligned to 4 bytes (https://github.com/espressif/esp-idf/issues/2085) (
f4e999fd) - Fixed spi device turn to maximum speed when override_freq uninitialized (https://github.com/espressif/esp-idf/issues/17460) (
f4e999fd) - Removed deprecated HSPI and VSPI related IOMUX pin macros on ESP32 and ESP32S2 (
a4c03ceb) - Fixed slave mode with dma RX data error on ESP32C5 (
c8fcebd9) - Fixed spi master full duplex with dma enabled but single RX data error on ESP32C5, C61 (
323e9425) - Change ESP32P4 spi master default clock source to PLL to support up to 80M by default (
d8fa822a)
SPI Slave
- Added a note about drive capability for GPIO pins in SPI slave example (https://github.com/espressif/esp-idf/pull/17268) (
4bd3661f)
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_countersandspi_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
- Fixed ESP32C5 can't receive frame in listen_only mode when multiple node on bus (https://github.com/espressif/esp-idf/issues/17461) (
e8ec9546) - Fixed
[tx|rx]_error_countempty fromtwai_node_get_info(https://github.com/espressif/esp-idf/issues/17434) (e8ec9546) - Fixed using
twai_make_dual_filter()to config dual filter for 29-bits ext_id (https://github.com/espressif/esp-idf/issues/17504) (e8ec9546) - More accurate the
sample_pointcalculation when usingtwai_timing_basic_config_t::sp_permill(https://github.com/espressif/esp-idf/issues/17522) (e8ec9546) - Fixed the issue that legacy twai driver can't send frame with dlc equals to zero (https://github.com/espressif/esp-idf/issues/17467) (
fecbfdc8) - Added a new TWAI example to drive XiaoMi "CyberGear" servo with a console CLI. (
c6d7d5d4) - Removed unsupported busoff and clkout signals on ESP32-C5 (
6fdaf37e) - Added support for calling
twai_node_transmit()from ISR contexts, enabling real-time CAN frame transmission from interrupt handlers with automatic context detection and ISR-safe queue operations. (5c97f962) - Fixed DLC larger than 255 in received frame from
twai_node_receive_from_isr(4e5401ec) - Added API
twai_node_transmit_wait_all_done()(54a9c2e1) - Improve the quanta_resolution_hz formula of
twai_timing_config_t(https://github.com/espressif/esp-idf/pull/17002, https://github.com/espressif/esp-idf/issues/16996) (f5e9a24c) - Update twai examples with new driver API and simplified them (https://github.com/espressif/esp-idf/issues/8461) (
675fe2d4) - Fixed build warnings in the cxx environment (https://github.com/espressif/esp-idf/issues/16999) (
7d1e974f)
Temperature Sensor
- Fixed cpp compiling warning for temperature sensor (https://github.com/espressif/esp-idf/issues/17656) (
068c8ab9) - remove spurious printf (https://github.com/espressif/esp-idf/pull/16211) (
94765b5b) - The legacy temperature sensor driver is removed. (
f4a45a30)
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) - Touch Element Library is moved to managed component (https://components.espressif.com/components/espressif/touch_element/versions/1.0.0/readme). (
be099ca8)
Touch Sensor
- The dependencies of legacy touch sensor driver are removed from ULP touch driver, now you need to use
intinstead oftouch_pad_tto 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_outputon 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
- Added support for UART DTR and DSR signals (https://github.com/espressif/esp-idf/issues/15987, https://github.com/espressif/esp-idf/issues/6211) (
8651d6c2) - The
esp_rom_uart.his deprecated and replaced byesp_rom_serial_output.h(ce92b0ab) - Fixed uart_release_pin logic if switching only specific pins with uart_set_pin (
dc527fba)
USB
- Added USB support for ESP32-H4 (
4f578d83) - Added CherryUSB host and device examples (
36229958) - Updated cdcacm_rx_cb and cdcacm_tx_cb placement when CONFIG_ESP_CONSOLE_USB_CDC_SUPPORT_ETS_PRINTF (https://github.com/espressif/esp-idf/issues/17000) (
4c9c3083) - Removed deprecated pin mappings for external USB PHY (
1bbf04cb) - Changed USB CDC VFS read() to treat end-of-line characters as regular bytes, with no early return (
2f4c5d27) - Changed USB CDC VFS read() to return with available data when in blocking mode (
2f4c5d27) - Updated ESP32-P4 USB pins for mass production version (https://github.com/espressif/esp-idf/issues/16136) (
32bee685) - Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (https://github.com/espressif/esp-idf/pull/15932, https://github.com/espressif/esp-idf/issues/15912) (
27099e1c)
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
- 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
- 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
- Fix 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
- 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-TLS
- Support runtime TLS version and ciphersuite list configuration for https server (https://github.com/espressif/esp-idf/issues/17660) (
02af1db1) - Updates esp-tls docs for non TLS connections (https://github.com/espressif/esp-idf/pull/17652, https://github.com/espressif/esp-idf/issues/17598) (
59f5bb45) - Added missing event tracker during mbedtls read operation (https://github.com/espressif/esp-idf/issues/16239) (
57211968)
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_Cbeing 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()andesp_sha_dma()APIs, the SHA mode needs to be explicitly set using theesp_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()andesp_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 callesp_sha_set_mode()with the argumentSHA2_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
- Improved RNG documentation (https://github.com/espressif/esp-idf/issues/14665) (
0fa59a25)
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_MODEin 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_driveandesp_vfs_fat_partition_drivefunctions. (94083867) - Functions
esp_vfs_fat_sdmmc_mountandesp_vfs_fat_sdspi_mountnow returnESP_ERR_INVALID_ARGif any of the arguments are missing. (94083867)
LittleFS
- Default LittleFS version in examples bumped to 1.20.0 (
2aeec90f)
NVS
- 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
- Added error-returning variants for partition find APIs (https://github.com/espressif/esp-idf/issues/9281) (
053fb47e) - Added support for partitions larger than 4MB on Linux target (
94b81282)
VFS
- Removed deprecated UART and UART-JTAG-serial API from
vfscomponent, 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.handsoc_memory_types.h.fromesp_hw_supportcomponent. These headers are replaced byesp_rtc_time.handesp_memory_utils.hrespectively. (39d22252) - Fixed the issue that LP_WDT is triggered in ROM after
esp_restartreset 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
- Removed deprecated header file
esp_spiram.h(a4c03ceb) - Fixed the issue that the PSRAM on ESP32C5/C61 doesn't support cross-page transaction. (
206be17e) - Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3, P4, C5, C61 (
1571758b) - Fixed PSRAM pointer check error issue when XIP_PSRAM is enabled on ESP32P4 (https://github.com/espressif/esp-idf/issues/15997, https://github.com/espressif/esp-idf/pull/15999) (
d0aabd36)
TCP Transport
- Enforce that a WebSocket server sends exactly one
Sec-WebSocket-Acceptheader (https://github.com/espressif/esp-idf/pull/16199) (54b52105) - Added response header callback hook (https://github.com/espressif/esp-idf/pull/16119) (
eaa552f0) - Fixed off-by-one buffer corruption uppon connection (https://github.com/espressif/esp-idf/issues/16120) (
88842110) - Add the ability to expose the HTTP upgrade response headers (https://github.com/espressif/esp-protocols/issues/715) (
1d12eb41) - Reduced severity of timeout and want read log from ERROR to DEBUG (https://github.com/espressif/esp-idf/pull/15967) (
061c05c8) - Added HTTP redirect (301 - Moved Permanently) to transport websocket. (
a5313b99)
Toolchain
- Upgraded esp-clang version to esp-20.1.1_20250829 (
3316e9d7) - Upgraded toolchain version to esp-15.2.0_20250929 (
8939bdad) - Upgraded gdb version to 16.3_20250913 (
714b7445) - Upgraded qemu version to esp_develop_9.2.2_20250817 (
13923674) - Added environment variable
ESP_CLANG_LIBS_PATHwhich points to the directory withlibclanglibrary (1c6c9017) - Fixed linkage rules for libc_nano.a if CONFIG_SPIRAM_CACHE_WORKAROUND=y (https://github.com/espressif/esp-idf/issues/17004, https://github.com/espressif/esp-idf/issues/17436) (
4339a7ea) - Upgraded openocd version to v0.12.0-esp32-20250707 (
52e88763) - Updated MacOS-x86_64 toolchain minimum OS version from 10.8 to 10.12 (released on September 20, 2016) (
0223bfe5)
Tools
- Added a fix to prevent Windows from unsuccessfully building the ESP-IDF root directory (
c4cabac5) - Fixed the
idf.py confservercommand failing because of small buffer size by increasing the default buffer size and adding the--buffer-sizeargument to further adjust the value if needed (eff16d49) - Updated to use esptool version v5+ and deprecated
.pysuffix from the esptool scripts (800f141f) - Removed the esp-idf-size
--legacyoption. Using--format jsonis no longer possible and setting theESP_IDF_SIZE_LEGACYenvironment variable has no effect. (af1ceb32) - Removed old copy of Catch2 (catch). Catch2 is still available as a ESP-IDF component at ESP component registry. (
392226b3) - Supported loading idf.py extensions from the project's component directories and from installed Python packages (
34f658a2) - idf_tools.py: Fixed warning message to show correct allowed install options (https://github.com/espressif/esp-idf/pull/17586) (
4e4378a7) - Removed the legacy unit-test-app. It can still be found at the Component Registry (
ab2829d6) - Fixed click's deprecation warnings (
__version__, click.MultiCommand) (117919d7) - Removed the legacy export scripts and setting the ESP_IDF_LEGACY_EXPORT environment variable no longer has any affect (
86fc2e11) - Upgraded CMake to versions 4.0.3 and 3.22.1 (for the option of installing it with
idf_tools.pyinstead of using the system-level version) (c43d3111) - The minimal supported CMake version was upgraded from 3.16 to 3.22 (
c43d3111) - Python 3.9 has been deprecated and is not supported anymore (
138336b9) - Updated the minimal supported Python version to 3.10 (
138336b9) - The
test_utilscomponent has been moved fromtools/unit-test-app/components/totools/test_apps/components(4065fb20) - Added requirements file for the new IDE feature of installing Python packages for IDE support (
dba8cb3f) - idf_tools.py: Removed legacy
virtualenvcode because supported Python versions come with thevenvmodule by default (ba08899b) - Normalized detected shell name to lowercase on Windows (https://github.com/espressif/esp-idf/issues/16868) (
b1d19082) - Fixed serial port mapping in
idf.py qemuif additional serial ports are added using--qemu-extra-args(https://github.com/espressif/esp-idf/pull/15974) (90518119) - Added Base64 encoding for temporary directory names when usernames contain special characters (https://github.com/espressif/esp-idf/issues/16229) (
a71bd0d6) - Explicitly disabled pip "user" option when installing the ESP-IDF Python virtual environment (https://github.com/espressif/esp-idf/issues/16189) (
fee72560) - Made the port argument mandatory for
idf.pyeFuse commands (adbec6ed) - Autodetection was removed from idf.py efuse* commands in order to prevent accidental use of the wrong port (
adbec6ed) - Added information how to update Python packages in the ESP-IDF environment (https://github.com/espressif/esp-idf/issues/16077) (
214f8680) - Passed the serial port from
idf.py diagto the the underlying esp-idf-diag package (16e8efa3) - Fixed
idf_tools.py install tools@versioncommand to be able to install specific tool versions (8f570513) - Fixed the
idf.py create-projectcommand for working with a read-only ESP-IDF directory (https://github.com/espressif/esp-idf/pull/16021, https://github.com/espressif/esp-idf/issues/15964) (1b7cb438) - The official support for
gdbguiwas dropped but the tool can be invoked via manual installation (5799f556) - ESP-IDF no longer automates installation of
gdbgui.idf.py gdbguicommand can still be used, provided that thegdbguitool is installed manually. (5799f556) - Add support for KornShell compatible shells (https://github.com/espressif/esp-idf/issues/16043) (
a2b7ce69) - Updated
ccacheversion to 4.11.2 (https://github.com/espressif/idf-installer/issues/305) (f9765d03) - IDF Monitor: Added note about limitation of auto coloring feature with multiline messages (https://github.com/espressif/esp-idf/issues/15793) (
4acf13dc)
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_tstructure. (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
- Fixed the mesh station sends data error on ESP32c61 (
3c3ee159) - Fixed the esp_mesh_scan_get_ap_record() error in chain topology (https://github.com/espressif/esp-idf/issues/16041) (
dce4ca71) - Fixed the mesh crash issue when changing mesh AP's authmode (
dce4ca71) - Fixed the mesh station sends data error on c5 (
916f7019)
Supplicant
- Added support for WPA3 compatible mode (
44736c8b) - Fixed crash to uninitialized roaming neighbor list lock (https://github.com/espressif/esp-idf/issues/16976) (
0f215a40) - Replaced use of mbedtls_ctr_drbg with esp_mbedtls_random() (https://github.com/espressif/esp-idf/pull/15679/) (
b789198c) - Disabled suite-b configuration if Wi-Fi enterprise is not enabled (https://github.com/espressif/esp-idf/issues/17567) (
2d1b94cd) - Fixed DPP remain on channel executing in loop (
f82bcd2a) - Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (
84b4605f) - Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (
7add0c15) - Fixed pmksa expiration caused by sntp time synchronization issue. (
94253670) - Added support to limit EAP method supported by device based on user configuration (
76d24d2f) - Disabled IP renew skip by default since most AP don't support it. (
b3560860) - Fixed issues reported by static analyzer. (
b3560860) - Added example to write Wi-Fi config in NVS (https://github.com/espressif/esp-idf/issues/14554) (
0dbce721) - Cleared SAE-PK capability in Assoc Request when not enabled at STA. (
c707faa4) - Added support for WPA-Enterprise in Station mode (
4983ba1a) - Ensured disconnection with previously connected AP when initiating WPS. (
9c842430) - Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (
9c842430)
Vendor
- Added more check when receiving ESP-NOW data (
fed2fb0a)
- Upgraded default C standard to gnu23 (
-
ESP-IDF Release v5.4.3
Stablereleased this
2025-10-21 11:15:46 +00:00 | 13363 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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
- Update cJSON to v1.7.19 (
bf0c45e1)
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
- Added support for pre-handshake callback which is executed before upgrading to WebSocket protocol (
a301c06b) - Fixed multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (https://github.com/espressif/esp-idf/pull/15767, https://github.com/espressif/esp-idf/issues/15235) (
b257023d) - Fixed httpd_register_uri_handler api for memory leak (https://github.com/espressif/esp-idf/issues/15878) (
7ac6f01b)
ESP HTTPS Server
- Fixed the issue where a second request on the same socket was blocked after the first async request succeeded (https://github.com/espressif/esp-idf/issues/16998) (
bf24dfcc)
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
- Added support for conditional dependencies in
idf_component.ymlwhich depend on Kconfig option values (5fe466ee) - Misspelled Kconfig[.projbuild] files are now detected by the build system (https://github.com/espressif/esp-idf-kconfig/issues/14) (
ee6ada05)
Classic Bluetooth
Bluedroid
- Prevented out-of-bounds access and add type check when resolving EIR data (
2dac39bd) - Added
record_handleparameter inESP_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
- Fixed esp_ptr_executable and esp_ptr_byte_accessible to consider TCM memory (https://github.com/espressif/esp-idf/pull/15998, https://github.com/espressif/esp-idf/issues/15996) (
94657ad3) - Fixed system console not correctly outputting to usb-serial-jtag secondary output console on newer chips (
79fe8275) - Fixed missing implementation of
__atomic_test_and_setrequired by GCC 14 (https://github.com/espressif/esp-idf/issues/15167) (ac1fdc16)
Console
- Updated parsing of escape sequences in linenoise to read every character of the sequence separately (https://github.com/espressif/esp-idf/issues/16762) (
8888cf92)
ESP Timer
- Fixed potential buffer overflow with
esp_timer_dump()(https://github.com/espressif/esp-idf/issues/17008) (0f42bb5b)
IPC
- Allowed IPC recursion calls in esp_ipc_call (
a9ba29d6)
Panic handling
- Fixed infinite loop in
.eh_frame-based backtracing when DWARF unwind information was missing (12b8f9c9) - Fixed an issue where the panic handler may reboot even though it is configured to dump the CPU registers and halt (https://github.com/espressif/esp-idf/issues/17260) (
77266e7c)
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_NUMoption that was previously ignored, allowing users to limit the number of tasks included in core dumps (e155cfc2)
FreeRTOS
IDF Additions
- Fixed full no-split buffer frees item incorrectly (https://github.com/espressif/esp-idf/issues/17466) (
6d5a54e3)
LWIP
- Fixed DHCP ARP check issue (
1021335e) - Fixed IPv6 forwarding to clone PBUF_REF buffers into PBUF_RAM, matching IPv4 behavior (
35950a6a) - Fixed NULL pointer dereference in ip_napt_enable and added unit tests (https://github.com/espressif/esp-lwip/issues/69) (
35950a6a)
DHCP
- Fixed incorrect DHCP length calculation causes potential memory corruption for some longer options (
ESP_NETIF_HOSTNAME_MAX_SIZE) (fbac0723)
DHCP Server
- Added support for multiple DNS servers in DHCP server functionality (https://github.com/espressif/esp-idf/pull/15057) (
cd3fb820)
ESP Netif
- Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
ddb8b8a8)
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 deprecateesp_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_statusalways return 0 on ESP32-P4 (cc6b993b)
ULP
LP Core
- Fixed array-bound compile error for ESP32-P4 when compiling with
-Os(https://github.com/espressif/esp-idf/issues/17054) (ea685009)
ULP-RISC-V
- Fixed the
ulp_riscv_delay_cycles()to handle small delays correctly (https://github.com/espressif/esp-idf/issues/16891) (c63bda50) - Returned error code back to application for ULP RISC-V I2C read/write errors (https://github.com/espressif/esp-idf/issues/15904) (
05534d26) - Fixed an issue where I2C error prints in ulp_riscv_i2c component were not getting disabled by using esp_log_level_set API (https://github.com/espressif/esp-idf/issues/17425) (
05534d26)
PHY
- Updated
librtc.ato fix coexist problems on ESP32 (e8486a1d) - Added protection against double phy-disable operations by one modem source which can result in hardware clock being switched off in coexistence scenario (
c0c0ee4a) - Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (
9c4fbf3e)
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
- Fixed the issue where the hold state of the GPIO corresponding to XTAL_32K_P was destroyed during reset or deepsleep (https://github.com/espressif/esp-idf/issues/17419) (
7863b3c4) - Fixed the issue that on ESP32 the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (
d626163d) - Calling gpio_reset_pin on an input only pin should not produce an error message (https://github.com/espressif/esp-idf/pull/17047) (
d626163d) - Improved some RTC_IO LL functions performance by avoiding "read-modify-write" operation (
d626163d) - Removed unsupported GPIO_OUTPUT_SET macro for ESP32-P4 (https://github.com/espressif/esp-idf/issues/16050) (
d626163d)
I2C
- Added gpio reserve check on i2c driver (
0b78d625) - Make I2C nack error log as debug level, not force print anymore (
0b78d625)
I2S
- Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (
07e4ffd6) - Added PLL240M clock source on ESP32-S3/C6 (https://github.com/espressif/esp-idf/issues/17056) (
07e4ffd6)
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
- Fixed FOC example frequency calculation (https://github.com/espressif/esp-idf/issues/17015) (
4ad5bfb0)
PCNT
- Fixed race condition causing accum_value loss on counter overflow (
963fc922)
RMT
- Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (https://github.com/espressif/esp-idf/issues/15948) (
025b6c67) - Supported to set initial level before any TX transmission (https://github.com/espressif/esp-idf/issues/16068) (
025b6c67) - Fixed the state of a simple encoder when mem_full and done occur together.(https://github.com/espressif/esp-idf/issues/17244) (
d834828e)
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
- Fixed legacy touch sensor v1 can not read from ISR context issue (https://github.com/espressif/esp-idf/issues/17045) (
5d20d91d) - Fixed calculation of sleep intervals (
435cf83a) - Adjust touch channel number on ESP32-P4 from 0-13 to 1-14 (
435cf83a)
UART
- Added UART DMA driver support on ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S3 (
8a94f195)
USB
- CherryUSB host and device demo example is added (
7d95eae7) - Added select functionality to the USB CDC driver (
378bab6e) - Changed USB CDC VFS
read()to treat end-of-line characters as regular bytes, with no early return (d727ae38) - Changed USB CDC VFS
read()to return with available data when in blocking mode (d727ae38) - Updated ESP32-P4 USB pins for mass production version (https://github.com/espressif/esp-idf/issues/16136) (
cde982d6)
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
- Updated esp-tls docs for non TLS connections (https://github.com/espressif/esp-idf/pull/17652, https://github.com/espressif/esp-idf/issues/17598) (
bfe8fd5e)
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_Cbeing 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_MODEin 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_restartreset 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
- Fixed PSRAM pointer check error issue when XIP_PSRAM is enabled on ESP32-P4 (https://github.com/espressif/esp-idf/issues/15997, https://github.com/espressif/esp-idf/pull/15999) (
6926e5c9) - Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3, P4, C5, C61 (
02e1de5b)
Toolchain
- Upgraded qemu version to esp_develop_9.2.2_20250817 (
8763c426) - Upgraded gdb version to 16.3_20250913 (
08f80a8f) - Upgraded toolchain version to esp-14.2.0_20250730 (
da5b2a4d) - Upgraded openocd version to v0.12.0-esp32-20250707 (
05cf51dc)
Tools
- Fixed click's deprecation warnings (
__version__, click.MultiCommand) (a13f3d39) - Added requirements file for the new IDE feature of installing Python packages for IDE support (
1dd3d736) - Normalized detected shell name to lowercase on Windows (https://github.com/espressif/esp-idf/issues/16868) (
1b03eaf6) - Explicitly disabled pip "user" option when installing the ESP-IDF Python virtual environment (https://github.com/espressif/esp-idf/issues/16189) (
60131865) - Added Base64 encoding for temporary directory names when usernames contain special characters (https://github.com/espressif/esp-idf/issues/16229) (
1cc06bbd) - Updated
ccacheversion to 4.11.2 (https://github.com/espressif/idf-installer/issues/305) (3867241e) - Fixed
idf_tools.py install tools@versioncommand to be able to install specific tool versions (8a2e7224) - Fixed the
idf.py create-projectcommand for working with a read-only ESP-IDF directory (https://github.com/espressif/esp-idf/pull/16021, https://github.com/espressif/esp-idf/issues/15964) (da674699)
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)
- The
-
ESP-IDF Release v5.2.6
Stablereleased this
2025-09-30 01:15:22 +00:00 | 19337 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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 Usageparameter 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_typein 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_mapAPI 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 faultissue when performingext_conncreation 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_handleparameter inESP_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_EVTevent (55f921c0) - Added events for l2cap register and unregister vfs (
d5631925) - Fixed
write_readtask 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_EVTevent 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_minin 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_MASKcommand to control reporting of vendor event on ESP32 (5670a06d) - Added
AFHrelated 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
- Fixed event profiling not logging execution time and invocation number (https://github.com/espressif/esp-idf/issues/15041) (
33a97b8e)
Heap
- Fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not being able to be used together with CONFIG_HEAP_TLSF_USE_ROM_IMPL. (
cf740a14)
Interrupts
- Made the NMI interrupt free to use on Xtensa targets and added an example to show how to use it (https://github.com/espressif/esp-idf/issues/13629) (
b96058c9)
Log
- Moved esp_log_writev to IRAM (
4e30b885)
Newlib
- Updated Newlib
usleep()to always sleep for the desired sleep period or more but never less (https://github.com/espressif/esp-idf/pull/15132) (408d7ed3)
Panic handling
- Fixed multi-core race condition in the panic handler when enabling RTC WDT. (
b68a6d9d) - Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (https://github.com/espressif/esp-idf/issues/15166, https://github.com/espressif/esp-idf/issues/15018, https://github.com/espressif/esp-idf/issues/10110) (
a0ba8c9e)
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_NUMoption that was previously ignored, allowing users to limit the number of tasks included in core dumps. (7e095182)
FreeRTOS
IDF Additions
- Updated
xRingbufferReceive()andxRingbufferReceiveFromISR()APIs to restrict them from being called to retrieve items from allow-split buffers. (20ab752e)
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) (
21a3ace6)
LWIP
DHCP
- Fixde DHCP server recv decline issue (
1ad5d0eb)
DHCP Server
- Added support for multiple DNS servers in DHCP server functionality. (https://github.com/espressif/esp-idf/pull/15057) (
2d9ed764)
ESP Netif
- Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
10b2e369)
Low Power Features
- Added
esp_sleep_get_wakeup_causes()to support multiple wakeup sources and deprecateesp_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_statusalways 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_SLEEPoption 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
- Fixed accumulation of wakeup cause bits in ULP (https://github.com/espressif/esp-idf/issues/15794) (
e3bfa9a8)
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
- Fixed ESP32-S2 ADC calibration loss resolution (https://github.com/espressif/esp-idf/issues/15671) (
52443169)
Analog Comparator
- Corrected the supported interrupt priority to 0~3 (
cf8633f5)
GPIO
- Calling gpio_reset_pin on an input only pin should not produce an error message (https://github.com/espressif/esp-idf/pull/17047) (
300d52a3) - Fixed the issue that on ESP32, the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (
300d52a3) - Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (https://github.com/espressif/esp-idf/issues/15797) (
0702cf32) - Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (https://github.com/espressif/esp-idf/issues/14931) (
f25eec67) - Forbidden to enable pull-up, pull-down on input-only IOs (
f25eec67)
I2C
- Report I2C NACK error log at debug level (
339e6c41) - Fixed race condition issue (https://github.com/espressif/esp-idf/issues/15444) (
dea307f7) - Fixed stretch causes timeout in I2C probe (https://github.com/espressif/esp-idf/issues/15589) (
dea307f7) - Fixed array size of static array (https://github.com/espressif/esp-idf/issues/15583) (
dea307f7) - Fixed auto selection i2c slave device cause error (https://github.com/espressif/esp-idf/issues/15644) (
dea307f7) - Fixed clear bus issue in legacy i2c driver (https://github.com/espressif/esp-idf/pull/15638) (
dea307f7) - Fixed that fsm reset cause I2C scl frequency changed on ESP32-S2 (https://github.com/espressif/esp-idf/issues/15724) (
dea307f7) - Add api for customize i2c transaction interface for nonstandard i2c device (
0aa4fe62) - Added a Kconfig option
I2C_SKIP_LEGACY_CONFLICT_CHECKto disable the legacy driver conflict check (40fff636)
I2S
- Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (
68711968) - Added PLL240M clock source on S3 and C6 (https://github.com/espressif/esp-idf/issues/17056) (
68711968) - Fixed the false buf catenate while use preload (https://github.com/espressif/esp-idf/issues/15775) (
55126009) - Fixed clock not update issue when re-configure the slot (https://github.com/espressif/esp-idf/issues/15256) (
dd30a791) - Fix uninitialize warning for the default macros (https://github.com/espressif/esp-idf/issues/15271) (
dd30a791) - Fixed i2s_std initializer order for cpp compiler and guarantee all initializers cpp compatible (https://github.com/espressif/esp-idf/issues/15405) (
dd30a791) - Fixed i2s inappropriate check and assign sequence (https://github.com/espressif/esp-idf/issues/15648) (
524b9573) - Added check for minimum sample rate (https://github.com/espressif/esp-idf/issues/15659) (
524b9573) - Fixed failure when GDMA is set IRAM_SAFE but I2S not (https://github.com/espressif/esp-idf/issues/15533) (
251b05c5) - Added check for I2S DMA buffer array allocation (https://github.com/espressif/esp-idf/issues/15607) (
251b05c5)
LEDC
- Forced the new duty update to wait until its last duty update finishes for ESP32 (
1e4482d1) - Fix potential assert failure in ledc_fade_stop due to race condition (https://github.com/espressif/esp-idf/issues/15580) (
47befdb5) - Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2 (
7d127312)
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
- Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (https://github.com/espressif/esp-idf/issues/15948) (
3f2fa7e3) - Supported to set initial level before any TX transmission (https://github.com/espressif/esp-idf/issues/16068) (
3f2fa7e3) - Enable the internal pull-up resistor in the onewire bus example (
b861ac44) - Fixed the race condition when between
rmt_receiveand receive ISR (https://github.com/espressif/esp-idf/issues/15842) (171b9128) - Enhanced the
rmt_receive_config_terror message (https://github.com/espressif/esp-idf/issues/15836) (171b9128) - TX channel can switch to different GPIO at runtime. (
daedd406) - Fixed the panic when the number of received symbols is a multiple of the memory block size. (
684e3b65)
SD_HOST
SDMMC
- Fixed sdmmc initialization issue caused by CMD52 CRC error (
9f747331) - Fixed transfer timeout due to higher priority tasks (https://github.com/espressif/esp-idf/issues/13934) (
4d3b0935)
SPI
SPI Master
- Supported rx sample point adjust using
spi_device_interface_config_t::sample_pointon 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
- Fixed issue of escaping boundary check (
8d319256) - Fixed flash encryption write verify (https://github.com/espressif/esp-idf/issues/15380) (
f6bf8930) - Added flash suspend chip version check on esp32h2 and esp32c6 (
f6bf8930) - Fixed build fail when rom_patch config disabled (https://github.com/espressif/esp-idf/issues/15229) (
2af2884e)
TWAI
- Fixed twai assert failed during recover (https://github.com/espressif/esp-idf/issues/9697)(https://github.com/espressif/esp-idf/pull/15484) (
0724b144)
Temperature Sensor
- Add temprature calibration support on ESP32-C2/C6/H2 (
86210328)
Touch Sensor
- Fixed tie option take no effect issue. (
5d9623db) - Fixed touch read WDT timeout issue on esp32 (https://github.com/espressif/esp-idf/issues/15629) (
5d9623db) - Fixed concurrent issue in the legacy touch v1 (esp32) driver (
5d9623db)
UART
- Updated uart_get_baudrate API documentation (https://github.com/espressif/esp-idf/issues/15449) (
57033230) - Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (https://github.com/espressif/esp-idf/issues/15695) (
57033230) - Eliminated the possibility of garbled data sent/received from the UART port during sleep process (
57033230) - Unsupported low baud rates (e.g., 2400bps, 1700bps) on LP UART now is properly reported (https://github.com/espressif/esp-idf/issues/15427) (
899b08a0)
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
- Added support for Low-speed devices, connected via external Hubs to Full-speed peripheral (
6caedf54) - Added support for Low-Speed devices connected through Full-Speed HUB (https://github.com/espressif/esp-idf/issues/15683) (
395302ef) - Fixed possible deadlock when closing a device that was not previously opened (
1800e0f2)
USB Serial JTAG
- Fixed wrong return value from
usb_serial_jtag_write_byteswhen input parameters are invalid (https://github.com/espressif/esp-idf/issues/15620) (765606fe)
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
vTaskStepTickafter turning on auto light sleep (68f07110)
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) - Updated ecdsa 192 support for ESP32H2. (
ad73b587) - Fixed a bug that resulted in a boot loop when a memory protection fault occurred on ESP32-S2 (https://github.com/espressif/esp-idf/issues/15359, https://github.com/espressif/esp-idf/issues/7656) (
ec84f6c6) - Fix secure boot (ECDSA) build failure for ESP32-C6 target (https://github.com/espressif/esp-idf/issues/15856) (
9eca5eef) - Fixed Memory protection interrupt check for ESP32S2 (PERI1 bus) (https://github.com/espressif/esp-idf/issues/15359) (
e2dd6f8a)
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_hostnamebefore the connection begins. No change is required if the application usesesp-tlslayer. (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
- No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (
46f35f9a) - Fixed API thread-safety in
esp_mmu_map.h(https://github.com/espressif/esp-idf/pull/15564) (34a92965) - Supported call esp_mmu_paddr_find_caps with any physical address offsets (https://github.com/espressif/esp-idf/issues/14988) (
d08c883e)
MSPI
- Improved the selection of timing tuning points when the last few tuning points succeed consecutively (
2bb1dfbf)
PSRAM
- Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3 (
42a6ef8e) - Supported UnilC Octal PSRAM on ESP32S3 (
857c7121) - Fixed external RAM .bss and .noinit section vaddr calculations (https://github.com/espressif/esp-idf/pull/15513) (
14ab34f8)
TCP Transport
- Added an API to configure the addr family (
c78a0c58) - Fixed API to correctly handle error conditions when the server sends data and an error simultaneously. (https://github.com/espressif/esp-idf/issues/14673) (
c1ef20b7)
Toolchain
- Upgraded toolchain version to esp-13.2.0_20250707 (
97c59d7c) - Upgraded gdb version to 16.2_20250324 (
32236c23) - Upgraded openocd version to v0.12.0-esp32-20250707 (
d15d1b0f) - Update ESP ROM ELFs to version 20240305 (
efb0e204)
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@versioncommand to be able to install specific tool versions. (e2e209c2) - Updated
ccacheversion 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
- Supported 11ax rate for cert test. (
47b19843) - Added GPIO output set command for cert test. (
f7157029) - Fixed the delete queue error in ESP-NOW example (https://github.com/espressif/esp-idf/issues/15383) (
8300a1ef)
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
- Fixed the mesh crash issue when changing mesh AP's authmode (
e38272a7) - Fixed the esp_mesh_scan_get_ap_record() error in chain topology (
e38272a7) - Updated the description for esp_mesh_send() return value (https://github.com/espressif/esp-idf/issues/14440) (
b2cd934f)
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
- 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. (
-
ESP-IDF Release v5.5.1
Stablereleased this
2025-08-30 13:42:33 +00:00 | 11636 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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
- Fixed issue during enabling digest auth in esp client (https://github.com/espressif/esp-idf/issues/17238) (
a8721f74) - Updated the postman root certificate for the esp_http_client example. (
2795fae3) - Fixed often triggering of HTTP_EVENT_ERROR when asynchronous client is set (
8d0b576c) - Fixed memory leak in HTTP client when header parsing fails during fetch operation. (
32a7b6a3)
ESP HTTP Server
- Fix the regression cause in httpd_cookie_key_value due to commit
4a47cf8(https://github.com/espressif/esp-idf/pull/16202) (6dcd2344) - Fixes multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (https://github.com/espressif/esp-idf/pull/15767, https://github.com/espressif/esp-idf/issues/15235) (
cff19bff)
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
- Misspelled Kconfig[.projbuild] files are now detected by the build system (https://github.com/espressif/esp-idf-kconfig/issues/14) (
0ad62114)
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_handleparameter inESP_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
- Fixed esp_ptr_executable and esp_ptr_byte_accessible to consider TCM memory (https://github.com/espressif/esp-idf/pull/15998, https://github.com/espressif/esp-idf/issues/15996) (
c5383e27) - Added Kconfig options for placing system-related APIs into flash when using
CONFIG_SPI_FLASH_AUTO_SUSPEND(b5944c8f)
Console
- Updated parsing of escape sequences in linenoise to read every character of the sequence seprately (https://github.com/espressif/esp-idf/issues/16762) (
fddb9be1)
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
- Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
79aedfd2)
Low Power Features
- Fixed the issue where entering mac_pd lightsleep may get stuck when Wi-Fi/BT coexist on ESP32C5. (
950ac4cf) - Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (https://github.com/espressif/esp-idf/issues/16243) (
4c38f2c8) - Fixed
esp_sleep_get_ext1_wakeup_statusalways return 0 on esp32p4. (05db51c4)
MQTT
- Added parsing of DISCONNECT control message to mqtt5 client(https://github.com/espressif/esp-mqtt/pull/295) (
60d0aa3c) - Reduced log verbosity for MQTT v5 ACK control messages(https://github.com/espressif/esp-mqtt/pull/296) (
60d0aa3c) - Fixed MQTT_REPORT_DELETED_MESSAGES by reporting QOS 0 messages(https://github.com/espressif/esp-mqtt/pull/290) (
60d0aa3c) - Fixed race condition when destroying the client (
60d0aa3c) - Added TCP keep alive configuration (
60d0aa3c) - Added message topic in all chunks when dispatching multiple MQTT_EVENT_DATA for big messages(https://github.com/espressif/esp-protocols/issues/369) (
60d0aa3c) - Fixed the tcp_transport creation when user have previously set a custom transport (
60d0aa3c) - Added the ability to get the transport in use (
60d0aa3c) - Added the support for the ECDSA signing peripheral (
60d0aa3c)
PHY
- Added protection against double phy-disable operations by one modem source, which can result in hardware clock being switched off in coexistence scenario (
0f07209a) - Updated librtc.a to fix coexist problems on ESP32 (
1191f4c4) - Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (
28eee20b)
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
- Fixed the state of a simple encoder when mem_full and done occur together.(https://github.com/espressif/esp-idf/issues/17244) (
290a4545)
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
- Fixed build warnings in the cxx environment (https://github.com/espressif/esp-idf/issues/16999) (
de8d1336) - Fixed new driver can't receive frame when CONFIG_PM_DFS_INIT_AUTO enabled (
6041ee30)
Touch Sensor
- Fixed legacy touch sensor v1 can not read from ISR context issue (https://github.com/espressif/esp-idf/issues/17045) (
6acf4e3a)
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_Cbeing 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
- Upgraded openocd version to v0.12.0-esp32-20250707 (
aea3d880)
Tools
- Added requirements file for the new IDE feature of installing Python packages for IDE support (
1f132a74) - Normalized detected shell name to lowercase on Windows (https://github.com/espressif/esp-idf/issues/16868) (
c8251d38) - Fixed serial port mapping in
idf.py qemuif additional serial ports are added using--qemu-extra-args(https://github.com/espressif/esp-idf/pull/15974) (a49402e1) - Updated
ccacheversion to 4.11.2 (https://github.com/espressif/idf-installer/issues/305) (23aab0fd) - Fixed the
idf.py create-projectcommand to work with a read-only ESP-IDF directory (https://github.com/espressif/esp-idf/pull/16021, https://github.com/espressif/esp-idf/issues/15964) (5ec370b7) - Fixed
idf_tools.py install tools@versioncommand to be able to install specific tool versions. (c25d7818) - Added Base64 encoding for temporary directory names when usernames contain special characters. (https://github.com/espressif/esp-idf/issues/16229) (
a6b0f618) - Explicitly disabled the pip 'user' option when installing ESP-IDF Python virtual environment. (https://github.com/espressif/esp-idf/issues/16189) (
415aae12)
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)
-
ESP-IDF Release v5.3.4
Stablereleased this
2025-08-14 13:07:31 +00:00 | 16318 commits to master since this releaseDocumentation 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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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_hostnamebefore the connection begins. No change is required if the application usesesp-tlslayer. (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_initno longer returnsESP_ERR_INVALID_STATEwhen the SDMMC host is already initialized, now it returnsESP_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
- Fixed memory leak in HTTP client when header parsing fails during fetch operation. (
a2ad5697) - Added API to extract TLS error from HTTP client. (https://github.com/espressif/esp-idf/pull/15059) (
7d97a539) - Added a configuration to set address type (
635c4190)
ESP HTTP Server
- Fixes multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (https://github.com/espressif/esp-idf/pull/15767, https://github.com/espressif/esp-idf/issues/15235) (
103d5d14) - Fixed httpd_register_uri_handler api for memory leak (https://github.com/espressif/esp-idf/issues/15878) (
064a7244)
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 Usageparameter 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_typein 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 faultissue when performingext_conncreation 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
- Misspelled Kconfig[.projbuild] files are now detected by the build system (https://github.com/espressif/esp-idf-kconfig/issues/14) (
4c68cdec) - Fixed ESP32-P4 linker script that was missing the
arraysattribute for external RAM section. (8b725deb) - Fixed CMake configuration warning CMP0165 for Linux target (https://github.com/espressif/esp-idf/issues/15488) (
833adbc2) - Changed build fatal error to warning when the ESP_ROM_ELF_DIR environment variable is not set (
d618bb56)
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_EVTevent (1977c705) - Added events for l2cap register and unregister vfs (
8b833682) - Fixed
write_readtask 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_EVTevent 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_minin 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
- Fixed esp_ptr_executable and esp_ptr_byte_accessible to consider TCM memory (https://github.com/espressif/esp-idf/pull/15998, https://github.com/espressif/esp-idf/issues/15996) (
6a4ab82b) - Fixed an issue that prevented RTC reserved area to have a size multiple of 4 (https://github.com/espressif/esp-idf/issues/13082) (
84ddb410) - Fixed esp_ptr_executable to specifically check if the pointer is in PSRAM memory on esp32p4. (
83bac559) - 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. (
d950dde7) - Added explicit drop for sections .got and .got.plt; In case these sections appear a hint will be shown. (https://github.com/espressif/esp-idf/issues/14296) (
f3782f67) - Fixed DRAM_DMA_ALIGNED_ATTR for ESP32-P4 (
2f084e47)
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
- Updated Newlib
usleep()to always sleep for the desired sleep period or more but never less (https://github.com/espressif/esp-idf/pull/15132) (acea1fc0)
Panic handling
- Fixed multi-core race condition in the panic handler when enabling RTC WDT. (
ae2b5443) - Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (https://github.com/espressif/esp-idf/issues/15166, https://github.com/espressif/esp-idf/issues/15018, https://github.com/espressif/esp-idf/issues/10110) (
7fea3ef2)
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()andxRingbufferReceiveFromISR()APIs to restrict them from being called to retrieve items from allow-split buffers. (b187b74b)
IDF Kernel
- Fixed an issue in HWLP coprocessor support where, due to a hardware bug, the previous context could be incorrectly restored in certain cases. (
080ad842) - 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) (
201b3762)
LWIP
DHCP
- Fixed DHCP server recv decline issue (
72ae23c6)
DHCP Server
- Added support for multiple DNS servers in DHCP server functionality. (https://github.com/espressif/esp-idf/pull/15057) (
62e28e3c)
ESP Netif
- Fixed potential crash caused by DHCP restore callback for PPP interface types (https://github.com/espressif/esp-protocols/issues/800) (
39d5b3ce)
Low Power Features
- Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (
4871de8e) - Fixed
esp_sleep_get_ext1_wakeup_statusalways 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_SLEEPoption 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
- Fix a bug in the ULP RISC-V interrupt handler that resulted in a corrupted stack upon return (https://github.com/espressif/esp-idf/issues/14930) (
5eb2b862)
PHY
- Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (
6045e49a) - Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (
e65ad010)
Peripheral Drivers
ADC
- Fixed P4 ADC2 oneshot do not claim apb periph clock (
c60f52b7) - Fixed ADC hw calibration do not free apb periph clock (https://github.com/espressif/esp-idf/pull/16130) (
c60f52b7) - Fixed S2 ADC calibration loss resolution(https://github.com/espressif/esp-idf/issues/15671) (
3c5910db)
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
- Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (https://github.com/espressif/esp-idf/issues/15797) (
be21344c) - Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (https://github.com/espressif/esp-idf/issues/14931) (
7c447b55) - Forbidden to enable pull-up, pull-down on input-only IOs (
7c447b55) - Allow RTC-IO API to set edge type wakeup sources for targets that support this (
086e129c)
I2C
- Add api for customize i2c transaction interface for nonstandard i2c device (
53ab7b89) - Fixed clear bus issue in legacy i2c driver (https://github.com/espressif/esp-idf/pull/15638) (
53ab7b89) - Fixed that fsm reset cause i2c scl frequency changed on esp32s2 (https://github.com/espressif/esp-idf/issues/15724) (
53ab7b89) - Fixed race condition issue (https://github.com/espressif/esp-idf/issues/15444) (
d808131b) - Fixed stretch causes timeout in i2c probe (https://github.com/espressif/esp-idf/issues/15589) (
d808131b) - Fixed array size of static array (https://github.com/espressif/esp-idf/issues/15583) (
d808131b) - Fixed auto selection i2c slave device cause error (https://github.com/espressif/esp-idf/issues/15644) (
d808131b) - Added a Kconfig option
I2C_SKIP_LEGACY_CONFLICT_CHECKto disable the legacy driver conflict check (1a79c5e1)
I2S
- Fixed the false buf catenate while use preload (https://github.com/espressif/esp-idf/issues/15775) (
93953299) - Fixed i2s inappropriate check and assign sequence (https://github.com/espressif/esp-idf/issues/15648) (
bbe8bfba) - Added check for minimum sample rate (https://github.com/espressif/esp-idf/issues/15659) (
bbe8bfba) - Fixed failure when GDMA is set IRAM_SAFE but I2S not (https://github.com/espressif/esp-idf/issues/15533) (
94f6398f) - Added check for i2s DMA buffer array allocation (https://github.com/espressif/esp-idf/issues/15607) (
94f6398f)
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
- Fixed the issue that the restart buffer failed to mount to the DMA when memory encryption is enabled (https://github.com/espressif/esp-idf/issues/15228) (
220910fb)
LEDC
- Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2/P4 (
3f9d5cac) - Fix potential assert failure in ledc_fade_stop due to race condition (https://github.com/espressif/esp-idf/issues/15580) (
949b0451)
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
- Enable the internal pull-up resistor in the onewire bus example (
5545ae09) - Fixed the race condition when between
rmt_receiveand receive ISR (https://github.com/espressif/esp-idf/issues/15842) (bc6a2359) - Enhanced the
rmt_receive_config_terror message (https://github.com/espressif/esp-idf/issues/15836) (bc6a2359) - TX channel can switch to different GPIO at runtime. (
ba27554f) - Fixed the panic when the number of received symbols is a multiple of the memory block size. (
b1c16b83) - Fixed the wrong reset code duration in the simple encoder example (https://github.com/espressif/esp-idf/issues/15498) (
89c81ac2)
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_deinitis now not used as default deinitialization function inSDMMC_HOST_DEFAULT()define macro. Insteadsdmmc_host_deinit_slotis used which hasint slotargument to deinitialize slots and the SDMMC host gracefully.sdmmc_host_deinitcan still be called and forces the host deinitialization even if slots are still in use. (a3aa4388) - Function
sdmmc_host_initno longer returnsESP_ERR_INVALID_STATEwhen the SDMMC host is already initialized, now it returnsESP_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
- Updated 32-bit address (over 16MB) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (
f256e573) - Fixed issue of escaping boundary check (
c7a31ce8) - Fixed flash encryption write verify (https://github.com/espressif/esp-idf/issues/15380) (
a29e9974) - Added flash suspend chip version check on esp32h2 and esp32c6 (
a29e9974)
TWAI
- Fixed twai assert failed during recover (https://github.com/espressif/esp-idf/issues/9697)(https://github.com/espressif/esp-idf/pull/15484) (
5a3ef8e5)
Touch Element
- Fixed the missing programming guide of Touch Element on ESP32-S3 (https://github.com/espressif/esp-idf/issues/15755) (
befa9bb4)
Touch Sensor
- Adjust touch channel number on P4 from 0-13 to 1-14. (
dc625ba1) - Fixed calculation of sleep intervals. (
dc625ba1) - Fixed tie option take no effect issue. (
5bcebb94) - Fixed touch read WDT timeout issue on esp32 (https://github.com/espressif/esp-idf/issues/15629) (
5bcebb94) - Fixed concurrent issue in the legacy touch v1 (esp32) driver (
5bcebb94)
UART
- Unsupported low baud rates (e.g., 2400bps, 1700bps) on LP UART is now properly reported (https://github.com/espressif/esp-idf/issues/15427) (
46ac8303) - Updated uart_get_baudrate API documentation (https://github.com/espressif/esp-idf/issues/15449) (
2e89dce2) - Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (https://github.com/espressif/esp-idf/issues/15695) (
2e89dce2) - Eliminated the possibility of garbled data sent/received from the UART port during sleep process (
2e89dce2) - Enlarged default task stack size for uart_async_rxtxtasks example to avoid stack overflow (https://github.com/espressif/esp-idf/issues/15363) (
1eb1fad1) - Updated programming guide to align configuration orders with the example codes (https://github.com/espressif/esp-idf/issues/13182) (
1eb1fad1)
USB
- Changed USB CDC VFS read() to treat end-of-line characters as regular bytes, with no early return (
e3eeb9d7) - Changed USB CDC VFS read() to return with available data when in blocking mode (
e3eeb9d7) - Updated ESP32-P4 USB pins for mass production version (https://github.com/espressif/esp-idf/issues/16136) (
074a7306) - Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (https://github.com/espressif/esp-idf/pull/15932, https://github.com/espressif/esp-idf/issues/15912) (
995b09e7)
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
- Add USB Host support for Full Speed peripheral on ESP32-P4 (
a228b4c7) - Added support for custom FIFO sizing via HAL API (
15bc442a) - Improved stability of the USB Host Library with external hubs (
fa230832) - Allocate DMA capable memory to external ram on ESP32-P4 (
711836a6) - Added support for Low-speed devices, connected via external Hubs to Full-speed peripheral (
52215a76) - Added support for Low-Speed devices connected through Full-Speed HUB (https://github.com/espressif/esp-idf/issues/15683) (
4066380f) - Fixed heap corruption (https://github.com/espressif/esp-idf/issues/15815) (
3a1bd70f) - Fixed host channel number calculation for ESP32-S3, ESP32-P4, and ESP32-S2. (
3fc84fdb) - Fixed possible deadlock when closing a device that was not previously opened (
aa990029)
USB Serial JTAG
- Changed USB Serial JTAG VFS read() to treat end-of-line characters as regular bytes, with no early return (
e3eeb9d7) - Fixed wrong return value from
usb_serial_jtag_write_byteswhen encounter invalid input parameters (https://github.com/espressif/esp-idf/issues/15620) (46e271ea) - Add missing break statement in
usb_serial_jtag_ll_phy_select(https://github.com/espressif/esp-idf/pull/15499) (b4fd30cd)
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
vTaskStepTickafter turning on auto light sleep (c06e9d3a)
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. (
5276f0b4) - Fixed a bug that resulted in a boot loop when a memory protection fault occurred on ESP32-S2 (https://github.com/espressif/esp-idf/issues/15359, https://github.com/espressif/esp-idf/issues/7656) (
a9190297) - 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) - Updated ecdsa and deterministic support for ESP32H2. (
cddc6685) - Fix secure boot (ECDSA) build failure for ESP32-C6 target (https://github.com/espressif/esp-idf/issues/15856) (
c50e49dd)
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_hostnamebefore the connection begins. No change is required if the application usesesp-tlslayer. (52b43b31)
Storage
- Concurrent use of more SDMMC devices (SD cards, eMMC, etc.) is now possible. (
a3aa4388)
NVS
- Fixed
nvs_tool.pyto properly format JSON output. Additionally, cleaned up text minimal format output (https://github.com/espressif/esp-idf/issues/15274) (433f0ab7)
System Hardware
- Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (
9312c359)
MMU
- No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (
7597b556) - Fixed API thread-safety in
esp_mmu_map.h(https://github.com/espressif/esp-idf/pull/15564) (950c9df5)
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
- Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3, P4 (
95f455cd) - Fixed PSRAM pointer check error issue when XIP_PSRAM is enabled on ESP32P4 (https://github.com/espressif/esp-idf/issues/15997, https://github.com/espressif/esp-idf/pull/15999) (
83b9e291) - Fixed external RAM .bss and .noinit section vaddr calculations (https://github.com/espressif/esp-idf/pull/15513) (
4bab63dc) - Supported UnilC Octal PSRAM on ESP32S3 (
9e58fe00)
TCP Transport
- Added an API to configure the addr family (
635c4190)
Toolchain
- Upgraded gdb version to 16.2_20250324 (
dcaef8f0) - Upgraded openocd version to v0.12.0-esp32-20250422 (
d1af51f3)
Tools
- Explicitly disabled pip 'user' option, when installing ESP-IDF python virtual environment. (https://github.com/espressif/esp-idf/issues/16189) (
077a8f24) - Updated
ccacheversion to 4.11.2 (https://github.com/espressif/idf-installer/issues/305) (6ce783f8) - Fixed
idf_tools.py install tools@versioncommand to be able to install specific tool versions. (5028d9e0) - Switched to flashing ESP32-C3 with stub when the USB Serial/JTAG mode is used (
13091e4a) - Fixed processing of packages with dots in their names in Python dependency checks (
d73b3d81) - Deactivated the previously set ESP-IDF environment every time the export script runs (on Unix systems only) (
81968004) - Added input validation of optional install features (
58c14765) - Fixed deprecation warnings when using
extractall()on Python 3.12 and newer (3f2690aa)
WI-FI
- Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (
cb1f3502) - Fixed esp32c2 and esp32s2 TCP TX throughput shake issue (
02447c9e) - Added support for SoftAP SAE extended key (
de842b06) - Modified authmode to sta for sta connect event (
6a98af1f) - Added timer to send wake null after STA received association response (
181aeb82) - Fixed the noise floor error on ESP32C5 (https://github.com/espressif/esp-idf/issues/15594) (
181aeb82)
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
- Updated the description for esp_mesh_send() return value (https://github.com/espressif/esp-idf/issues/14440) (
181aeb82)
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
- WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (
-
ESP-IDF Release v5.5
Stablereleased this
2025-07-18 12:47:31 +00:00 | 12119 commits to master since this release
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.ziparchive. It includes.gitdirectory 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.gitdirectory doesn't include the history of commits older than one year. Users who need to usegit checkoutto access an older release of IDF will have to usegit fetchfirst 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
- Added preview support for ESP32-C5, refer to ESP32-C5 v1.0 support status for details
- Added preview support for ESP32-C61 v0.2. For the support status of ESP32-C61 v1.0, please refer to ESP32-C6 v1.0 support status for details
- Added support for ESP32-H2 revision v1.2 (
9b876d93) - Added support for ESP32-C2 chip rev2.0 (
93aea4f6)
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()andesp_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 callesp_sha_set_mode()with the argumentSHA2_256. (b37d4b33) - Peripheral Drivers/Touch Sensor: Adjust touch channel number on P4 from 0-13 to 1-14. (
80abd1c7)
Major Bug Fixes
- Update mbedTLS version to 3.6.3. (
21f59bd0) - JPEG: Fixed the issue that jpeg encoder blocked when the output buffer is not sufficient. (
c07e2705) - PPA: Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (
65044efa) - UART: Eliminated the possibility of garbled data sent/received from the UART port during sleep process (
dbfb663b) - USB: Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (https://github.com/espressif/esp-idf/pull/15932, https://github.com/espressif/esp-idf/issues/15912) (
a652a847) - System Hardware: Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (
50e3a2bc) - Cache: Fixed L1-to-L2 Cache auto-writeback stuck issue when L2 Cache is suspended (e.g. when in DFS) (
da316111) - MSPI: Fixed startup stuck under Flash QIO and XIP_PSRAM 200MHz condition (https://github.com/espressif/esp-idf/issues/14979) (
1ddf0052)
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
otPlatRadioEnergyScancalls (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
- Added feature for OTA resumption in case of any error or reboot during OTA process.[https://github.com/espressif/esp-idf/issues/13127] (
23ce1cc4) - Provision for specifying prefix counter for encrypted key files (
54622401) - Updated mfg_gen.py script to add serial count prefix for intermediate csv and bin files (
b3bae69c)
App Update
- Added a new API esp_ota_mark_app_invalid_rollback() to allow marking the app as invalid for rollback without triggering an immediate restart. (https://github.com/espressif/esp-idf/pull/15030) (
ff13eb17) - Invalidate ota data slot of last boot app in esp_ota_begin (https://github.com/espressif/esp-idf/issues/14808) (
95891227) - Supported OTA update for any partitions (bootloader, partition_table, nvs, etc.) (https://github.com/espressif/esp-idf/issues/14195 https://github.com/espressif/esp-idf/issues/13824) (
f817b85f)
CJSON
- Update to latest upstream cJSON master. (
07787485)
ESP HTTP Client
- Updated header deletion by allowing value to NULL in esp_http_client_set_header() (https://github.com/espressif/esp-idf/pull/15715) (https://github.com/espressif/esp-idf/issues/15714) (
a0c707e5) - Fixed invalid content-length header. (https://github.com/espressif/esp-idf/pull/15291) (
61f992a0) - Fixed host header for IPv6 address (https://github.com/espressif/esp-idf/pull/15388) (
e2fc3634) - Added API to extract TLS error from HTTP client. (Closes https://github.com/espressif/esp-idf/pull/15059) (
bc63628f) - Added a configuration to set address type (
aad91f9e) - Fixed memory leak issue while preparing basic digest auth. (Closes https://github.com/espressif/esp-idf/issues/14885) (
b20a7f1d) - Replaced MEM_CHECK macro with an enhanced version to log memory allocation failures and ensure safe handling during exhaustion of the OTA process. (
706a4457) - Include port number to the URL returned by the API esp_http_client_get_url(). (
57269c3a)
ESP HTTP Server
- Incorrect API spelling fix in esp_http_server. (https://github.com/espressif/esp-idf/pull/15821) (
bb9f73a7) - Improved the performance of http parser for parsing the URI. (https://github.com/espressif/esp-idf/pull/15288) (
c263a3f9) - Added support to handle HTTP 1.0 requests for legacy compliance purpose (
a5fbd96f) - Added Server Sent Events demo in http_server/simple example (
d90bd6a1)
ESP HTTPS OTA
- Added missing dependencies for component esp_https_ota (https://github.com/espressif/esp-idf/issues/15680) (
2e2f39b9) - Added chip revision validation for maximum and minimum revision checks while performing OTA. (
83cb9d73) - Added check for revision verification while performing OTA. (
843729c6) - Removed the support of pre_encrypted_ota example from esp-idf. This example has been moved to idf-extra-components under the esp_encrypted_img component. (
5c5e80ca) - Handled case if the HTTP server responded with response code 304 (NOT_MODIFIED) (Closes https://github.com/espressif/esp-idf/issues/14839) (
3029a4b9)
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 Usageparameter 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
- Fixed esp_local_ctrl CMakelists.txt by adding esp_netif in PRIV_REQUIRES (https://github.com/espressif/esp-idf/pull/15818) (
999a81b0)
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
- Added support for stopping adv in BLUFI for nimble (
b20122ca) - Enhance security in BLUFI example. (
7ff0087d) - Fixed crash issue during memcpy in example. (
b7f3f677) - Fixed potential out-of-bounds memory access issue in Blufi example. (
b48aa982) - Fixed crash issue in Blufi example during prepare write operation. (
56696866) - Fixed Blufi initialization failure after deinitialization on ESP32(https://github.com/espressif/esp-idf/issues/14898). (
ed61b22e)
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_typein 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 faultissue 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_onandesp_wifi_bt_power_domain_offfromesp_bt.htoesp_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 inbootloader_components/(56922248)
Build & Config
- Changed build fatal error to warning when the ESP_ROM_ELF_DIR environment variable is not set (
135f4e21) - Added support for the CMock subdir option with idf_component_mock (https://github.com/espressif/esp-idf/pull/15308) (
2fb93845) - Fixed C standard preferences for the Linux target (
e4cf8191) - Fixed CMake configuration warning CMP0165 for Linux target (https://github.com/espressif/esp-idf/issues/15488) (
7ce80cef) - Included the test components specified by TEST_COMPONENTS in minimal build (https://github.com/espressif/esp-idf/issues/15485) (
da69aee8) - Fix compilation issues in the idf_as_lib example (https://github.com/espressif/esp-idf/pull/15401) (
4f968c3f) - Fixed ESP32-P4 linker script that was missing the
arraysattribute for external RAM section. (77604966) - Added the MINIMAL_BUILD build property and modified examples to use it in order to reduce their build time (
46e37515) - Wrote the components properties file once instead of rewriting it in a loop for each component (https://github.com/espressif/esp-idf/pull/14733) (
542a5d28) - Added support for conditional dependencies in idf_component.yml which depend on Kconfig option values (
b43b2001)
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_EVTevent (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_readtask 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_EVTevent 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_minin 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_Changewas not reported to host after changing the key type, even when the encryption mode was correctly changed viaHCI_Set_Connection_Encryptioncommand 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.hheader file, these have been replaced byesp_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
- Fixed deadlock occurring upon deinitialization of the repl environment (see https://github.com/espressif/esp-idf/issues/9974) (
e4e2a83e) - Fixed the crash when enable USB-Serial-JTAG as the primary console on ESP32-C3 v1.1 (
ea902d6e) - Added 'info' to log_level command description (https://github.com/espressif/esp-idf/pull/14771) (
3ec05583) - Added recommendation to use Windows Terminal in case of issues with escape sequences(https://github.com/espressif/esp-idf-monitor/issues/17) (
90abcdeb)
ESP Event
- Fixed event profiling not logging execution time and invocation number (https://github.com/espressif/esp-idf/issues/15041) (
82f558b4)
ESP Timer
- Added option for placing functions in flash if using flash-auto-suspend (
ee87960c)
Heap
- Updated heap debugging documentation to include the task tracking feature description. (
83f28973) - Added heap_caps_get_containing_block_size to the heap API that returns the size of an allocated block from any pointer to that block. (
826c69f1) - Added per task peak heap usage information when heap task tracking is enabled (
6ef7ad67) - Fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not being able to be used together with CONFIG_HEAP_TLSF_USE_ROM_IMPL. (
46847b7b) - Added MALLOC_CAP_SIMD flag to allocate memory that is suitable for SIMD instructions (
bbdef6a1) - Fixed wrong memory returned when allocating in RTC memory with MALLOC_CAP_EXEC capability (see https://github.com/espressif/esp-idf/issues/14835) (
c80ba402) - Fixed allocs with MALLOC_CAP_EXEC returning non executable memory if CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT was enabled (https://github.com/espressif/esp-idf/issues/14836) (
e4501b37) - Updated list of registered heaps to be sorted by increasing size (see https://github.com/espressif/esp-idf/issues/13588) (
ab3d179f)
Interrupts
- Added kconfig option
CONFIG_ESP_INTR_IN_IRAMfor placing interrupt related API into flash when usingCONFIG_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
- Added SOC_CPU_CORES_NUM define for the Linux target (https://github.com/espressif/esp-idf/issues/15758) (
784d80b4) - Fixed TEST_COMPONENTS not working on macOS for linux target (https://github.com/espressif/esp-idf/issues/15490) (
64113b8e)
Log
- Added binary logging mode (
33cab69f) - Added kconfig option
CONFIG_LOG_IN_IRAMfor placing logging related API into flash when usingCONFIG_SPI_FLASH_AUTO_SUSPEND(76057272) - Added Log v2 (the choice between v1 and v2 is made by CONFIG_LOG_VERSION). Supports centralized log formatting via a single handler for all log macros. (https://github.com/espressif/esp-idf/pull/5761, https://github.com/espressif/esp-idf/issues/14011) (
ec990f4a) - Moved esp_log_level_get_timeout and esp_log_writev to IRAM (
9eeee92d) - Newly Added
- Fixed bin log config. It is available only for log version 2. (
c9437970)
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_IRAMfor placing newlib related API into flash when usingCONFIG_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_IRAMfor 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
- Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (https://github.com/espressif/esp-idf/issues/15166, https://github.com/espressif/esp-idf/issues/15018, https://github.com/espressif/esp-idf/issues/10110) (
e01877ff) - Added CONFIG_ESP_SYSTEM_USE_FRAME_POINTER to enable frame pointer generation, simplifying backtracing at runtime. (
52b558d2) - Fix the cache size error message on Xtensa targets (
6540208f)
Partition Table
- Fixed partition table names must be only ASCII characters (
4aa47aac) - Supported primary subtypes partitions for bootloader and partition_table types (
1a419e59)
Pthread
- Added missing pthread functions pthread_set/getschedparam (https://github.com/espressif/esp-idf/issues/14821 https://github.com/espressif/esp-idf/issues/8594) (
d37e1ccc)
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_HALTset (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
- Store CRC16 checksum of trace blocks in Xtensa perfmon register to enable host-side data integrity verification. (
d1c131f6) - Fix deadlock on sysview start (
f8284e17) - Fixed the issue where the Segger SystemView app (v3.10 or later) gets stuck during the record analyzing step. (https://github.com/espressif/esp-idf/issues/10483) (
06e8ee28) - Updated SEGGER sysview version to v3.56 (
f3790a01)
Core Dump
- Hide the
--chip-revargument inidf.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_monitorusage (33c340a3) - Changed PDF download link to a HTML zip archive download (
813b98ca) - Updated information about debugging the heap. (
0564e9d4)
Ethernet
- Added destination MAC address filter configuration interface (https://github.com/espressif/esp-eth-drivers/issues/57) (
eba9549b) - Fixed ESP32P4 EMAC REF RMII CLK output mode (
6d9fdcf9) - Fixed ESP32P4 EMAC flow control enable (
6d9fdcf9) - Fix second Ethernet device not getting IP address in Ethernet basic example (
39f34a65) - Changed GPIO init to not use functions which "overwrite all the current IO configurations" (
d30e4d99) - Fixed Openeth driver to consider the MAC address specified in QEMU (https://github.com/espressif/qemu/issues/107) (
e06c2346) - Added time stamping support for ESP32P4 Ethernet driver. (
7f07c9de) - Added time synchronization over PTP example. (
7f07c9de)
FreeRTOS
- Introduced Kconfig option
CONFIG_FREERTOS_PLACE_ISR_FUNCTIONS_INTO_FLASHto allow placing FreeRTOS APIs called from ISR context in to Flash memory. (5ba12ea9)
IDF Additions
- Updated
xRingbufferReceive()andxRingbufferReceiveFromISR()APIs to restrict them from being called to retrieve items from allow-split buffers. (a57680c6) - Updated description of the ring buffer API (https://github.com/espressif/esp-idf/issues/15298) (
8778ed28) - Fixed a bug in
prvTaskDeleteWithCapsthat resulted in a crash if the task used a coprocessor. (7559275f) - Fixed a bug wherein a
no-splitring buffer does not receive any item if space on the buffer is acquired until the buffer is full and the acquire pointer wraps around (https://github.com/espressif/esp-idf/pull/14948) (856bba66) - Fixed incorrect API reference for
xRingbufferSendComplete()(https://github.com/espressif/esp-idf/issues/14990) (2cddacd0)
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
- Fixed IPv6 forwarding to clone PBUF_REF buffers into PBUF_RAM, matching IPv4 behavior. (
49c9d797) - Fixed NULL pointer dereference in ip_napt_enable and added unit tests(https://github.com/espressif/esp-lwip/issues/69). (
83e8f70e) - Changed LWIP_NETIF_API to be always enabled to support standard network interface APIs
if_nametoindex()andif_indextoname()(e11a9185) - Fixed compilation issue with CONFIG_LWIP_DHCP_RESTORE_LAST_IP(https://github.com/espressif/esp-idf/issues/14582). (
73c46b0b) - Fixed ping component to retrieve network interface name in a TCP/IP thread safe manner (https://github.com/espressif/esp-idf/issues/14982) (
ed14b8d3) - Added minimal support for
socketpair()via the external componentsock_utils(https://github.com/espressif/esp-idf/issues/13772) (7e246472) - Added minimal support for
gai_strerror()andgethostname()via the external componentsock_utils(https://github.com/espressif/esp-idf/issues/14849) (7e246472) - Fixed IPv6 raw socket ICMPv6 checksum calculation in IPv6-only configuration (
afb4a02f) - Fixed a bug in
dns_clear_cache()that caused deadlock by clearing active DNS entries(https://github.com/espressif/esp-idf/issues/14287). (e4c92855)
DHCP
- Added a hook to support custom actions on getting an additional DHCP options (https://github.com/espressif/esp-idf/issues/15329) (
0be20a5f) - Fixed DHCP server recv decline issue (
e3583dd0)
DHCP Server
- Added support for multiple DNS servers in DHCP server functionality. (https://github.com/espressif/esp-idf/pull/15057) (
04133e02)
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
- Fixed unlimited PCB issue, allowing application to allocate more TCP connections than configured (https://github.com/espressif/esp-idf/issues/9670) (
890106fb) - Updated mechanism to recycle PCBs also in FIN_WAIT_1 and FIN_WAIT_2 states (
890106fb)
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_SLEEPoption 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
- Added support for embedding multiple ULP binaries without variable name collisions using binary specific prefixes (https://github.com/espressif/esp-idf/pull/14954) (
57002884)
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. (
c85c74f5) - Added support for LP Timer interrupt on the LP Core (https://github.com/espressif/esp-idf/pull/15717) (
692512c0) - Added wrapper APIs to enable and disable LP IO as a wakeup source from the LP core (https://github.com/espressif/esp-idf/pull/15837) (
382121b8) - Fixed accumulation of wakeup cause bits in ULP (https://github.com/espressif/esp-idf/issues/15794) (
ed964865) - Fixed and issue with the
lp_core_uart_tx_flush()did not wait for the UART Tx idle state therefore, not always flushing all bytes from the UART Tx FIFO (https://github.com/espressif/esp-idf/issues/15433) (47df2ed5) - Added support for LP UART wakeup modes. (
5f37de28) - Added a LP-SPI example for the LP-Core showing reading and writing from a BME280 sensor (
402fecee)
ULP-RISC-V
- Fixed a bug in ADC oneshot driver which incorrectly initialized the ADC peripheral when it is being controlled by the ULP RISC-V core. (
a6c3a9cb) - Fix a bug in the ULP RISC-V interrupt handler that resulted in a corrupted stack upon return (https://github.com/espressif/esp-idf/issues/14930) (
ff12ccfd)
Networking
Examples
- Added DNS over HTTPS (DoH) example (
3b30a63e) - Fixed modbus slave setup mode (https://github.com/espressif/esp-idf/pull/14878) (
b77ecce0) - Added a wrapper function for getaddrinfo() to properly handle the AF_UNSPEC flag. (
e2ae81a1)
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
- Supported to skip legacy driver conflict check (https://github.com/espressif/esp-idf/issues/13938) (
c80fa61c)
ADC
- Fixed ADC do not enable/disable regi2c registers (
a4460102) - Fix ADC oneshot read zero after getting done signal on ESP32-P4 (
a446bda4) - Fixed ESP32-S2 ADC calibration loss resolution (https://github.com/espressif/esp-idf/issues/15671) (
37ce74af) - Fixed ADC function register not reset issue on ESP32-H2/C6/C61/C5 (
e21e3f41) - Fix adc oneshot lose power control counts (
7e44f8d3) - Fix ADC oneshot read error after continuous (
7e44f8d3) - Fixed ADC error after bootloader random (
0974d666) - Fixed ESP32P4 ADC continuous mode stop early (
0974d666) - Supported ESP32P4 ADC calibration (
0974d666) - Supported ADC calibration scheme on ESP32C5 (
90f638e5) - Fixed
adc_cali_check_schemereturn wrong supported scheme issue on ESP32-C2/H2/C6 (c9a59095) - Fixed ADC monitor don't work issue. (https://github.com/espressif/esp-idf/issues/14769) (
1a25f688) - Updated continuous mode read API timeout parameter description (https://github.com/espressif/esp-idf/issues/14854) (
08ef00d8)
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
- External memory encryption should not affect internal memory alignment (https://github.com/espressif/esp-idf/issues/15228) (
deb703cc) - The asynchronous memory copy driver now supports destination addresses that are not aligned to the cache line size. (
c5865270) - Improved the CP-DMA performance from 480MB/s to 520MB/s on ESP32S2. (
486fd18d)
GDMA
- Support independent registration of Cache Safe ISR for each GDMA channel (https://github.com/espressif/esp-idf/issues/15771) (
4a5d75ac)
GPIO
- Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (https://github.com/espressif/esp-idf/issues/15797) (
07acbee5) - Removed misleading LOG in gpio_reset_pin, and changed LOG to debug level for gpio_configure (https://github.com/espressif/esp-idf/pull/15569) (
f3625b0f) - gpio_reset_pin can be called to revoke any IO reservation now (https://github.com/espressif/esp-idf/issues/15598) (
f3625b0f) - Fixed the issue that configuring RTCIO as GPIO causes other initialized RTCIO to function abnormally on esp32s2 & esp32s3. (https://github.com/espressif/esp-idf/issues/10404, https://github.com/espressif/esp-idf/issues/12681) (
79ee0927) - Fixed wrong register write when calling esp_rom_gpio_connect_out_signal for IO number over 31 on ESP32/ESP32S2 (https://github.com/espressif/esp-idf/issues/15209) (
b88f30a0) - Updated rtc_io.h API reference (https://github.com/espressif/esp-idf/issues/13735) (
486c9555) - Allow RTC-IO API to set edge type wakeup sources for targets that support this (
d8de8c6e) - Added gpio_get_io_config API to get IO configuration for a specific IO (https://github.com/espressif/esp-idf/pull/14923) (
4535c272) - Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (https://github.com/espressif/esp-idf/issues/14931) (
4535c272) - Forbidden to enable pull-up, pull-down on input-only IOs (
4535c272) - Fixed gpio_dump_io_configuration API name typo in programming guide (https://github.com/espressif/esp-idf/pull/15031) (
90a396b4) - improved GPIO set level performance by avoid "read-modify-write" operation (https://github.com/espressif/esp-idf/issues/14674) (
01cd5cf4)
GPTimer
- The start and stop functions are now idempotent (https://github.com/espressif/esp-idf/issues/12325)(https://github.com/espressif/esp-idf/issues/13486) (
e964cc3a) - Fixed the issue with esp32p4 losing GPTimer context after lightsleep when the peripheral power domain is powered off. (
1b44d4df) - Fixed race condition between gptimer_start and gptimer_stop (https://github.com/espressif/esp-idf/pull/14767) (
4b9d9a19)
I2C
- When the driver enables GPIO pull-up, it will also disable the internal pull-down accordingly. (https://github.com/espressif/esp-idf/issues/15774) (
4bec8b5e) - Fixed the issue that fsm reset would cause I2C SCL frequency changed on ESP32-S2 (https://github.com/espressif/esp-idf/issues/15724) (
ce15bc27) - Fixed clear bus issue in legacy i2c driver (https://github.com/espressif/esp-idf/pull/15638) (
ccb4384d) - Fixed uses i2c customize api read one byte cause error (https://github.com/espressif/esp-idf/issues/15685) (
f8ecc488) - Fixed auto selection i2c slave device cause error (https://github.com/espressif/esp-idf/issues/15644) (
8a0e310d) - Fixed stretch causes timeout in i2c probe (https://github.com/espressif/esp-idf/issues/15589) (
d5b05201) - Fixed array size of static array (https://github.com/espressif/esp-idf/issues/15583) (
34b69e80) - Fixed race condition issue (https://github.com/espressif/esp-idf/issues/15444) (
9a917658) - Fixed clock speed is wrong on esp32s2 with legacy i2c driver (https://github.com/espressif/esp-idf/issues/15301)(https://github.com/espressif/esp-idf/issues/14603) (
32866513) - Enhhance i2c delete devices and buses logic (https://github.com/espressif/esp-idf/issues/15171) (
e73d78ba) - Add api for customize i2c transaction interface for nonstandard i2c device (
a245a316) - Added an API for changing i2c slave address on same device. (https://github.com/espressif/esp-idf/issues/15011) (
ce131ee4) - Add 10bit address support on esp32 (
9bdbd45e) - Added a get-started example for i2c master driver (https://github.com/espressif/esp-idf/pull/14315) (https://github.com/espressif/esp-idf/issues/14902) (
99013d25) - Reduced the chance of I2C data corruption due to hardware issue in FIFO handling (https://github.com/espressif/esp-idf/issues/12860) (
2166722f) - Enhance lp i2c clock source selection (https://github.com/espressif/esp-idf/issues/14908) (
6b735e01) - Fixed I2C return without release the lock (https://github.com/espressif/esp-idf/issues/14906) (
6b735e01) - Refactor i2c slave driver and make it easier to use. (
d74e99c0) - Fixed bus handle check so that it will not panic when there is no free bus, (https://github.com/espressif/esp-idf/issues/14819) (
26932219) - fix(i2c): Fix some issue in programming guide, (https://github.com/espressif/esp-idf/issues/14794) (
26932219)
I2S
- Fixed the false buf catenate while use preload (Closes https://github.com/espressif/esp-idf/issues/15775) (
823785aa) - Added check for minimum sample rate (https://github.com/espressif/esp-idf/issues/15659) (
84bfea45) - Fixed i2s inappropriate check and assign sequence (https://github.com/espressif/esp-idf/issues/15648) (
2ff19854) - Added check for i2s DMA buffer array allocation (https://github.com/espressif/esp-idf/issues/15607) (
3cbd3914) - Fixed failure when GDMA is set IRAM_SAFE but I2S not (https://github.com/espressif/esp-idf/issues/15533) (
87aa9ec5) - Fixed i2s_std initializer order for cpp compiler and guarantee all initializers cpp compatible (https://github.com/espressif/esp-idf/issues/15405) (
9f489c2a) - Support to tune the audio rate during the runtime. (
1bd8fabf) - Fixed clock not update issue when re-configure the slot (https://github.com/espressif/esp-idf/issues/15256) (
fb72b2cb) - Fix uninitialize warning for the default macros (https://github.com/espressif/esp-idf/issues/15271) (
fb72b2cb) - The max TDM frame bits have limitation on ESP32-C3/S3/C6, add check for the TDM frame bits number to make sure it is valid. (
8583c1f2) - Fixed incorrect DMA buf size calculation for 8-bit & 24-bit data width. (
25de0937) - Supported to choose PA_CTRL gpio for
i2s_es8311example. (25de0937) - Report error when the division from clock source to MCLK is less than 2 (because mclk_div at least to be 2 in hardware). (
25de0937) - Refactor I2S example common dependencies, make them an example common component (https://github.com/espressif/esp-idf/issues/14751) (
12fb443e) - Removed the least 2 slots limitation for the PCM short format in TDM mode (https://github.com/espressif/esp-idf/pull/14879) (
874ce4ed) - Supported PDM data format (RAW/PCM) selection (
56349e6d)
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
- Fixed the infinite wait when lvgl timer is no ready in example (https://github.com/espressif/esp-idf/pull/15853) (
74f0ad50) - Supported XPT2046 in the SPI LCD example (https://github.com/espressif/esp-idf/pull/15414) (
2011b9f0) - Fixed the issue that SPI LCD device initialization breaks the IO setting of others (https://github.com/espressif/esp-idf/issues/15478) (
b815cb18) - Fixed the issue that the restart buffer failed to mount to the DMA when memory encryption is enabled (https://github.com/espressif/esp-idf/issues/15228) (
cb9257da) - Fixed the drift issue caused by restart of the LCD screen (https://github.com/espressif/esp-idf/issues/15013) (
67bbe377) - Fixed the issue that when Flash encryption is enabled, PSRAM buffer fail to mount to the DMA (https://github.com/espressif/esp-idf/issues/15228) (
9a0e0978) - Fixed the issue that RGB_LCD stops working occasionally after software restart (
4393a0d0) - Increased the upper limit of PCLK frequency for RGB LCD (
0c909888) - Fixed wrong calculation for the pixel clock in the ESP32-P4 LCD_CAM (
0c909888) - Supported to simulate SPI/I80 interface LCD by Parlio peripheral (
96323188) - Fine tune MIPI DPHY PLL setting to generate the closest frequency (
59174716) - Support color conversion for MIPI LCD driver (
ad476afb) - Fixed wrong return type in
esp_lcd_new_panel_io_i2cwhen build for C++ project (e1a3ff15) - Updated the i2c_oled example to use LVGL v9. (
fc5b392c)
SPI_LCD
- Speed up the DC signal toggling in the SPI LCD IO driver (https://github.com/espressif/esp-idf/issues/15160) (
3195bdca)
LDO
- LDO can output the voltage reaching power rail 3.3V (
cf8521ab) - Output voltage is calibrated with eFuse data (
05beacad)
LEDC
- Fix potential assert failure in ledc_fade_stop due to race condition (https://github.com/espressif/esp-idf/issues/15580) (
95f8eb12) - Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2/P4 (
974910d4) - Fixed depending on gpio header but don't depends on it (https://github.com/espressif/esp-idf/issues/15174) (
ef5dad5b) - Deprecated ledc_timer_set() API, where its functionality can be completely replaced by ledc_timer_config() and ledc_set_freq() (https://github.com/espressif/esp-idf/issues/14884) (
aae5321c) - Fixed ledc_get_freq() returned frequency error due to calculation overflow (https://github.com/espressif/esp-idf/pull/14882) (
aae5321c)
LP_I2S
- Added LP I2S and LP VAD programming guides (
038a6667)
MCPWM
- Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (
4f56bba2) - GPIO pull-up/down will be automatically disabled when the driver GPIO pull-up/down flag is not set.(https://github.com/espressif/esp-idf/issues/15774) (
4bec8b5e) - Added MCPWM sleep retention support (
6b54dfc6) - Added description of special deadtime configurations and added checking in the driver(https://github.com/espressif/esp-idf/issues/14773) (
57eddeb3)
PARL_IO
- Supported to embed a BitScrambler program in the
parlio_tx_unit_transmitfunction (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
- Fixed a typo in the
PCNT_LL_MIN_LIM(https://github.com/espressif/esp-idf/issues/15554) (3447c723) - Supported step notify on ESP32H2 chip version v1.2 (
d2b87ace) - Added documentation about pull-up/pull-down (https://github.com/espressif/esp-idf/issues/14277) (
b79c7f0f)
PPA
- Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (
65044efa)
RMT
- Fixed the race condition when between
rmt_receiveand receive ISR (https://github.com/espressif/esp-idf/issues/15842) (da503640) - Enhanced the
rmt_receive_config_terror message (https://github.com/espressif/esp-idf/issues/15836) (da503640) - Added
RMT_ENCODER_FUNC_ATTRto decorate the RMT encoder functions (https://github.com/espressif/esp-idf/issues/15832) (1481ecbb) - TX channel can switch to different GPIO at runtime. (
f56cc82c) - Added a new encoder for RMT TX driver, it allows the whole encoding session being controlled by the BitScrambler program. (
34280444) - Fixed the panic when the number of received symbols is a multiple of the memory block size. (
54d7bec1) - Fixed the wrong reset code duration in the simple encoder example (https://github.com/espressif/esp-idf/issues/15498) (
ca2e1c71) - Use debug log for conditions where user buffer can't accommodate the received data. (https://github.com/espressif/esp-idf/pull/15225) (
b6c94a19) - Supported to set slower channel resolution. (https://github.com/espressif/esp-idf/issues/14760) (
e3cf1056) - Fixed the channel resolution divider rounding issue (https://github.com/espressif/esp-idf/issues/15092) (
4e2dad62) - Added a function to return the real clock resolution of a channel (https://github.com/espressif/esp-idf/pull/15074) (
0765659d) - Newly Added
- Enable the internal pull-up resistor in the onewire bus example (
8694f893)
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
- Fixed transfer timeout due to higher priority tasks (https://github.com/espressif/esp-idf/issues/13934) (
f2140813) - Fixed SDMMC peripheral deinitializating GPIO pins which were defined but not used due to slot width (https://github.com/espressif/esp-idf/issues/15328 https://github.com/espressif/esp-idf/issues/15330) (
de053738) - Request the SD card to send the number of the written write blocks (ACMD22) if write multiple blocks fails (CMD25). (
b2e0bd92) - Newly Added
- Fixed multiple definitions of SD Card example pins issue in project Kconfig file (
10a210d0) - Fixed all pins need to be set issue when using slot0 on ESP32P4 (
10a210d0)
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_pointon esp32h2 v1.2 and later. (d78f270b)
SPI Slave
- Fixed HD example and driver error with
addr&len not align to 64on ESP32-P4 (3b4f2a9a)
SPI Flash
- Added mutual exclusion between
CONFIG_SPI_FLASH_ROM_IMPLandCONFIG_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_IRAMfor 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
- Added a unified driver interface to support both TWAI and TWAI-FD peripheral (
a16f621e) - Fixed twai assert failed during recover (https://github.com/espressif/esp-idf/issues/9697)(https://github.com/espressif/esp-idf/pull/15484) (
991acde4) - Fixed C++ warning of macro
TWAI_GENERAL_CONFIG_DEFAULT(https://github.com/espressif/esp-idf/pull/15144) (db07b97a) - Fixed other node got BUS-OFF when twai init. (https://github.com/espressif/esp-idf/issues/14548) (
90e71bfa)
Temperature Sensor
- Fix the doc and return value is not consistent (https://github.com/espressif/esp-idf/pull/15850) (
e981f0b7) - Fixed the temperature sensor return wrong values when
ESP_WIFI_ENHANCED_LIGHT_SLEEPis enabled on esp32c6. (65577b9c) - Fixed temperature sensor sleep retention on esp32p4 (
9382c9a4) - Added temperature sensor calibration on ESP32-C2/C6/H2/P4 (
9677a492)
Touch Element
- Fixed the missing programming guide of Touch Element on ESP32-S3 (https://github.com/espressif/esp-idf/issues/15755) (
1522efa9)
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
- Eliminated the possibility of garbled data sent/received from the UART port during sleep process (
dbfb663b) - Added UART DMA driver support (
f66a750a) - 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) - Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (https://github.com/espressif/esp-idf/issues/15695) (
d11ccf81) - Add check for malloc success in uart examples (https://github.com/espressif/esp-idf/issues/13405) (
d11ccf81) - Added uart_detect_bitrate_bps API for data line bitrate detection (https://github.com/espressif/esp-idf/issues/14721) (
2ee8c066) - Updated uart_get_baudrate API documentation (https://github.com/espressif/esp-idf/issues/15449) (
2ee8c066) - Corrected the misleading in the driver to ensure clarity that the LP UART can't support very low baud rate (2400bps, 1700bps, etc.) (https://github.com/espressif/esp-idf/issues/15427) (
2fabe6ff) - Enlarged default task stack size for uart_async_rxtxtasks example to avoid stack overflow (https://github.com/espressif/esp-idf/issues/15363) (
fd2df5e2) - Updated programming guide to align configuration orders with the example codes (https://github.com/espressif/esp-idf/issues/13182) (
fd2df5e2) - Fixed the issue of UART wake-up failure caused by an incorrect UART wake-up threshold on the ESP32-C61 (
9c421495) - Resolved ESP32-P4 UART initialization get stuck issue when monitor through USB Serial JTAG port (
547fa88a) - Allowed TX and RX configure to the same pin in uart_set_pin (https://github.com/espressif/esp-idf/issues/14787) (
78a69051) - Fixed potential UART_SELECT_READ_NOTIF race condition (
78a69051) - Changed UART VFS read() function to directly return with the bytes available, instead of waiting for more bytes to reach the requested size (
50aeec2f) - Changed UART VFS read() to treat end-of-line characters as regular bytes, with no early return (https://github.com/espressif/esp-idf/issues/14155) (
50aeec2f)
USB
- Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (https://github.com/espressif/esp-idf/pull/15932, https://github.com/espressif/esp-idf/issues/15912) (
a652a847) - 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 (
5a0e1615) - Added support for OTG1.1 PHY on ESP32-P4 (
70ead76a) - Added select functionality to the USB CDC driver (
1fa268c7) - Fix tusb_midi example stack overflow (https://github.com/espressif/esp-idf/issues/14825) (
4b79cb96) - Newly Added
- Updated ESP32-P4 USB pins for mass production version (https://github.com/espressif/esp-idf/issues/16136) (
c8377123)
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
- Allocate DMA capable memory to external ram on ESP32-P4 (
ac12d560) - Fixed heap corruption (https://github.com/espressif/esp-idf/issues/15815) (
4b15ef70) - Added support for Low-Speed devices connected through Full-Speed HUB (https://github.com/espressif/esp-idf/issues/15683) (
0ead3627) - Fixed possible deadlock when closing a device that was not previously opened (
a3864c08) - Added support for multiple MSC devices in the USB MSC Host example. (
9f421f54) - Fixed host channel number calculation for ESP32-S3, ESP32-P4, and ESP32-S2. (
d53b0a91) - Added support for Low-speed devices, connected via external Hubs to Full-speed peripheral (
d7222cc8) - Fixed panic on Full Speed periodic endpoints on ESP32-P4 (
dfcc0b22) - Fix reaction on High-Speed NYET packet (
f029ad20) - Fixed spelling in USB HID Host example (https://github.com/espressif/esp-idf/pull/14738) (
e613fcde) - Fixed spelling in USB Host lib example (https://github.com/espressif/esp-idf/pull/14858) (
5532fa8e) - Fixed return value in the memory allocation failure case within `usb_host_client_register() https://github.com/espressif/esp-idf/pull/14859) (
1e7098fe) - Added support for 2 USB instances on ESP32-P4 (
1805efb0) - Newly Added
- Improved stability of the USB Host Library with external hubs (
191a24cb) - Added support for custom FIFO sizing via HAL API (
3fe9252c)
USB Serial JTAG
- Fixed wrong return value from
usb_serial_jtag_write_byteswhen encounter invalid input parameters (https://github.com/espressif/esp-idf/issues/15620) (e8c48dbd) - Add missing break statement (https://github.com/espressif/esp-idf/pull/15499) (
f884c4a9)
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
vTaskStepTickafter 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_TRACEis 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
- Fix secure OTA without secure boot issue for MMU page size configurable SoCs (https://github.com/espressif/esp-idf/issues/15936) (
29520e98) - Fix secure boot (ECDSA) build failure for ESP32-C6 target (https://github.com/espressif/esp-idf/issues/15856) (
f7398c5b) - Fixed a bug that resulted in a boot loop when a memory protection fault occurred on ESP32-S2 (https://github.com/espressif/esp-idf/issues/15359) (
e81a9285) - Fixed Memory protection interrupt check for ESP32S2 (PERI1 bus) (https://github.com/espressif/esp-idf/issues/15359) (
af0f270e) - Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C6 (
9ee8daf3)
ESP-TLS
- Fixes IPv6 connection failure when target is set to Linux(https://github.com/espressif/esp-idf/issues/15812) (
fd4f74a5) - Added option to set TLS handshake timeout. (
877057db) - Enabled secure element support for all chips. (https://github.com/espressif/esp-idf/pull/14785) (
43a72485) - Add support for async API for esp_tls_server_session_create (https://github.com/espressif/esp-idf/pull/14493) (
030c9957) - Added support for TLS-PSK authentication for servers (
36d5d8c3)
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_hostnamebefore the connection begins. No change is required if the application usesesp-tlslayer. (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()andesp_sha_dma()APIs, the SHA mode needs to be explicitly set using theesp_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()andesp_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 callesp_sha_set_mode()with the argumentSHA2_256. (b37d4b33) - Fixes failing TLS handshake when running HTTPS Server with TLS1.3 (
6e82c7a0)
Storage
- Fixed linking issues related to
chmod(https://github.com/espressif/esp-idf/issues/14174) (37652904) - Added support for std::filesystem (https://github.com/espressif/esp-idf/pull/13736) (
37652904)
FATFS
- Changed
VolToPartvariable to be non-const to allow for run-time modification (https://github.com/espressif/esp-idf/issues/14148) (93ff1aec) - Improved assert check semantics (https://github.com/espressif/esp-idf/pull/15247) (
f945dae6) - Added options
CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNTandCONFIG_FATFS_DONT_TRUST_LAST_ALLOCto control how free space is calculated for a FATFS volume (https://github.com/espressif/esp-idf/issues/15241) (58fbcfb4) - Make the diskio functions static (https://github.com/espressif/esp-idf/issues/15248) (
b0aac120)
LittleFS
- Added support for LittleFS image generation on Windows (https://github.com/espressif/esp-idf/issues/12900) (
4a444c80)
NVS
- Fixed erasing of old value if the new value has different type for blobs (https://github.com/espressif/esp-idf/issues/15559) (
0b8f661c) - Updated nvs storage examples and addded nvs console example to 'examples/storage/nvs' (
d69378cd) - 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) - Fixed
nvs_tool.pyto properly format JSON output. Additionally, cleaned up text minimal format output (https://github.com/espressif/esp-idf/issues/15274) (18f514a4) - Added support for reading encrypted NVS partitions by the bootloader (
b5ee0282) - Fix NVS partition being incorrectly marked as encrypted by the build system (
b5ee0282) - Added limited support of nvs for bootloader (
8255ba29)
VFS
- Removed leakage of std namespace from header file (https://github.com/espressif/esp-idf/pull/15656) (
decbd360) - Fixed incorrect level of log messages (https://github.com/espressif/esp-idf/issues/14327) (
b5ac4fbd) - Fix incorrect open and close behavior for
/dev/console(85dd8c05)
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_restarton esp32c6/esp32h2/esp32p4. (cceadc4c)
BOD
- Add callback function for brownout detector (https://github.com/espressif/esp-idf/pull/15661) (
ff165271) - Add RTC battery backup support on ESP32-H2 (
d8166220) - Remove config on P4 v0.x, use a fixed value around 2.52v instead (
0546805f)
Cache
- Support cache build for pure RAM app (
852466ea) - Fixed L1-to-L2 Cache auto-writeback stuck issue when L2 Cache is suspended (e.g. when in DFS) (
da316111) - Fixed
Cache_Count_Flash_PagesAPI wrong couting issue (https://github.com/espressif/esp-idf/pull/15262) (d6aff6d2)
Efuse
- Supported eFuses for ESP32-C5 ECO2 (v1.0) (
01e9f8f3) - Added efuse ADC calibration fields for ESP32-P4 (
ce608534)
MMU
- Fixed API thread-safety in
esp_mmu_map.h(https://github.com/espressif/esp-idf/pull/15564) (b45b29ae) - Fixed
esp_mmu_vaddr_to_paddrcannot figure out virtual addresses from PSRAM issue on ESP32P4 (f8ff9e47) - Supported call esp_mmu_paddr_find_caps with any physical address offsets (https://github.com/espressif/esp-idf/issues/14988) (
6616a759) - Newly Added
- No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (
908ff6e5)
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
- Supported configuring PSRAM to 80 MHz on ESP32P4 (
b4abab38) - Supported UnilC Octal PSRAM on ESP32S3 (
847ac1a7) - Fixed external RAM .bss and .noinit section vaddr calculations (https://github.com/espressif/esp-idf/pull/15513) (
b0f83425) - Fix incorrect calculation of used XIP PSRAM pages that lead to wastage of some physical pages of PSRAM thus leading to increase in available heap. (
37a4de8a) - Supported Quad PSRAM Error Correcting Code (ECC) feature on ESP32C61 and ESP32C5 (
cc181920) - Fixed bad timing when reading mode registers on Octal and Hex PSRAMs (
e02cde89) - Fixed ESP32 PICO-V3 psram enabled but not ignored issue (https://github.com/espressif/esp-idf/issues/14970) (
33c26371) - Newly Added
- Fixed PSRAM pointer check error issue when XIP_PSRAM is enabled on ESP32P4 (https://github.com/espressif/esp-idf/issues/15997, https://github.com/espressif/esp-idf/pull/15999) (
1a40b106)
TCP Transport
- add API to configure SSL cipher suites (https://github.com/espressif/esp-idf/pull/15868) (
081de6dc) - Added an API to configure the addr family (
aad91f9e) - Fixed API to correctly handle error conditions when the server sends data and an error simultaneously. (https://github.com/espressif/esp-idf/issues/14673) (
fcd70606) - Added interface to get underlying socket from transport (https://github.com/espressif/esp-mqtt/issues/282, https://github.com/espressif/esp-protocols/issues/636) (
2deeaece) - Fixed partial reads of Websocket header (https://github.com/espressif/esp-idf/issues/14704, https://github.com/espressif/esp-idf/pull/14706) (
cbbb85fe)
Toolchain
- Upgraded openocd version to v0.12.0-esp32-20250422 (
dc91d32f) - Upgraded Clang toolchain version to esp-19.1.2_20250312(https://github.com/espressif/esp-idf/issues/15731) (
0181d1b1) - Added standalone Clang libraries distribution as a tool (
0181d1b1) - Upgraded gdb version to 16.2_20250324 (
4bfb8975) - Add support to link with picolibc (enable with "CONFIG_LIBC_PICOLIBC=y") (
f297a9d4) - Upgraded toolchain version to esp-14.2.0_20241119 (
91858ef3)
Tools
- Added ability to read tool version from the file specified with
tool_info_filekeyword intools.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-pipinstall 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-8encoding with Pythonopen()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_PYTHONfor executingactivate.pyinexport.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_PATHenvironment variable for path detection in theexport.shscript by settingIDF_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_PATHvalue 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.txtfile storing the ESP-IDF version in each Python environment directory (4110d148) - Documented the need to set the
ESP_IDF_VERSIONenvironment 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
--unifyoption 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
- Fixed esp32c2 and esp32s2 TCP TX throughput shake issue (
121db0d7) - Added support for the ESP32C5 revision v0.2. (
7141b955) - Returned more information in ESPNOW send callback (
2b390b2b) - Added TX callback function for ieee80211_tx (https://github.com/espressif/esp-idf/issues/13319) (
2b390b2b) - Changed espnow sending callback function parameter
mac_addrtoesp_now_send_info_t. (2b390b2b) - Improve and enable bss max idle support for all chips (
683fd03a) - Separate the LR bit in PHY mode for station and SoftAP (https://github.com/espressif/esp-idf/issues/9978) (
488e1f88) - Added support for SoftAP SAE extended key (
80f172bb) - 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) (
45916582) - Added timer to send wake null after STA received association response (
a3bd31f3) - Added support for sending action frames on the target channel and remain on target channel for required duration. (
d826655f) - Added new API to get mac clock time (https://github.com/espressif/esp-idf/issues/15348) (
14b96764) - Modified the description of function 'esp_wifi_set_band' (
865adce2) - Enabled WiFi Aware (NAN) on esp32c5 & esp32c61 (
2e5e9fc4) - Added the missing brackets for the C++ guards for a few header files. (https://github.com/espressif/esp-idf/issues/14991) (
f99b9653) - Fixed the mesh connection failure in WPA3 mode after erasing flash (https://github.com/espressif/esp-idf/issues/14095) (
f2ae6813) - Added support for the ESP32-C61 revision v0.2. (
d00ad48d) - Removed support for the ESP32-C61 revision v0.1. (
d00ad48d) - Added support for 2040 coexist for SoftAP (
cc8bef39) - Added new event 'WIFI_EVENT_AP_WRONG_PASSWORD' in softAP to indicate stations trying to connect with wrong password. Applicable for authentication modes WPA-PSK, WPA2-PSK and WPA3-PSK(SAE). (
fae82cfa) - expended bit width of channel in rxctrl for ESP32C5/ESP32C61 (
ea55be3d) - Added support for Wi-Fi API and features on targets with no Wi-Fi capabilities by esp-extconn (
d30af2fb) - prevented compilation of Wi-Fi-related components when Wi-Fi is not supported (
09635fdd) - Fixed the STA TBTT interval update error when AP's beacon interval changed (https://github.com/espressif/esp-idf/issues/14720) (
6fdd3808) - Fixed bandwidth value is always 0 in esp_wfi_sta_get_ap_info() (
5c3cb06d) - Modify the type of "bandwidth" and comment in wifi_ap_record_t. (
5c3cb06d) - Removed support for the ESP32-C5 revision v0.0. (
653ce935)
Examples
- Fixed the delete queue error in ESP-NOW example (https://github.com/espressif/esp-idf/issues/15383) (
0902e70e) - Added GPIO output set command for cert test. (
3f29f791) - Fixed some issues in roaming app (
fbe9fcd7) - Fixed the issue of Blufi connecting to WPA or WEP routers failing. (
e75c170c)
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
- Updated the description for esp_mesh_send() return value (https://github.com/espressif/esp-idf/issues/14440) (
14b96764) - Enlarged the mesh TX task stack (
c4bde5df) - Newly Added
- Fixed the esp_mesh_scan_get_ap_record() error in chain topology (https://github.com/espressif/esp-idf/issues/16041) (
d2299ef3) - Fixed the mesh crash issue when changing mesh AP's authmode (
d2299ef3) - Fixed the mesh station sends data error on c5 (
60e884b4)
Supplicant
- Cleared SAE-PK capability in Assoc Request when not enabled at STA. (
f97fd749) - Added support for WPA-Enterprise in Station mode (
ce340fcc) - Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (
8a54378b) - Ensured disconnection with previously connected AP when initiating WPS. (
8a54378b) - Fixed DPP state machine related issues(https://github.com/espressif/esp-idf/issues/10615) (
b737136d) - Improved handling of group parameter A in H2E (https://github.com/espressif/esp-idf/issues/15691, https://github.com/espressif/esp-idf/pull/15692) (
9c75d796) - Increased WPS message timeouts to address interoperability issues. (
044de0b1) - Added domain name validation support for EAP connection. (
6b5ac56b) - Fixed send_confirm value for SAE confirm according to specification. (
6a633f3e) - Fixed crash when set config is called with changed password. (https://github.com/espressif/esp-idf/issues/15584) (
fb75c854) - Added support for Opportunistic Key Caching for Wi-Fi Enterprise Connection (
7ff63ac9) - Resolved WPS connectivity issue that caused failures when the station was already connected (
3d1ea229) - Added optimized PSK implementation, closed https://github.com/espressif/esp-idf/issues/15072 (
4cdd5087) - Fixed stack corruption in Wi-Fi wpa_supplicant's tasks(https://github.com/espressif/esp-idf/issues/15370) (
403cc24a) - Fixed memory leak occurring in SAE PK connection. (
7f1e4ebb) - Reduced WPS scan frequency to make it easier for users to enter the PIN on the AP. (
7bb6c67e) - Fixed issues reported by the static analyzer on GitHub (#15097, #15098, #15099). (
7a94d450) - Fixed some issues found through static analyzers (
c15e6e1f) - Added some implementation changes in roaming. (
950da105) - Enabled EAP workarounds by default (
c0755543) - Fixed issue observed during static code analysis (
afeefc9e) - Fixed assoc reject after WPS session (
b9253b4e) - Newly Added
- Disabled IP renew skip by default since most AP don't support it. (
8cf17632) - Fixed issues reported by static analyzer. (
8cf17632)
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)