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

13 hours ago

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

ESP-IDF v5.2.4 is a bugfix update for ESP-IDF v5.2.

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v5.2.4.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

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

Major changes

This is the list of changes since release v5.2.3:

Major Features

  • Supported ESP32-C2 chip revision v2.0 (a83eb05)

Breaking Changes

  • SPI Flash: Removed auto suspend support for XMC-C flash series (1a389cc)
  • SPI Flash: Removed XMC-C suspend support because there is risk that erase operation might never finishes (1a389cc)
  • MbedTLS: MbedTLS option MBEDTLS_ECP_FIXED_POINT_OPTIM is disabled by default to save on significant (~27KB) flash footprint. This allows easier migration from IDF 4.x to 5.x release. If the performance is desired and ECC accelerator is not available then the config can be turned on. (2ea3334)
  • MbedTLS: Support for SHA3 operations is now configurable and disabled by default to save flash size. The config can be enabled if an application needs to perform SHA3 operations. (2ea3334)
  • 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 ESP32H2, this option is completely removed. (b3b14bd)
  • Internal RC32K clock is unstable at extreme temperatures and is not recommended for use. (b3b14bd)

Known Issues

  • BLE: The RSSI measurement using ESP32-H2 chip revision v1.2 is 10 dBm higher than the actual value.

The known issue will be fixed in release v5.2.5.

Changelog

802.15.4

802.15.4 MAC

Added

  • Set 802.15.4 energy scan duration before cca (ce956ec)
  • Supported IEEE802.15.4 ISR callbacks registration feature (4e0b39f)
  • Introduced a series of APIs to set/get 15.4 O-QPSK 2.4G PHY txpower for each channels (50fe685)
  • Supported rx buffer and txrx statistics in 802.15.4 debugging mode (1408102)
  • Supported configuring 15.4 PTI at runtime (721def3)
  • Supported setting/getting ACK timeout APIs (87ea365)

Fixed

  • Returned ESP_FAIL if enh-ack generating logic was not implemented. (da635ec)

Thread

Added

  • Added OpenThread dataset changed event (4e88543)
  • Enabled vendor hooks for rcp operating in spi mode (9ce3654)
  • TSupported Thread Radio Encapsulation Link (TREL) feature (9ce3654)
  • Added set dns server address API for Thread network interface (a40f7af)
  • Supported custom header file for openthread configuration (7f6cb15)
  • upported RCP compatibility mismatch error handler (be05f8d)
  • Supported to allocate NAT64 session from PSRAM. (be05f8d)
  • Enabled bbr feature to support multicast by default (be05f8d)
  • Supported modifying port and txt in SRP server (be05f8d)
  • Added Thread connect support in protocol_common component (eb4a519)
  • Supported otPlatRadioGetPreferredChannelMask, added a configuration to set the preferred channel mask. (50fe685)

Changed

  • Replaced NETCONN_EXT_RESOLVE_HOOK with DNS_EXT_RESOLVE_HOOK to support more application layer protocols (c92f5db)
  • Updated openthread submodule (005c5ce) (be05f8d)

Fixed

  • Fixed SRP server to support zero number of subtype item when updating service (0f5b20f)
  • Fixed the conflict in the DNS hook when both Wi-Fi and Thread are enabled (a40f7af)
  • Fixed the bug that 3-wire external coexistence on ESP32-H2 does not work properly. (be05f8d)
  • Fixed the issue of incorrect duration and channel configuration in otPlatRadioEnergyScan calls (11888be)

Zigbee

Changed

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

Removed

  • Removed the esp_zigbee_rcp example (f1a28c5)

Application Utilities

Added

  • ESP HTTPS OTA: Added API to retrieve the most recent status logged from the HTTP response. (505625f)
  • Provisioning: Added support for Notify attribute in provisioning service (4fb04ce)

