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

14 hours ago

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

ESP-IDF v5.1.5 is a bugfix update for ESP-IDF v5.1.

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

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

Download an archive with submodules included

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

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

Major changes

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

Major Features

  • Support was added for ESP32-C2 revision 2.0

Changelog

802.15.4

802.15.4 MAC

Added

  • Added a frame length check for the transmission frame (21ed2cb)
  • Supported the large scale size of pending table (be1ba2e)

Changed

  • Refactored the next_operation() logic to avoid some risks when multiple IEEE802154 events are processed in one ISR (21ed2cb)
  • Ignored bit8 for the frame length. (a08c207)
  • Updated to log the "buffer full" message in debug mode only (a08c207)

Thread

Added

  • Supported openthread time sync feature on both RCP and BR (be1ba2e)
  • Supported changing openthread version information (9dad9f9)
  • Added a task switching lock holder check (b6b4727)
  • Added a method to set instance name of meshcop(e) mdns service (a08c207)
  • Added max csmabackoffs numbers for transmission via spinel (ddc6cf9)
  • Supported openthread ephemeral key feature (ddc6cf9)
  • Added events for meshcop-e service publish and remove (ddc6cf9)

Changed

  • Moved some LWIP API to LWIP task (ddc6cf9)
  • Moved the registration of UART VFS devices to UART initialization function (c6ef988)
  • Released openthread task switching lock before calling LWIP API in openthread udp (a08c207)
  • Optimized the PIO logic in multiple BRs scenario (a08c207)
  • Made ot task queue sending non-permanent blocking (e1b83ba)
  • Updated CONFIG_LWIP_IPV6_NUM_ADDRESSES to 12 in Thread BR lib (e1b83ba)
  • Updated openthread submodule (f32c18b) (9dad9f9)

Fixed

  • Fixed dead lock issue related to MDNS (ddc6cf9)
  • Fixed a deadlock risk by releasing ot task lock before tcpip_callback (a08c207)

Removed

  • Removed the empty task for openthread tasklets (a08c207)
  • Removed the range for some configurations (a08c207)

Application Utilities

