Documentation for IDF v5.4-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.4-beta1/
ESP-IDF v5.4-beta1 is a preview release for ESP-IDF v5.4.
Obtaining v5.4-beta1
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-beta1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.4-beta1
cd esp-idf-v5.4-beta1/
This is the recommended way of obtaining v5.4-beta1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.4-beta1.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-beta1/esp-idf-v5.4-beta1.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 H2
- ULP: Added LP core debugging support (a07eed6)
- I2C: Support lp i2c instance on ESP32-P4 (ec3029e)
- ISP: Support a series of ISP features on ESP32-P4
- LCD: Added i80 LCD driver support on ESP32-P4 (fdd90d4)
- Touch Sensor: Touch Driver-NG 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)
Known Issues
- BLE: An BLE assert may occur in the function
r_ble_lll_rxbuffer_free_all
under low-memory conditions on ESP32-H2. - For ESP32-C2 ECO4 chips, wifi_scan_threshold_t in wifi_sta_config_t structure is invalid.
- For ESP32-C2 ECO4 chips, when the country policy is set to WIFI_COUNTRY_POLICY_AUTO, the station will not scan for channels outside current country rules.
- Power Management: In light sleep mode, rejecting sleep due to a short duration can introduce an RTC clock error, causing
esp_timer
inaccuracies and potential Bluetooth disconnections. - For ESP32, Bluedroid Host memory leaks when HFP client or AG is enabled using HCI audio datapath.
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)
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)
Application Utilities
Added
- ESP HTTP Client: Added new http method REPORT (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 SoC 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)
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)
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)
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)
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)
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)
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
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)
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
- 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)
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
- 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)
Changed
- Optimized throughput of DM9051 at high SPI rates. (127306f)
- Simplified memory allocation for received frames of DM9051. (127306f)
- Configured eth mac using esp_read_mac (#13808) (a55fecb)
Fixed
- Fixed default SPI ETH GPIO in example to align with latest ESP32-P4-Function-EV-Board. (175cdcf)
- Fixed C++ invalid type conversion error in default MAC config (#14276) (ad9cdcd)
- Fixed Ethernet Examples to default GPIO config match new version of ESP32-P4 devboard (7baf9f8)
Removed
- Removed ENC28J60 example for 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)
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)
Changed
- Optimized the power consumption of ESP32-P4 in active state (6abe40e)
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)
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)
- 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
- 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 and EK79007 MIPI DSI LCD in the camera related example (cba8c5d)
- CSI: Added verification of no backup buffer or no new trans (7d097ca)
- CSI: Added CSI plus DSI camera display example (cd1a681)
- 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)
- 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 buffer (#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 on ESP32-P4 (d7b701b)
- ISP: Support histogram for ISP ESP32-P4 (0e4464c)
- ISP: Added Gamma correction support to ISP pipeline (c607544)
- ISP: Added RGB2YUV and YUV2RGB range and standard configurations (79a4419)
- ISP: Supported ISP Sharpen on ESP32-P4 (b432ded)
- ISP: Supported AE (Auto-Exposure) on P4 (3e974bd)
- ISP: Supported to change config after initialized (a4bbdd3)
- ISP: Added ISP BF and ISP DVP programming guide (cd1ec84)
- ISP: Supported ISP CCM driver on ESP32P4 (d92b8c3)
- ISP: Supported AWB (Auto-White-Balance) on P4 (ad57a47)
- ISP: Added ISP AF example via CSI and DSI (895e6d5)
- 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)
- PARL_IO: Supported parlio_tx transmit buffer in external PSRAM (646d2f9)
- PCNT: Added driver support for PCNT to notify user when configured number of steps changed (3cdbe8c)
- PPA: Supported EK79007 MIPI DSI LCD in the PPA example (cba8c5d)
- PPA: Added PPA example (f5d9cbe)
- RMT: Support backup registers before sleep on ESP32-C6/ESP32-H2 (4c0b3a5)
- SDSPI: Supported tuning clock duty cycle (7a5c05e)
- 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 esp32c6/h2/p4 (642188c)
- Touch Sensor: Touch Driver-NG 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 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 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
- 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
esp32p4
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 P4 EV board when using the default configuration (#14297) (7005d2c)
- 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) - 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)
- 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)
- 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 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)
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)
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 ESP32S3 (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 for 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 esp32p4 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 C2 when flash enc is disabled (efc143b)
- MMU: Fixed spi_flash_phys2cache return addr in PSRAM issue when SPIRAM_FETCH_INSTRUCTIONS or SPIRAM_RODATA 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)
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
- Upgraded esp-clang version to esp-18.1.2_20240912 (81f4ef7)
- Upgraded toolchain version to esp-14.2.0_20240906 (599c14d)
- Upgraded openocd version to v0.12.0-esp32-20240821 (99b89b7)
- Reverted breaking change to <sys/dirent.h> header (cd0e34e)
- Upgraded qemu version to esp_develop_9.0.0_20240606 (f95caa7)
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)
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)
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)
Changed
- Modify the scan channel on 5G for smartconfig (b8cc161)
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)
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)
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)
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 examplespp initiator
(3b46ee0) - Fixed the wrong connection handle in the event handler of BTA_JV_L2CAP_READ_EVT (#13847) (809f1e3)
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