github espressif/esp-idf v5.2.6
ESP-IDF Release v5.2.6

16 hours ago

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

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

Obtaining v5.2.6

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

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

Using git

To get this release, use the following commands:

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

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

Download an archive with submodules included

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

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

Major changes

Breaking Changes

  • Security: The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (ad73b58)
  • WI-FI: esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (25c1ad8)
  • 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. (046c0b5)
  • 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. (a40b0e2)
  • 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. (04438b1)
  • 15.4/MAC: Added a duration argument for ieee802154_receive_at() (a1a3fd1)

Changelog

15.4

MAC

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

Thread

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

Application Utilities

CJSON

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

ESP HTTP Client

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

ESP HTTPS Server

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

Provisioning

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

BLE

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

BluFi

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

Bluedroid

  • Fixed potential out-of-bounds memory access when resolve adv data (53dfc86)
  • Added BLE multiple connections examples. (5f7a1b0)
  • Supported multi-connection optimization vendor HCI command. (5f7a1b0)
  • Fixed the connection count limit in multi-connection. (5f7a1b0)
  • Adjusted L2CAP round robin msg send strategy. (5f7a1b0)
  • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (2892755)
  • Fixed failure to disconnect when device record is cleared (6f0fd4e)
  • Fixed issue that caused failure in "BTM_GetSecurityFlags" (6f0fd4e)
  • Fixed incorrect update of resolving_list_avail_size (6f0fd4e)
  • Fixed issue where resolving list was not updated after the oldest device was removed (6f0fd4e)
  • Fixed build failure when some BLE features are disabled (12761a5)
  • Fixed extended adv restart failure during reconnection. (a62362a)
  • Fixed BLE SMP state machine inconsistency on disconnection (ccda0fb)
  • Fixed null pointer assert in l2c_link_check_send_pkts (975bea8)
  • Fixed issue with deleting link key when classic Bluetooth is not used. (376593a)
  • Increased maximum attribute value length to 517 to prevent data loss. (a033a49)
  • Fixed validation logic for BLE GAP appearance configuration. (a033a49)
  • Added sync_cte_type in bluedroid PA sync function (6aec36c)
  • Added throughput mode for BLE SPP example. (8d3cc19)
  • Fixed missing event reporting in esp_ble_create_sc_oob_data. (11ea692)
  • Fixed BLE crash when disabling bluedroid host. (11ea692)
  • Fixed potential uint32_t overflow in BLE btu_start_timer. (11ea692)
  • Fixed memory leak issue when using dynamic memory and deinitializing the host. (11ea692)
  • 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. (11ea692)
  • Added esp_ble_gap_read_channel_map API to retrieve the BLE channel map of a connected device. (11ea692)
  • Added BLE eddystone sender example. (ba7c484)
  • Reported cte_type in periodic adv report if CTE feature is enabled (88c1a01)
  • Supported BLE iso in bluedroid host (b0f1d71)
  • Supported BLE CTE in bluedroid host (b0f1d71)
  • Supported BLE bluedroid host power control feature (b0f1d71)
  • Supported BLE bluedroid host connection subrating feature (b0f1d71)
  • Supported BLE vendor HCI event reporting (311f33c)
  • Supported BLE setting vendor event mask (311f33c)
  • Added support for the "Read Periodic Advertiser List Size" command. (4e6d209)
  • Added Read Long Characteristic Values example. (3d8f6f1)
  • Reduced bluedroid host bin size (0de2a4c)
  • Supported changing HID task size via Kconfig in the HID example(#15320) (d309e7c)
  • Fixed an issue where advertising data and scan response data were not reported together during BLE active scanning. (ba66243)

Controller

  • Fixed an occasional interrupt watchdog timeout issue in case of adv/scan or conn/scan coex scenario for ESP32-C2. (2bc90b1)
  • Improve security when receive connection request PDU with an invalid Access Address on ESP32 (29b25b5)
  • Supported the PAwR feature on ESP32-C6 and ESP32-H2. (797369b)
  • Optimized check Access Address when receive connection request PDU on ESP32 (8c81db2)
  • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32. (bbba4f5)
  • Support multiple connection optimization vendor HCI command on ESP32. (bbba4f5)
  • Fixed priority setting for BLE events on ESP32. (bbba4f5)
  • Fixed disconnection issue when coexisting with other BLE events on ESP32. (bbba4f5)
  • Fixed crash due to bandwidth full when updating connection params on ESP32. (bbba4f5)
  • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (2feca41)
  • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (2feca41)
  • Fixed BLE anonymous extended advertising filtering. (2feca41)
  • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (2feca41)
  • Fixed an occasional sync lost issue on ESP32-C6, ESP32-H2 and ESP32-C5. (22c184e)
  • Fixed an occasional assert issue in case of controller disable on ESP32-C2. (22c184e)
  • Fixed an occasional assertion issue during sync on ESP32-C6, ESP32-H2. (7ee856b)
  • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6, ESP32-H2. (7ee856b)
  • Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (a0a8a35)
  • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (a0a8a35)
  • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2. (cf25bf4)
  • Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2. (cf25bf4)
  • 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. (cf25bf4)
  • Fixed an occasional assertion issue during scanning on ESP32-C6. (cf25bf4)
  • Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (#15789) (9b9103c)
  • Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (e3e9262)
  • Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (e3e9262)
  • Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (e3e9262)
  • Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (e3e9262)
  • Fixed occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (b1d3a65)
  • Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (b1d3a65)
  • Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (b1d3a65)
  • Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (b1d3a65)
  • Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (b1d3a65)
  • Fixed MIC error disconnection when pairing with an iOS device on ESP32-C3 and ESP32-S3. (123e627)
  • Disable anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (4a49e2b)
  • Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (4a49e2b)
  • Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (4a49e2b)
  • Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (4a49e2b)
  • Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (f8d2e8f)
  • Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (f8d2e8f)
  • Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (f8d2e8f)
  • Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (100d130)
  • Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2. (100d130)
  • Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (100d130)
  • Fixed bluetooth controller flash only bug if hci-uart is enabled on ESP32-C3 and ESP32-S3 (88c1a01)
  • Fixed a heap assertion issue when enabling BLE and ESP32C2_REV_MIN_200 for ESP32-C2 v2.0 (a67f674)
  • Fixed an occasional load access fault issue when performing ext_conn creation for ESP32-C2. (a40b0e2)
  • Added definitions for bluetooth hci vendor commands and events (a40b0e2)
  • Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2. (5a0899e)
  • Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2. (5a0899e)
  • Added a function to maintain the connection when an instant pass issue occurs on ESP32-C2. (64288ca)
  • Fixed extended advertising interval upper limit issue on ESP32-C6 and ESP32-H2 (#15240) (64288ca)
  • Reduced controller bin size for ESP32-C3 and ESP32-S3 (bd3611b)
  • Fixed enhanced TX power setting and getting for legacy adv on ESP32-C3 and ESP32-S3. (8d3429a)
  • Fixed BLE assert lld_con.c 2387 on ESP32-C3 and ESP32-S3. (8d3429a)
  • Fixed compatibility issues during the encryption procedure on ESP32-C3 and ESP32-S3. (8d3429a)
  • Added BLE debug log module on ESP32-C3 and ESP32-S3. (fbcc36a)
  • Fixed scan duplicate filter failure when receiving ADV_DIRECT_IND for ESP32-C2. (ac5760d)
  • Added channel assessment function on ESP32-H2 and ESP32-C6. (ac5760d)
  • Added continuous connection function when instant pass issue triggers on ESP32-H2 and ESP32-C6. (ac5760d)
  • Fixed the issue where disconnection events were not reported as a slave on ESP32. (5670a06)
  • Enhance Access Address validation in compatibility mode on ESP32. (5670a06)

Mesh

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

NimBLE

  • Add connection failure event when connection fails (36773cb)
  • Added helper api's in nimble. (c91db96)
  • Update ble_gatts_show_local to show CPFDs and CAFDs. (976f011)
  • Fix include service definition handle being the same for all definitions. (976f011)
  • Added VSC for Set Scan Channel Bitmap (dbdb3d9)
  • Update count parameter correctly by considering offset. (98e3201)
  • Fix for attribute count mismatch between cached gatt db and actual db. (98e3201)
  • Fixed compilation issue due to BLE_GATTS flag (e37e13c)
  • Clear GATT service entries counter upon GATT deinit (0440c5a)
  • Add packet allocation retry for limited iteration (5ad898d)
  • Add timestamp information to HCI logging. (3a98c37)
  • Provide a way to make blufi advertising customizable. [ #16234 ] (e29f9e5)
  • Fix compilation issues when gatt caching is enabled in peripheral only mode (1264020)
  • Add a missing instance of ble_hs_unlock() in a corner case. (2d1c1a3)
  • Added parameter in peer_init() to allocate memory for included services (6377b2c)
  • Automatically initiate security and retry service request if service request fails due to insufficient security. (b3d4982)
  • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (b3d4982)
  • Wrap BLE service API with extern "C" (6298e6b)
  • Fix compilation issue when CSFCS is set to 0. (6298e6b)
  • Fixed issue of Adv report not observed in PAwR example. (ff55478)
  • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (eaededd)
  • Handle memory leak due to missing mempool_deinit call (3b0c5eb)
  • Add chip dependancy flag for Flow control feature (9dbbc9a)
  • Fixed incorrect comparison with gattc proc that can cause request-response mismatches (6693ca5)
  • Added fix for an async race condition with HCI outstanding packets counter (b8106e9)
  • Added handling for anonymous address type for whitelist (b8106e9)
  • Fixed UUID type error in GATT caching API to search for included services. (a43badf)
  • Added api's to fetch gatt cache info (a825b02)
  • Added option to enable stack to handle repeat pairing internally (28d343b)
  • Added runtime configurable support for observer role, security mode 1 level, and GATT caching (b7f7226)
  • Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (b7f7226)
  • Fixed LLS crash when no callback was registered for LLS event (b7f7226)
  • Added SPS callback event to expose changes in scan parameters (b7f7226)
  • Fixed incorrectly passed in GATT Caching disovery operations (b7f7226)
  • Enabled Connection Subrating bit in ESP32C6 (b7f7226)
  • Optimized nimble throughput example by extended adv support and switching between different Phy modes. (b0994e3)
  • feat(nimble): Added tutorials for PAwR examples (d924b24)
  • Fix sync handle assignment for PAwR connection (8b918ef)
  • Fixed incorrect OTA address type assignment (8446cfd)
  • Corrected event posting in Read Remote Features event handling [ Closes #15670 ] (51b965e)
  • Added missing ble_hs_unlock for periodic adv sync reattempt case. (7317312)
  • Fix conversion for min-max itvl of periodic adv param in example (daeceb7)
  • Fix SMP command allocation (e11caaa)
  • Add support for Vendor Event mask VSC (9c52dde)
  • Fix incorrect event deinit in gatt caching discovery (7482698)
  • Exposed the ble_gap_wl_tx_add API to add a device in whitelist (f9cbfdd)
  • Fixed pairing failure issue when SC only mode is selected (96876be)
  • Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (4fdc80d)
  • Update controller data length upon connection creation. (31fb069)
  • Handle application code compilation issue due to removal of link_estab structure (31fb069)
  • Deprecate BLE_GAP_EVENT_LINK_ESTAB event. (f1b3eab)
  • Save the gatt context in case of preemption (4459b5f)
  • Enhanced error handling by adding to print core error definitions (4459b5f)
  • Handle nested locks when BT_NIMBLE_DEBUG enabled (#15014, #15294, #15202) (4459b5f)
  • Restart adv / sync when periodic sync fails due to 0x3E (4459b5f)
  • Updated README.md by removing unclear line (#15284) (4459b5f)
  • Fixed nvs corruption due to BLE_ENV_ADV_DATA flag (4459b5f)
  • Handle not sending disconnect event if connect event was not sent (4459b5f)
  • Added offset information in GATT server long read context (4459b5f)
  • Fixed compilation issue observed when WARN_WRITE_STRINGS is set . [ PR: espressif/esp-nimble#84 ] (4459b5f)

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 . (a40b0e2)

Bluedroid

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

Controller

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

Build & Config

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

Classic Bluetooth

Bluedroid

  • fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (c0b36dc)
  • Cleanups and improvement of safety in string handling in Bluetooth examples (52a4768)
  • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (cce7a73)
  • Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (4b5bc33)
  • Added AVRCP callback event for notification of profile ON/OFF state (caa7653)
  • Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (28027d6)
  • Fixed the issue that L2CAP server stop operation does not report the ESP_BT_L2CAP_SRV_STOP_EVT event (55f921c)
  • Added events for l2cap register and unregister vfs (d563192)
  • Fixed write_read task stack overflow in l2cap example (d563192)
  • Fixed the issue with l2cap not using dynamic memory (d563192)
  • Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (d563192)
  • Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (aee70c6)
  • Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (fed9272)
  • Fixed memory leaks in SPP callback mode (90ea23b)
  • Fixed reporting of unexpected ESP_BT_GAP_DISC_STATE_CHANGED_EVT event upon ACL disconnection, due to uninitialized local variable (0e3b048)
  • 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. (0c94dc3)
  • Fixed incorrect records in SDP record search response using 16-bit UUID (41c2b79)
  • Fixed error type returned when searching for service records of SIM Access Profile(SAP) in SDP (41c2b79)

Controller

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

Coexistence

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

Core System

  • Fixed implementation of __atomic_test_and_set to be atomic (9270825)
  • fix c++ TLS classes destructors calls (#14360) (fb67260)
  • 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. (a488c9f)
  • Fixed esp_ptr_executable to specifically check if the pointer is in PSRAM memory on esp32p4. (64c7909)
  • Corrected the address used to fetch the application image header during system startup (1beb0bc)

ESP Event

  • Fixed event profiling not logging execution time and invocation number (#15041) (33a97b8)

Heap

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

Interrupts

  • Made the NMI interrupt free to use on Xtensa targets and added an example to show how to use it (#13629) (b96058c)

Log

  • Moved esp_log_writev to IRAM (4e30b88)

Newlib

  • Updated Newlib usleep() to always sleep for the desired sleep period or more but never less (#15132) (408d7ed)

Panic handling

  • Fixed multi-core race condition in the panic handler when enabling RTC WDT. (b68a6d9)
  • Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (#15166, #15018, #10110) (a0ba8c9)

Debugging

Apptrace

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

Core Dump

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

FreeRTOS

IDF Additions

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

IDF Kernel

  • Fixed an issue where automatic light-sleep can cause FreeRTOS ticks to jump and cause unexpected timeouts (#15642) (21a3ace)

LWIP

DHCP

  • Fixde DHCP server recv decline issue (1ad5d0e)

DHCP Server

  • Added support for multiple DNS servers in DHCP server functionality. (#15057) (2d9ed76)

ESP Netif

Low Power Features

  • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (5a4f675)
  • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (#16872) (ad3067d)
  • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset. (ad3067d)
  • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on esp32c6/esp32h2. (e2b8e00)
  • Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (d8e4249)
  • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on esp32p4/esp32c6. (4cb3bf8)
  • Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (6dc1044)
  • Allowed to keep SAR ADC power when using ADC_ULP_MODE. (#12426) (adfc9aa)
  • Fixed power leakage when external 32k slow clock source detection fails. (e9d48c8)
  • Warning the use of lightsleep GPIO/UART wakeup source if PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP option is enabled. (07f409e)
  • Fixed the issue that esp32c2 may fail to wake up after entering deepsleep with external 32 kHz oscillator. (28ebdd4)
  • Added sleep duration validity check in esp_sleep_enable_timer_wakeup. (#15255) (d6c2868)

ULP

LP Core

  • Fixed accumulation of wakeup cause bits in ULP (#15794) (e3bfa9a)

PHY

  • Added protection against double phy-disable operations by one modem source, which can result in hardware clock being switched off in coexistence scenario (ef0e87c)
  • Updated librtc.a to fix coexist problems on ESP32 (4145668)
  • Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (#16888) (97a7cba)
  • Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (8af1fc7)
  • Optimization of RX calibration in high-interference environments. (f715702)

Peripheral Drivers

ADC

  • Fixed ESP32-S2 ADC calibration loss resolution (#15671) (5244316)

Analog Comparator

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

GPIO

  • Calling gpio_reset_pin on an input only pin should not produce an error message (#17047) (300d52a)
  • Fixed the issue that on ESP32, the IOs with RTC functionality are not able to reflect GPIO sleep PU/PD configuration during light sleep (300d52a)
  • Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (#15797) (0702cf3)
  • Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (#14931) (f25eec6)
  • Forbidden to enable pull-up, pull-down on input-only IOs (f25eec6)

I2C

  • Report I2C NACK error log at debug level (339e6c4)
  • Fixed race condition issue (#15444) (dea307f)
  • Fixed stretch causes timeout in I2C probe (#15589) (dea307f)
  • Fixed array size of static array (#15583) (dea307f)
  • Fixed auto selection i2c slave device cause error (#15644) (dea307f)
  • Fixed clear bus issue in legacy i2c driver (#15638) (dea307f)
  • Fixed that fsm reset cause I2C scl frequency changed on ESP32-S2 (#15724) (dea307f)
  • Add api for customize i2c transaction interface for nonstandard i2c device (0aa4fe6)
  • Added a Kconfig option I2C_SKIP_LEGACY_CONFLICT_CHECK to disable the legacy driver conflict check (40fff63)

I2S

  • Fixed the sample rate slow down issue when using more than 4 slots in PDM RX mode. (6871196)
  • Added PLL240M clock source on S3 and C6 (#17056) (6871196)
  • Fixed the false buf catenate while use preload (#15775) (5512600)
  • Fixed clock not update issue when re-configure the slot (#15256) (dd30a79)
  • Fix uninitialize warning for the default macros (#15271) (dd30a79)
  • Fixed i2s_std initializer order for cpp compiler and guarantee all initializers cpp compatible (#15405) (dd30a79)
  • Fixed i2s inappropriate check and assign sequence (#15648) (524b957)
  • Added check for minimum sample rate (#15659) (524b957)
  • Fixed failure when GDMA is set IRAM_SAFE but I2S not (#15533) (251b05c)
  • Added check for I2S DMA buffer array allocation (#15607) (251b05c)

LEDC

  • Forced the new duty update to wait until its last duty update finishes for ESP32 (1e4482d)
  • Fix potential assert failure in ledc_fade_stop due to race condition (#15580) (47befdb)
  • Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2 (7d12731)

MCPWM

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

PCNT

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

RMT

  • Fixed the spurious RX done interrupts when the RX engine has been disabled on ESP32 (#15948) (3f2fa7e)
  • Supported to set initial level before any TX transmission (#16068) (3f2fa7e)
  • Enable the internal pull-up resistor in the onewire bus example (b861ac4)
  • Fixed the race condition when between rmt_receive and receive ISR (#15842) (171b912)
  • Enhanced the rmt_receive_config_t error message (#15836) (171b912)
  • TX channel can switch to different GPIO at runtime. (daedd40)
  • Fixed the panic when the number of received symbols is a multiple of the memory block size. (684e3b6)

SD_HOST

SDMMC

  • Fixed sdmmc initialization issue caused by CMD52 CRC error (9f74733)
  • Fixed transfer timeout due to higher priority tasks (#13934) (4d3b093)

SPI

SPI Master

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

SPI Flash

  • Fixed issue of escaping boundary check (8d31925)
  • Fixed flash encryption write verify (#15380) (f6bf893)
  • Added flash suspend chip version check on esp32h2 and esp32c6 (f6bf893)
  • Fixed build fail when rom_patch config disabled (#15229) (2af2884)

TWAI

Temperature Sensor

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

Touch Sensor

  • Fixed tie option take no effect issue. (5d9623d)
  • Fixed touch read WDT timeout issue on esp32 (#15629) (5d9623d)
  • Fixed concurrent issue in the legacy touch v1 (esp32) driver (5d9623d)

UART

  • Updated uart_get_baudrate API documentation (#15449) (5703323)
  • Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (#15695) (5703323)
  • Eliminated the possibility of garbled data sent/received from the UART port during sleep process (5703323)
  • Unsupported low baud rates (e.g., 2400bps, 1700bps) on LP UART now is properly reported (#15427) (899b08a)

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 (2bde2d8)

USB Device

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

USB Host

  • Added support for Low-speed devices, connected via external Hubs to Full-speed peripheral (6caedf5)
  • Added support for Low-Speed devices connected through Full-Speed HUB (#15683) (395302e)
  • Fixed possible deadlock when closing a device that was not previously opened (1800e0f)

USB Serial JTAG

  • Fixed wrong return value from usb_serial_jtag_write_bytes when input parameters are invalid (#15620) (765606f)

Power Management

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

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. (ad73b58)
  • Updated ecdsa 192 support for ESP32H2. (ad73b58)
  • Fixed a bug that resulted in a boot loop when a memory protection fault occurred on ESP32-S2 (#15359, #7656) (ec84f6c)
  • Fix secure boot (ECDSA) build failure for ESP32-C6 target (#15856) (9eca5ee)
  • Fixed Memory protection interrupt check for ESP32S2 (PERI1 bus) (#15359) (e2dd6f8)

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 e174fc9. (26ed75d)

MbedTLS

  • Update mbedTLS version to 3.6.4. (559a092)
  • 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. (046c0b5)

Storage

NVS

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

VFS

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

System Hardware

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

MMU

  • No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (46f35f9)
  • Fixed API thread-safety in esp_mmu_map.h (#15564) (34a9296)
  • Supported call esp_mmu_paddr_find_caps with any physical address offsets (#14988) (d08c883)

MSPI

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

PSRAM

  • Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3 (42a6ef8)
  • Supported UnilC Octal PSRAM on ESP32S3 (857c712)
  • Fixed external RAM .bss and .noinit section vaddr calculations (#15513) (14ab34f)

TCP Transport

  • Added an API to configure the addr family (c78a0c5)
  • Fixed API to correctly handle error conditions when the server sends data and an error simultaneously. (#14673) (c1ef20b)

Toolchain

Tools

  • Added requirements file for the new IDE feature of installing Python packages for IDE support (a884d70)
  • Explicitly disabled pip 'user' option, when installing ESP-IDF python virtual environment. (#16189) (1a4fd9b)
  • Fixed idf_tools.py install tools@version command to be able to install specific tool versions. (e2e209c)
  • Updated ccache version to 4.11.2 (espressif/idf-installer#305) (e5fb479)
  • Fixed processing of packages with dots in their names in Python dependency checks (cc0f7db)
  • Fixed deprecation warnings when using extractall() on Python 3.12 and newer (92a165d)
  • Added input validation of optional install features (0a8d338)
  • Switched to flashing ESP32-C3 with stub when the USB Serial/JTAG mode is used (6c6ea27)
  • Avoided generating intermediate placements without sections in ldgen (5e577dc)

WI-FI

  • Added support for SoftAP SAE extended key (e38272a)
  • esp_wifi_set_config would returned ESP_ERR_WIFI_STATE when wifi was in connecting state. (25c1ad8)
  • Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (cbc19ed)
  • Fixed STA BSS max idle period always use default value (d19cb14)
  • Fixed sleep without sending sleep null when enable BSS max idle (d19cb14)
  • Fixed STA cannot send keep alive when receive UDP packets (d19cb14)
  • Fixed channel TX power limitation does not take effect when connected AP switch channel (d19cb14)
  • Added the missing brackets for the C++ guards for a few header files. (#14991) (bd186a3)

Examples

  • Supported 11ax rate for cert test. (47b1984)
  • Added GPIO output set command for cert test. (f715702)
  • Fixed the delete queue error in ESP-NOW example (#15383) (8300a1e)

MAC

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

Mesh

  • Fixed the mesh crash issue when changing mesh AP's authmode (e38272a)
  • Fixed the esp_mesh_scan_get_ap_record() error in chain topology (e38272a)
  • Updated the description for esp_mesh_send() return value (#14440) (b2cd934)

Supplicant

  • Added support for WPA-Enterprise in Station mode (3046997)
  • Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (9916fbe)
  • Fixed pmksa expiration caused by sntp time synchronization issue. (a75f3cb)
  • Added check for WPS-PBC overlap detection in dual band. (488ac50)
  • Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (488ac50)
  • Ensured disconnection with previously connected AP when initiating WPS. (488ac50)
  • Cleared SAE-PK capability in Assoc Request when not enabled at STA. (5c9f282)
  • Increased WPS message timeouts to address interoperability issues. (d4e4efd)
  • Fixed send_confirm value for SAE confirm according to specification. (ae079cc)
  • Added optimized PSK implementation, closed #15072 (7b18d6b)
  • Added domain name validation support for EAP connection. (486dfde)
  • Added some implementation changes in roaming. (c3d5d5d)
  • Resolved WPS connectivity issue that caused failures when the station was already connected (ea24995)
  • Fixed memory leak occurring in SAE PK connection. (d7b13d0)
  • Reduced WPS scan frequency to make it easier for users to enter the PIN on the AP. (90be932)
  • Fixed issues reported by the static analyzer on GitHub (#15097, #15098, #15099). (404f5d5)

Vendor

  • Added more check when receiving ESP-NOW data (58d15fd)
  • Fixed the issue that STA connection information loss LR info on ESP32C6 (cea6852)
  • Fixed the scan information error in LR only mode (b2cd934)

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.