Added

  • Added check for LWIP_NETIF_LOOPBACK in the HTTP server control socket API (#13659) (3982d55)
  • ESP HTTP Client: Added support for OTA updates over TLS 1.3 (bbd9fe2)
  • ESP HTTPS OTA: Added API to retrieve the most recent status logged from the HTTP response. (cd46411)
  • Provisioning: Added support for ESP IP chips to work with Bluedroid stack (4f40bd4)

Changed

  • Updated cJSON version to v1.7.18 (68c894b)
  • Provisioning: Exposed API to set BLE random address (7c29c5f)

Fixed

  • Fixed allocating if_name in client context multiple times (#13945) (c64c930)
  • Initialize mbedtls RNG context prior to setting client config in ESP-TLS, this fixes ECC key parsing issue for specific cases (2059071)
  • Fixed esp_http_client to reset redirect_counter after completion of a request (#13633) (3982d55)
  • Provisioning: Fixed incorrect input decoding when using console transport (321ffde)

Bluetooth Low Energy (BLE)

Added

  • Documentation: Added BLE Features Support Status to API Guides (b9c2acc)

Bluetooth Low Energy Controller

Added

  • Added option for BLE scan backoff in menuconfig on ESP32 (cb98558)
  • Added support for BLE scanning and initiating state coexistence on ESP32. (fcc24e5)
  • Supported disconnect again if the procedure is ongoing on ESP32 (cb98558)
  • Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 (cb98558)
  • Added API to get low power clock source on ESP32-C3 and ESP32-S3 (b36c954)
  • Supported enhanced BLE TX power setting and getting on ESP32-C3 and ESP32-S3. (670b6c7)
  • Supported mesh duplicate with extended scan on ESP32-C3 and ESP32-S3. (0ca290d)
  • Added support for configurable default TX power on ESP32-C6, ESP32-H2, and ESP32-C2. (51acf13)
  • Supported UHCI function on ESP32-C6 and ESP32-H2. (d82f916)

Changed

  • Optimized BLE notify and write throughput performance on ESP32. (fe475fe)
  • Changed the maximum TX power to +20dBm on ESP32-C3 and ESP32-S3. (dbe47c3)
  • Updated the BLE rom.ld file for ESP32-C2 v2.0. (464d5d5)

Fixed

  • Fixed BLE scan backoff on ESP32 (8071b02)
  • Use embedded assembly to get access to DPORT registers on ESP32 (cb98558)
  • Fixed BLE scan assert on ESP32 (#8532) (cb98558)
  • Fixed BLE assert when receiving a packet on ESP32 (cb98558)
  • Fixed Wi-Fi BLE coexistence assert issue on ESP32 (cb98558)
  • Fixed issues in BLE Direct Test Mode on ESP32 (cb98558)
  • Fixed memory leak issue when BLE SCAN and other BLE events coexist on ESP32. (#13747) (fe475fe)
  • Fixed BLE connection timeout issue after using DTM on ESP32. (fe475fe)
  • Fixed assert issue caused by DPORT access on ESP32. (fe475fe)
  • Fixed assert when starting advertising due to preemption on ESP32-C3 and ESP32-S3. (836dba4)
  • Fixed RPA generation after each reboot on ESP32-C3 and ESP32-S3. (836dba4)
  • Fixed RPA renew timer start and stop on ESP32-C3 and ESP32-S3. (836dba4)
  • Fixed extended uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3 (cb98558)
  • Clear random address for extended advertising on ESP32-C3 and ESP32-S3 (cb98558)
  • Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3 (cb98558)
  • Fixed a memory leak in advertising data after restarting advertising on ESP32-C3 and ESP32-S3. (4efd577)
  • Fixed BLE interrupt allocation using system API on ESP32-C3 and ESP32-S3. (4efd577)
  • Fixed BT BB interrupt allocation on ESP32-C3 and ESP32-S3. (4efd577)
  • Prevented BLE interrupt from being preempted on ESP32-C3 and ESP32-S3. (0ca290d)
  • Fixed the issue where RSSI is incorrect when the peripheral latency for the connection is not zero on ESP32-C3 and ESP32-S3. (0ca290d)
  • Fixed BLE channel map update issue when latency is non-zero on ESP32-C3 and ESP32-S3. (670b6c7)
  • Fixed subsequent periodic advertising sync create failed after canceling sync before establishing sync on ESP32-C3 and ESP32-S3. (6436187)
  • Fixed BLE util buffer free after controller reset on ESP32-C3 and ESP32-S3. (ed4220c)
  • Fixed assert when BLE connection already exist and be connected again on ESP32-C3 and ESP32-S3. (ed4220c)
  • Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 revision v1.1. (01bb4f9)
  • Fixed BLE scan assert in lld_scan.c 1728 on ESP32-S3. (a693c96)
  • Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP PDU on ESP32-C6 and ESP32-H2. (d456fdf)
  • Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP PDU on ESP32-C2. (d456fdf)
  • Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 and less than 0xFFFF on ESP32-C6 and ESP32-H2. (d456fdf)
  • Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32-C2. (d456fdf)
  • Fixed a disconnection issue due to timeout in multi-slave connection scenarios on ESP32-C6 and ESP32-H2. (d456fdf)
  • Fixed an occasional interrupt WDT issue when creating sync on ESP32-C6 and ESP32-H2. (d4ed2ec)
  • Fixed a crash issue during controller initialization when memory was insufficient on ESP32-C6 and ESP32-H2. (d4ed2ec)
  • Fixed an occasional disconnection issue due to timeout after updating connection parameters on ESP32-C6 and ESP32-H2. (d4ed2ec)
  • Fixed an issue with repeated memory deallocation during controller deinitialization after sending an AUX_CHAIN_IND packet on ESP32-C6 and ESP32-H2. (d4ed2ec)
  • Reduced the usage of flash and RAM when only legacy ADV and peripherals are enabled on ESP32-C2. (bd5335f)
  • Fixed the issue where BLE light sleep randomly caused task watchdog upon power up on ESP32-H2. (17e072e)
  • Fixed HCI not returning 0x45 when adv interval and data length mismatch on ESP32-C6,ESP32-H2 and ESP32-C2. (aaeb03a)
  • Fixed an occasional cache error crash in DTM process on ESP32-C2. (aaeb03a)
  • Fixed an occasional assert issue in ADV and scan coexistence scenario on ESP32-C6. (aaeb03a)
  • Fixed occasional packet loss issue during severe air interference on ESP32-C6 and ESP32-H2. (aaeb03a)
  • Fixed occasional assertion issues during scan process on ESP32-H2. (344e9ad)
  • Fixed occasional crash issue in multi-connect scenarios on ESP32-C6. (71bac64)
  • Fixed occasional ACL data packet loss issue when using UHCI on ESP32C6 and ESP32H2. (71bac64)
  • Fixed occasional assertion issue when enabling logging on ESP32-C2. (71bac64)
  • Fixed memory leak issue when deinitializing UART HCI on ESP32-C2, ESP32-H2 and ESP32-C6. (71bac64)
  • Fixed the issue of occasional assertion in multi-synchronization scenarios on ESP32-H2. (d82f916)
  • Fixed the issue where directed advertising could not be connected when the advertisement filter was set to 0x2 on ESP32-C6, ESP32-H2, and ESP32-C2. (6892f1a)
  • Fixed occasional WDT issue in multi-connection scenarios on ESP32H2. (6892f1a)
  • Fixed a low-probability assertion issue in adv and scan coexistence scenarios on ESP32-C6. (6892f1a)
  • Fixed the issue where connected advertising could still be set after reaching the maximum number of connections on ESP32-C6, ESP32-H2, and ESP32-C2. (6892f1a)
  • Fixed response timeout triggered when updating connection parameters on ESP32-C6, ESP32-H2 and ESP32-C2. (6892f1a)
  • Fixed a crash during host deinitialization after the controller had been deinitialized on ESP32-C2. (fac6bb6)
  • Fixed instant wake up from deep sleep when BLE is running on ESP32-H2. (2566899)
  • Fixed an occasional WDT issue when disabling the Controller on ESP32-C6. (810458d)

ESP Bluedroid Host

Added

  • Added support for setting BLE privacy mode for peer devices. (2daa497)
  • Supported the functionality to add BLE devices to resolving list (2daa497)
  • Supported the functionality to create BLE static random address and NRPA (2daa497)
  • Added API to set resolvable private address timeout. (2daa497)
  • Added Bluetooth HCI layer data stream record (5056683)
  • Added APIs for BLE Direct Test Mode (5056683)
  • Added API to send vendor HCI command (5056683)
  • Added definitions for BLE authentication failure reasons. (4efd577)
  • Added support for BLE 5.0 instances in related events (dc859c1)
  • Added the check for setting BLE advertising parameters when deleting GATTS services (dc859c1)
  • Added BLE connection ID parameter for ESP_GATTS_RESPONSE_EVT. (697a621)
  • Added print and assert statements for memory allocation failures. (386d49f)

Changed

  • Optimized BLE SPP example for improved compatibility (2daa497)
  • Optimized BLE event reporting time for connection failures (abc703a)
  • Optimized BLE example for setting advertising data. (c608177)

Fixed

  • Fixed access fault when reading BLE controller information fails. (697a621)
  • Report HCI error status to application when command fails. (386d49f)
  • Cancelled the BLE connection initiation if the connection has already been established when both devices initiate a connection simultaneously. (386d49f)
  • Fixed ADV do not restart due to disconnection reason 0x3e (5056683)
  • Fixed BLE GATT max length of an attribute value (2daa497)
  • Fixed the issue where the BLE data length change event was not triggered when the packet length was modified on the other connected device. (e3c4c76)
  • Check whether the work queue is NULL before deleting it when creating thread failed. (386d49f)
  • Fixed memory out-of-bounds issue when parsing adv data. (00a0acf)
  • Reset BLE security parameters during initialization (#13869) (d7bf5a1)
  • Fixed incorrect state issue when unregistering BLE GATTC application. (69ed92c)
  • Fixed the issue where BLE could not create a connection if the controller doesn't support the coexistence of scanning and connection initiating states. (2e08930)
  • Fixed BLE security vulnerability when using fixed local IRK. (4efd577)

Removed

  • Removed error print when failing to remove a device from the resolving list. (4efd577)

ESP BLE Mesh

Fixed

  • Fixed wrongly updating the time set parameter in the time scene server model (06e274f)
  • Fixed crash may happen when using NimBLE host at compilation level Os (c9c26a6)
  • Fixed segmented message advertising was incomplete when sending to both local and external elements (864f471)
  • Fixed transmission resources might not be released correctly (c8b9ad5)
  • Fixed mesh deinit complete event might not be reported when using the NimBLE Host (a7a612c)
  • Fixed potential deadlock during GATT initialization when using Bluedroid Host (262264e)

ESP NimBLE Host

Added

  • Added API to get resolved ADV data (ebe0b3f)
  • Added change to start re-advertising when disconnection happens with 0x3E code in slave mode (de42be8)
  • Added API to get the local used address. (0d5d741)
  • Added chips information in ble_enc_adv example README file (a86e6ea)
  • Create separate API to only extract cb info (82b9984)
  • Added support for data length change event (7ad7f84)
  • Added support for deleting the oldest bonded device across reboot (7ad7f84)
  • Added return code in ble_gap_unpair error logs (d2f8b75)
  • Added a new event to indicate link establishment. (f8fe876)
  • Added support to allow initiate connection with scan in progress. (4e6e08d)
  • Added BLE NimBLE Get Started examples added under examples/bluetooth/ble_get_started/nimble (3db2c6f)
  • Added support for bidirectional data transfer between SPP client and server. (9559f40)
  • Added support to make CCCD flags configurable (571f5ca)
  • Added BT_HCI_LOG_INCLUDED macro into esp nimble configuration according to nimble nomenclature (b3a30e2)

Changed

  • Simplify reconnection code (7ad7f84)
  • Added change to handle linked om data at blufi layer for NimBle. (0ef8d93)
  • Added change to not issue an SetDataLen command when updated with the same data length and TX time. (5fe3559)
  • Updated Advertising TX power levels to match with specification. (5c57dfe)
  • Added change to set data length once connection is created. (adf8d46)
  • Added a change to print address of an advertising instance in example (be26385)
  • Increased Timer stack size for nimble application (5211ea3)
  • Changed sequence of posting encryption event after bonding information was saved. (763d91a)

Fixed

  • Fixed compilation warning observed in clang based builds (d8f805c)
  • Fixed the deinit sequence in blufi example. (77c69f2)
  • Fixed compilation issue occurring after disabling security. (7ad7f84)
  • Fixed call to ble_hid_task_startup and compilation issues due to incorrect prototypes (7ad7f84)
  • Fixed aggressive termination in signed write procedure (7ad7f84)
  • Fixed unpair API ignoring devices bonded with CSRK (7ad7f84)
  • Fixed compilation issues when CCCD is set to 0 (7ad7f84)
  • Fix for CVE-2024-24746 vulnerability (7ad7f84)
  • Fixed the size of number of packets in dtm event (7ad7f84)
  • Set correct peer_addr during reattempt connection (7ad7f84)
  • Handle missing free in ble spp example (a5d0406)
  • Deselect MBEDTLS_ECP_RESTARTABLE when mbedTLS is used (#13645) (8cf7043)
  • Free controller memory if stack init fails (espressif/esp-nimble#68) (81918dd)
  • Expose API to set RPA timeout in stack. (7ad7f84)
  • Register dummy host cb in stack deinit procedure. (5ed5ed7)
  • Fixed the crash issue of examples/bluetooth/nimble/ble_multi_conn (d8018d6)
  • Fixed assert issue in proximity_sensor example due to double instance of advertising (1fc491a)
  • Zero initialized variables to fix incorrect paired device number information received after host initialization. (75b87ea)
  • Fixed BLE security vulnerability when using fixed local IRK (cd4714d)
  • Updated menuconfig options to consider BLE 5.0 support options. (230dfcf)
  • Fixed issue where cb information passed in connect request was getting corrupted. (c98f32e)
  • Fixed issue of clearing resources before re-starting advertising (517064d)
  • Reserve space for one extra ext adv packet (58a9d0e)
  • Fixed stack overflow in esp_hid_device example for nimble (#13951) (17a19a1)
  • Explicitly NULL assign adv data pointer after free to avoid memory corruption. (d3d5a4e)
  • Fixed memory leak during reattempt adv data usage (3f9ab2d)
  • Fixed issue of copying data incorrectly into reattempt buffer (3f9ab2d)

Bluetooth Common

Added

  • Added an option to make alarm number configurable (445811d)

Fixed

  • Fixed missing linker generated symbols in using esp_bt_mem_release when ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY is enabled (#10427, #11377) (a79bd17)

Bluedroid

Fixed

  • Fixed controller using null pointer after Bluedroid deinitialization (6b60fc7)

Controller

Fixed

  • Fixed Bluetooth disconnect issue after waking up from modem sleep with external 32k crystal on ESP32 (df432b8)
  • Fixed heap corruption in the call of esp_bt_mem_release on ESP32 (#14263) (99395b2)
  • Register coexist functions into Bluetooth controller on ESP32-C3/ESP32-S3 (cb98558)

Bootloader

Changed

  • Changed pattern table in bootloader_random_enable() on C6 to avoid accidental voltage output on IO0 (f4b38d0)

Build & Config

Fixed

  • Fixed an issue where the Linux target on MacOS failed to build with clang because the ld linker did not support the -warn_commons options (#13185) (f209311)
  • Fixed the component manager to load all local component directories correctly when set(COMPONENTS ...) is declared (d38afc7)

Classic Bluetooth

Classic Bluetooth Bluedroid Host

Added

  • Added definition of minor class of COD for peripheral major class and set it in HID device related examples (#13622) (8af42a0)
  • Added a constant in esp_bt_cod_mode_t to allow the users to overwrite reserved_2 of Class of Device and the previous API behavior will not change (#14286) (c86c53d)

Changed

  • Unify the conversion of error code between HCI status and esp_bt_status_t constants (ffbb69e)
  • Changed the default codec type to CVSD to avoid mistakenly using unavailable mSBC on PCM datapath in hfp_hf example. (46cf3b8)

Fixed

  • Fixed the stack overflow of uTask in bt example spp initiator (6457a4b)
  • Fixed the wrong connection handle in the event handler of BTA_JV_L2CAP_READ_EVT (#13847) (55cfe6e)
  • Fixed SPP crash due to the connection not being disconnected before esp_spp_deinit was called (50599a6)
  • Fixed the HID Host inner error state caused by repeat connection of the same device (7046477)
  • Fixed inconsistency of connection initiator state for HID Host open event (7046477)
  • Fixed the HID Device inner error state caused by the failed connection (7046477)
  • Allocate memory for control block of HFP Audio Gateway in its initialization when dynamic memory is enabled (af5579d)
  • Fixed the crash caused by using illegal pointers during SDP deinit (7f12742)
  • Fixed missing of callback event when removing an invalid SDP record (7f12742)
  • Fixed example esp_hid_host cannot get remote device name from eir data (79aa719)
  • Fixed lack of deep copy service_name and user1_ptr in SDP search complete event (36b9357)
  • Limited SDP service discovery operation when the previous discovery is not finished (36b9357)
  • Fixed lack of memory release for BTC SDP record after it has been created successfully (36b9357)
  • Fixed the issue of not clearing the request change indication causing exiting sniff mode. (494cce0)
  • Fixed error in mapping of protocol mode in esp_hid component (#14232) (8af42a0)

Classic Bluetooth Controller

Added

  • Added integrity check for HCI_Link_Key_Selection command on ESP32 (6f1ff29)

Fixed

  • Fixed disconnection caused by channel map update in sniff mode on ESP32 (03f6639)
  • Fixed fail to establish eSCO when connected to two devices on ESP32 (#11172) (3465bb0)
  • Fixed uninitialized random number before pausing AES encryption on ESP32 (3465bb0)
  • Fixed not report HCI_Disconnection_Complete event after the controller has initiated a disconnection procedure on ESP32 (3465bb0)
  • Fixed returning incorrect link key with HCI command rd_stored_link_key on ESP32 (7f1a2c3)
  • Fixed the assert triggered during APB TX on ESP32 (7f1a2c3)
  • Fixed role switch LMP collision bug on ESP32 (7f1a2c3)
  • Fixed assert 1024 issue when Classic Blueooth TX and Wifi coexist on ESP32 (8071b02)
  • Fixed the error in parsing packet_type argument for HCI_Enhanced_Setup_Synchronous_Connection, which causes acceptation of eSCO EDR packet types when they are configured not to be used (8071b02)
  • Fixed the incorrect timing in reporting HCI_Link_Key_Type_Changed event on ESP32 (517a27e)
  • Fixed the incorrect initialization vector during resuming encryption on ESP32 (517a27e)
  • Fixed incorrect link key returned from HCI command HCI_READ_STORED_LINK_KEY on ESP32 (517a27e)
  • Fixed improper assertion in ACL link driver which can be triggered on peripheral SNIFF mode when RX window is adjusted on ESP32 (e3dbf6a)

Coexistence

Fixed

  • Fixed LoadProhibited issue in coexistence scenario on ESP32C3 and ESP32S3. (0ca290d)
  • Fixed the issue that BLE do not update SCAN status correctly for coexistence module on ESP32C3 and ESP32S3. (836dba4)

Core System

Added

  • Console: Added SBOM for argtable3 (4f82fc2)
  • IPC: Added no blocking IPC call (446ec3a)

Fixed

  • Fixed brownout ISR crashing if cache disabled (f63329c)
  • Console: Fixed console freeze when USB Serial JTAG is used and input data is received prior to the initialization of the driver (#13940) (8280458)
  • Console: Fixed missing fsync propagation to secondary output when CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is enabled (#13162) (14e01c0)
  • Console: Fixed backspaces erasing prompt and cursor positioning in dumb mode (Thanks to @michaelpontillas for pointing it out to us) (9c06407)
  • Heap: Fixed heap trace wrapper to trace calls to all API functions. (135eb2e)
  • Interrupts: Fixed the reserved interrupts list leading to more interrupts being available: 2 interrupts freed on the ESP32-C2, ESP32-H2, and the ESP32-C6, 7 interrupts freed on the ESP32 and the ESP32-S2, and 10 interrupts freed on the ESP32-S3. (bd2b939)
  • Log: Fixed wrap-around of cache generation counter (#6516) (0196f08)
  • Log: Fixed incorrect argument type in hexdump log functions (#13347) (3f5c4d0)
  • Newlib: Fixed ROM(H2) nano newlib can not printf float issues (90a2abd)
  • Pthread: Fixed pthread join/detach potentially freeing the wrong TLS pointer (#14084) (f2a321d)

Debugging

Fixed

  • Gcov: Fixed unhandled exceptions when GCOV enabled (a2215bd)
  • Core Dump: Fixed a buffer overflow issue when getting the coredump summary. (af18411)
  • Core Dump: Fixed array out of the bounds compile error (cb194de)
  • Core Dump: Fixed a bug preventing the usage of stack guard alongside a custom stack for coredump (03f7927)

Documentation

Changed

  • Updated the mesh ip_internal_network example (0670fbb)

Fixed

  • Fixed example code block in Ringbuffer docs (#13730) (a1b0f25)
  • Fixed document issue of Auto suspend enabled by default in the SPI Flash docs (50c01e1)

Ethernet

Added

  • Added configuration of SPI Ethernet MAC address based on esp_read_mac in Protocols Connect Example (#13808) (4422bed)

Fixed

  • Fixed access to PHY registers for DM9051 (0c9478f)
  • Fixed link detection for DP83848 to use BMSR (#13560) (489e460)

FreeRTOS

Fixed

  • Fixed broken FreeRTOS port macro portTRY_ENTER_CRITICAL_SAFE() (#13022) (8d29650)
  • IDF Additions: Fixed an occasional assert failure in vTaskDeleteWithCaps() (#14222) (768104d)
  • 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) (207eccf)
  • IDF Additions: Fixed an issue where the vTaskDeleteWithCaps() API leaked memory (#14222) (fa8cd33)
  • IDF Kernel: Fixed a bug where the FreeRTOS port layer would incorrectly crash on an assert failure when the system is not in an interrupt context but the port layer determines the opposite. (13c6c90)

LWIP

Added

  • ESP Netif: Added an API for getting all preferred IPv6 addresses. (be1ba2e)
  • Added a configuration to set the size of ND6 table cache (be1ba2e)

Fixed

  • ESP Netif: Fixed wrong event post when IPv6 address state changes between two valid states (f2b1184)
  • ESP Netif: Fixed setting missing IPv6 auto-configuration flag for PPP interfaces if enabled in menuconfig (#13713) (2646905)
  • ESP Netif: Fixed esp_netif_get_all_ip6() to return only valid addresses. (95647a5)
  • ESP Netif: Fixed omitted SNTP API for getting reachablitiy of NTP servers (85fd3f3)
  • ESP Netif: Fixed memory leak caused by mdlv6 report timer creation (f2b1184)
  • IPv6: Fixed for replying the NS without source link-layer address option (be1ba2e)
  • Fixed compilation error in lwIP undefined reference to `if_nametoindex'. (#13577) (597331d)
  • Fixed IP address update for invalid packets in ping component (#14197). (56e3454)
  • Fixed to clear old DHCP pool issue on DHCP server (7ade2ae)

Low Power Features

Power Management

Added

  • RC FAST xpd is supported for ESP32-C6/ESP32-H2, and then the current increase 0.9mA in C6 and increase 70uA in H2. (e649fcf)
  • Added feature of sleep retention multiple modules initialization and dependency management (6d228dc)

Changed

  • Disable timer wakeup source with esp_pm auto light-sleep off (a5c6b4d)

Fixed

  • Fixed the issue of TG0 watchdog reset caused by WiFi module retention (67ee7ee)
  • Fixed a bug where using XTAL as the clock source for the watch dog timers would trigger a watchdog timeout immediately after waking up from light sleep. (cfe8615)
  • Fixed the problem that CPU frequency is not updated immediately after pm_config updated. (#13492) (50da12d)

ULP

Fixed

  • Fixed an issue where ulp_riscv_register_ops.h header file always needed to be included to avoid register operation macros redefinition errors while compiling. (#12116, #14438) (4d2c27d)
  • Fixed an issue where the first I2C read or write failed when using the LP I2C or the RTC I2C peripheral. (#14043, #11608) (897a774)
  • Fixed a bug where an incorrect register was being written to for setting RTC IO output mode for the ULP RISC-V (#14010) (8d4f718)
  • Fixed a bug wherein the RTC I2C peripheral got stuck when performing read or write of multiple bytes (#12235) (dc164cd)

MQTT

Changed

Fixed

PHY

Added

  • Added cert_test support for ESP32, ESP32-C2, ESP32-C6, ESP32-H2 and ESP32-S2 (#11972) (2136def)
  • Added PHY calibration data check when mode is not none calibration (9beca6e)

Fixed

  • Fixed the frequency switching issue in esp32h2/esp32c6 ble/ieee802154 coex. (9beca6e)

Peripheral Drivers

Added

  • USB Serial JTAG: Added an example for showcasing the usb_serial_jtag driver API (#12620, #12605) (442a798)
  • PARL_IO: Supported non-blocking transaction queue (33b5b78)

Changed

  • GPIO: Allow one GPIO to take multiple GPIO ETM actions (9808619)
  • UART: Increased the LP_UART_EMPTY_THRESH_DEFAULT value to 4. This change ensures that the TX FIFO can be refilled before it becomes completely empty, especially at high baud rates on the LP UART controller. (7ff192c)
  • UART: Shortened uart_read_bytes blocking period when the RX ring buffer is already full (b0bece2)

Fixed

  • GPIO: Fixed mismatching real drive capability with the configured value for some IOs on ESP32-C3 and ESP32-S3 (81bd6ac)
  • LCD: Fixed build errors in cxx project when using the deprecated esp_lcd_color_space_t type (#14029) (a0262a2)
  • PARL_IO: Fixed parlio transmit error in the first transfer and 1 byte transfer (e2f05a1)
  • RMT: Fixed the issue that RX filter can't work properly when using REF_TICK as the clock source on ESP32 and ESP32-S2 (#13510) (a2b9a07)
  • SPI: Fixed segment mode potential IWDT timeout when mix mount TX and RX (a28a3a4)
  • SPI Flash: Fixed stuck during spi_flash operation when a task was not pinned to a certain CPU. (446ec3a)
  • UART: Fixed issue that TX is blocked by auto-lightsleep (7ff192c)
  • UART: Fixed inconsistent number of UART wakeup rising edges required with the threshold value configured on ESP32-S2 and later chips (#12586) (01b912a)
  • UART: Fixed the maximum baud rate value (UART_BITRATE_MAX) on ESP32-C2 that ensures the data sampling correctness. (3f35154)
  • USB: Fixed ISOC channels occasionally skipping transfers on ESP32-S2 and ESP32-S3 (d97add7)
  • USB: Fixed ISOC channels abort on error (9d8525f)
  • USB Serial JTAG: Auto-flush buffers in most cases if MPS size packet is sent. (442a798)
  • USB Serial JTAG: Fixed not flush when TX buffer is full (#12628) (442a798)
  • ADC: Fixed ADC usage after TRNG init/deinit sequence (#14124) (97dabe7)
  • GPIO: Fixed USB DP pin can not disable pullup on ESP32-C6 and ESP32-H2 (e902170)
  • GPIO: Fixed IO 21-27 IO_MUX registers not being backed up on ESP32-H2 (97de085)
  • USB Serial JTAG: Fixed issue that rom print will not work if driver is installed (cac882e)

System Hardware

Added

  • PSRAM: Supported PSRAM .noinit segment on ESP32-S2/ESP32-S3 (#14253) (cc56879)
  • PSRAM: Supported APS3204L (5a26d8a)

Changed

  • Moved RTC initialization before MSPI tuning to improve stability (a13ab34)

Fixed

  • MMU: Fixed spi_flash_cache2phys return addr in PSRAM issue when SPIRAM_FETCH_INSTRUCTIONS or SPIRAM_RODATA is enabled (1798232)
  • MMU: Fixed mmap failure caused by leftover register value when running multicore app with unicore bootloader on ESP32 (#11617) (67d4d2c)
  • MMU: Fixed virtual address calculation for sub-region from already memory mapped region (9d3f9e9)
  • Solved external 32K problem caused by the wrong configurations on ESP32-C3 and ESP32-S3. (33fbade)
  • Resolved an issue where selecting the external 32k clock source as the slow clock source on the 26MHz version of the ESP32-C2 would trigger the RTC_WDT during startup if the clock source was missing. (3e5ad6f)

Security

Added

  • MbedTLS: Supported ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (386bdf6)
  • MbedTLS: Added countermeasure for ECDSA sign operation on esp32h2 (8b2abcc)
  • ESP-TLS: Added support for TLS 1.3 connection in client mode (bbd9fe2)

Changed

  • MbedTLS: Updated the MbedTLS version to 3.6.1 (0c50d91)
  • MbedTLS: Optimized aes-gcm performance by pre-shift unroll strategy (#14314) (090d0e2)
  • MbedTLS: Moved ESP32-C2 ROM API mbedTLS feature from experimental to a fully supported feature. (3d3ae68)

Fixed

  • Flash Encryption: Fixed encrypt only image instead of the partition optimisation not being enabled (a9b0e12)
  • MbedTLS: Fixed ESP32-C2 ROM ECO1 mbedTLS issues. (b64505c)
  • ESP-TLS: Fixed time value overflow for timeout calculation (#13593) (b928bd2)

Storage

Fixed

  • FATFS: Fixed wrong Wear Levelling mode for FatFS generation (wl_fatfsgen.py) (7b5a5ea)

TCP Transport

Fixed

  • Fixed an issue where the first fragment was lost during the WebSocket HTTP handshake. (d784acb)

Toolchain

Changed

Tools

Changed

  • Updated CMake version to 3.30.2 (#14376) (f449357)
  • Updated Ccache version to 4.10.2 (f449357)
  • Updated Ninja version to 1.12.1 (f449357)
  • idf_tools.py: Improved the non-fatal warning message about the Python environment (c00dad8)

Fixed

  • idf.py: Avoid crashing when trying to use Git to acquire the ESP-IDF version (#13345) (b9707a3)
  • Fixed GDGBUI version detection by invoking the tool instead of checking the Python version (#13665) (8354a8f)
  • Set GDB timeout to 10 seconds to wait for the remote target's response (ca9c86d)
  • Described the option to configure flashing with --extra-args (#6337) (3bf7ff3)
  • The ESP-IDF version is acquired only from the version or header file (#13385) (e2d9d68f)
  • Exit gracefully without traceback when running the process via asyncio (#13418) (c8c6a4f)

Removed

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

Wi-Fi

Added

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

Fixed

  • Fixed the issue of station fail to connect to Soft-AP caused by abnormal RF flag signal. (ce64b50)
  • Docs:Format AP basic configuration tables (4a142be)
  • Fixed the issue of wifi power losing its clock during sleep on the ESP32-C6 ECO1 chip, which may cause Wi-Fi beacon timeout. (44ed05a)
  • Fixed the issue that Wi-Fi TBTT interrupt missed after BLE deinit on ESP32-C6 ECO1 chip, which may cause Wi-Fi difficult to receive packets (47418a8)
  • Create fallback option while allocating memory in case PSRAM fails (e187f3e)

Wi-Fi MAC

Added

  • Added Soft-AP CSA count and DTIM count config (bae9a3a)
  • Added station set wait broadcast data time API (bae9a3a)
  • Supported Wi-Fi power save at coexist mode. (d049d69)
  • Added FTM calibration values for ESP32-C6 (9972ff5)

Changed

  • Polished the description of API esp_wifi_get_mode and esp_wifi_scan_get_ap_record (#12331) (bae9a3a)

Fixed

  • Fixed sniffer dump FCS error packets fail (#10777) (de580a0)
  • Fixed the issue of TBTT interrupt miss caused by beacon monitor (d049d69)
  • Fixed issue in changing operation mode when WPS is enabled. (a06c687)
  • Avoid internal retries for off channel FTM Requests (f6d8ff4)
  • Fixed STA scan when connected to AP cause loop beacon timeout issue (bae9a3a)
  • Fixed GCMP encryption for management packets. (2653904)
  • Fixed decryption of deauth/diassoc packets when Management Frame Protection enabled (2653904)
  • Fixed FTM failures with external AP while connected in 40MHz (6535d07)
  • Fixed ESP32 unrecoverable "m f" issue (9a76c7f)
  • Fixed the issue that ESP32C6 does not reset inactive time when iTWT tear down via STA disassociate (784e95b)
  • Fixed TWT request is not sent out when exponent is 0 (784e95b)
  • Fixed ESP32 wrong period for ESP_WIFI_SLP_BEACON_LOST_OPT feature. (d049d69)
  • Fixed ESP32C3/ESP32C2/ESP32S2 inaccurate period for ESP_WIFI_SLP_BEACON_LOST_OPT feature. (d049d69)
  • Fixed Wi-Fi connect issue after software CPU reset with BLE scan. (d049d69)
  • Fixed Wi-Fi drive use RSSI as SNR issue (1651720)
  • Fixed ESP32S2 get ACK RSSI invalid issue (1651720)
  • Fixed the issue that esp_wifi_get_config got wrong SoftAP DTIM and CSA count (1651720)
  • Fixed FTM bandwidth related issues in AP-STA mode (de8a8b5)
  • Fixed the issue that SSN update failed when ESP32C6 STA wake up from light sleep. (57e5b06)
  • Fixed the issue that STA may not receive packets for a period of time in coexistence scenarios. (57e5b06)
  • Fixed ESP32 crash due to big latency of TBTT (cd3c28d)
  • Fixed rarely happened issue that Wi-Fi can not RX anymore (cd3c28d)
  • Fixed the issue of DNS failure caused by continuously initiating connections to the same router (#12315) (4def81e)
  • Fixed the issue that STA can't connect to AP after association refused temporarily by some AP (4def81e)
  • Station should ignore FT, Enterprise AP for connection when their capabilities are disabled in sdkconfig (9069767)
  • Fixed the issue that SOC_WIFI_GCMP_SUPPORT with GCMP disabled failed to connect AP with both CCMP and GCMP enabled (875e422)
  • Fixed issue of STA may join bad RSSI AP when set by signal (#13958) (875e422)
  • Fixed AMPDU to NORMAL causes free buffer twice issue (6dff5b8)

ESP-WIFI-MESH

Changed

  • Updated the documentation for the use of mesh APIs (de580a0)

Fixed

  • Clear the issue rootless state in mesh ie when changing from leaf to root(#14063) (0670fbb)
  • Fixed the root conflict issue that both roots are yielded (0670fbb)
  • Fixed the issue that XON request timeout constantly when root reboot (#13212) (d65755e)
  • Do not send NULL data when scan start/done for mesh (#13786) (411ff70)
  • Fixed the TX issue when mesh lifetime remain equal to zero (5423b20)

Wi-Fi Supplicant

Added

  • Added API support to disable PMK caching. (db65d0b)
  • Added support for SAE-PK, WPA3-Enterprise and OWE transition disable indication (a3de651)

Fixed

  • Fixed incorrect typecasting to get SPP capabilities for SoftAP (5b4687e)
  • Fixed crash due to dangling pointer in WPA3 softAP (078aff1)
  • Fixed SAE connection failure when using the GCMP cipher (9977556)
  • Fixed deinitializing old DPP authentication when config is received. (e1f1586)
  • Recompute keys in OWE in case of mismatched or absent PMKID from association response (ecdd485)
  • Fixed for setting WPS status fail when connection fails. (f50aaea)
  • Fixed a memory leak that occurs when the SAE connection is interrupted. (accaf2b)
  • Allowed WPA-AES connection after WPS. (71ff740)
  • Fixed concurrency issue during WPS registrar/softAP deinit. (71ff740)

ESP Vendor Feature

Changed

  • Changed the magic variable from int to uint32_t on the receiving side (#10912) (309ec78)
  • Updated the documentation for the use of sniffer APIs (#10740) (309ec78)

Fixed

  • Fixed ESP-NOW get private parameter error (#13693) (de580a0)
  • Fixed issue in decryption of ESP-NOW packets for ESP32 and ESP32S2 when station disconnects from PMF AP (c1f50a8)

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.