Fixed

  • Fixed build errors when only TLS 1.3 is enabled (b369dfe)
  • Fixed issue with PUT requests with async handler (#14196) (450d537)
  • Provisioning: Fixed hostname resolving for IPv6-only host (214910f)
  • ESP HTTP Client: Fixed connection close condition check for a case where no explicit errno is set (#14724) (c19a00b)
  • ESP HTTP Client: Include port number to the URL returned by the API esp_http_client_get_url(). (7351290)

Bluetooth Low Energy (BLE)

Added

  • Documentation: Added Bluetooth SIG Qualification information to API Guides. (8394e29)
  • Documentation: Added BLE Getting Started Tutorials (Chinese version) to Espressif Programming Guide, including BLE Introduction, Device Discovery, Connection, and Data Exchange. (7aa63a9)

Fixed

  • Fixed crash in BLE HID host example during logging (aabe255)

Bluetooth Low Energy Controller

Added

  • Supported for BLE scanning and initiating state coexistence on ESP32. (5dbb1cf)
  • Added config to enable or disable BLE channel assessment and ping procedure on ESP32. (d5cd3b7)
  • Added config for whether to disconnect after the instant of ACL control procedure has passed on ESP32. (81c4470)
  • Added a verification step for the Access Address within the CONNECT_IND PDU on ESP32. (81c4470)
  • Supported resolving peer RPA to identity address when creating connection on ESP32-C3 and ESP32-S3. (a10be2b)
  • Supported external 32k oscillator as Bluetooth sleep clock on ESP32/C3/S3 (ff42187)
  • Added parameter validation for Periodic advertising enable on ESP32-C3 and ESP32-S3. (a10be2b)
  • Provided DTM configuration command in HCI example. (3c799b3)
  • Added a verification step for the Access Address within the CONNECT_IND PDU on ESP32-C3 and ESP32-S3. (455ea95)
  • Supported for running controller code in flash-only mode on ESP32-C3 and ESP32-S3 (6c8c6ce)
  • Supported for putting code in flash on ESP32-C2 (e186bba)
  • Supported for putting BLE code into flash on ESP32-C6 and ESP32-H2. (72d91b5)

Changed

  • Changed the maximum TX power to +20dBm on ESP32-C3 and ESP32-S3. (a5d128b)
  • Updated the BLE rom.ld file for ESP32-C2 v1.0, v1.1, v1.2. (72d91b5)
  • Updated the BLE rom.ld file for ESP32-C2 v2.0. (b7d0eeb)

Fixed

  • Fixed BLE assert in lld_evt.c at line 2353 on ESP32. (d5cd3b7)
  • Fixed interrupt watchdog timeout when shutdown BT controller on ESP32. (d5cd3b7)
  • Fixed the issue where the BLE connection can't be established when initiating and advertising coexist on ESP32. (81c4470)
  • Fixed assert in ke_mem.c at line 409 when controller resets on ESP32. (81c4470)
  • Fixed the issue where scan could not be reset when the Controller was reset during scanning on ESP32. (95ac2b1)
  • Fixed early wake-up during light sleep when using the RC oscillator on ESP32-C3 and ESP32-S3. (c842477)
  • Fixed BLE TX power retrieval failure on ESP32-C3 and ESP32-S3. (c842477)
  • Fixed extended connectable advertising data length check on ESP32-C3 and ESP32-S3. (ad8f970)
  • Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 revision v1.1. (d43f3b9)
  • Fixed peer address type error in HCI LE meta event on ESP32-C3 and ESP32-S3. (a10be2b)
  • Resolved assertion failure “assert lld_scan.c 1728, param 00000000 00000000” on ESP32-C3 and ESP32-S3. (a10be2b)
  • Fixed BLE assert rwble.c 505 param 00400010 on ESP32-C3 and ESP32-S3. (a10be2b)
  • Fixed setting random address failed when extended advertising is enabled on ESP32-C3 and ESP32-S3. (a10be2b)
  • Fixed that the resolvable private address does not change when light sleep is enabled on ESP32C3 and ESP32S3. (455ea95)
  • Fixed BLE 5.0 duplicate scan issue for chained packets on ESP32-C3 and ESP32-S3. (455ea95)
  • Fixed BLE assert ke_mem.c 267 on ESP32-C3 and ESP32-S3 (b00f4a4)
  • Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 and ESP32-S3. (087adbe)
  • Fixed an issue that failed to establish a connection using a resolvable private address on ESP32-C2. (72d91b5)
  • Fixed an occasional ACL disconnect issue with long running time on ESP32-C2. (1a64da0)
  • Fixed an occasional ACL packet loss issue when Central frequently sends data on ESP32-C2. (1a64da0)
  • Fixed an occasional WDT issue with long running time on ESP32-C2. (1a64da0)
  • Fixed an issue where the scan window occasionally became smaller than expected when light sleep was enabled on ESP32-C2. (6e07162)
  • Fixed an issue where extended scan failed to correctly set the coexistence scheme status on ESP32-C2. (6e07162)
  • Fixed an occasional issue where ADV fails to transmit on channel 38 on ESP32-C2. (6e07162)
  • Fixed occasional assertion issue when enabling logging on ESP32-C2. (9b100a3)
  • Fixed an occasional assertion issue when msys memory cannot be obtained on ESP32-C6 and ESP32-H2. (72d91b5)
  • Fixed an issue where the default TX power of connection is incorrect after setting the scan TX power on ESP32-C6 and ESP32-H2. (72d91b5)
  • Fixed an issue that failed to establish a connection using a resolvable private address on ESP32-C6 and ESP32-H2. (72d91b5)
  • Fixed an occasional ACL disconnect issue under multiple connections on ESP32-C6 and ESP32-H2. (72d91b5)
  • Fixed a occasional WDT issue in multi-connection scenarios on ESP32-C6. (cc237b5)
  • Fixed an occasional ACL disconnect issue when updating connection parameters on ESP32-H2. (cc237b5)
  • Fixed an occasional issue where BLE fails to send ADV packeting when Wi-Fi keeps scanning in the coexistence scenario on ESP32-C6. (0587ac3)
  • Fixed occasional crash issue in low memory scenarios on ESP32C6 and ESP32H2. (dfced63)
  • Fixed occasional crash issue in multi-connect scenarios on ESP32-C6. (9b100a3)
  • Fixed occasional ACL data packet loss issue when using UHCI on ESP32C6 and ESP32H2. (9b100a3)
  • Fixed memory leak issue when deinit URAT HCI on ESP32-C2, ESP32-H2 and ESP32-C6. (9b100a3)
  • Fixed occasional connection supervision timeout issue when coexisting with WiFi and light sleep enabled on ESP32-C6 and ESP32-H2. (48e11e6)

Removed

  • Remove BLE creating connection assertion when the connection already exists on ESP32. (50f5090)

ESP Bluedroid Host

Added

  • Added BLE get started examples for Bluedroid. (2d582e8)
  • Added config for saving BLE bonding keys to NVS flash. (e3ae161)
  • Added BLE 5.0 throughput examples. (3cec09f)
  • Added API to set BLE supported channel selection algorithm. (f724330)
  • Added BLE connection ID parameter for ESP_GATTS_RESPONSE_EVT. (beda0b5)

Changed

  • Optimized the references to BLE GATT related APIs. (ce62b58)
  • Refactored the print for gatt_server and gatt_client example. (13ad213)
  • Refactored the print for BLE examples. (13ad213)

Fixed

  • Fixed the issue where the BLE channel selection algorithm event was not reported. (30f9f9f)
  • Fixed event reporting upon completion of preferred connection parameter settings. (30f9f9f)
  • Fixed BLE connection creation failure because of invalid own address type. (7136508)
  • Fixed Classic Bluetooth build failure when enabling dynamic memory and disable BLE (537190a)
  • Fixed BLE build failure when enabling dynamic memory with BLE 5.0 (c233332)
  • Fixed crash issue in BLE SMP when a disconnection process is ongoing (36dffb8)
  • Fixed error when writing Client Supported Features characteristic. (32dce28)
  • Fixed BLE handle check for GATT API. (43ec6b4)
  • Fixed access fault when reading BLE controller information fails. (beda0b5)

ESP NimBLE Host

Added

  • Created a function which can make CCCD flags configurable (afc8010)
  • Added additional PAwR support for ESP IP (81bce81)
  • Added HCI Read Remote Version Information command. (81bce81)
  • Added ATT Tx queue cleanup during link disconnection (6a29f58)
  • Added a function for printing HCI error definitions (baef4f2)
  • Added support for Multiple Variable Length Notifications. (f8f9805)
  • Added support for Multiple EATT bearers. (f8f9805)
  • Added support of LE GATT Security Level Characteristic (f8f9805)
  • Added menuconfig option to enable SC only mode. (f8f9805)
  • Added support for ATT over Enhanced L2CAP Credit Based Flow Control Mode. (f8f9805)
  • Added support for AD Types Advertising Interval - Long, LE Supported Features, and Encrypted Advertising Data (f8f9805)
  • Added menuconfig option to enable L2CAP Enhanced COC (f8f9805)
  • Added support for PAwR feature (f8f9805)
  • Added host config to enable/disable SC Only mode (f8f9805)
  • Added a function for printing HCI error defination. (c19ac46)
  • Added support for bidirectional data transfer between SPP client and server (4de20a9)

Changed

  • Updated a check to assign correct peer OTA address type (baef4f2)
  • Updated the set_data_len API to use the correct parameter when BLE 5.0 support is disabled (b3a1af0)

Fixed

  • Fixed compilation warnings in nimble examples. [ Closes https://github.com//issues/15157 ] (e5da868)
  • Ensured proper cleanup of local and peer security records during unpairing (81bce81)
  • Reset global variables during link disconnection (81bce81)
  • Corrected storing method of csfc to nvs (e248c59)
  • Fixed compilation issue for combination of Ext Adv and Reattempt connection flag. (905a83e)
  • Fixed compilation issues when BLE_MAX_STORE_BOND is set to 0. [ https://github.com//issues/14712 ] (c3681aa)
  • Fixed memory leak issue in BluFi Example (baef4f2)
  • Added change to check for invalid offset (baef4f2)
  • Changing esp_rom_printf to ESP_LOGI when memory allocation fails (ae21841)
  • Corrected link_estab event handling parameters (c9787fe)
  • Fixed Device Information, Battery Level service and Scan Parameters (f8f9805)
  • Fixed issue in L2CAP regarding incorrect comparison between SDU length and MTU/MPS (f8f9805)
  • Added fix to clear IRK from controller when clearing keys from NVS during signed write operation (f8f9805)
  • Fixed memory issue in multiple L2CAP COC connections. (f8f9805)
  • Fixed issues in connection subrating request. (f8f9805)
  • Fixed a crash issue in the read multiple variable length callback (f8f9805)
  • Added fixes for CVE-2024-(47248/47249/47250/51569) vulnerabilities for nimble (91baeeb)
  • Fixed compilation issue in esp_hid_host example (1c4a310)
  • Replace ESP_LOG* with esp_rom_printf in controller context callback (0b4e4f6)
  • Resolved watchdog due to memory exceed prints (dda2ba1)
  • Nimble Error logs in case of memory overflow/failure (0f4b994)
  • Fixed the initialization sequence for LL and host transport (24d39de)
  • Fixed compilation warning observed in clang based builds (ba10acd)
  • Added change to set data length once connection is created. (ce5f2d1)
  • Fiexed the crash issue of examples/bluetooth/nimble/ble_multi_conn (76f0060)
  • Registered a dummy host callback in the stack deinitialization procedure (3827dd0)
  • Fixed the deinit sequence in blufi example. (b5af26c)
  • Added a change to print address of an advertising instance (60bd122)

BluFi

Fixed

  • Fixed potential out-of-bounds memory access issue in Blufi example. (9587317)
  • Fixed crash issue in Blufi example during prepare write operation. (8bd6d9a)
  • Fixed Blufi initialization failure after deinitialization on ESP32(#14898). (aabe255)

ESP-BLE-Mesh

Added

  • Added macro BLE_MESH_V11_SUPPORT to enable or disable BLE Mesh v1.1 features (7a20cee)

Fixed

  • Reduced the flash size occupied by BLE Mesh (2a19808)

Bluetooth Common

Added

  • Added support for converting BT HCI logs to btsnoop format. (aabe255)

Build & Config

Added

  • Supported component property COMPONENT_SOURCE which determines the override precedence among the components with the same name (b79d811)

Classic Bluetooth

Classic Bluetooth Bluedroid Host

Added

  • Added HFP callback event for notification of profile ON/OFF state (5107c17)

Fixed

  • Fixed access NULL in HFP callback handler. (e4a9159)
  • Fixed the incorrect UUID obtained at the application layer due to byte alignment issues (b2219fb)
  • Disconnect SDP connection on receiving incorrect response or the ACL connection will never be released (2facc4d)
  • Fixed AVRCP compatibility issue on absolute volume synchronization (cbaf87a)
  • Fixed memory leak issue in SCO when disabling Bluedroid (2506664)
  • Fixed protocol mode mapping bug in esp_hid component(#14232) (fc1c79e)
  • Fixed not deep copy service_name and user1_ptr in SDP search complete event (c5c1985)
  • Fixed not release BTC SDP record memory after it has been created successfully (c5c1985)
  • Limited SDP service discovery operation when the previous discovery is not finished (c5c1985)
  • Fixed not clearing the mode request status which causes unexpected exit of sniff mode. (c467c8e)
  • Fixed the issue in HFP that AT commands transmission will not exit current sniff mode by modify power management configuration lookup tables (98618d7)
  • Added definition of minor class of COD for peripheral major class and set it in HID device related examples(#13622) (fc1c79e)

Classic Bluetooth Controller

Added

  • Added Vendor-specific HCI command to update local Bluetooth clock on ESP32 (420bf72)

Fixed

  • Added the check of the range of LAP in HCI_Periodic_Inquiry_Mode command handler on ESP32 (470d405)
  • Fixed missing critical protections on linked-list structure of (e)SCO buffers on ESP32 (02935a7)
  • 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 (92bfc48)
  • Fixed the issue where the pause and resume encryption requests were not initiated after the link key upgrade completion on ESP32 (92bfc48)
  • Fixed zero attempt value set by role switch which cause fatal hardware error on ESP32 (420bf72)
  • Fixed missing of critical protection for the free method of (e)SCO buffers on ESP32 (420bf72)
  • Fixed duplicated encryption restart process when new lk type is semi-permanent key on ESP32 (420bf72)
  • Fixed the issue where HCI_Encryption_Change was not reported to host after changing the key type, even when the encryption mode was correctly changed via HCI_Set_Connection_Encryption command on ESP32 (420bf72)
  • 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. (72c8dff)
  • Fixed crash upon name request from peer device without setting local device name on ESP32 (81c4470)
  • Set the QoS value to the minimum value if the calculated QoS is less than the minimum on ESP32 (81c4470)
  • Fixed access of NULL pointer in the (e)SCO frame end ISR after the SCO link is disconnected on ESP32 (470d405)
  • Fixed the wrong logic in the key exchange when LMP transaction collision occurred (470d405)
  • Fixed the using of wrong error codes in the transaction collision of role switch (470d405)
  • Removed an improper assertion statement in SCO module (470d405)

PHY

Added

  • Supported PHY changes for ESP32-H2 v1.2 (cce96ba)
  • Added cert_test support for ESP32, ESP32-C2, ESP32-C6, ESP32-H2 and ESP32-S2 (#11972) (4f3981a)

Wi-Fi

Added

  • Supported ESP32-C2 chip rev2.0 Wi-Fi (d450c81)

Fixed

  • Prevent compilation of Wi-Fi-related components when Wi-Fi is not supported (59cf088)
  • Fixed configuration related to SPIRAM_IGNORE_NOTFOUND (71dde49)
  • Fixed potential crashes in WiFi-netif APIs from invalid arguments (#8702) (d4b7c38)
  • Fixed the STA TBTT interval update error when AP's beacon interval changed (#14720) (9860813)
  • Fixed the issue of Blufi connecting to WPA or WEP routers fail. (9ad543c)
  • Fixed the issue that default wifi_config.ap.sae_pwe_h2e is not correct (6050f35)
  • Fixed the issue of inaccurate calibration warning information.(#14963) (9ad543c)

Wi-Fi MAC

Added

  • Added FTM calibration values for ESP32-C6 (288e8c6)
  • Added protect for SoftAP when sending management frame to stations which are not connected (118ae2a)
  • Added a parameter to enable or disable send QoS NULL to keep live during TWT (f42bc63)

Changed

  • Changed SoftAP default dtim_period to 1 (71dde49)
  • Improved internal error propagation in esp_wifi_set_mode API (13c2660)

Fixed

  • Fixed incorrect ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME (324c7ef)
  • Fixed the issue where SoftAP has rebooted but the connected station did not disconnect. (24c9812)
  • Fixed the issue that SoftAP would recv non-authed associate request (118ae2a)
  • Prevented the use of incorrect channel list during simultaneous scans. (15c3250)
  • Fixed crash when station issues disconnect during connection establishment and 'failure_retry_cnt' is set in station configuration (9d7bf28)
  • Fixed wrong reason code when SoftAP application issues a disconnect for station (3016c2e)
  • Fixed AMPDU to NORMAL causes free buffer twice issue. (9a9a813)
  • Fixed the issue that STA connects twice simultaneously. (9a9a813)
  • Fixed STA fail to sleep when connecting to connected AP. (9a9a813)
  • Fixed the issue that association failed In WPA3 encryption mode. (9a9a813)
  • Fixed FTM bandwidth related issues in AP-STA mode (cdd9996)
  • Fixed the issue that the STA could not connect to AP due to authentication timeout after association was refused temporarily by certain APs (e297e16)
  • Fixed the issue that the STA fail to connect to a shared WEP AP. (b0f63c5)
  • Fixed issue of increased stack usage when 'failure_retry_cnt' is set in station configuration and Wi-Fi driver internally re-tries connection attempts (f23a4dc)
  • Fixed ESP32-C6 max_idle period is 1 cause watchdog issue (d81b820)
  • 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). (6a46577)
  • Fixed wrong reason code in some cases for 'WIFI_EVENT_AP_STADISCONNECTED' event when PMF (Protected Management Frame ) enabled (118ae2a)

ESP-WIFI-MESH

Fixed

  • Enlarged the mesh TX task stack (9860813)
  • Fixed the delete group id error in Wi-Fi mesh (#14735) (9860813)
  • Fixed the mesh connection failure in WPA3 mode after erasing flash (#14095) (6050f35)

Wi-Fi Supplicant

Added

  • Added support for SAE rejected groups (0b2e6d6)
  • Added a check on hostapd instance while handling an Auth frame (2b35c55)

Fixed

  • Enabled EAP workarounds by default (611ddca)
  • Fixed associate reject after WPS session (501f4ab)
  • Fixed security vulnerabilities related to sae rejected groups (0b2e6d6)
  • Allowed WPA-AES connection after WPS (90b9629)
  • Fixed concurrency issue during WPS registrar/SoftAP deinit (90b9629)
  • Fixed the issue where supplicant deinitialization may miss the internal WAPI deinitialization. (78cf301)

ESP Vendor Feature

Added

  • Supported esp_wifi_80211_tx() using 11ax rate to send (59cf088)
  • Added type check in ESP-NOW (9860813)
  • The AES IV can be random value for ESPTouch v2 (60beb52)

Coexistence

Added

  • Supported lower coexistence power consumption when Wi-Fi disconnects from AP (5945ee4)
  • Supported Wi-Fi to wakeup by listen interval/DTIM period when coexisting with BT init only (5945ee4)

Changed

  • Updated coexistence power management period when Wi-Fi ps type being changed (324c7ef)

Fixed

  • Fixed the issue that data packets take several seconds to be sent when coexisting with BLE start and stop scenarios. (9a9a813)
  • Fixed the issue that multicast packet loss when listen interval is not equal to 1 in coexistence scenarios. (9a9a813)
  • Fixed external coex build fail issue. (cac1db6)
  • Fixed the issue of ESP32-C6 enable external coexist failure when enable power management for station when disconnected. (5945ee4)

Security

Added

  • MbedTLS: Moved ESP32-C2 ROM API mbedTLS feature from experimental to a fully supported feature. (3f72cc5)
  • MbedTLS: Supported ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (b20225d)
  • MbedTLS: Added countermeasure for ECDSA sign operation on ESP32-H2 (chip revision < v1.2) (2b2869a)
  • Flash Encryption: Support XTS-AES pseudo round function on ESP32-H2 chip version v1.2 (b8b0046)
  • MbedTLS: Support AES pseudo round function on ESP32-H2 chip version v1.2 (b8b0046)

Changed

  • MbedTLS: updated the MbedTLS version to 3.6.2 (f7b34f2)

Fixed

  • MbedTLS: Reduced application binary size by disabling the mbedtls options MBEDTLS_ECP_FIXED_POINT_OPTIM and MBEDTLS_SHA3_C by default. (2ea3334)
  • MbedTLS: Added new config option CONFIG_MBEDTLS_FS_IO for filesystem related functions (#14409) (e8058df)
  • MbedTLS: Fixed ESP32-C2 ROM ECO1 mbedTLS issues. (6531fe9)

Peripheral Drivers

Added

  • Drivers: Added Kconfig options to skip the conflict check in the legacy driver (#13938) (067d4dd)
  • USB Host: Added option to initialize USB Host stack with unpowered port (dc45972)
  • I2C: Added 10bit address support on ESP32 (866a02f)
  • I2C: Added an interface for getting initialized handle by port number (#13968) (0f1c5b6)
  • USB Host: Added external HUB support (1a49691)
  • USB Host: Enabled USB Hub support in USB Host examples by default (1a49691)
  • USB Host: USB Host Lib example now allows device reconnections and GPIO button press app quit (1a49691)
  • RMT: Added a function to return the real clock resolution of a channel (#15074) (9d1b0c2)

Changed

  • GPIO: Improved GPIO set level performance by avoid "read-modify-write" operation (#14674) (97bf63a)
  • SDMMC: Improved checking of SD being busy and always requesting SD to send status, even if a write operation failed. (bb268e1)
  • SDMMC: Improved initialization of SD card relative address (RCA). (ca86e7f)

Fixed

  • ADC: Fixed the issue that ADC monitor not work. (#14769) (82e72bc)
  • ADC: Fixed adc_cali_check_scheme return wrong supported scheme issue on ESP32-C2/H2/C6 (44f29fb)
  • GPIO: Allow RTC-IO API to set edge type wakeup sources for targets that support this (e216408)
  • GPIO: Patched the esp_rom_gpio_connect_out_signal function on ESP32 and ESP32-S2 to avoid potential output glitch (#12826) (42f8913)
  • GPIO: Fixed GPIO reserves 8 data lines while connected to Quad Flash on ESP32-S3 (79014cc)
  • GPTimer: Fixed race condition between gptimer_start and gptimer_stop (#14767) (9c6952f)
  • I2C: Reduced the chance of I2C data corruption due to hardware issue in FIFO handling (#12860) (866a02f)
  • I2C: Fixed hangs when SCL is randomly pulled low during communication (#13647) (466acf6)
  • I2C: Fixed an I2C issue that slave stretch happens but master timeout not work (#14129) (#14401) (466acf6)
  • I2C: Fixed the i2c sda/scl force out register value on some ESP32-C6/H2 (466acf6)
  • I2S: Fixed incorrect DMA buf size calculation for 8-bit & 24-bit data width. (4010489)
  • I2S: Refactor I2S example common dependencies, make them an example common component (#14751) (4010489)
  • I2S: Report error when the division from clock source to MCLK is less than 2 (because mclk_div at least to be 2 in hardware). (4010489)
  • I2S: Removed the least 2 slots limitation for the PCM short format in TDM mode (#14879) (4010489)
  • I2S: The max TDM frame bits have limitation on the chips ESP32-C3/S3/C6, add check for the TDM frame bits number to make sure it is valid. (4010489)
  • I2S: Fixed I2S sample rate can occasionally be half of the configuration. (d8065ec)
  • LCD: Fixed wrong return type in esp_lcd_new_panel_io_i2c when build for C++ project (3559e57)
  • LEDC: Fixed ledc_get_freq returned frequency error due to calculation overflow (#14882) (8af4285)
  • MCPWM: Added description of special deadtime configurations and added checking in the driver (#14773) (cc855a0)
  • MCPWM: Fixed memory leak when power management is enabled (bfacecf)
  • MCPWM: Fixed pm_lock not being created when initializing capture timers on ESP32-C6/H2 (bfacecf)
  • PARL_IO: Fixed line address error in simple rgb matrix example. (0b13855)
  • PARL_IO: Fixed parlio_tx transmit error in first transfer and 1 byte transfer (f2482e7)
  • RMT: Fixed the channel resolution divider rounding issue (#15092) (32dd476)
  • SPI: Fixed slave rx buffer overwrite when no DMA and configured trans_len don't match master trans_len. (#14462) (3f76bbe)
  • SPI Flash: Fixed Cache states not recorded issue when using Flash no-OS APIs on ESP32-H2/C6 (8187205)
  • TWAI: Fixed other node got BUS-OFF when twai init. (#14548) (5d26099)
  • Temperature Sensor: Fixed the temperature sensor return wrong values ​​when ESP_WIFI_ENHANCED_LIGHT_SLEEP is enabled on ESP32-C6. (8775d06)
  • UART: Fix the modbus slave setup mode in the examples (#14878) (5eaa63a)
  • UART: Allowed TX and RX configure to the same pin in uart_set_pin (#14787) (a73c62e)
  • UART: Fixed potential UART_SELECT_READ_NOTIF race condition (a73c62e)
  • UART: Eliminated glitch on TX at setup if TX signal is configured to be inversed (#14285) (42f8913)
  • UART: Changed UART VFS read() function to directly return with the bytes available, instead of waiting for more bytes to reach the requested size (6047df1)
  • UART: Changed UART VFS read() to treat end-of-line characters as regular bytes, with no early return (#14155) (6047df1)
  • UART: Re-allowed the users to pass in non-4-byte-aligned buffer size for TX ring buffer in uart_driver_install (bee297a)
  • USB Host: Fixed return value in the memory allocation failure case within usb_host_client_register (#14859) (1e24d8a)

System Hardware

Added

  • Supported ESP32-C2 chip rev2.0 (a83eb05)
  • PSRAM: Supported PSRAM .noinit segment on ESP32-S2/ESP32-S3 (#14253) (bed8016)

Fixed

  • Fixed the issue that after OTA application changes the slow clock source, the modem module not work during lightsleep on ESP32-C6/H2 (1fc1cc4)
  • Fixed the issue that after OTA application changes the slow clock source, the RTC slow clock is missing and causes a stuck at esp_restart on esp32-C6/H2. (5c07af3)
  • Solve external 32K problem caused by the wrong configurations on C3 & S3. (e038e66)
  • MMU: Fixed spi_flash_phys2cache return addr in PSRAM issue when SPIRAM_FETCH_INSTRUCTIONS or SPIRAM_RODATA enabled (f0364c5)
  • PSRAM: Fixed PSRAM heap registration when himem is used. (2ef8f9e)
  • PSRAM: Fixed bad timing when reading mode registers on Octal and Hex PSRAMs (610b334)
  • PSRAM: Fixed ESP32 PICO-V3 psram enabled but not ignored issue (#14970) (1763062)
  • rtc_clk_cpu_freq_set_xtal should always disables CPU's PLL, fixed the behavior for ESP32-C6/ESP32-H2 (fa1ab35)
  • Postponed the time to turn CPU's PLL off in sleep process for ESP32-C6/ESP32-H2 (0e42d52)

Core System

Added

  • Added explicit drop for sections .got and .got.plt; In case these sections appear a hint will be shown. (#14296) (ad32630)

Changed

  • Panic handling: Changed register dump on non panic task WDT to be more descriptive (#14400) (35d8896)

Fixed

  • Fixed potential double exception when booting on xtensa (#14406) (b00f88c)
  • Fixed comparison of integer expressions of different signedness in spinlock (#14469) (1c346dd)
  • Console: Fixed crash when enable USB-Serial-JTAG as the primary console in esp32c3 v1.1 (90f0760)
  • Heap: Fixed wrong memory returned when allocating in RTC memory with MALLOC_CAP_EXEC capability (see #14835) (5c235ff)
  • Interrupts: Fixed wrongly reserved interrupt for WiFi on ESP32-H2 (a272c70)

Debugging

Added

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

Fixed

  • Apptrace: Fixed the issue where the Segger SystemView app (v3.10 or later) gets stuck during the record analyzing step. (#10483) (d4f1920)
  • Core Dump: Fixed potential checksum errors by using a buffer to write to flash. (4a48495)

Toolchain

Changed

FreeRTOS

Fixed

  • Fixed an SMP unsafe race condition in xStreamBufferSend() leading to a crash in xTaskNotify(). (e70684b)
  • Fixed an SMP unsafe race condition in xStreamBufferReceive() leading to a crash in xTaskNotify(). (fd63196)
  • Resolved a priority inversion issue where a lower-priority task continued executing after unblocking a higher-priority task that was waiting on an event group. (b53eb88)
  • Fixed parts of documentation referring to stack size as "in words". Should be "in bytes" in IDF (#11600) (a749b23)
  • IDF Additions: Fixed a bug wherein a no-split ring buffer does not receive any item if space on the buffer is acquired until the buffer is full and the acquire pointer wraps around (#14948) (1f9057d)
  • IDF Additions: Fixed a bug wherein no-split ring buffers could receive items prematurely when the items may not have been sent to the buffer yet and the buffer is full (#14568) (532b2a0)
  • IDF Additions: Fixed an occasional assert failure in vTaskDeleteWithCaps() (#14222) (80c3e10)
  • IDF Additions: xRingbufferCreateWithCaps allows non-4-byte-aligned xBufferSize input for non-RINGBUF_TYPE_BYTEBUF ring buffer type (bee297a)

Low Power Features

Power Management

Added

  • Supported to query PHY RF used time. (16101fd)
  • Bypassed cache access assertion when using ext0 or ext1 (4032d73)

Changed

  • Improved esp_timer timing accuracy after light sleep is rejected (458fb6e)

Fixed

  • Fixed possible low internal voltage and load capacity on ESP32-H2. (582c5ac)
  • Fixed the crash of esp_pm auto light sleep when PM_TRACE is enabled. (c93a343)
  • Fixed BBPLL cali fail bug under low temp on ESP32-H2. (1fc6ee6)
  • Fixed a deadlock that occurred when a high-priority task and a low-priority task changed PM mode at the same time (1291ead)
  • Fixed CPU switch fail due to BBPLL cali fail bug under low temp on ESP32-H2 (d917fa4)

Removed

  • Removed the dependence of PM_SLP_IRAM_OPT (fe262a7)

ULP

Changed

  • ULP: Optimized ESP32-C6 LP-CPU power consumption in deepsleep (738a7f0)

Fixed

  • ULP: Fixed the issue that riscv type ULP contains redundant GPIO definition which causes compilation failure (#14437) (810ade0)

LWIP

Added

  • DNS: Added a hook for DNS external resolving with resolved callback (c92f5db)

Changed

  • TCP: Updated mechanism to recycle PCBs also in FIN_WAIT_1 and FIN_WAIT_2 states (3dd245f)
  • Changed maximum number of available sockets (#13866) (4360662)
  • IPv6: Changed the default IPv6 input hook to drop all IPv6 packets if the input network interface has no link local address assigned. (37d9e33)

Fixed

  • Fixed ping component to retrieve network interface name in a TCP/IP thread safe manner (#14982) (ffe563f)
  • IPv6: Fixed IPv6 raw socket ICMPv6 checksum calculation in IPv6-only configuration (5de8b48)
  • DNS: Fixed a bug in dns_clear_cache() that caused deadlock by clearing active DNS entries(#14287). (3dd245f)
  • TCP: Fixed unlimited PCB issue, allowing application to allocate more TCP connections than configured (#9670) (3dd245f)

TCP Transport

Fixed

  • Fixed partial reads of Websocket header (#14704, #14706) (411385c)
  • Fixed potential memory corruption on Websocket connection while reading more data then allocated (#14473) (a253ad8)
  • Fixed incorrect Websocket packet length calculation on Linux target due to integer promotions (#14536) (0e2f30a)

Storage

Added

  • LittleFS: Added support for LittleFS image generation on Windows (#12900) (6e51dc4)
  • NVS: Added sanity checks of NVS entry header (e9656ec)
  • NVS: Added host tests of damaged NVS entry header with correct crc (e9656ec)

Fixed

Tools

Changed

  • Updated CMake version to 3.30.2 (#14376) (255d045)
  • Updated Ninja version to 1.12.1 (255d045)
  • Updated Ccache version to 4.10.2 (255d045)
  • Improved suggestion for fixing missing header file (276083f)
  • idf_tools.py: pip and setuptools are upgraded separately so the setuptools version dependency would be handled by the upgraded pip (4973c5f)

Fixed

  • Enforced utf-8 encoding with Python open() function (2f62363)
  • Displayed additional details if imports in idf.py are unsuccessful (425722b)
  • Printed message about GDBGUI being not supported with Python 3.13 (d395f4d)
  • Fixed default SORT flag usage in linker mapping fragment (bdcdd32)
  • Fixed the failure of the idf.py uf2 and idf.py uf2-app commands when ESPBAUD or ESPPORT environment variables were set (2b1122a)

Removed

  • Removed the unsupported OUTPUT_FORMAT Cmake variable from the idf.py size* sub-commands (#14383) (f2f6a26)

Documentation

Added

  • Update LCD programming guide, quad SPI LCD is also supported. (#14605) (c12e684)

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.