github espressif/esp-idf v5.4-beta2
ESP-IDF Pre-release v5.4-beta2

pre-release11 days ago

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

ESP-IDF v5.4-beta2 is a preview release for ESP-IDF v5.4.

Obtaining v5.4-beta2

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

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

Using git

To get this release, use the following commands:

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

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

Download an archive with submodules included

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

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

Major changes

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

Major New Features

  • Added support for ESP32-C2 chip rev 2.0 (e43ded7)
  • Wi-Fi: Added FTM calibration values for ESP32-C6 (e990d1e)
  • Wi-Fi: Reduced power consumption in coexistence mode when Wi-Fi is disconnected from AP (5a5c004)
  • ESP Bluedroid Host: Added support of Cover Art feature in AVRCP Controller (cda2846)
  • ESP Bluedroid Host: Added support of Device Identification Profile (ca05aa5)
  • Bootloader: Added mocks for bootloader_support component (90cc261)
  • Power Management: Added support for PSRAM retention in light sleep on ESP32-P4 (82e76ab)
  • Peripheral Drivers: Added support for sleep retention of several peripherals in light sleep on ESP32-C6 and ESP32-H2
  • ULP: Greatly expanded support for LP Core on ESP32-C6 and ESP32-P4 with, among others: OpenOCD debugging support, LP-ADC, LP-SPI, ETM wakeup, LP-IO wakeup.
  • I2C: Added support for LP I2C instance on ESP32-P4 (ec3029e)
  • ISP: Supported a series of ISP features on ESP32-P4
  • LCD: Added i80 and RGB LCD driver support on ESP32-P4 (fdd90d4) (6d71638)
  • Touch Sensor: New touch sensor driver for ESP32-P4 (c23165b)
  • MbedTLS: Added support ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (9a47de5)
  • PSRAM: Added support for APS3204L chip (cb9f474)
  • Thread: Supported Thread Radio Encapsulation Link (TREL) feature (d1ef423)

Breaking Changes

  • Core System: Renamed __VA_NARG__ and its macros to be prefixed with ESP_, i.e. __VA_NARG__ to ESP_VA_NARG to avoid naming collisions. If using these then update to use the new name. (bb8fa93)
  • Security / ESP Cert Bundle: Due to changes in the certificate bundle format to reduce RAM usage, the use of pre-generated certificate bundles using the older format would now be incompatible with the newer application binaries. You now need to either use the default ESP-IDF build system method for attaching the certificate bundle while building applications or update your pre-generated certificate bundle binaries by generating them using the latest gen_crt_bundle.py script. (fa4c387)
  • SDMMC: Function sdmmc_host_init no longer returns ESP_ERR_INVALID_STATE when the SDMMC host is already initialized, now it returns ESP_OK. (d1571c1)
  • SPI Flash: Removed XMC-C suspend support because there is risk that erase operation might never finish (121a272)
  • Wi-Fi: Removed the definition of the "WIFI_BAND_2G_5G" field in "wifi_band_t". (7b5014a)
  • Wi-Fi: Modified the type of "bandwidth" and comment in wifi_ap_record_t. (3b0cf1a)
  • ESP Bluedroid Host: Added new Kconfig option to enable SDP APIs and remove the dependency of SDP on L2CAP Kconfig option
  • LWIP / PPP: PPPoS internal callback function has incompatible prototype. Please use esp_netif API or update your function callbacks. (d4f60fe)
  • ESP HTTP Server: HTTP version 1.0 was previously supported due to a software bug. With this update, only HTTP/1.1 is allowed. (57553ec)
  • 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. (27f11f8)
  • MbedTLS: Supported 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. (27f11f8)

Known Issues

  • For ESP32-C2 ECO4 chips, instruction access fault will be triggered only when receiving deauth packets with ccmp and crypto_aes_128_cmac encryption mode.
  • For ESP32-P4 chips, when ESP_SLEEP_KEEP_DCDC_ALWAYS_ON is not enabled (enabled by default), accessing external storage (Flash/ PSRAM) after waking up from light sleep may get incorrect data.
  • Programming guide in PDF format is not available for this release.

Known issues are planned to be fixed before the final v5.4 release.

Changelog

802.15.4

Added

  • Supported the large scale size of pending table (8aacb78)
  • Added a frame length check for the transmission frame (c7d15c1)

Changed

  • Refactored the next_operation() logic to avoid some risks when multiple IEEE802154 events are processed in one ISR (c7d15c1)
  • Ignored the bit8 of the frame length (83eaef8)

Thread

Added

  • Supported openthread time sync feature on both RCP and BR (2ca453d)
  • Supported changing openthread version information (93c32d4)
  • Added a task switching lock holder check (e42b95d)
  • Supported Thread Radio Encapsulation Link (TREL) feature (d1ef423)
  • Enabled vendor hooks for rcp operating in SPI mode (b835986)
  • Added OpenThread dataset changed event (f012157)

Changed

  • Replaced NETCONN_EXT_RESOLVE_HOOK with DNS_EXT_RESOLVE_HOOK to support more application layer protocols (4d4062a)
  • Made ot task queue sending non-permanent blocking (9f1f285)
  • Updated CONFIG_LWIP_IPV6_NUM_ADDRESSES to 12 in Thread BR lib (9f1f285)
  • Updated openthread submodule (f32c18b) (ad8f175)
  • Moved the registration of UART VFS devices to UART initialization function (9e5e1f0)

Fixed

  • Fixed the issue of incorrect duration and channel configuration in otPlatRadioEnergyScan calls (1754c8f)

Zigbee

Changed

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

Removed

  • Removed the esp_zigbee_rcp example (dd8b4fa)

Application Utilities

