Documentation for IDF v5.4-rc1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.4-rc1/
ESP-IDF v5.4-rc1 is a preview release for ESP-IDF v5.4.
Obtaining v5.4-rc1
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-rc1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.4-rc1
cd esp-idf-v5.4-rc1/
This is the recommended way of obtaining v5.4-rc1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.4-rc1.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-rc1/esp-idf-v5.4-rc1.zip
Major changes
This is the list of changes since release v5.3:
Major New Features
- Wi-Fi: Supported ESP32-C2 chip rev2.0 Wi-Fi (e43ded7)
- Wi-Fi: Added FTM calibration values for ESP32-C6 (e990d1e)
- Wi-Fi: Supported lower coexistence power consumption when Wi-Fi disconnects 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 C6 and P4 with among others: openocd debugging support, LP-ADC, LP-SPI, ETM wakeup, LP-IO wakeup.
- I2C: Support lp i2c instance on ESP32-P4 (ec3029e)
- ISP: Support 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 on ESP32-P4 (c23165b)
- MbedTLS: Support ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (9a47de5)
- System Hardware: Supported ESP32-C2 chip rev2.0 (e43ded7)
- PSRAM: Supported APS3204L (cb9f474)
- Thread: Supported Thread Radio Encapsulation Link (TREL) feature (d1ef423)
Breaking Changes
- Core System: Renamed
__VA_NARG__
and its macros to be prefixed withESP_
, i.e.__VA_NARG__
toESP_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 returnsESP_ERR_INVALID_STATE
when the SDMMC host is already initialized, now it returnsESP_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)
- 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) - Modify the type of "bandwidth" and comment in wifi_ap_record_t. (3b0cf1a)
- 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)
- Bluetooth Common / Controller: Move
esp_wifi_bt_power_domain_on
andesp_wifi_bt_power_domain_off
fromesp_bt.h
toesp_phy_init.h
(a09d574) - For ESP32-C6, to continue to use RC32K clock as the RTC slow clock source now requires to select RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED Kconfig first; For ESP32-H2/ESP32-P4, this option is completely removed. (0f1bec1)
Known Issues
- 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.
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)
Fixed
- Returned ESP_FAIL if enh-ack generating logic was not implemented (84569bc)
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)
- Supported custom header file for openthread configuration (9181eca)
- Supported RCP compatibility mismatch error handler (69a9b17)
- Supported to allocate NAT64 session from PSRAM. (69a9b17)
- Supported modifying port and txt in SRP server (69a9b17)
- Enabled bbr feature to support multicast by default (69a9b17)
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)
- Updated openthread submodule (005c5ce) (69a9b17)
Fixed
- Fixed the issue of incorrect duration and channel configuration in
otPlatRadioEnergyScan
calls (1754c8f) - Fixed the bug that 3-wire external coexistence on ESP32-H2 does not work properly. (69a9b17)
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)
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)
- Added BLE 5.0 throughput examples. (438c063)
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 initial 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)
- Fixed connection params copying when creating BLE connection. (b062092)
- Fixed BLE create connection failed because of invalid own address type. (3f63fd9)
- Fixed Classic Bluetooth build failure when enabling dynamic memory and disable BLE (b5c02eb)
Removed
- Removed error print when failing to remove a device from the resolving list. (83cda5c)
Bluetooth Low Energy Controller
Added
- Added support for BLE scanning and initiating state coexistence on ESP32. (c4d1c04)
- 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)
- Supported using external 32k oscillator as Bluetooth sleep clock on ESP32/ESP32-C3/ESP32-S3 (1662e28)
- 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 running controller code in flash-only mode on ESP32-C3 and ESP32-S3 (81020a3)
- 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 a verification step for the Access Address within the
CONNECT_IND
PDU on ESP32. (c122f72) - Supported for putting code in flash on ESP32-C2 (28bf5ea)
Changed
- Changed the maximum TX power to +20 dBm on ESP32-C3 and ESP32-S3. (cb2624f)
- Updated the BLE rom.ld file for ESP32-C2 revision 2.0. (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)
- Removed BLE creating connection assertion when the connection already exists on ESP32. (a516ca5)
- 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)
- Fixed a occasional WDT issue in multi-connection scenarios on ESP32-C6. (5e0fe45)
- Fixed an occasional ACL disconnect issue when updating connection parameters on ESP32-H2. (5e0fe45)
- Fixed an issue where the scan window occasionally became smaller than expected when light sleep was enabled on ESP32-C2. (3915ea3)
- Fixed an issue where extended scan failed to correctly set the coexistence scheme status on ESP32-C2. (3915ea3)
- Fixed an occasional issue where ADV fails to transmit on channel 38 on ESP32-C2. (3915ea3)
ESP-BLE-Mesh
Added
- Added an option
BLE_MESH_V11_SUPPORT
to enable or disable BLE Mesh v1.1 features (3a4aa2e) - Added BLE Mesh support on ESP32-C61 (fa3f6ac)
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)
- Added error logs in case of memory overflow/failure (be95e8e)
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)
- Resolved watchdog issue due to memory exceed prints (5af12cf)
- Removed min/max macro definition from os.h (#14840) (0658793)
Bluetooth Common
Controller
Changed
- Move
esp_wifi_bt_power_domain_on
andesp_wifi_bt_power_domain_off
fromesp_bt.h
toesp_phy_init.h
(a09d574)
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)
- Added support to use flash MMU page size from app binary header (20bd6ad)
Changed
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 theidf_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
andPRIV_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 theld
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
Coexistence
Fixed
- Fixed LoadProhibited issue in coexistence scenario on ESP32-C3 and ESP32-S3 (44a9881)
- Fixed the issue of ESP32-C5, ESP32-C6 and ESP32-C61 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 withESP_
, i.e.__VA_NARG__
toESP_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
andvPortClearInterruptMaskFromISR
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)
- Fixed esp-ringbuf logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER (e767502)
- Console: Fixed crash when enable USB-Serial-JTAG as the primary console in ESP32-C3 ECO7 (v1.1) (05b6d92)
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)
- Apptrace: Fixed the issue where the Segger SystemView app (v3.10 or later) gets stuck during the record analyzing step. (#10483) (c2ae806)
Documentation
Added
- Added File system considerations document into the API Guides (a5871f8)
- Added API Guides section on standard IO streams (#13907) (455e83e)
Changed
- Updated LCD programming guide, quad SPI LCD is also supported. (#14605) (c44e7dc)
- Improved description of eMMC support status (https://esp32.com/viewtopic.php?f=13&t=41088) (0a2dc3b)
- Updated the mesh ip_internal_network example (d321c06)
- Updated the documentation regarding IDF Component Manager role in the building process (26502b7)
Fixed
Removed
- Removed obsolete ESP32-DevKitS User Guide (58f59de)
Ethernet
Added
- Added SPI ETH default GPIOs for ESP32-C61 in examples (2653ed5)
- Added support of SPI Ethernet drivers for ESP32-C5 target (a6b559d)
- 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
- Removed ENC28J60 example from ESP-IDF and moved it to https://github.com/espressif/esp-eth-drivers repository. (004e427)
- Removed printing of
insufficient TX buffer size
message, moved to debug level log. (75222cc)
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
toFREERTOS_TASK_CREATE_ALLOW_EXT_MEM
(1b79771)
Fixed
- Fixed an SMP unsafe race condition in
xStreamBufferSend()
leading to a crash inxTaskNotify()
. (9a3427f) - Fixed an SMP unsafe race condition in
xStreamBufferReceive()
leading to a crash inxTaskNotify()
. (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) - TCP: Updated mechanism to recycle PCBs also in FIN_WAIT_1 and FIN_WAIT_2 states (8a17f7f)
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)
- Fixed a bug in
dns_clear_cache()
that caused deadlock by clearing active DNS entries (#14287) (b1c4c9a) - Fixed IPv6 raw socket ICMPv6 checksum calculation in IPv6-only configuration (b1c4c9a)
- TCP: Fixed unlimited PCB issue, allowing application to allocate more TCP connections than configured (#9670) (8a17f7f)
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)
- Fixed issue of ESP32-C5 and ESP32-C61 fail to enter light sleep using EXT1 wakeup source after disable exited EXT1 IO and enable other EXT1 IO (daf465c)
- Fixed BBPLL cali fail bug under low temp on ESP32-H2. (023d772)
- Fixed the issue of wifi RX packet loss when switching SOC root clock source (914a481)
- Fixed the issue of MMU table content loss due to default PD signal (914a481)
- Fixed a deadlock that occurred when a high-priority task and a low-priority task changed PM mode at the same time (35f0fdc)
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)
- ULP-RISC-V: Fixed a bug in the ULP RISC-V interrupt handler that resulted in a corrupted stack upon return (#14930) (fb271d2)
MQTT
Changed
- Updated deletion process for expired messages to happen in non-connected states ( espressif/esp-mqtt@32dada4) (5dd0f2c)
Fixed
- Fixed message processing for enqueued QoS 0 messages ( espressif/esp-mqtt@739cb2d) (5dd0f2c)
- Fixed publishing messages using topic alias for MQTT5 ( espressif/esp-mqtt@0071aca) (5dd0f2c)
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
Changed
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)
- I2C: Added a new version of slave driver for easy use. (71c4377)
- 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)
- LP_I2S: Added LP I2S and LP VAD programming guides (47d0a91)
- 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 LSC programming guide (dfe11eb)
- 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)
- LCD: Support color conversion for MIPI LCD driver (2900301)
- LDO: Output voltage is calibrated with eFuse data (6932df2)
- MCPWM: Added description of special deadtime configurations and added checking in the driver(#14773) (ec8de8a)
- MCPWM: Added MCPWM sleep retention support (e1aed77)
- 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)
- PCNT: Added documentation about pull-up/pull-down (#14277) (183834a)
- PPA: Added PPA example, support EK79007 MIPI DSI LCD (f5d9cbe) (cba8c5d)
- RMT: Support backup registers before sleep on ESP32-C6/ESP32-H2 (4c0b3a5)
- SD_HOST: Supported UHS-I SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) on ESP32-P4 (3b2eb13)
- 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)
- USB Host: Added support for 2 USB instances on ESP32-P4 (e422e12)
Changed
- GPIO: Improved GPIO set level performance by avoid "read-modify-write" operation (#14674) (bfebd2e)
- I2C: Enhance lp i2c clock source selection (#14098) (944329f)
- I2C: Reduced the chance of I2C data corruption due to hardware issue in FIFO handling (#12860) (944329f)
- 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 inSDMMC_HOST_DEFAULT()
define macro. Insteadsdmmc_host_deinit_slot
is used which hasint 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)
- ADC: Fixed the broken ADC monitor feature. (#14769) (a0a85db)
- 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)
- GPTimer: Fixed the issue with ESP32-P4 losing GPTimer context after lightsleep when the peripheral power domain is powered off. (25346eb)
- GPTimer: Fixed race condition between gptimer_start and gptimer_stop (#14767) (af5ddf0)
- 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)
- I2C: Fixed I2C return without release the lock (#14095) (944329f)
- 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)
- JPEG: Fixed get wrong gray information via get_information api (ef3c64d)
- JPEG: Fixed the com marker size when encoding a picture (ad8d752)
- 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)
- SDMMC: Request the SD card to send the number of the written write blocks (ACMD22) if write multiple blocks fails (CMD25). (60c5617)
- 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
andpwr_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: Fixed ESP32-P4 SPI master no DMA polling transaction error on cache sync. (fb52ad1)
- 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)
- Temperature Sensor: Fixed temperature sensor sleep retention on ESP32-P4 (538b0fc)
- 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)
- TWAI: Fixed other node got BUS-OFF when twai init. (#14548) (9c2a5ac)
- 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)
- UART: Resolved ESP32-P4 UART initialization get stuck issue when monitor through USB Serial JTAG port (e8e8e2b)
- 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 Host: Fixed return value in the memory allocation failure case within
usb_host_client_register()
(#14859) (779106e) - 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
andMBEDTLS_SHA3_C
by default. (27f11f8) - MbedTLS: Fixed external memory corruption caused due to unaligned length cache sync of external memory buffers (e1c0ad9)
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)
- Added support for std::filesystem (#13736) (bd0fc67)
- LittleFS: Added support for LittleFS image generation on Windows (#12900) (315b1ec)
- NVS: Added limited support of nvs for bootloader (f48f07a)
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)
- Fixed linking issues related to
chmod
(#14174) (bd0fc67)
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)
- Efuse: Added efuse ADC calibration fields for ESP32-P4, ESP32-C5, and ESP32-C61 (985090a)
- 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
orSPIRAM_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
orSPIRAM_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)
- Fixed the issue that after OTA application changes the slow clock source, the modem module not work during lightsleep on ESP32-C6/H2/C5 (569f6c0)
- Fixed a possible crash on esp_restart if PSRAM is used (41ce4c9)
- PSRAM: Fixed ESP32 PICO-V3 psram enabled but not ignored issue (#14970) (714c773)
Removed
- BOD: Remove config on ESP32-P4 v0.x, use a fixed value around 2.52v instead (35ed582)
- Internal RC32K clock is unstable at extreme temperatures and is not recommended for use. (0f1bec1)
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)
- Fixed partial reads of Websocket header (#14704, #14706) (b56ad1d)
Toolchain
Changed
- Upgraded esp-clang version to esp-18.1.2_20240912 (81f4ef7)
- Upgraded toolchain version to esp-14.2.0_20241119 (b88913c)
- Reverted breaking change to <sys/dirent.h> header (cd0e34e)
- Upgraded qemu version to esp_develop_9.0.0_20240606 (f95caa7)
- Upgraded openocd version to v0.12.0-esp32-20241016 (ca81179)
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 fortools.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 forespefuse.py
(9babaaa) - Added suggestion about how to install ESP-IDF on NixOS (#13806) (ba60c2d)
- Added
idf.py secure-*
sub-commands as front-end forespsecure.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 which includes one for ESP32-C5 as well (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
andidf.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) - Displayed additional details if imports in idf.py are unsuccessful (6048d26)
- idf.py size-*: Used the
--unify
option with esp-idf-size to combine sizes for same output sections, such as .bss (85a7423)
Removed
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 ESP32-C61 (a3274e5)
- Added support for ESP32-C5 (7b5014a)
- Added support for broadcast TWT (7b5014a)
- Supported ext_connect in the iperf example on ESP32P4. (56816c1)
- Added support for the ESP32-C5 revision v0.1. (3b0cf1a)
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)
- Prevent compilation of Wi-Fi-related components when Wi-Fi is not supported (5e65f63)
Removed
- Removed the definition of the "WIFI_BAND_2G_5G" field in "wifi_band_t". (7b5014a)
- Removed support for the ESP32-C5 revision v0.0. (3b0cf1a)
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)
- Changed SoftAP default dtim_period to 1 (1b4e4d7)
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)
- Fixed associate reject after WPS session (bc89933)
- Fixed for crash while receiving deauth in ESP32-C2 ECO4 (a61663d)
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)
- Added HFP callback event for notification of profile ON/OFF state (3eab765)
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 examplespp 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)
- Fixed no release of ACL connection after reception of incorrect SDP response (76d90ba)
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)
- Fixed zero attempt value set by role switch which cause fatal hardware error on ESP32 (2503992)
- Fixed lack of protection on access of critical section upon freeing (e)SCO buffers on ESP32 (2503992)
- Fixed duplicated encryption restart process when new link key type is semi-permanent key on ESP32 (2503992)
- Fixed the issue where
HCI_Encryption_Change
was not reported to host after changing the key type, even when the encryption mode was correctly changed viaHCI_Set_Connection_Encryption
command on ESP32 (2503992) - Fixed wrong logic in handling sniff transaction collision at slave side on ESP32. (c122f72)
- Fixed the issue ACL is stopped too early before eSCO on ESP32. This issue can cause ACL Perihperal to be unable to receive acknowledgements from the ACL Central, resulting in an infinite retransmission of a certain packet on the Peripheral side. (c122f72)
- Fixed crash upon name request from peer device without setting local device name on ESP32 (c122f72)
- Set the QoS value to the minimum value if the calculated QoS is less than the minumum on ESP32 (c122f72)
Removed