Added

  • ESP HTTP Client: Added new feature of http method (beda3dc)
  • Added HTTP Code 413 support in esp_http_server (#13746) (245ec91)
  • Added config option to set timeout for posting events in esp_http_client, esp_http_server, esp_https_server and esp_https_ota (9294914)
  • ESP HTTPS OTA: Added API to retrieve the most recent status logged from the HTTP response. (fe47676)
  • Provisioning: Added an event that triggers a blocking callback to allow users set advanced WiFi configurations (2f0dc01)
  • Provisioning: Added support for Notify attribute in provisioning service (0f11052)
  • Provisioning: Added support for ESP IP chips to work with bluedroid stack (6e5414b)
  • Provisioning: Added API to keep BLE on after provisioning. (5b56ff6)

Changed

  • Provisioning: Exposed API to set BLE random address (07e377c)

Fixed

  • Fixed issue with PUT requests with async handler (#14196) (940578f)
  • Fixed build errors when only TLS 1.3 is enabled (3aaac6c)
  • Fix mass_mfg tool for supporting u64/i64 types (#14159) (1c351e5)
  • Fixed allocating if_name in client context multiple times (#13945) (f0781c4)
  • Fixed memory leaks in HTTPS Server initialization (ade6a5e)
  • ESP HTTP Client: Fixed connection close condition check for a case where no explicit errno is set (#14724) (95145c3)
  • Provisioning: Fixed incorrect input decoding when using console transport (8b4a712)
  • ESP HTTP Server: Updated logic to enforce HTTP/1.1, no longer supporting other versions (#14723) (57553ec)
  • Provisioning: Fixed hostname resolving for IPv6-only host (343bb81)

Bluetooth Low Energy (BLE)

Added

  • Documentation: Added BLE Getting Started Tutorials (Chinese version) to Espressif Programming Guide, including BLE Introduction, Device Discovery, Connection, and Data Exchange. (a11aa9c)
  • Documentation: Added BLE Features Support Status to API Guides (782b8f0)
  • Documentation: Added BLE major feature support status page to API Guides (9dba818)

ESP Bluedroid Host

Added

  • Added BLE connection ID parameter for ESP_GATTS_RESPONSE_EVT. (1a065dc)
  • Added support for retrieving the BLE address type within the bond list(#13872). (8971902)
  • Added print and assert statements for memory allocation failures. (707dd9b)
  • Added support for BLE 5.0 instances in related events (25f0713)
  • Added definitions for BLE authentication failure reasons. (83cda5c)
  • Added the check for setting BLE advertising parameters when deleting GATTS services. (27f06be)
  • Added API to set BLE supported channel selection algorithm. (755d3a2)

Changed

  • Optimized BLE example for setting advertising data. (cd11782)
  • Optimized documentation for BLE connection parameter updates. (368cfda)
  • Optimized BLE event reporting time for connection failures (33b3408)
  • Updated BLE address type of peer device when the connection is completed. (c27db10)

Fixed

  • Fixed error when writing Client Supported Features characteristic. (1ba647d)
  • Fixed BLE handle check for GATT API. (2381487)
  • Fixed access fault when reading BLE controller information fails. (1a065dc)
  • Check whether the work queue is NULL before deleting it when creating thread failed. (f54e1a8)
  • Fixed memory out-of-bounds issue when parsing ADV data. (6a2bc24)
  • Report HCI error status to application when command fails. (ba4e111)
  • Fixed incorrect state issue when unregistering BLE GATTC application. (d371677)
  • Cancelled the BLE connection initiation if the connection has already been established when both devices initiate a connection simultaneously. (b24dd77)
  • Fixed the issue where BLE could not create a connection if the controller doesn't support the coexistence of scanning and connection initiating states. (2c44bb7)
  • Reset BLE security parameters during initialization (#13869) (54da445)
  • Fixed BLE security vulnerability when using fixed local IRK. (43af0fb)
  • Display BLE controller init status for ESP32 and ESP32-C3/ESP32-S3 (705c21d)
  • Fixed BLE build failure when enabling dynamic memory with BLE 5.0 (7f42ed3)
  • Fixed crash issue in BLE SMP when a disconnection process is ongoing (379698c)

Removed

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

Bluetooth Low Energy Controller

Added

  • Supported using external 32k oscillator as Bluetooth sleep clock on ESP32/ESP32-C3/ESP32-S3 (1662e28)
  • Added support for BLE scanning and initiating state coexistence on ESP32. (c4d1c04)
  • Supported enhanced BLE TX power setting and getting on ESP32-C3 and ESP32-S3. (c1e875f)
  • Supported mesh duplicate with extended scan on ESP32-C3 and ESP32-S3 (ce12f41)
  • Added support for configurable default TX power on ESP32-C6, ESP32-H2, and ESP32-C2. (4003462)
  • Supported UHCI function on ESP32-C6 and ESP32-H2. (abfca50)
  • Added support for running controller code in flash-only mode on ESP32-C3 and ESP32-S3 (81020a3)
  • Added config for whether to disconnect after the instant of ACL control procedure has passed on ESP32. (911ddf7)
  • Added config for whether to disconnect after the instant of ACL control procedure has passed on ESP32-C3 and ESP32-S3. (7dd10f3)

Changed

  • Changed the maximum TX power to +20dBm on ESP32-C3 and ESP32-S3. (cb2624f)
  • Updated the BLE rom.ld file for ESP32-C2 ECO4. (53dff53)

Fixed

  • Fixed the issue where scan could not be reset when the Controller was reset during scanning on ESP32. (e628335)
  • Fixed Wi-Fi BLE coexistence assert issue on ESP32 (39a1e17)
  • Fixed BLE Direct Test Mode on ESP32 (39a1e17)
  • Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 revision v1.1. (9b112e0)
  • Fixed extended connectable advertising data length check on ESP32-C3 and ESP32-S3. (2f27278)
  • Fixed early wake-up during light sleep when using the RC oscillator on ESP32-C3 and ESP32-S3. (a02fb3c)
  • Fixed BLE TX power retrieval failure on ESP32-C3 and ESP32-S3. (a02fb3c)
  • Fixed issue where RPA is not updated after BLE RPA timeout on ESP32-C3 and ESP32-S3. (7752c1b)
  • Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 and ESP32-S3. (3000402)
  • Fixed subsequent periodic advertising sync create failed after canceling sync before sync established on ESP32-C3 and ESP32-S3. (c27614f)
  • Fixed BLE util buffer free after controller reset on ESP32-C3 and ESP32-S3. (1d8f1a5)
  • Fixed assert when BLE connection already exist and be connected again on ESP32-C3 and ESP32-S3. (1d8f1a5)
  • Fix BLE channel map update issue when latency is non-zero on ESP32-C3 and ESP32-S3. (8072d96)
  • Fixed the issue where RSSI is incorrect when the peripheral latency for the connection is not zero on ESP32-C3 and ESP32-S3. (6750215)
  • Prevent BLE interrupt from being preempted on ESP32-C3 and ESP32-S3. (18f118f)
  • Fixed Bluetooth BB interrupt allocation on ESP32-C3 and ESP32-S3. (8057d80)
  • Fixed BLE interrupt allocation using system API on ESP32-C3 and ESP32-S3. (a3cb889)
  • Fixed advertising data memory leak after restart advertising on ESP32-C3 and ESP32-S3. (a3cb889)
  • Fixed occasional crash issue in multi-connect scenarios on ESP32-C6. (c62555d)
  • Fixed occasional ACL data packet loss issue when using UHCI on ESP32C6 and ESP32H2. (c62555d)
  • Fixed occasional assertion issue when enabling logging on ESP32-C2. (c62555d)
  • Fixed memory leak issue when deinitializing URAT HCI on ESP32-C2, ESP32-H2 and ESP32-C6. (c62555d)
  • Fixed a crash during host deinitialization after the controller had been deinitialized on ESP32-C2. (9c25d54)
  • Fixed instant wake up from deep sleep issue when BLE is running on ESP32-H2. (6c59cda)
  • Fixed an occasional WDT issue when disabling the Controller on ESP32-C6. (18e8e18)
  • 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. (ff4f1a2)
  • Fixed occasional WDT issue in multi-connection scenarios on ESP32-H2. (ff4f1a2)
  • Fixed the issue where connectable advertising could still be set after reaching the maximum number of connections on ESP32-C6, ESP32-H2, and ESP32-C2. (ff4f1a2)
  • Fixed response timeout issue when updating connection parameters on ESP32-C6, ESP32-H2 and ESP32-C2. (ff4f1a2)
  • Fixed a low-probability assertion issue in ADV and SCAN coexistence scenarios on ESP32-C6. (ff4f1a2)
  • Fixed the issue of occasional assertion in multi-synchronization scenarios on ESP32-H2. (abfca50)
  • Fixed occasional assert issue in ADV and scan coexistence scenario on ESP32-C6. (2d80380)
  • Fixed occasional cache error crash in the DTM process on ESP32-C2. (2d80380)
  • Fixed occasional packet loss issue during severe air interference on ESP32-C6 and ESP32-H2. (2d80380)
  • Fixed HCI not returning 0x45 issue when adv interval and data length mismatch on ESP32-C6,ESP32-H2 and ESP32-C2 (2d80380)
  • 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-C2. (82af825)
  • Fixed btdm_sleep_clock_sync timeout when exiting sleep on ESP32-C3 and ESP32-S3. (7dd10f3)
  • Fixed the issue where the BLE connection can't be established when initiating and advertising coexist on ESP32. (911ddf7)
  • Fixed assert in ke_mem.c at line 409 when controller resets on ESP32. (911ddf7)
  • Fixed occasional crash issue in low memory scenarios on ESP32C6 and ESP32-H2. (b763700)

ESP-BLE-Mesh

Added

  • Added an option BLE_MESH_V11_SUPPORT to enable or disable BLE Mesh v1.1 features (3a4aa2e)

Changed

  • Reduced the flash size occupied by the BLE Mesh component (ae67021)
  • Disable generic & sensor & time scene & lighting server models by default (7ca53a1)

Fixed

  • Fixed wrongly updating the time set parameter in the time scene server model (3929afd)
  • Fixed crash may happen when using NimBLE host at compilation level Os (be4278f)
  • Fixed segmented message advertising was incomplete when sending to both local and external elements (0c0dfe1)
  • Fixed transmission resources might not be released correctly (2fe8373)

ESP NimBLE Host

Added

  • Added change to set data length once the connection is created. (46acfdc)
  • Added a change to print the address of an advertising instance (2a12872)
  • Added fixes for issues reported by Coverity (f68d16e)
  • Add support for ext adv param v2 HCI command (c6bed07)
  • Added support for bidirectional data transfer between SPP client and server (1f41827)
  • Created a function to make CCCD flags configurable. (b341791)
  • Added BT_HCI_LOG_INCLUDED macro into ESP-NimBLE configuration according to nimble nomenclature (41d1b68)
  • Added BLE NimBLE Get Started examples added under examples/bluetooth/ble_get_started/nimble (3523525)
  • Added new event to confirm link establishment. (c480d92)
  • Added support to initiate connection while a scan is in progress. (dbce23f)
  • Added change to handle linked om data at Blufi layer for nimble. (5c3e637)
  • Supported Bluetooth LE 5.1 direction finding on nimble host. (f90d235)
  • Added host cb to provide IRK during host init. (4178315)
  • Added support for Multiple Variable Length Notifications. (7e2534d)
  • Added support for EATT or ATT over Enhanced L2CAP Credit Based Flow Control Mode. (7e2534d)
  • Added support for Multiple EATT bearers. (7e2534d)

Changed

  • Updated the correct parameter in set Data len API in cases where BLE 5.0 support is disabled (3459ff2)
  • Enabled direction finding feature in nimble host only mode. (2c67f08)
  • Updated sbom.yml to reflect correct nimble version (5b1dcaa)
  • Added change to not issue an SetDataLen command when updated with the same data length and tx time. (a547ebb)
  • Update Advertising Tx power levels to match with the specification. (737d8f8)
  • Increase Timer stack size for nimble application (764433f)
  • Updated menuconfig options to consider BLE 5.0 support options. (7f8fac5)

Fixed

  • Fixed the sequence of LL and host transport init (1c80078)
  • Fixed compilation warning observed in clang-based builds (e17f242)
  • Fixed the deinit sequence in blufi example. (88bb0e0)
  • Register dummy host callback in stack deinit procedure. (cfb7858)
  • Fixed a crash issue of examples/bluetooth/nimble/ble_multi_conn (5f6971b)
  • Corrected parameter handling in periodic transfer enable API (259b700)
  • Fixed the issue caused by the encryption event being posted to the application before bonding information was saved. (ac8f354)
  • Fixed assert issue in proximity_sensor example due to a duplicate advertising instance (313f016)
  • Fixed a BLE security vulnerability when using fixed local IRK (6381f60)
  • Fixed the sequence of pairing complete event (065c031)
  • Fixed issue where callback information passed in connect request was getting corrupted. (b1c8757)
  • Zero initialized variables to fix incorrect paired device number information received after host initialization. (929c04c)

Bluetooth Common

Controller

Fixed

  • Fixed Bluetooth disconnect issue after waking up from modem sleep with external 32k crystal on ESP32 (b6f67b3)
  • Fixed heap corruption in the call of esp_bt_mem_release on ESP32(#14263) (d4b2da2)

Bootloader

Added

  • Added BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP for ESP32-C2 (without RTC_MEM) (e7070e7)
  • Added missing C linkage to some headers(#13890) (788455f)

Changed

  • Updated factory reset and test app pin selection range to be target specific (see #14508) (6f37ff7)

Build & Config

Added

  • Added support for component property COMPONENT_SOURCE which determines the override precedence among the components with the same name (4b3a5e9)
  • Added support for inverting the Boolean value when renaming a Kconfig option in sdkconfig.rename (18d9ac4)
  • Added check for missing component_target in the idf_component_get_property function (#14036) (1ac37b6)
  • Added a Kconfig option to make default warnings to be errors (#11239) (b1768dc)
  • Added the CONFIG_COMPILER_STATIC_ANALYZER option that enables GCC "-fanalyzer" option for the build (b0ba568)
  • Added a new CMake flag NON_OS_BUILD to simplify building non-FreeRTOS projects (6f466df)

Changed

  • Changed the logging level from warning to info when disabling idf-component-manager (#14097) (1e0df27)
  • Updated optimization flag for "size" to use -Oz with clang (#12449) (8fcc57b)
  • The resolution of component dependencies has changed. Unavailable or unregistered components need to be removed from REQUIRES and PRIV_REQUIRES. Previously, the build succeeded as long as the project didn't try to link anything from these unregistered components (1c2b273)

Fixed

  • Fixed a bug in ldgen that resulted in a syntax error in the generated linker script file when the source linker fragment file refers to an object file containing a single symbol (6f96839)
  • Fixed an issue where the Linux target built with clang on MacOS failed to build because the ld linker did not support the -warn_commons options (#13185) (fab0658)
  • Fixed non-reproducible builds when toolchain path is changed (#13680) (5ef75d5)
  • Correctly resolve component requirements (#13447) (1c2b273)

Removed

  • Removed duplicate entry for IDF_TARGET_LINUX from the project Kconfig file (#14145) (4d45c6f)

Coexistence

Fixed

  • Fixed LoadProhibited issue in coexistence scenario on ESP32-C3 and ESP32-S3 (44a9881)
  • Fixed the issue of ESP32-C6 enable external coexist failure when enable power management for station when disconnected. (bd48184)

Core System

Added

  • Added ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP for ESP32-H2 (331abf7)
  • Added kconfig option for choosing xtal as rtc-fast clock source on ESP32-P4 (564d777)
  • Added kconfig option to allow LP Core reserved memory be marked as executable from HP core. (#14422) (5486653)
  • Added explicit drop for sections .got and .got.plt; In case these sections appear a hint will be shown. (#14296) (c605620)
  • Added docs about CPU Lockup reset reason on ESP32-P4 (9960cdd)
  • Added option to disable eval of expression in assert() when NDEBUG set (a04bedc)
  • Added mocks for bootloader_support component (90cc261)
  • Added support for ESP_ERROR_CHECK_ macros on Linux(#13893) (391aabf)
  • Added esp_rom_vprintf in IRAM with the same capabilities as esp_rom_print (53c0886)
  • Added option --orphan-handling=warn to the linker flags. (4523f2d)
  • Console: Added support for printing version information in the advanced console example for esp32p4 (#14593) (453850e)
  • Console: Add an API function "esp_console_cmd_deregister" to de-register the specified console command (69d849c)
  • Console: Support users to demonstrate command info in different verbose levels (#9158). (6e20be1)
  • Heap: Added functionality to pause the tracing of allocation in standalone mode (see #13803) (4b9b8be)
  • Linux target: Added stubs for esp_pthread* functions (#14339) (d7ca8b9)
  • Linux target: Added esp_pthread function implementations for linux target (#14384) (4c7d9f9)
  • Linux target: Added Linux compatibility to esp_app_format (6d5d4f8)
  • Linux target: Added error message and simple backtrace for segmentation faults (9c96507)
  • Linux target: Added error message for aborts (9c96507)
  • Newlib: Added thread-safe functions flockfile & funlockfile for safe multi-line printing (#2565) (13cfcc4)
  • Partition Table: Added config option to select partition table with two large OTA partitions (45c1565)
  • Partition Table: Added note for parttool if SB or FE is used to use --esptool-erase-args=force(#8196 (comment)) (a648a95)
  • Partition Table: Added --ignore-readonly flag for parttool (#13964) (687832a)
  • Pthread: Added message queue support (e35c614)

Changed

  • Renamed __VA_NARG__ and its macros to be prefixed with ESP_, i.e. __VA_NARG__ to ESP_VA_NARG to avoid naming collisions. (bb8fa93)
  • Heap: Moved all TLSF static inline functions to specific headers and TLSF public API header to an include folder ( espressif/tlsf@ba64d198) (8ff8b52)
  • Interrupts: Unify RISC-V FreeRTOS xPortSetInterruptMaskFromISR and vPortClearInterruptMaskFromISR APIs between different types of interrupt controller. (52175a6)
  • Interrupts: Made the NMI interrupt free to use on Xtensa targets and added an example to show how to use it (#13629) (c68c404)
  • Log: Refactored tag level check APIs (712005c)
  • Panic handling: Changed register dump on non panic task WDT to be more descriptive (#14400) (766f1f2)
  • Pthread: Changed pthread to not pull in init functions if not used, saving ram/flash space. (#14213) (14a2be6)

Fixed

  • Corrected the address used to fetch the application image header during system startup (c366277)
  • Fixed c++ TLS classes destructors calls (#14360) (020bf08)
  • Fixed ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP kconfig option docs wrongly stating that RTC memory will be consumed first per heap initialization order. (331abf7)
  • Fixed potential double exception when booting on Xtensa (#14406) (794cf2e)
  • Fixed comparison of integer expressions of different signedness in spinlock (#14469) (1489514)
  • Fixed include paths for ROM headers. It is no longer possible to include ROM headers from different targets than the one you are compiling for. (eefe001)
  • Print backtrace for both CPUs when cache error does not determine CPU (fdd54ab)
  • Linux target: Fixed FreeRTOS simulator to correctly schedule lower priority tasks when blocked on host system's select() call (#14395, #14457) (4dd7159)
  • Linux target: Fixed build errors on MacOS (8c51cc6)
  • Console: Merge console/advanced and console/advanced_usb_cdc examples, refactor the resulting console/advanced example (81ad0eb)
  • Console: Fixed console freeze when USB Serial JTAG is used and input data is received prior to the initialization of the driver (see #13940) (9bae186)
  • Heap: Fixed TLSF allocation size calculation ( espressif/tlsf@ea82911f) (8ff8b52)
  • Newlib: Fixed potential overflow in usleep (#14390) (a651767)
  • Newlib: Fixed ROM (ESP32-P4/ESP32-H2) nano newlib can not printf float issues (e37ff35)
  • Newlib: Fixed an issue where stdout got redirected to arbitrary open file when primary console output is disabled (#13439) (2ccc9bc)
  • Pthread: Fixed pthread join/detach potentially freeing the wrong TLS pointer(#14084) (15b05d5)
  • Watchdogs: Allow XTAL32K WDT only on supported chips (#13955) (94bec78)
  • Interrupts: Fixed a bug in the NMI example on ESP32-S3 resulting in the interrupt never being serviced (ee5e279)

Removed

  • Linux target: Deprecated esp_linux_helper.h (replaced by sys/cdefs.h) (1ced233)
  • Linux target: Made watchpoint configs CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=n on Linux obsolete (374f497)
  • Log: Disabled CONFIG_LOG_COLORS option by default, logs are now automatically colored by IDF Monitor, instead. (f659405)
  • Log: Deprecated esp_log_buffer_hex (use ESP_LOG_BUFFER_HEX instead), esp_log_buffer_char (use ESP_LOG_BUFFER_CHAR instead). (28e5925)

Debugging

Added

  • OpenOCD: WROVER-B driver was added for easier configuration of JTAG debugging on Windows (dcb34c5)
  • GDB Stub: Added handling of FPU registers to the gdbstub. (2bb613c)
  • OpenOCD: Integrated the OpenOCD flasher stub to speed up debugging. This increases RAM usage by 8 KB for ESP32-C6 and ESP32-H2 to preallocate stub code. This feature can be disabled via Component config > ESP System Settings in menuconfig. (9a13c59)

Fixed

  • Core Dump: Fixed array out of the bounds compile error (9746eff)
  • Core Dump: Fixed a buffer overflow issue when getting the coredump summary. (1e90b1f)
  • Core Dump: Include .data, .bss, and heap sections into the core dump (5bac46d)

Documentation

Added

  • Added File system considerations document into the API Guides (a5871f8)
  • Added API Guides section on standard IO streams (#13907) (455e83e)

Changed

Fixed

  • Fixed spelling mistake in interrupt-allocator doc (#14350) (590e9bb)

Removed

  • Removed obsolete ESP32-DevKitS User Guide (58f59de)

Ethernet

Added

  • Added a new Generic PHY driver to support all 802.3 compliant PHYs (e39f0a1)
  • Added configuration of SPI Ethernet MAC address based on esp_read_mac in Protocols Connect Example (#13808) (a55fecb)

Changed

  • Optimized throughput of DM9051 at high SPI rates. (127306f)
  • Simplified memory allocation for received frames of DM9051. (127306f)

Fixed

  • Fixed default SPI ETH GPIO in example to align with latest ESP32-P4-Function-EV-Board. (175cdcf)(7baf9f8)
  • Fixed C++ invalid type conversion error in default MAC config (#14276) (ad9cdcd)

Removed

FreeRTOS

Added

  • Added kconfig option for disabling software timer functionality (#13578) (6cbee5c)
  • IDF Kernel: Added examples showing basic freertos SMP usage and common APIs, including how to create pinned and unpinned tasks, use queue to communicate between tasks, use locks to protect shared resources and use task_notification for synchronization. (ce01841)

Changed

  • Enabled the usage of FPU in ISR context for exp32s3. (a110f09)
  • Amazon SMP Kernel: Upgraded to upstream v11.1.0 (cfb8af0)
  • IDF Additions: Renamed the SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY to FREERTOS_TASK_CREATE_ALLOW_EXT_MEM (1b79771)

Fixed

  • Fixed an SMP unsafe race condition in xStreamBufferSend() leading to a crash in xTaskNotify(). (9a3427f)
  • Fixed an SMP unsafe race condition in xStreamBufferReceive() leading to a crash in xTaskNotify(). (943103a)
  • 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. (a97a7b0)
  • Fixed parts of documentation referring to stack size as "in words". Should be "in bytes" in IDF (#11600) (bdb36f1)
  • IDF Additions: Fixed an occasional assert failure in vTaskDeleteWithCaps() (#14222) (c01512f4)
  • 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) (9b3eda0)
  • IDF Additions: xRingbufferCreateWithCaps allows non-4-byte-aligned xBufferSize input for non-RINGBUF_TYPE_BYTEBUF ring buffer type (76102f3)
  • IDF Additions: Fixed an issue where the vTaskDeleteWithCaps() API leaked memory (#14222) (23e4823)
  • IDF Kernel: Fixed an issue where the vTaskPlaceOnEventListRestricted() used incorrect critical section macro and resulting in deadlocks for the Linux target. (354ffb4)
  • 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. (7806aeb)

LWIP

Added

  • DNS: Added a hook for DNS external resolving with resolved callback (5ef5558)
  • IPv6: Added a configuration to set the size of ND6 table cache (8437262)
  • PPP: Added support to disable IPv4 for PPP connections (463b41f)
  • PPP: Added support for PPP Authentication using external mbedTLS (#13597) (38f0d32)
  • DNS: Added capability in lwip NETDB api's to return multiple ip addresses for a domain name. (738042f)
  • DHCP Server: Add configuration which removes DNS option from DHCP server's responses if DNS not specified (#14132) (46a2409)
  • ESP Netif: Added an API for getting all preferred ip6 addresses. (997512a)
  • ESP Netif: Added support for user side implementation of esp_netif API when using custom TCP/IP stack (f71f0fc)
  • ESP Netif: Added support to configure IPv6 auto-configuration separately for each network interface (463b41f)
  • ESP Netif: Added support for separate DNS servers per network interface (#6270) (6a75241)
  • ESP Netif: Added support for captive portal option (114) to DHCP Server (#12971) (e42f1c5)
  • ESP Netif: Allow traffic reporting runtime enable/disable (#13348) (3cb622c)

Changed

  • Upgraded to LWIP v2.2.0 (d4f60fe)
  • Changed maximum number of available sockets (#13866) (5c6272c)
  • IPv6: Changed the default IPv6 input hook to drop all IPv6 packets if the input network interface has no link local address assigned. (82a29b7)
  • PPP: PPPoS internal callback function has incompatible prototype. Please use esp_netif API or update your function callbacks. (d4f60fe)

Fixed

  • Fixed IP address update for invalid packets in ping component(#14197). (4873a94)
  • PPP: Fixed PPP Server issue with negotiating its own address if configured on server's side but not set on client's side (espressif/esp-protocols#565) (4e5c837)
  • Fixed compilation error in lwIP undefined reference to `if_nametoindex'.(#13577) (e2f6920)
  • Fixed NULL dereference on out of memory condition if we cannot allocate thread local semaphore (933116b)
  • DHCP Server: Bind dhcps netif to avoid handling the dhcp packet from other netif (3125367)
  • ESP Netif: Enforced designated initializer order for C++, enabling ESP_IP4ADDR_INIT and ESP_IP6ADDR_INIT macros (#14411) (1889851)
  • ESP Netif: Fixed esp_netif_get_all_ip6() to return only valid addresses. (3c9cd35)
  • ESP Netif: Fixed setting missing IPv6 auto-configuration flag for PPP interfaces if enabled in menuconfig (#13713) (ce4313a)
  • IPv6: Fixed for replying the NS without source link-layer address option (51cd6e9)

Low Power Features

Power Management

Added

  • Added support for PSRAM retention in light sleep for ESP32-P4(82e76ab)
  • Fixed possible low internal voltage and load capacity on ESP32-H2. (bae513e)
  • Supported power down PSRAM and Flash during deep sleep for esp32p4 rev1.0 (de3a5d4)
  • Supported power down Flash (configurable) during light sleep for esp32p4 rev1.0 (de3a5d4)
  • Supported to query PHY RF used time. (12c4960)

Changed

  • Optimized the power consumption of ESP32-P4 in active state (6abe40e)
  • Improved esp_timer timing accuracy after light sleep is rejected (df64e63)

Fixed

  • Disable timer wakeup source with esp_pm auto light-sleep off (40a910b)
  • Fixed the issue of regDMA wait node to immediately return to done caused by regdma wait mode comparator for ESP32-C6, ESP32-H2 and ESP32-P4 (3415ff2)
  • Fixed CPU switch fail due to BB PLL calibration fail bug under low temp on ESP32-H2 (36e78b3)

ULP

Added

  • Added option to allow custom cmakefile project file for ULP project (41dd1a3)
  • Enabled the generation of the compile_commands.json file for ULP and LP core apps. (#13926) (0494dc4)
  • LP Core: Added LP core debugging support (a07eed6)
  • LP Core: Added support for LP-IO a wake-up source (1f19543)
  • LP Core: Added LP VAD driver and support for VAD events as a wake-up source for both HP/LP cores (e05fce3)
  • LP Core: Added ULP lp core critical section that can be used by both main CPU and LP CPU. (e051b92)
  • LP Core: Added support for LP ADC to the LP Core on esp32p4 (1b6a829)
  • LP Core: Added missing extern C guards in ulp_lp_core_print.h (#14329) (cbb2c4b)
  • LP Core: Added light-weight print functions, optimized panic handler size by using these. (7042068)
  • LP Core: Added option for routing LP-Core prints to HP-Core console uart (92bf402)
  • LP Core: Added support for ETM events as a wake-up source (d1132dd)
  • LP Core: Added LP SPI support to the LP Core on esp32p4. (f8a7af8)

Changed

  • LP-Core: Optimized ESP32-C6 & ESP32-P4 LP-CPU power consumption in deepsleep (12cbdfe)
  • LP Core: Changed wakeup time calc to use a precomputed tick value, as this calculation cause the binary to pull in software division functions. With this LP-Core binaries now use 1.1k less bytes. (8b73c86)

Fixed

  • Fixed an issue where the first I2C read or write failed when using the LP I2C or the RTC I2C peripheral. (#14043, #11608) (a9787fc)
  • Fixed the issue that riscv type ULP contains redundant GPIO definition which causes compilation failure (#14437) (17ddda0)
  • Fixed that the .elf ext was not set by default for custom ULP cmake projects (e2183d5)
  • LP Core: Fixed an issue where sometimes lp_core_printf() garbled the string being printed (#14530) (13d4235)
  • LP Core: Fixed ULP_SHARED_MEM address being wrong on ESP32-P4, causing the stored wakeup time to be overwritten by the stack. (f473381)
  • LP Core: Fixed newlib API from LP ROM on ESP32-P4 not working due to addresses being wrong. (2a2f0fd)
  • ULP-RISC-V: Fixed a bug wherein the RTC I2C peripheral got stuck when performing read or write of multiple bytes (#12235) (e9a2f3b)
  • ULP-RISC-V: Fixes a bug where an incorrect register was being written to for setting RTC IO output mode for the ULP RISC-V (#14010) (e5d9d1d)

MQTT

Changed

Fixed

Networking

Added

  • Examples: Added logic to attempts to find a suitable source interface and IPv6 address for communication based on the destination address type. (3aee7c9)

PHY

Added

  • Added cert_test support for ESP32, ESP32-C2, ESP32-C6, ESP32-H2 and ESP32-S2 (#11972) (db50b1a)

Changed

  • Improved ESP32 RX sense from -94 to -97, which was introduced by commit(4dfeb9c) (d0be11a)

Fixed

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

Peripheral Drivers

Added

  • ADC: Fixed ADC oneshot example attributes order (#14303, #14304) (88c45ec)
  • Camera: Supported SC2336 Camera Sensor in the camera related example (cba8c5d)
  • Camera: Supported initialization without XCLK pin by setting GPIO_NUM_NC when using external XTAL (e674608)
  • Camera: Supported more camera color formats CAM_CTLR_COLOR_GRAY4 and CAM_CTLR_COLOR_GRAY8 (e674608)
  • CSI: Added verification of no backup buffer or no new trans (7d097ca)
  • CSI: Added CSI plus DSI camera display example (cd1a681)
  • ETM: Sleep retention is supported by enabling allow_pd in driver configuration (d38e30e)
  • GDMA: Added sleep retention support for AXI_DMA and AHB_DMA (ec50cb1)
  • GPTimer: Added an example to simulate the Wiegand interface with GPTimer (bb080b4)
  • I2C: Support LP I2C instance on ESP32-P4 (ec3029e)
  • I2C: Added an interface for getting initialized handle via port (#13968) (40089b2)
  • I2C: Added a new API for sending multi data buffers (#13635) (5bae298)
  • I2S: Supported light sleep power down retention. (16d99f3)
  • I2S: Added the APLL clock support for I2S on ESP32-P4 (#14311, #14448) (b71768b)
  • I2S: Supported I2S ETM event and task (ed91305)
  • I2S: Added missing port 2 on ESP32-P4 (b1a5d80)
  • LP_I2S: Supported LP I2S HP core driver on ESP32P4 (d16bb64)
  • ISP: Supported ISP LSC driver on ESP32-P4 (df9d722)
  • ISP: Supported ISP Demosaic driver on ESP32-P4 (d7b701b)
  • ISP: Supported ISP histogram driver on ESP32-P4 (0e4464c)
  • ISP: Supported ISP Gamma correction driver on ESP32-P4 (c607544)
  • ISP: Supported ISP Sharpen driver on ESP32-P4 (b432ded)
  • ISP: Supported ISP AE (Auto-Exposure) driver on ESP32-P4 (3e974bd)
  • ISP: Supported ISP CCM driver on ESP32-P4 (d92b8c3)
  • ISP: Supported ISP AWB (Auto-White-Balance) driver on ESP32-P4 (ad57a47)
  • ISP: Supported to change config after initialized (a4bbdd3)
  • ISP: Added ISP BF and ISP DVP programming guide (cd1ec84)
  • ISP: Added RGB2YUV and YUV2RGB range and standard configurations (79a4419)
  • ISP: Added ISP AF example via CSI and DSI (895e6d5)
  • LEDC: Support configuration of the LEDC behavior in light sleep (92d3355)
  • LCD: Supported EK79007 MIPI DSI LCD in the example (a82b856)
  • LCD: Added i80 LCD driver support on ESP32-P4 (fdd90d4)
  • LCD: Added CS setup time config parameters (af9d107)
  • LCD: Added a help function to allocate draw buffer with proper alignment for i80 LCD driver (14435b0)
  • LCD: Added new configuration in the RGB_LCD driver to set DMA burst size (e659675)
  • LCD: Added RGB LCD driver support on ESP32-P4. (6d71638)
  • MCPWM: Added description of special deadtime configurations and added checking in the driver(#14773) (ec8de8a)
  • PARL_IO: Supported parlio_tx transmit buffer in external PSRAM (646d2f9)
  • PARL_IO: Added Parlio sleep retention support (722db20)
  • PCNT: Added driver support for PCNT to notify user when configured number of steps changed (3cdbe8c)
  • PPA: Added PPA example, support EK79007 MIPI DSI LCD (f5d9cbe) (cba8c5d)
  • RMT: Support backup registers before sleep on ESP32-C6/ESP32-H2 (4c0b3a5)
  • SDSPI: Supported tuning clock duty cycle (7a5c05e)
  • SPI: Supported SPI master mode sleep retention on ESP32-C6/H2/P4 (a155b98)
  • SPI Flash: Added support for XMC-D flash series. (c092de6)
  • SPI Flash: Added docs for how to distinguish whether bootloader supports HPM_DC (2834097)
  • SPI Flash: Add 32bit address support for ESP32-P4 v0.1 (e4deaf0)
  • TWAI: Supported TWAI sleep retention (0aa8c02)
  • Temperature Sensor: Added sleep retention support on ESP32-C6/H2/P4 (642188c)
  • Touch Sensor: New touch sensor on ESP32-P4 (c23165b)
  • UART: Added the textual description of the error code to the LOG in uart_select example (#14393) (8da1b8b)
  • UART: Support UART sleep retention on ESP32-C6/ESP32-H2/ESP32-P4 (2d8c719)
  • USB Device: USB MSC Device example now works with USJ console on ESP32-P4 (c2366d5)
  • USB Host: Added configurable parameter for reset recovery interval for external USB Hub ports (e26ad72)
  • USB Host: Added external HUB support (#12554) (d50a64e)
  • USB Host: Added option to initialize USB Host stack with unpowered port (c2b5339)
  • USB Host: USB Host allows to read and cache multiple configuration descriptors from USB device (67c10ea)
  • USB Host: Added clear error message when no more free channel available (501e4e6)
  • USB Serial JTAG: Added select functionality to the driver (7b72c32)

Changed

  • ISP: Updated to only support raw8 as ISP input data type (0665d75)
  • LCD: Updated the spi_lcd example to use LVGL v9. (c44e7dc)
  • LCD: Updated the RGB_LCD example to use LVGL v9. Replace the full refresh mode with direct refresh mode. (c6433de)
  • RMT: Enabled DMA burst transfer (0f6004e)
  • SDMMC: Improved checking of SD being busy and always requesting SD to send status, even if a write operation failed. (12398c0)
  • SDMMC: Improved initialization of SD card relative address (RCA). (c7a86a2)
  • SDMMC: Function pointer to sdmmc_host_deinit is now not used as default deinitialization function in SDMMC_HOST_DEFAULT() define macro. Instead sdmmc_host_deinit_slot is used which has int slot argument to deinitialize slots and the SDMMC host gracefully. sdmmc_host_deinit can still be called and forces the host deinitialization even if slots are still in use. (d1571c1)
  • UART: uart_select example is improved with the use of proper macro UART_NUM_0 (#14392) (315796f)
  • UART: Increased stack size in uart_echo_rs485 examples (#14381, #14382) (bd95e69)
  • UART: Re-allowed the users to pass in non-4-byte-aligned buffer size for TX ring buffer in uart_driver_install (76102f3)
  • UART: Eliminated glitch on TX at setup if TX signal is configured to be inversed (#14285) (860453d)
  • UART: Increased task stack size to avoid stack overflow on uart_events example (a6e8a9d)
  • UART: Shortened uart_read_bytes blocking period when the RX ring buffer is already full (9468bc3)
  • USB Device: RX callback in examples with CDC USB device modified to use freerots queues (bfcdc3c)
  • USB Host: Updated public API for USB Host multiconfiguration support (2afbcd1)
  • USB Host: Enabled USB Hub support in USB Host examples by default (a7cdabf)

Fixed

  • ADC: Fixed ADC usage after TRNG init/deinit sequence (#14124) (c3b58b9)
  • ADC: Fixed an issue where the number of ADC channels available to each ADC unit on the ESP32-P4 was reversed in the soc_caps.h file. (d3631b3)
  • Camera: Corrected Cache M2C operations in CSI and ISP_DVP camera controller drivers (a22a60c)
  • CSI: Fixed wrong assertion when there's new transaction (cd1a681)
  • GPIO: Dedicated GPIO driver can help enable the input/output path based on the signal direction. (85a0845)
  • GPIO: Fixed GPIO reservation for MSPI pins, it should consider the MSPI line mode (bd38d80)
  • GPIO: Public gpio_input_enable function so that users can append GPIO_MODE_INPUT mode onto IOs (2cef806)
  • GPIO: Patched the esp_rom_gpio_connect_out_signal function on ESP32 and ESP32-S2 to avoid potential output glitch (#12826) (860453d)
  • GPIO: Fixed USB DP pin can not disable pullup on ESP32-C6/ESP32-H2/ESP32-P4 (90d9dd1)
  • I2C: Fixed memory leak in async transaction (a63b847)
  • I2C: Fixed the i2c sda/scl force out register value on some ESP32-C6/ESP32-H2/ESP32-P4 (f5a2a1f)
  • I2C: Fixed hangs when SCL is randomly pulled low during communication (#13647) (2014e5a)
  • I2C: Fixed an I2C issue that slave streth happen but master timeout seems not work (#14129) (#14401) (89c808c)
  • I2C: Correct the semaphore release in command loop (#13962) (c77ea73)
  • I2S: Fixed I2S sample rate can occasionally be half of the configuration. (97b1146)
  • I2S: Fixed the alignment of max DMA buffer length on P4 (#14448 (comment)) (1d0d121)
  • I2S: Fixed es8311 example has no sound on ESP32-P4 Function EV board when using the default configuration (#14297) (7005d2c)
  • I2S: Fixed the crackle when using APLL clock source with DFS feature (Closes: #14707) (b918a31)
  • ISP: Fixed continuous mode can only trigger once (20c2b24)
  • ISP: Fixed AF environment detector lack of configuration issue (cd1a681)
  • ISP: Added FSM lock to protect AE/AF/AWB concurrent issue (ff4620a)
  • LCD: Fixed the issue in the MIPI DSI driver that DMA2D transaction descriptor being recycled before started (34813ec)
  • LCD: Fixed function panel_io_i2c_rx_buffer when called without write command in new I2C driver. (d839ea6)
  • LCD: Fixed build errors in cxx project when using the deprecated esp_lcd_color_space_t type (#14029) (cd9d036)
  • LCD: Fixed esp_lcd_new_panel_io_i2c build errors in cxx project (#14037) (cd9d036) (f5c71b8)
  • LCD: Fixed errors in MIPI DSI reading short packet (0e40a4d)
  • LCD: Allow to disable low-power mode in DPI panel (mandatory for HDMI). (e2ea85d)
  • LDO: Fixed LDO regulator driver cannot control LDO1 issue on ESP32-P4 rev1.0 (de3a5d4)
  • MCPWM: Fixed memory leak when power management is enabled (afffd0d)
  • MCPWM: Fixed pm_lock not being created when initializing capture timers on ESP32-C6/ESP32-H2/ESP32-P4 (afffd0d)
  • PARL_IO: Fixed parlio_tx transmit error in first transfer and 1 byte transfer (646d2f9)
  • PARL_IO: Fixed parlio TX cache sync issue on ESP32-P4 (0d9dd8b)
  • PPA: Fixed potential data process error caused by insufficient writeback/invalidate data length (a336234)
  • PPA: Fixed SRM potential heap corruption (OOB) if scaling factor is less than 1 (b9480d8)
  • PPA: SRM valid smallest scaling factor should be 1/16, not 1/15 (b9480d8)
  • PPA: Fixed Blend data process error caused by mismatching writeback/invalidate data length if in_bg/fg_buffer and out_buffer are the same one and L2 cacheline size is larger than L1 cacheline size (b9480d8)
  • RMT: Fixed compile issue when RMT, MCPWM, LCD driver header files are included in the same source file (34813ec)
  • SDMMC: Fixed in-code documentation (#14341) (7eaa185)
  • SDMMC: validate HS mode switch for SDIO. (c4ffee4)
  • SDIO Slave: Fixed issue that SDIO Slave peripheral may be powered off in lightsleep on ESP32-C6, ESP32-H2 and ESP32-P4 (bab289c)
  • SDSPI: Fixed missed initializer for dma_aligned_buffer and pwr_ctrl_handle (#14288) (5dbf2ae)
  • SPI: Fixed slave rx buffer overwrite when no DMA and configured trans_len don't match master trans_len. (#14462) (5effb74)
  • SPI: Fixed esp32p4 spi dma receive data error when high memory occupation (bde735f)
  • SPI: Fixed master transaction crash after fail calling to spi_bus_free (#13856) (1bf8986)
  • SPI Slave: Fixed segment mode potential IWDT timeout when mix mount TX and RX (55d4de5)
  • SPI Flash: Fixed external flash on ESP32-C6, ESP32-H2, ESP32-P4 (20183e0)
  • Touch Sensor: Fixed deep sleep can't wakeup by touch on ESP32-P4 (f33bd32)
  • Touch Sensor: Fixed the possible dereference to a NULL pointer when deregister waterproof or sleep wake-up function (ec99ccf)
  • UART: Ensured the fields of uart_event_t structure are at some certain values even when the fields are meaningless to some event types (#12299) (cc605ed)
  • USB Host: Fixed Low-Speed devices connection to ESP32-P4 (19d4883)
  • USB Host: Fixed missing device disconnect event on ESP32-P4 (d108ba1)
  • USB Host: Fixed ISOC channels occasionally skipping transfers on ESP32-S2 and ESP32-S3 (33e6863)
  • USB Host: Fixed ISOC channels abort on error (15c4d0e)
  • USB Serial JTAG: Fixed USB-serial-JTAG occasionally skipping characters when fsync is called (#13939) (9dc00a4)
  • USB Serial JTAG: Fixed input data not smooth and seems lose data (Fix for C3/S3/C6/H2/P4) (c594031)
  • USB Serial JTAG: Fixed issue that rom print will not work if driver is installed (1709095)

Removed

  • GPIO: Removed IO hold support during Deep-sleep for ESP32-P4 (15e20f0)
  • MCPWM: Deprecated keep_io_conf_at_exit flag in capture. Now the driver never resets the GPIO. (b42cd6b)
  • PARL_IO: Deprecated io_no_init flag in parlio_rx. Now the driver never resets the GPIO. (9cacadc)
  • SPI Flash: Removed auto suspend support for XMC-C flash series (121a272)

Security

Added

  • Added security_features_app example to demonstrate simplified enablement of most of the security features (8c6e97b)
  • ESP-TLS: Added an option to enable/disable full OCSP checks (#14503) (559e554)
  • ESP-TLS: Added option to enable OCSP in stapling mode for wolfssl SSL stack. (2f77896)
  • MbedTLS: Added countermeasure for ECDSA sign operation on ESP32-H2 (5bfa1fb)
  • MbedTLS: Added new config option CONFIG_MBEDTLS_FS_IO for filesystem related functions (#14409) (76b3cf5)
  • MbedTLS: Support ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (9a47de5)

Changed

  • MbedTLS: Updated the MbedTLS version to 3.6.2 (b5aea3d)
  • ESP Cert Bundle: Reduce RAM usage by modifying the certificate bundle format (#13204) (fa4c387)
  • ESP Cert Bundle: Updated the default root certificate bundle (cacrt_all.pem) (2d9c779)
  • ESP Cert Bundle: Updated the deprecated root certificate bundle (cacrt_deprecated.pem) (2d9c779)
  • ESP-TLS: Updated wolfSSL backend support to send entire client certificate chain (#13618) (2f77896)
  • MbedTLS: Moved ESP32-C2 ROM API mbedTLS feature from experimental to a fully supported feature. (b01fd6b)
  • MbedTLS: Updated the default root certificate bundle (55e59e0)
  • MbedTLS: Optimized aes-gcm performance by pre-shift unroll strategy (#14314) (ad3a257)

Fixed

  • AES: Fixed extra cache sync of memory caused due to aligned up size of DMA descriptors (0aeb965)
  • Flash Encryption: Fixed Flash encryption for ESP32-P4 (cd8009d)
  • Flash Encryption: Fixed encrypt only image instead of the partition optimisation not being enabled (9b51373)
  • MbedTLS: Fixed ESP32-C2 ROM ECO1 mbedTLS issues. (80106f5)
  • MbedTLS: Fixed wrong dma descriptor alignment (8f3f860)
  • Secure Boot: Fixed build issue for c++ compiler (#14398) (2884ce0)
  • Clear PMA entries before using them in ESP-IDF (2a6be65)
  • Extended example flash_encryption to show FATFS related settings (8d34993)
  • MbedTLS: Reduced application binary size by disabling the mbedtls options MBEDTLS_ECP_FIXED_POINT_OPTIM and MBEDTLS_SHA3_C by default. (27f11f8)

Removed

  • ESP-TLS: Removed excessive parameter check for esp_tls_conn_read (a5f249b)

Storage

Added

  • Concurrent use of more SDMMC devices (SD cards, eMMC, etc.) is now possible. (d1571c1)
  • FATFS: Added Kconfig option for enabling FATFS's alternatives to stdio functions (f375125)
  • NVS: Added sanity checks of NVS entry header (f75db5c)
  • NVS: Added host tests of damaged NVS entry header with correct crc (f75db5c)
  • NVS: Added Kconfig option controlling RAM allocation either in internal RAM or SPIRAM (c21b5bb)
  • Partitions: Added esp_partition_copy API (0db772e)
  • SPIFFS: Added support for fsync() to SPIFFS VFS driver (#12693) (9542d45)
  • SPIFFS: Make host testing of SPIFFS possible by disabling unnecessary reset checks for SPI Flash (3b771d7)
  • VFS: Added list of well known VFS devices to the documentation (dde0b46)
  • VFS: Added nullfs to support /dev/null (2ccc9bc)
  • VFS: Added new FS registration API with optimized RAM footprint (7318213)

Changed

  • FATFS: Split examples to better demonstrate usage (fe51222)
  • FATFS: Enabled FatFs partition handling for partitions smaller than 128 sectors. (2c5dcc9)
  • FATFS: Optimized vfs_fat_stat function (#10220) (3d813af)
  • Partitions: Made some public include paths for Linux private or removed them (b24a6af)

Fixed

  • Partitions: Fixed the issue of data overflow during sanity checks of the arguments in esp_partition APIs (b9965fe)
  • Fixed open syscall for nullfs (1ddd2f4)

Removed

  • Removed the dependency on the spi_flash include. (82b1d5e)

System Hardware

Added

  • Supported ESP32-C2 chip rev2.0 (e43ded7)
  • Supported to check the eFuse block revision during the startup. (c9df77e)
  • Cache: Supported sliced C2M esp_cache_msync operation (23ee0b6)
  • Cache: Supported catching illegal instruction access and load access fault errors from/to cache on RISCV chips (10301a6)
  • Efuse: Supported Linux target (374f497)
  • PSRAM: Supported PSRAM .noinit segment on ESP32-S2/ESP32-S3/ESP32-P4 (#14253) (6730203)
  • PSRAM: Allow PSRAM as stack when PSRAM is only available via esp_heap_caps(). (d2cfb78)
  • PSRAM: Support psram timing point dynamically adjustment via internal temperature sensor on 120M DDR psram on ESP32-S3 (c2cb7d4)
  • PSRAM: Supported APS3204L (cb9f474)

Changed

  • Moved RTC initialization before MSPI tuning to improve stability (e57c686)
  • BOD: Update brownout threshold on ESP32-P4 v1.0 (381135d)

Fixed

  • rtc_clk_cpu_freq_set_xtal should always disables CPU's PLL, fixed the behavior on ESP32-C6/H2/P4 (ed91ad5)
  • Fixed CPU frequency switching has become slightly slower when the DFS is used. (041a937)
  • Fixed deepsleep wakeup fail due to memory lost on ESP32-P4 (a900008)
  • Solve external 32K problem caused by the wrong configurations on ESP32-C3 & ESP32-S3. (b9c58c5)
  • Fixed ESP32-P4 90MHz->360MHz and 180MHz->360MHz CPU frequency switching failure issue (08b8979)
  • Fixed high probability of esp32-P4 getting stuck in bootloader_random_enable after sleep wakeup. (c6e8c7c)
  • Fixed non-iram rtc code in early stage on p4 leading xip_psram stuck (7755ce1)
  • BOD: Fixed brownout glitch can not be filtered on ESP32-C3, ESP32-C2 (0299e78)
  • Cache: Fixed double exception after cache disabled caused by branch predictor (f6ec756)
  • Postponed the time to turn CPU's PLL off in sleep process for ESP32-C6/ESP32-H2/ESP32-P4 (ed91ad5)
  • Efuse: Fixed efuse example not compiling on ESP32-C2 when flash encryption is disabled (efc143b)
  • MMU: Fixed spi_flash_phys2cache return addr in PSRAM issue when SPIRAM_FETCH_INSTRUCTIONS or SPIRAM_RODATA is enabled (ed92c2c)
  • MMU: Fixed mmap failure caused by leftover register value when running multicore app with unicore bootloader on ESP32 (#11617) (742a483)
  • MMU: Fixed virtual address calculation for sub-region from already memory mapped region (af25eb4)
  • MMU: Fixed spi_flash_cache2phys return addr in PSRAM issue when SPIRAM_FETCH_INSTRUCTIONS or SPIRAM_RODATA enabled (fe3fd4a)
  • PSRAM: Fixed PSRAM heap registration when himem is used. (4e4b6c1)
  • RAM-APP: Fixed ram app crash issue on ESP32-P4 (8d75f0d)
  • 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/P4. (131609c)
  • Fixed LDO1 switched off issue at startup on ESP32-P4 v1.0 (b57ae0a)

TCP Transport

Changed

  • Updated WS transport initialization to eliminate the dependency on the error handling descriptor (Foundation) (1c2befc)

Fixed

  • Fixed potential memory corruption on Websocket connection while reading more data then allocated (#14473) (4f467d0)
  • Fixed incorrect Websocket packet length calculation on Linux target due to integer promotions (#14536) (22facff)

Toolchain

Changed

Tools

Added

  • idf.py flash: Implemented a new --trace option for tracing flasher tool interactions (8935ff4)
  • IDF Monitor: Logging colors are added on the host side (f659405)
  • Added support for install.sh --enable-test-specific to install test specific Python packages (a760bd2)
  • Introduced activate.py script which can spawn an ESP-IDF subshell (e7c0d69)
  • Added support for running idf.py eFuse-related commands in QEMU (0773caf)
  • ESP32-S2 WinUSB driver was added for easier configuration of DFU flashing on Windows (e91c5e3)
  • Added serial port filtering to remove unwanted debug ports on MacOS (#14058) (eb2273d)
  • Added missing linux-armhf in the platform list within the JSON schema for tools.json (#13982) (c030591)
  • idf_tools.py: Improve the non-fatal warning message about the Python environment (3605edf)
  • Added idf.py efuse-* sub-commands as front-end for espefuse.py (9babaaa)
  • Added suggestion about how to install ESP-IDF on NixOS (#13806) (ba60c2d)
  • Added idf.py secure-* sub-commands as front-end for espsecure.py (7b7f73b)
  • Added diff-map option support to idf.py size commands (3d7a0d6)
  • Added JSON schema for tools.json in order to check that no additional properties are used (#13853, #13854) (a858da3)
  • Added support for specifying flash image for "idf.py qemu" commands (6930dff)

Changed

  • IDF Monitor: Moved configuration file documentation to the IDF Monitor repository (7d8231c)
  • Updated to the new ROM binary release version 20241011 (dbf5934)
  • Updated CMake version to 3.30.2 (#14376) (0b43a55)
  • Updated ninja_build version to 1.12.1 (0b43a55)
  • Updated Ccache version to 4.10.2 (0b43a55)
  • Refactored export scripts by moving the executive logic to Python (e7c0d69)
  • Updated the docker image to use Ubuntu 24.04 LTS (0f87923)

Fixed

  • Fixed default SORT flag usage in linker mapping fragment (7e76d2e)
  • Fixed the failure of the idf.py uf2 and idf.py uf2-app commands when ESPBAUD or ESPPORT environment variables were set (1143b76)
  • Fixed clang-tidy documentation about RISC-V support (a7668a4)
  • idf.py monitor: Exit with error if --no-reset is used without a --port argument (#14040) (4f3522d)
  • Docker: Forced executable permission of entrypoint.sh (#13660, #13672) (a1e9c6e)
  • Printed message about GDBGUI being not supported with Python 3.13 (3516c49)
  • Fixed Nix-provided Python use for idf.py (#14435) (4ab9a31)

Removed

  • Removed distutils usage to support Python 3.12 (#14402) (17fed13)

WI-FI

Added

  • Added support for Wi-Fi API and features on targets with no Wi-Fi capabilities (af017d1)
  • Supported longer data length in ESP-NOW (#9453) (ee74f27)
  • Added type check in ESP-NOW (ee74f27)
  • Added support for AP choose between 2.4G and 5G (e035e79)
  • Added support for broadcast TWT (7b5014a)
  • Supported ext_connect in the iperf example on ESP32P4. (56816c1)

Changed

  • Modify the scan channel on 5G for smartconfig (b8cc161)
  • The AES IV can be random value for ESPTouch v2. (3b0cf1a)

Fixed

  • Fixed potential crashes in WiFi-netif APIs from invalid arguments (#8702) (1fa67f8)
  • Fixed the issue of station fail to connect to SoftAP caused by abnormal rf flag signal. (74dc204)
  • Fixed the issue that default DNS Address is invalid in softap_sta example (#12160) (44f2915)
  • Fixed creating default mesh netif if DHCP server is not enabled (#14006) (92b4231)
  • Examples: Correct typo in scan example (3f57872)
  • Fixed wifi example iTWT build fail issue. (4655457)
  • Fixed wrong reason code when softAP application issues a disconnect for station (a01a375)
  • Fixed configuration related to SPIRAM_IGNORE_NOTFOUND (406dfc1)

Removed

  • Removed the definition of the "WIFI_BAND_2G_5G" field in "wifi_band_t". (7b5014a)

Wi-Fi MAC

Added

  • Added support to recognize AP advertising WPA3-Enterprise-Only and WPA3-Enterprise-Transition Mode capabilities with 'WIFI_AUTH_WPA3_ENTERPRISE' and 'WIFI_AUTH_WPA2_WPA3_ENTERPRISE' auth mode, respectively. (cbf105e)
  • Added protect for SoftAP when sending management frame to not connected station (9b242a4)
  • Added FTM calibration values for esp32c6 (e990d1e)
  • Supported lower coexistence power consumption when Wi-Fi disconnects from AP (5a5c004)
  • Supported Wi-Fi to wakeup by listen interval/DTIM period when coexisting with BT init only (5a5c004)
  • Create fallback option while allocating memory in case PSRAM fails (9345457)
  • Supported ESP32-C2 chip rev2.0 Wi-Fi (e43ded7)

Changed

  • Improved internal error propagation in esp_wifi_set_mode API (ccdf82b)

Fixed

  • Fixed issue in changing op mode when WPS is enabled. (a5c0fce)
  • Prevented the use of incorrect channel list during simultaneous scans. (6c8ce91)
  • Fixed the issue that data packets take several seconds to be sent when coexisting with BLE start and stop scenarios. (5315027)
  • Fixed the issue that multicast packet loss when listen interval is not equal to 1 in coexistence scenarios. (5315027)
  • Fixed crash when station issues disconnect during connection establishment and 'failure_retry_cnt' is set in station configuration (d4c16ef)
  • Fix AMPDU to NORMAL causes free buffer twice issue (ad6fba3)
  • Fixed the issue that the STA could not connect to AP due to authentication timeout after association was refused temporarily by certain APs (1522b6b)
  • Fixed the issue where SoftAP has rebooted but the connected station did not disconnect. (16461de)
  • Fixed multi country info warning issue.(#14323) (16461de)
  • Fixed the issue that SoftAP would recv noauthed associate request (9b242a4)
  • Fixed FTM bandwidth related issues in AP-STA mode (3864200)
  • Fixed ESP32-S2 get ack RSSI invalid issue (b2a3e49)
  • Fixed the issue that STA may not receive packets for a period of time in coexistence scenarios (52059ae)
  • In SoftAP, fixed incorrect typecasting to get SPP capabilities (e220f1f)
  • Fixed wifi drive use RSSI as SNR issue (7e6cc5d)
  • Avoid internal retries for off channel FTM Requests (22c9566)
  • Fixed ESP32 crash due to too latency of TBTT (1fb1924)
  • Fixed rarely happened issue that Wi-Fi can not RX anymore (1fb1924)
  • Fixed the issue that SSN update failed when ESP32C6 STA wake up from light sleep. (46e6db0)
  • Fixed the issue that STA may join bad RSSI AP when set by signal(#13958) (097fd37)
  • Fixed the issue of DNS failure caused by continuously initiating connections to the same router(#12315) (15e3f4a)
  • Fixed the issue that STA can't connect to AP after association refused temporarily by some AP (3a7917f)
  • Fixed the issue that esp_wifi_get_config got wrong SoftAP DTIM and CSA count (10f04da)
  • Station should ignore FT, Enterprise AP for connection when their capabilities are disabled in sdkconfig (16e586e)
  • Fixed the issue that STA did not receive Probe Responses in some coexistence scenarios when wifi band is 5G. (3b0cf1a)
  • Fixed the issue that STA connects twice simultaneously. (3b0cf1a)
  • Fixed the issue that STA fail to sleep when connecting to connected AP. (3b0cf1a)
  • Added a parameter to enable or disable send QoS NULL to keep live during TWT. (3b0cf1a)
  • Fixed the issue that association failed In WPA3 encryption mode. (3b0cf1a)
  • Fixed the STA TBTT interval update error when AP's beacon interval changed (#14720) (3b0cf1a)
  • Fixed bandwidth value is always 0 in esp_wfi_sta_get_ap_info(). (3b0cf1a)

ESP-WIFI-MESH

Fixed

  • Clear the issue rootless state in mesh IE when changing from leaf to root(#14063) (d2197be)
  • Fixed the root conflict issue that both roots are yielded (d2197be)
  • Fixed the issue that XON request timeout constantly when root reboot (#13212) (85c4c96)
  • Enlarged the mesh TX task stack. (3b0cf1a)
  • Fixed the delete group id error in Wi-Fi mesh (#14735) (ac4a084)

Wi-Fi Supplicant

Added

  • Added a check on hostapd instance while handling an Auth frame (90cfc52)
  • Added extra layer of dpp_crypto APIs to make the code more consistent. (42f1e21)
  • Added support for SAE rejected groups (4530b0e)
  • Added support for 5GHz channel list for WiFI Easy Connect (903c11f)
  • Allowed WPA-AES connection after WPS (1ac6043)
  • Added check for WPS-PBC overlap detection in dual band. (e963bff)
  • Fixed the issue where supplicant deinitialization may miss the internal WAPI deinitialization. (ed5f75a)

Changed

  • Updated DPP implementation as per upstream hostapd tag hostap_2_10 (42f1e21)

Fixed

  • Fixed security vulnerabilities related to SAE rejected groups (4530b0e)
  • Set 5GHz bitmap when 5GHz candidate is present in the BTM request (0c9d7c9)
  • Fixed concurrency issue during WPS registrar/softAP deinit (b0712b6)
  • Fixed crash in wifi deinit due to roaming neighbor list lock. (2a222d4)
  • Fixed deiniting old DPP authentication when config is received. (4c40190)
  • Recompute keys in OWE in case of mismatched or absent PMKID from association response (9476733)
  • Fixed the issue that setting WPS status failed when fail to connect. (3ed1884)
  • Fixed a crash due to dangling pointer in WPA3 softAP (63386f3)
  • In SoftAP, fixed incorrect typecasting to get SPP capabilities (e220f1f)

Classic Bluetooth

Classic Bluetooth Bluedroid Host

Added

  • Added support of Cover Art feature in AVRCP Controller (cda2846)
  • Added support of Device Identification Profile (ca05aa5)
  • Added definition of minor class of COD for peripheral major class and set it in HID device related examples(#13622) (8971215)
  • Added option to set reserved_2 in Class of Device for compatibility with legacy devices (#14286) (59066e3)

Fixed

  • Fixed the default codec type and set it to CVSD to avoid mistakenly using unavailable mSBC on PCM datapath in hfp_hf example. (17f422c)
  • Fixed the issue that AT commands transmission will not exit current sniff mode by modify power management configuration lookup tables (220d4c6)
  • Fixed missing of deep copy of service_name and user1_ptr in SDP search complete event (4b74e4e)
  • Fixed not clearing the mode request status which causes unexpected exit of sniff mode. (160bd65)
  • Fixed not release BTC SDP record memory after it has been created successfully (ca05aa5)
  • Limited SDP service discovery operation when the previous discovery is not finished (ca05aa5)
  • Fixed protocol mode mapping bug in esp_hid component(#14232) (8971215)
  • Fixed example esp_hid_host cannot get remote device name from eir data (ef3d063)
  • Fixed the stack overflow of uTask in bt example spp initiator (3b46ee0)
  • Fixed the wrong connection handle in the event handler of BTA_JV_L2CAP_READ_EVT (#13847) (809f1e3)
  • Fixed AVRCP compatibility issue on absolute volume synchronization (82802eb)
  • Fixed memory leak of synchronous data queue when disabling Bluedroid (0e6c74e)

Classic Bluetooth Controller

Added

  • Added PCM configuration options for PCM frame sync signal shape(stereo, mono1, mono2) on ESP32 (f3f8618)
  • Added the check of the range of LAP in HCI_Periodic_Inquiry_Mode command handler on ESP32 (99f529f)
  • Added integrity check for HCI_Link_Key_Selection command on ESP32 (74d3c00)

Fixed

  • Fixed access of NULL pointer in the (e)SCO frame end ISR after the SCO link is disconnected on ESP32 (99f529f)
  • Fixed the wrong logic in the key exchange when LMP transaction collision occurred on ESP32 (99f529f)
  • Fixed the using of wrong error codes in the transaction collision of role switch on ESP32 (99f529f)
  • Fixed disconnection caused by channel map update in sniff mode on ESP32 (d92c09a)
  • Fixed failure of establishing eSCO link in case there are connections with two devices on ESP32 (#11172) (1409057)
  • Fixed use of uninitialized random number during pause of AES encryption procedure on ESP32 (f5e9ccb)
  • Fixed no reporting of HCI_Disconnection_Complete event after the controller has initiated a disconnection procedure on ESP32 (f5e9ccb)
  • Fixed logic error when LMP transaction collision happens during role switch on ESP32 (651e6a7)

Removed

  • Removed an improper assertion statement in SCO module (99f529f)
  • Removed an improper assertion in ACL link driver which can be triggered on peripheral SNIFF mode when RX window is adjusted on ESP32. (77c4da8)

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.