ESP-IDF Pre-release v5.5-beta1
Pre-releaseDocumentation for IDF v5.5-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.5-beta1/
ESP-IDF v5.5-beta1 is a preview release for ESP-IDF v5.5.
Obtaining v5.5-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.5-beta1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5-beta1
cd esp-idf-v5.5-beta1/
This is the recommended way of obtaining v5.5-beta1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.5-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. To reduce the size of the archive, the .git
directory doesn't include the history of commits older than one year. Users who need to use git checkout
to access an older release of IDF will have to use git fetch
first to download the remaining part of the history.
This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.5-beta1/esp-idf-v5.5-beta1.zip
Major changes
Major New Features
Support for New SoCs
- Added preview support for ESP32-C5, refer to ESP32-C5 v1.0 support status for details
- Added preview support for ESP32-C61 v0.2. For the support status of ESP32-C61 v1.0, please refer to ESP32-C6 v1.0 support status for details
- Added support for ESP32-H2 revision v1.2 (9b876d9)
- Added support for ESP32-C2 chip rev2.0 (93aea4f)
Other Features
- Greatly improved support for placing IRAM code into flash, especially in when using CONFIG_SPI_FLASH_AUTO_SUSPEND. For a list of all such configs see sdkconfig.flash_auto_suspend_iram_reduction
- Coexistence: Supported BR/EDR (e)SCO and Wi-Fi coexistence. (79eb59d)
- Security: Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C6 (9ee8daf)
- Log: Added Log v2 (the choice between v1 and v2 is made by CONFIG_LOG_VERSION). Supported centralized log formatting via a single handler for all log macros. (ec990f4)
- Log: Added support for binary logging in Log v2 (33cab69)
- Heap: Added per task peak heap usage information when heap task tracking is enabled (6ef7ad6)
- BitScrambler: Added BitScrambler loopback (memory2memory) driver (c8d4e1b)
- RMT: Added a new encoder for RMT TX driver, it allows the whole encoding session being controlled by the BitScrambler program. (3428044)
- PARL_IO: Supported to embed a BitScrambler program in the parlio_tx_unit_transmit function (929e149)
- PARL_IO: Supported the infinite loop transmission for PARL_IO_TX. (8e591a2)
- Storage/FATFS: Added options CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT and CONFIG_FATFS_DONT_TRUST_LAST_ALLOC to control how free space is calculated for a FATFS volume (#15241) (58fbcfb)
- Storage/NVS: Added limited support of nvs for bootloader (8255ba2)
- Storage/NVS: Added support for read-only NVS partitions smaller than 0x3000 (no empty pages, have to be flagged as "readonly" in the partition table CSV file) (#15317) (3ab1dda)
- Storage: Added support for std::filesystem (#13736) (3765290)
- Toolchain: Add support to link with picolibc (enable with "CONFIG_LIBC_PICOLIBC=y") (f297a9d)
- Core System: Added CONFIG_ESP_SYSTEM_USE_FRAME_POINTER to enable frame pointer generation, simplifying backtracing at runtime. (52b558d)
- UART: Added UART DMA driver support (f66a750)
- UART: Added support for HP UART wakeup modes UART_WK_MODE_FIFO_THRESH, UART_WK_MODE_START_BIT, and UART_WK_MODE_CHAR_SEQ for ESP32-C5, ESP32-C6, ESP32-C61 and ESP32-H2. (8e25a37)
- SD-Host: Supported UHS-I SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) on ESP32P4 (ed8ec9d)
- ISP: Supported bypassing ISP to receive data from MIPI CSI (f3f3cad)
- JPEG: Added support for decoding JPEG images without Huffman table (e12db42)
- I2S: Supported PDM data format (RAW/PCM) selection (56349e6)
- LCD: Supported to simulate SPI/I80 interface LCD by Parlio peripheral (9632318)
- LCD: Support color conversion for MIPI LCD driver (ad476af)
- SPI Flash: New feature for software resume when auto-suspend enabled, improve performance (df1a7d5)
- SPI Flash: Add a new example for supporting customized nor flash driver which can be used both in app and bootloader (2b1c27f)
- TWAI: Added a unified driver interface to support both TWAI and TWAI-FD peripheral (a16f621)
- Touch Sensor: Support ULP touch sensor driver on ESP32-P4 (afda4c1)
- USB: Added support for OTG1.1 PHY on ESP32-P4 (70ead76)
- USB: Added select functionality to the USB CDC driver (1fa268c)
- USB Host: Added support for Low-Speed devices connected through Full-Speed HUB (#15683) (0ead362)
- USB Host: Added support for 2 USB instances on ESP32-P4 (1805efb)
- System Hardware: Add RTC battery backup support on ESP32-H2 (d816622)
- MSPI: Supported 120MHz Flash frequency timing tuning on ESP32P4 (4cb1820)
Breaking Changes
- WI-FI: Changed espnow sending callback function parameter mac_addr to esp_now_send_info_t. (2b390b2)
- Security / MbedTLS: If using MbedTLS for server certificate verification, it is mandatory to call mbedtls_ssl_set_hostname before the connection begins. No change is required if the application uses esp-tls layer. (21f59bd)
- Bluetooth Common: Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information. (16ba8f8)
- 15.4: Added a duration argument for ieee802154_receive_at() (82bd44d)
- Application Utilities / Provisioning Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (4f5bed2)
- System Hardware: Internal RC32K clock is unstable at extreme temperatures and is not recommended for use. For ESP32C6, to continue to use RC32K clock as the RTC slow clock source now requires to select RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED Kconfig first; For ESP32H2/P4, this option is completely removed. (8771607)
- Bluetooth Common / Controller: Moved esp_wifi_bt_power_domain_on and esp_wifi_bt_power_domain_off from esp_bt.h to esp_phy_init.h (45bd677)
- Wi-Fi: Modified the type of "bandwidth" and comment in wifi_ap_record_t. (5c3cb06)
- Tools: Python 3.8 support has been deprecated. ESP-IDF requires Python 3.9 or newer versions. (30b13b1)
- ESP HTTPS Server: Updated the config ESP_TLS_SERVER_CERT_SELECT_HOOK in esp_https_server component (401fa7b)
Major Bug Fixes
- Update mbedTLS version to 3.6.3. (21f59bd)
- JPEG: Fixed the issue that jpeg encoder blocked when the output buffer is not sufficient. (c07e270)
- PPA: Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (65044ef)
- UART: Eliminated the possibility of garbled data sent/received from the UART port during sleep process (dbfb663)
- USB: Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (#15932, #15912) (a652a84)
- System Hardware: Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (50e3a2b)
- Cache: Fixed L1-to-L2 Cache auto-writeback stuck issue when L2 Cache is suspended (e.g. when in DFS) (da31611)
- MSPI: Fixed startup stuck under Flash QIO and XIP_PSRAM 200MHz condition (#14979) (1ddf005)
Known Issues
- For ESP32-C5 (version v1.0), CONFIG_SPIRAM_SPEED_80M is not supported.
- For ESP32-C5, BLE transmission sometimes misfunctions in case of coexistence with 802.15.4.
- For ESP32-C5, BLE scan performance and 802.15.4 rx performance is poor when Wi-Fi switches channel without acquiring RF resource in Wi-Fi start-stop procedure.
- For ESP32-C5, wifi connection to softap will disconnect when lightsleep enabled with GPIO wakeup.
- Using Bluetooth with DFS enabled on ESP32 may cause exceptions.
Known issues are planned to be fixed before the final v5.5 release.
Changelog
This is the list of changes since release v5.4.
15.4
- Added support for the ESP32C5 revision v0.2 (35d1704)
MAC
- Added Tx/Rx frame dumping for debugging. (fcbe493)
- Added a duration argument for ieee802154_receive_at() (82bd44d)
- Set 802.15.4 energy scan duration before cca (61a8aa8)
- Supported IEEE802.15.4 ISR callbacks registration feature (a29589e)
- Supported configuring 15.4 PTI at runtime (6f8c76d)
- Introduced a series of APIs to set/get 15.4 O-QPSK 2.4G PHY txpower for each channels. (2e30111)
- Supported setting/getting ACK timeout APIs (9d1a4eb)
- Supported rx buffer and txrx statistics in 802.15.4 debugging mode (41b083d)
- Returned ESP_FAIL if enh-ack generating logic was not implemented. (a1ec278)
Thread
- Updated openthread submodule (ec2b0d487) (8836310)
- Supported OT_BR example for ESP32-P4 (8836310)
- Supported bus_latency configuration for Thread BR (77efe91)
- Supported periodic parent search mechanism for MTD (b79b7ac)
- Added a callback to handle rcp reset failure (bdf0cca)
- Bound DNS server to unspecified netif on Border Router (211074d)
- Supported DNS resolution / forwarding for Thread BR (3eed162)
- Fixed recursive multicast packet forwarding issue (3eed162)
- Added a function to ensure monotonically increasing frame counter (c0ba361)
- Fixed CSL issue in which RX is not turned off during idle periods (82bd44d)
- Added an API to to set RCP version string (c2e9061)
- Supported hardware reset RCP while processing RCP failure for the example
ot_br
(3c74432) - Fixed SRP server to support zero number of subtype item when updating service (e991442)
- Supported
otPlatRadioGetPreferredChannelMask
, added a configuration to set the preferred channel mask. (2e30111) - Fixed the conflict in the DNS hook when both Wi-Fi and Thread are enabled (5a261da)
- Added set dns server address API for Thread network interface (5a261da)
- Added Thread connect support in protocol_common component (7d46a4a)
- Supported custom header file for openthread configuration (42cbc7a)
- Fixed the bug that 3-wire external coexistence on ESP32-H2 does not work properly (8576f40)
- Supported RCP compatibility mismatch error handler (3730567)
- Enabled bbr feature to support multicast by default (3730567)
- Supported modifying port and txt in SRP server (3730567)
- Fixed the issue of incorrect duration and channel configuration in
otPlatRadioEnergyScan
calls (7bc9393) - Added OpenThread dataset changed event (a2f3585)
- Supported to allocate NAT64 session from PSRAM. (8ac260a)
Zigbee
- Updated Zigbee Gateway example to use ot_rcp instead of esp_zigbee_rcp (47c8ca5)
- Updated the Zigbee examples to be based on the ESP-Zigbee 1.6.x release (47c8ca5)
- Removed the esp_zigbee_rcp example (47c8ca5)
Application Utilities
- Added feature for OTA resumption in case of any error or reboot during OTA process.[https://github.com//issues/13127] (23ce1cc)
- Provision for specifying prefix counter for encrypted key files (5462240)
- Updated mfg_gen.py script to add serial count prefix for intermediate csv and bin files (b3bae69)
App Update
- Added a new API esp_ota_mark_app_invalid_rollback() to allow marking the app as invalid for rollback without triggering an immediate restart. (#15030) (ff13eb1)
- Invalidate ota data slot of last boot app in esp_ota_begin (#14808) (9589122)
- Supported OTA update for any partitions (bootloader, partition_table, nvs, etc.) (#14195 #13824) (f817b85)
CJSON
- Update to latest upstream cJSON master. (0778748)
ESP HTTP Client
- Updated header deletion by allowing value to NULL in esp_http_client_set_header() (#15715) (#15714) (a0c707e)
- Fixed invalid content-length header. (#15291) (61f992a)
- Fixed host header for IPv6 address (#15388) (e2fc363)
- Added API to extract TLS error from HTTP client. (Closes #15059) (bc63628)
- Added a configuration to set address type (aad91f9)
- Fixed memory leak issue while preparing basic digest auth. (Closes #14885) (b20a7f1)
- Replaced MEM_CHECK macro with an enhanced version to log memory allocation failures and ensure safe handling during exhaustion of the OTA process. (706a445)
- Include port number to the URL returned by the API esp_http_client_get_url(). (57269c3)
ESP HTTP Server
- Incorrect API spelling fix in esp_http_server. (#15821) (bb9f73a)
- Improved the performance of http parser for parsing the URI. (#15288) (c263a3f)
- Added support to handle HTTP 1.0 requests for legacy compliance purpose (a5fbd96)
- Added Server Sent Events demo in http_server/simple example (d90bd6a)
ESP HTTPS OTA
- Added missing dependencies for component esp_https_ota (#15680) (2e2f39b)
- Added chip revision validation for maximum and minimum revision checks while performing OTA. (83cb9d7)
- Added check for revision verification while performing OTA. (843729c)
- Removed the support of pre_encrypted_ota example from esp-idf. This example has been moved to idf-extra-components under the esp_encrypted_img component. (5c5e80c)
- Handled case if the HTTP server responded with response code 304 (NOT_MODIFIED) (Closes #14839) (3029a4b)
ESP HTTPS Server
- Fixed the HTTP server Async handler example for multiple /long URI requests and handled some error conditions. (#15587) (fbc38a9)
- Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the
Key Usage
parameter due to the change in Python3.13's default ssl context requirements. (ccf7178) - Optimized memory usage for HTTP request with dynamic memory allocation for header and CONFIG_HTTPD_MAX_REQ_HDR_LEN now serving as the maximum limit. (e3e49d7)
- Updated the config ESP_TLS_SERVER_CERT_SELECT_HOOK in esp_https_server component (401fa7b)
ESP Local Control
Provisioning
- Update security2 scheme to fix the incorrect AES-GCM IV usage (4f5bed2)
- Security2 scheme has been updated for AES-GCM IV usage. Please refer to security2 scheme documentation for changes required on the provisioning entity side. (4f5bed2)
- Fix hostname resolving for IPv6-only host (7aaab5a)
BLE
- Removed support for the ESP32C5 revision v0.1 (35d1704)
- Added support for the ESP32C5 revision v0.2 (35d1704)
- Add Bluetooth LE direction finding feature (CTE) for ESP32-H2. (aac2e92)
- Fixed crash in BLE HID host example during logging (817de14)
BluFi
- Added support for stopping adv in BLUFI for nimble (b20122c)
- Enhance security in BLUFI example. (7ff0087)
- Fixed crash issue during memcpy in example. (b7f3f67)
- Fixed potential out-of-bounds memory access issue in Blufi example. (b48aa98)
- Fixed crash issue in Blufi example during prepare write operation. (5669686)
- Fixed Blufi initialization failure after deinitialization on ESP32(#14898). (ed61b22)
Bluedroid
- Increased maximum attribute value length to 517 to prevent data loss. (f03b0fe)
- Fixed validation logic for BLE GAP appearance configuration. (f03b0fe)
- Added
sync_cte_type
in bluedroid PA sync fucntion (38628f9) - Added throughput mode for BLE SPP example. (3b16d5c)
- Reported cte_type in periodic adv report if CTE feature is enabled (241afda)
- Fixed missing event reporting in
esp_ble_create_sc_oob_data
. (21ca237) - Fixed BLE crash when disable bluedroid host. (21ca237)
- Fixed potential uint32_t overflow in BLE btu_start_timer. (21ca237)
- Fixed memory leak issue when using dynamic memory and deinitializing the host. (21ca237)
- Added a new API esp_bt_config_file_path_get() to retrieve the Bluetooth configuration file path used for storing bond keys in the NVS module. (21ca237)
- Added esp_ble_gap_read_channel_map() API to retrieve the BLE channel map of a connected device. (21ca237)
- Supported BLE iso feature in bluedroid host (6d3bd5d)
- Supported BLE CTE feature in bluedroid host (6d3bd5d)
- Supported BLE bluedroid host power control feature (6d3bd5d)
- Supported BLE bluedroid host connection subrating feature (6d3bd5d)
- Added BLE eddystone sender example. (2217fb8)
- Supported read periodic advertiser list size command. (bcea8c9)
- Added Read Long Characteristic Values example. (5787da0)
- Supported SPI log output options for HCI. (5f2a7f4)
- Fixed an issue where advertising data and scan response data were not reported together during BLE active scanning. (1bfc6ed)
- Supported BLE vendor hci event reporting (8ad16fd)
- Supported BLE setting vendor event mask (8ad16fd)
- Reduced bluedroid host bin size (7d751dc)
- Supported change HID task size by Kconfig in HID example(#15320). (b51d4d2)
- Optimized the references to BLE GATT related APIs. (19b5381)
- Added BLE get started examples for Bluedroid. (b87ba03)
- Added config for saving BLE bonding keys to NVS flash. (79aae54)
- Fixed connection params copying when creating BLE connection. (b6b0758)
- Supported setting BLE connection parameters when creating connection. (93257ed)
- Fixed event reporting upon completion of preferred connection parameter settings. (79f26ad)
- Fixed the issue where the BLE channel selection algorithm event was not reported. (21acfc2)
- Fixed an issue where BLE connection creation failed due to an invalid own address type. (f420609)
- Added BLE 5.0 throughput examples. (5910fc8)
- Fixed a build failure in Classic Bluetooth that occurred when dynamic memory was enabled and BLE was disabled. (c014ced)
- Fixed BLE build failure when enabling dynamic memory with BLE 5.0 (08f1c36)
Controller
- Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (a3edce5)
- Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (a3edce5)
- Fixed an occasional packet loss issue in multi-connection scenarios on ESP32-C6. (a3edce5)
- Fixed a crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (a3edce5)
- Fixed an occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (3f2f57a)
- Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (3f2f57a)
- Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (3f2f57a)
- Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (3f2f57a)
- Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (3f2f57a)
- Fixed disconnection due to MIC error when pairing with an iOS device on ESP32-C3 and ESP32-S3. (7a3925a)
- Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (7ee1bf0)
- Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (7ee1bf0)
- Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (7ee1bf0)
- Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (57fd051)
- Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2 and ESP32-C5. (57fd051)
- Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (57fd051)
- Fixed an occasional issue where the connPeripheralLatency parameter was not properly applied on ESP32-C6, ESP32-H2 and ESP32-C5. (57fd051)
- Disabled anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (1edf45e)
- Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (1edf45e)
- Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (1edf45e)
- Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (1edf45e)
- Fixed bluetooth controller flash only bug if hci-uart is enabled on ESP32-C3 and ESP32-S3 (241afda)
- Fixed a heap assertion issue when enabling BLE and ESP32C2_REV_MIN_200 for ESP32-C2 v2.0 (f7218f7)
- Fixed an occasional
load access fault
issue when performing ext_conn creation for ESP32-C2. (16ba8f8) - Added definitions for bluetooth hci vendor commands and events (16ba8f8)
- Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C61. (8d97ce5)
- Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C61. (8d97ce5)
- Fixed gpio unavailable warning when repeatedly reconfiguring hci uart pins on ESP32-C2, ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C61. (8d97ce5)
- Added a function to maintain the connection when an instant pass issue occurs on ESP32-C2. (cafbd7b)
- Fixed extended advertising interval upper limit issue on ESP32-C6 and ESP32-H2. (cafbd7b)
- Reduced controller bin size and heap for ESP32-C3 and ESP32-S3 (f941b0d)
- Fixed enhanced TX power setting and getting for legacy adv on ESP32-C3 and ESP32-S3. (7e00ea4)
- Fixed BLE assert lld_con.c 2387 on ESP32-C3 and ESP32-S3(#14938) (7e00ea4)
- Fixed compatibility issues during the encryption procedure on ESP32-C3 and ESP32-S3. (7e00ea4)
- Added BLE debug log module on ESP32-C3 and ESP32-S3. (0461e2f)
- Added channel assessment function on ESP32-H2 and ESP32-C6. (5abfc05)
- Won't terminate the connection when instant pass issue triggers on ESP32-H2 and ESP32-C6. (5abfc05)
- Fixed the issue where disconnection events were not reported as a slave on ESP32. (1f84180)
- Enhance Access Address validation in compatibility mode on ESP32. (1f84180)
- Fixed scan duplicate filter failure when receiving ADV_DIRECT_IND for ESP32-C2. (07ce83a)
- Fixed an occasional assertion issue when msys memory cannot be obtained on ESP32-C6 and ESP32-H2. (8563c2f)
- Fixed an issue where the default tx power of connection is incorrect after setting the scan tx power on ESP32-C6 and ESP32-H2. (8563c2f)
- Fixed an issue that failed to establish a connection using a resolvable private address on ESP32-C2. (8563c2f)
- Updated the BLE rom.ld file for ESP32-C2 v1.0, v1.1, v1.2 and v2.0. (8563c2f)
- Supported for putting ble code into flash on ESP32-C6 and ESP32-H2. (8563c2f)
- Fixed an issue that failed to establish a connection using a resolvable private address on ESP32-C6 and ESP32-H2. (8563c2f)
- Fixed an occasional ACL disconnect issue under multiple connections on ESP32-C6 and ESP32-H2. (8563c2f)
- Supported resolving peer RPA to identity address when creating connection on ESP32-C3 and ESP32-S3. (3f6d1f6)
- Fixed peer address type error in HCI LE meta event on ESP32-C3 and ESP32-S3. (3f6d1f6)
- Resolved assertion failure “assert lld_scan.c 1728, param 00000000 00000000” on ESP32-C3 and ESP32-S3. (3f6d1f6)
- Fixed BLE assert rwble.c 505 param 00400010 on ESP32-C3 and ESP32-S3. (3f6d1f6)
- Fixed setting random address failed when extended advertising is enabled on ESP32-C3 and ESP32-S3. (3f6d1f6)
- Added parameter validation for Periodic Advertising Enable on ESP32-C3 and ESP32-S3. (3f6d1f6)
- Added config to enable/disable BLE channel assessment and ping procedure on ESP32. (6cc06c6)
- Fixed BLE assert in lld_evt.c at line 2353 on ESP32. (6cc06c6)
- Fixed interrupt watchdog timeout when shutdown BT controller on ESP32. (6cc06c6)
- Provided DTM configuration command in HCI example. (60fea222)
- Fixed that the resolvable private address does not change when light sleep is enabled on ESP32C3 and ESP32S3 (ad42627)
- Fixed an occasional ACL disconnect issue with long running time on ESP32-C2. (8458cff)
- Fixed an occasional ACL packet loss issue when Central frequently sends data on ESP32-C2. (8458cff)
- Fixed an occasional WDT issue with long running time on ESP32-C2. (8458cff)
- Added a verification step for the Access Address within the CONNECT_IND PDU on ESP32-C3 and ESP32-S3. (397fb43)
- Fixed BLE 5.0 duplicate scan issue for chained packets on ESP32-C3 and ESP32-S3. (397fb43)
- Fixed a occasional wdt issue in multi-connection scenarios on ESP32-C6. (3075efd)
- Fixed an occasional ACL disconnect issue when updating connection parameters on ESP32-H2. (3075efd)
- Fixed BLE assert ke_mem.c 267 on ESP32-C3 and ESP32-S3 (bcfe646)
- Removed BLE creating connection assertion when the connection already exists on ESP32. (d54390e)
- Fixed an issue where the scan window occasionally became smaller than expected when light sleep was enabled on ESP32-C2. (4f226b4)
- Fixed an issue where extended scan failed to correctly set the coexistence scheme status on ESP32-C2. (4f226b4)
- Fixed an occasional issue where ADV fails to transmit on channel 38 on ESP32-C2. (4f226b4)
- Fixed occasional ACL disconnect when light sleep is enabled on ESP32C61. (a3922cd)
- Supported for putting code in flash on ESP32-C2 (ea31e15)
- Fixed occasional crash issue in low memory scenarios on ESP32C6 and ESP32H2. (1f49c9a)
- Supported for running controller code in flash-only mode on ESP32-C3 and ESP32-S3 (92e4b80)
- Added a verification step for the Access Address within the CONNECT_IND PDU on ESP32. (1acc70f)
Documentation
- Updated the Bluetooth SIG Qualification information for ESP32-C6. (96af7b4)
- Updated the BLE feature support status in API Guides. (96af7b4)
- Added Bluetooth SIG Qualification information to API Guides. (fa41faf)
Mesh
- Support for using multiple advertising instances on BLE Mesh (305f1c1)
- Optimized the performance of remote provisioning (604ccb8)
- Fixed an issue where an unprovisioned device could be simultaneously provisioned by both a provisioner and a remote provisioning client. (604ccb8)
- Supported Proxy Client and Proxy Server coexistence (d74bf05)
- Support BLE 5.0 on Bluedroid and NimBLE host. (87e4f63)
NimBLE
- Added new Gattc + Gatts BLE coex example for nimble . (06ee44e)
- Fixed incorrect comparison with gattc proc that can cause request-response mismatches (5273ba9)
- Added support for anonymous address type for whitelist (4498eea)
- Added fix for an async race condition with HCI outstanding packets counter (4498eea)
- Add configurable option to select ext adv v2 command (4498eea)
- Added api's to fetch gatt cache info (f8cdf02)
- Added option to enable stack to handle repeat pairing internally (7cf5dac)
- Added runtime configurable support for observer role, security mode 1 level, and GATT caching (386a390)
- Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (386a390)
- Fixed LLS crash when no callback was registered for LLS event (386a390)
- Added SPS callback event to expose changes in scan parameters (386a390)
- Fixed incorrectly passed in GATT Caching disovery operations (386a390)
- Enabled Connection Subrating bit in ESP32C6 (386a390)
- Optimized nimble throughput example by extended adv support and switching between different Phy modes. (e0da61c)
- feat(nimble): Added tutorials for PAwR examples (61d1a1f)
- Fix sync handle assignment for PAwR connection (cc98f5b)
- Fixed incorrect OTA address type assignment [ Closes https://github.com//issues/15740 ] (771e9db)
- Corrected event posting in Read Remote Features event handling [ Closes https://github.com//issues/15670 ] (1c468f6)
- Added missing ble_hs_unlock for periodic adv sync reattempt case. (cc4fc21)
- Fix conversion for min-max itvl of periodic adv param in example (6e1f071)
- Fix SMP command allocation (ffe83c2)
- Add support for Vendor Event mask VSC (bbca89d)
- Fix incorrect event deinit in gatt caching discovery (77346e0)
- Exposed the ble_gap_wl_tx_add API to add a device in whitelist (b1effd0)
- Fixed pairing failure issue when SC only mode is selected (3eeca52)
- Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (030cdf9)
- Handle application code compilation issue due to removal of link_estab structure (cf169a4)
- Update controller data length upon connection creation. (3bf56f7)
- Deprecate BLE_GAP_EVENT_LINK_ESTAB event. (1080064)
- Handle not sending disconnect event if connect event was not sent (d65d2fd)
- Add offset in GATT server long read context (9411fd0)
- Restart adv / sync when periodic sync fails due to 0x3E (90bad97)
- Enhanced error handling by adding to print core error definitions (cefefb3)
- Fixed nvs corruption due to BLE_ENV_ADV_DATA flag (b70c995)
- Address compilation issue observed when WARN_WRITE_STRINGS is set . [ PR: https://github.com/espressif/esp-nimble/pull/84 ] (a115469)
- Updated README.md by removing unclear line (#15284) (6e59664)
- Handle nested locks when BT_NIMBLE_DEBUG enabled (#15014, #15294, #15202) (56fb641)
- Fix compilation warnings in nimble examples. [ Closes https://github.com//issues/15157 ] (5dda7315)
- Clear our and peer security records cleanly during unpair. (a77c4e7)
- Additional PAwR changes support for ESP IP (a77c4e7)
- Added HCI Read Remote Version Information command. (a77c4e7)
- Reset global variables during link disconnection (4a07179)
- Corrected storing method of csfc to nvs (724663e)
- Fixed coverity reported issues. (d0ffd25)
- fix(nimble): Save the gatt context in case of preemption (429d998)
- Fixed compilation issue for combination of Ext Adv and Reattempt connection flag. (e2882a1)
- Add ATT Tx queue cleanup during link disconnection (32a5b6e)
- Fix compilation issues when BLE_MAX_STORE_BOND is set to 0. [ https://github.com//issues/14712 ] (172bebe)
- Added a check for invalid offset (2100a5a)
- Added change to assign correct peer OTA address type (27a48c0)
- Fixed memory leak issue in BluFi Example (9ee2f9e)
- Updated error print function to include HCI opcode information (a6b1b33)
- Changing esp_rom_printf to ESP_LOGI when memory allocation fails (c3381e7)
- Corrected link_estab event handling parameters (4885e24)
- Changed CSFC max size to avoid invalid NVS overflow event (2c31596)
- Added fixes for CVE-2024-(47248/47249/47250/51569) vulnerabilities for nimble (a869192)
- Added a function for printing HCI error definition (7993018)
- Fix compilation issue in esp_hid_host example (5d250a2)
- Replace ESP_LOG* with esp_rom_printf in controller context callback (2d1a2a7)
- Add support for Multiple Variable Length Notifications. (e517761)
- Add support for Multiple EATT bearers. (e517761)
- Added support of LE GATT Security Level Characteristic (e517761)
- Fixed issue in L2CAP regarding incorrect comparison between SDU length and MTU/MPS (e517761)
- Added menuconfig option to enable SC only mode. (e517761)
- Added fix to clear IRK from controller when clearing keys from NVS during signed write operation (e517761)
- Add support for ATT over Enhanced L2CAP Credit Based Flow Control Mode. (e517761)
- Fixed memory issue in multiple L2CAP COC connections. (e517761)
- Added support for AD Types Advertising Interval - Long, LE Supported Features, and Encrypted Advertising Data (e517761)
- Added menuconfig option to enable L2CAP Enhanced COC (e517761)
- Fixed issues in connection subrating request. (e517761)
- Fixed crash issue in read multiple variable length callback (e517761)
- Added support for PAwR feature (e517761)
- Added a host config to enable/disable SC Only mode (e517761)
- Fixed Device Information, Battery Level service and Scan Parameters [ https://github.com//issues/14864 ] (e517761)
- Resolved watchdog due to memory exceed prints (8eeb3e2)
- Nimble Error logs in case of memory overflow/failure (749cfa1)
- Removed min/max macro definition from os.h (#14840) (393b741)
Bluetooth Common
- Starting from this version, Espressif's Bluetooth vendor-specific HCI commands and events for all ESP Bluetooth chips are disabled by default in HCI UART mode and non-ESP host mode. Please refer to esp_bt_vs.h (E.g., components/bt/include/esp32/include/esp_bt_vs.h) for detailed information . (16ba8f8)
- Add support for converting BT HCI logs to btsnoop format. (39eb673)
Bluedroid
- Set default value of BT_BLUEDROID_ESP_COEX_VSC to n if software coexistence is not required, (895bb2a)
Controller
- Fixed the issue that disable Bluetooth controller may cause interrupt watchdog timeout on ESP32 (be5cad5)
- Disable debug vendor HCI command on ESP32. (bdd9077)
- Added API to get/set low power clock source on ESP32 (ef74032)
- Move
esp_wifi_bt_power_domain_on
andesp_wifi_bt_power_domain_off
fromesp_bt.h
toesp_phy_init.h
(45bd677)
Bootloader
- Fixed partition size cannot exceed 16MB issue, when CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH or CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH is on (574b27d)
- Added a new custom bootloader example that implements multiboot (55955a5)
- Added support to use flash MMU page size from app binary header (4c6cda7)
- Added the CMake variable
BOOTLOADER_EXTRA_COMPONENT_DIRS
, making it possible to add extra components to the bootloader build, without the need to place them inbootloader_components/
(5692224)
Build & Config
- Changed build fatal error to warning when the ESP_ROM_ELF_DIR environment variable is not set (135f4e2)
- Added support for the CMock subdir option with idf_component_mock (#15308) (2fb9384)
- Fixed C standard preferences for the Linux target (e4cf819)
- Fixed CMake configuration warning CMP0165 for Linux target (#15488) (7ce80ce)
- Included the test components specified by TEST_COMPONENTS in minimal build (#15485) (da69aee)
- Fix compilation issues in the idf_as_lib example (#15401) (4f968c3)
- Fixed ESP32-P4 linker script that was missing the
arrays
attribute for external RAM section. (7760496) - Added the MINIMAL_BUILD build property and modified examples to use it in order to reduce their build time (46e3751)
- Wrote the components properties file once instead of rewriting it in a loop for each component (#14733) (542a5d2)
Classic Bluetooth
Bluedroid
- Added support for initializing secure connection host support feature during Bluedroid initialization (ee9c524)
- Fixed the issue that l2cap stop server did not report the
ESP_BT_L2CAP_SRV_STOP_EVT
event (141d19c) - Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (660898d)
- Added events for l2cap register and unregister vfs (03c229e)
- Fixed
write_read
task stack overflow in l2cap example (03c229e) - Fixed the issue with l2cap not using dynamic memory (03c229e)
- Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (5f3097f)
- Refactor HFP and A2DP audio data path to support using external codec (96244e0)
- Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (fb0a087)
- Fixed the issue that PBAC may free undefined memory when connection close with service discovery failed (569f97d)
- Fixed the issue that some memory in OBEX not being freed when deinitializing Bluedroid (569f97d)
- Fixed reporting of unexpected
ESP_BT_GAP_DISC_STATE_CHANGED_EVT
event upon ACL disconnection, due to uninitialized local variable (2bf3fd5) - Fixed the issue that after SPP reaches the maximum number of connections, it will mistakenly free the server resources when disconnecting, causing the next server start to fail. (9ba5527)
- Fixed memory leaks in SPP callback mode (9aaa7f8)
- Add sdkconfig for SDP size options (#15321) (26a1b69)
- Add Kconfig option to keep device bonding information when HID virtual cable unplugging (f390fcb)
- Fixed incorrect records in SDP record search response using 16-bit UUID (9dde33e)
- Fixed error type returned when searching for SAP records (9dde33e)
- Support get play status feature in AVRCP CT (6109542)
- Fixed memory leak issue in esp_avrc_ct_cover_art_get_image API (cb3ac74)
- Support Phone Book Access profile client role (cb3ac74)
- Fixed NULL pointer access exception in HFP callback handler (c8b9ea3)
- Disconnect SDP connection on receiving incorrect response or the ACL connection will never be released (56a55c0)
- Fixed the incorrect service UUID in the callback parameter of ESP_SDP_SEARCH_COMP_EVT due to byte alignment issue (4097a27)
- Added HFP callback event for notification of profile ON/OFF state (6c62e08)
- Fixed AVRCP compatibility issue on absolute volume synchronization (f0ab551)
- Fixed memory leak for synchronous data queue when disabling Bluedroid (bb5a53c)
Controller
- Implemented a workaround for potential data packet exchange issues when secure connection is enabled on ESP32 (ee9c524)
- Fixed a crash issue caused by accessing external memory in ISR context on ESP32 (eb0d367)
- Fixed ACL has few chance to run when it coexists with SCO on ESP32 (abe7680)
- Fixed errors in dynamic priority configuration in Bluetooth dual mode on ESP32 (abe7680)
- Fix the incorrect unit of
duration_min
in CPB TX on ESP32 (dbe3c11) - Recalculate the channel map when AFH is enabled on ESP32 (dbe3c11)
- Fixed assessing NULL pointer in case of handling earlier message when Bluetooth Classic connection gets disconnected (#15128) (94cfe39)
- Avoid accessing released ACL resources in SCO logic on ESP32 (94cfe39)
- Fixed no release of event scheduling element in after SNIFF negotiation failure on ESP32 (#13605) (9f68b15)
- Removed an assertion in SCO data TX handler after disconnection on ESP32 (#15176, #15084) (9f68b15)
- Fixed missing critical protections on linked-list structure of (e)SCO buffers on ESP32 (21e07da)
- Fixed the issue where the pause and resume encryption requests were not initiated after the link key upgrade completion on ESP32 (04429da)
- Fixed the issue that the create_conn_cancel_cmd was rejected to cancel connection creation process and returned inappropriate error code in some states on ESP32 (2b8c581)
- Fixed duplicated encryption restart process when new lk type is semi-permanent key on ESP32 (df69b78)
- 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 (df69b78) - Fixed zero attempt value set by role switch which cause fatal hardware error on ESP32 (e4102c5)
- Fixed missing of critical protection for the free method of (e)SCO buffers on ESP32 (e4102c5)
- Fixed wrong logic in handling sniff transaction collision at slave side on ESP32. (7bc8b99)
- 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. (7bc8b99)
- Fix crash upon name request from peer device without setting local device name on ESP32 (203e543)
- Set the QoS value to the minimum value if the calculated QoS is less than the minumum on ESP32 (203e543)
Coexistence
- Supported BR/EDR (e)SCO and Wi-Fi coexistence. (79eb59d)
- Fixed disable external coexist fail issue. (5fd47af)
- Added coexistence scheme for BT Inquiry/Page coexist with WIFI (22869af)
Core System
- Added unit test ordering by file path and line number (#15529) (182b33e)
- Fixed DRAM_DMA_ALIGNED_ATTR for ESP32-P4 (53e84d9)
- Ensure proper reset for crypto peripherals before software restart. This fixes a rare and intermittent secure boot verification failure based on RSA-PSS scheme. The fix is recommended for aggressive revocation config. Please see commit log for more details. (e37c47f)
- Added CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS option to improve memcpy/memcmp/memmove/str[n]cpy/str[n]cmp performance for misaligned memory access for riscv chips. (a31f487)
- Fixed system console not correctly outputting to usb-serial-jtag secondary output console on newer chips (afedcb7)
- Fixed esp_ptr_executable to specifically check if the pointer is in PSRAM memory on esp32p4. (7e93f4b)
- Fixed missing implementation of __atomic_test_and_set required by GCC 14 (#15167) (66cf518)
- Improved detection of illegal writes to flash rodata on ESP32-S3, exception should now trigger faster and provide more accurate error information. (b077618)
- Deprecated
TARGET/rtc.h
header file, these have been replaced byesp_rtc_time.h
(2e6a6c0) - Fixed linker script for ESP32-C3, ESP32-S2 and ESP32-S3, reducing Flash usage by up to 512 bytes. (bcd80c9)
- Fixed esp-ringbuf logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER (184a8aa)
- Fixed typo in ROM API documentation (#14518) (b6be76f)
- Corrected the address used to fetch the application image header during system startup (5504a59)
Console
- Fixed deadlock occurring upon deinitialization of the repl environment (see #9974) (e4e2a83)
- Fixed the crash when enable USB-Serial-JTAG as the primary console on ESP32-C3 v1.1 (ea902d6)
- Added 'info' to log_level command description (#14771) (3ec0558)
- Added recommendation to use Windows Terminal in case of issues with escape sequences(espressif/esp-idf-monitor#17) (90abcde)
ESP Event
ESP Timer
- Added option for placing functions in flash if using flash-auto-suspend (ee87960)
Heap
- Updated heap debugging documentation to include the task tracking feature description. (83f2897)
- Added heap_caps_get_containing_block_size to the heap API that returns the size of an allocated block from any pointer to that block. (826c69f)
- Added per task peak heap usage information when heap task tracking is enabled (6ef7ad6)
- Fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not being able to be used together with CONFIG_HEAP_TLSF_USE_ROM_IMPL. (46847b7)
- Added MALLOC_CAP_SIMD flag to allocate memory that is suitable for SIMD instructions (bbdef6a)
- Fixed wrong memory returned when allocating in RTC memory with MALLOC_CAP_EXEC capability (see #14835) (c80ba40)
- Fixed allocs with MALLOC_CAP_EXEC returning non executable memory if CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT was enabled (#14836) (e4501b3)
- Updated list of registered heaps to be sorted by increasing size (see #13588) (ab3d179)
Interrupts
- Added kconfig option
CONFIG_ESP_INTR_IN_IRAM
for placing interrupt related API into flash when usingCONFIG_SPI_FLASH_AUTO_SUSPEND
(e824091) - Fixed spelling mistakes in the
soc/interrupts.h
(#15273) (0407879) - Implemented a way to allocate a shared interrupt specifying the interrupt line destination. (8dfcafa)
- Fixed a bug in the interrupt allocator that resulted in the level of shared interrupt being overwritten with the last level given. (8dfcafa)
- Fixed wrongly reserved interrupt for WiFi on ESP32-H2 (cfe7021)
Linux target
- Added SOC_CPU_CORES_NUM define for the Linux target (#15758) (784d80b)
- Fixed TEST_COMPONENTS not working on macOS for linux target (#15490) (64113b8)
Log
- Added binary logging mode (33cab69)
- Added kconfig option
CONFIG_LOG_IN_IRAM
for placing logging related API into flash when usingCONFIG_SPI_FLASH_AUTO_SUSPEND
(7605727) - Added Log v2 (the choice between v1 and v2 is made by CONFIG_LOG_VERSION). Supports centralized log formatting via a single handler for all log macros. (#5761, #14011) (ec990f4)
- Moved esp_log_level_get_timeout and esp_log_writev to IRAM (9eeee92)
Newlib
- Updated usleep() to ensure it never sleeps for less than the requested duration. For multi-tick delays, it now also yields CPU time more effectively (#15132) (15c349b)
- Added kconfig option
CONFIG_LIBC_MISC_IN_IRAM
for placing newlib related API into flash when usingCONFIG_SPI_FLASH_AUTO_SUSPEND
(3fdcf31) - Removed unnecessary IRAM attributes from some newlib functions, slightly reducing IRAM usage. (7037134)
- Added kconfig option
CONFIG_LIBC_LOCKS_PLACE_IN_IRAM
for allowing newlib lock API to be placed into flash if deselected. If these APIs are not used from IRAM ISRs where cache is disabled then placing them in flash saves ~1KB of IRAM. (7037134)
Panic handling
- Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (#15166, #15018, #10110) (e01877f)
- Added CONFIG_ESP_SYSTEM_USE_FRAME_POINTER to enable frame pointer generation, simplifying backtracing at runtime. (52b558d)
- Fix the cache size error message on Xtensa targets (6540208)
Partition Table
- Fixed partition table names must be only ASCII characters (4aa47aa)
- Supported primary subtypes partitions for bootloader and partition_table types (1a419e5)
Pthread
Watchdogs
- The LP-WDT on ESP32-P4 now takes into account the value EFUSE_WDT_DELAY when setting the timeout (4608cc0)
- Fixed an issue on ESP32-P4 causing unexpected WDT resets and preventing halting after a panic when
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT
set (648a300)
Debugging
- Moved gdbinit files generation to CMake configuration stage (2a6e084)
- Added "--gdb-commands"/"-x"/"-ex" options for "idf.py <gdb|gdbgui|gdbtui>" to pass custom options to GDB (2a6e084)
Apptrace
- Store CRC16 checksum of trace blocks in Xtensa perfmon register to enable host-side data integrity verification. (d1c131f)
- Fix deadlock on sysview start (f8284e1)
- Fixed the issue where the Segger SystemView app (v3.10 or later) gets stuck during the record analyzing step. (#10483) (06e8ee2)
- Updated SEGGER sysview version to v3.56 (f3790a0)
Core Dump
- Hide the
--chip-rev
argument inidf.py coredump-*
help because it is need for older ESP-IDF versions only (969ea94) - Fixed potential checksum errors by using a buffer to write to flash. (1b71db8)
GDB Stub
- Supported riscv xesppie extension (f667ba7)
Documentation
- Corrected LP Core documentation about
esp_idf_monitor
usage (33c340a) - Changed PDF download link to a HTML zip archive download (813b98c)
- Updated information about debugging the heap. (0564e9d)
Ethernet
- Added destination MAC address filter configuration interface (espressif/esp-eth-drivers#57) (eba9549)
- Fixed ESP32P4 EMAC REF RMII CLK output mode (6d9fdcf)
- Fixed ESP32P4 EMAC flow control enable (6d9fdcf)
- Fix second Ethernet device not getting IP address in Ethernet basic example (39f34a6)
- Changed GPIO init to not use functions which "overwrite all the current IO configurations" (d30e4d9)
- Fixed Openeth driver to consider the MAC address specified in QEMU (espressif/qemu#107) (e06c234)
- Added time stamping support for ESP32P4 Ethernet driver. (7f07c9d)
- Added time synchronization over PTP example. (7f07c9d)
FreeRTOS
- Introduced Kconfig option
CONFIG_FREERTOS_PLACE_ISR_FUNCTIONS_INTO_FLASH
to allow placing FreeRTOS APIs called from ISR context in to Flash memory. (5ba12ea)
IDF Additions
- Updated
xRingbufferReceive()
andxRingbufferReceiveFromISR()
APIs to restrict them from being called to retrieve items from allow-split buffers. (a57680c) - Updated description of the ring buffer API (#15298) (8778ed2)
- Fixed a bug in
prvTaskDeleteWithCaps
that resulted in a crash if the task used a coprocessor. (7559275) - Fixed a bug wherein a
no-split
ring buffer does not receive any item if space on the buffer is acquired until the buffer is full and the acquire pointer wraps around (#14948) (856bba6) - Fixed incorrect API reference for
xRingbufferSendComplete()
(#14990) (2cddacd)
IDF Kernel
- Fixed an issue where automatic light-sleep can cause FreeRTOS ticks to jump and cause unexpected timeouts (#15642) (6a740a9)
- Fixed an issue in HWLP coprocessor support where, due to a hardware bug, the previous context could be incorrectly restored in certain cases. (d3fd64d)
- Added a Coverity error suppression comment to tasks.c during idle task name copy operation. (c776de6)
- Fixed an issue where the idle task name copy operation could result in an out-of-bounds memory access. (2c4588b)
- Fixed an issue where the idle tasks in SMP configuration could be non null-terminaated strings. (2c4588b)
LWIP
- Fixed IPv6 forwarding to clone PBUF_REF buffers into PBUF_RAM, matching IPv4 behavior. (49c9d79)
- Fixed NULL pointer dereference in ip_napt_enable and added unit tests(espressif/esp-lwip#69). (83e8f70)
- Changed LWIP_NETIF_API to be always enabled to support standard network interface APIs
if_nametoindex()
andif_indextoname()
(e11a918) - Fixed compilation issue with CONFIG_LWIP_DHCP_RESTORE_LAST_IP(#14582). (73c46b0)
- Fixed ping component to retrieve network interface name in a TCP/IP thread safe manner (#14982) (ed14b8d)
- Added minimal support for
socketpair()
via the external componentsock_utils
(#13772) (7e24647) - Added minimal support for
gai_strerror()
andgethostname()
via the external componentsock_utils
(#14849) (7e24647) - Fixed IPv6 raw socket ICMPv6 checksum calculation in IPv6-only configuration (afb4a02)
- Fixed a bug in
dns_clear_cache()
that caused deadlock by clearing active DNS entries(#14287). (e4c9285)
DHCP
- Added a hook to support custom actions on getting an additional DHCP options (#15329) (0be20a5)
- Fixed DHCP server recv decline issue (e3583dd)
DHCP Server
ESP Netif
- Added infrastructure to IGMP and MLD configure MAC address filter based on joined multicast group (eba9549)
- Added support for additional PPP server properties (DNS servers, passive connection) (#15459) (23c73cd)
- Fixed IP address notification from DHCP client after lease expiry and renewal (584fc50)
- Fixed esp_netif bridge glue layer for targets with no WiFi support (e65c9a5)
- Enable user to set route priority after esp_netif creation. (9e2671d)
- Added time stamp value retrieval via L2 TAP interface. (7f07c9d)
TCP
- Fixed unlimited PCB issue, allowing application to allocate more TCP connections than configured (#9670) (890106f)
- Updated mechanism to recycle PCBs also in FIN_WAIT_1 and FIN_WAIT_2 states (890106f)
Low Power Features
- Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (cd1601f)
- Fixed the issue that esp32p4 may get stuck when entering deepsleep. (7f46f61)
- Fixed deepsleep leakage after USB HS phy is initialized on esp32p4 (693dfe6)
- Supported switch to VBAT power supply in deep sleep on esp32p4. (45f495c)
- Updated the bootloader clock configuration method to not disable the LP Timer interrupt (#15751) (465b159)
- Allowed to keep SAR ADC power when using ADC_ULP_MODE. (#12426) (22f0ee5)
- Optimized CPU IDLE power consumption by enabling automatic clock gating of CPU/Cache/memory. (38fcc41)
- Fixed power leakage when external 32k slow clock source detection fails. (1304fdc)
- Fixed the issue that esp32c2 may fail to wake up after entering deepsleep with external 32 kHz oscillator. (2d1c99e)
- Warning the use of lightsleep GPIO/UART wakeup source if
PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP
option is enabled. (e57f02e) - Fixed the issue that accessing external storage (Flash/PSRAM) after waking up from light sleep may get wrong data when ESP_SLEEP_KEEP_DCDC_ALWAYS_ON is not enabled on ESP32-P4. (5fd4104)
- Added sleep duration validity check in
esp_sleep_enable_timer_wakeup
. (#15255) (e95103a)
ULP
- Added support for embedding multiple ULP binaries without variable name collisions using binary specific prefixes (#14954) (5700288)
LP Core
- Updated the LP UART and LP I2C drivers to not enable interrupts but rather use raw interrupt registers to prevent the LP core from jumping to the default interrupt handler and aborting the LP core code. (c85c74f)
- Added support for LP Timer interrupt on the LP Core (#15717) (692512c)
- Added wrapper APIs to enable and disable LP IO as a wakeup source from the LP core (#15837) (382121b)
- Fixed accumulation of wakeup cause bits in ULP (#15794) (ed96486)
- Fixed and issue with the
lp_core_uart_tx_flush()
did not wait for the UART Tx idle state therefore, not always flushing all bytes from the UART Tx FIFO (#15433) (47df2ed) - Added support for LP UART wakeup modes. (5f37de2)
- Added a LP-SPI example for the LP-Core showing reading and writing from a BME280 sensor (402fece)
ULP-RISC-V
- Fixed a bug in ADC oneshot driver which incorrectly initialized the ADC peripheral when it is being controlled by the ULP RISC-V core. (a6c3a9c)
- Fix a bug in the ULP RISC-V interrupt handler that resulted in a corrupted stack upon return (#14930) (ff12ccf)
Networking
Examples
- Added DNS over HTTPS (DoH) example (3b30a63)
- Fixed modbus slave setup mode (#14878) (b77ecce)
- Added a wrapper function for getaddrinfo() to properly handle the AF_UNSPEC flag. (e2ae81a)
PHY
- Added config for esp32c2 to move IRAM func to flash (e9d2d03)
- Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (e408213)
- Improved esp32s2 recv 24M Block Ack packet performance, revert finally (578c8b8)
- Optimization of RX calibration in high-interference environments (d5f2447)
- Supported PHY changes for ESP32-H2 revision v1.2 (915762c)
- Fixed the issue of inaccurate calibration warning information.(#14963) (7443dde)
Peripheral Drivers
ADC
- Fixed ADC do not enable/disable regi2c registers (a446010)
- Fix ADC oneshot read zero after getting done signal on ESP32-P4 (a446bda)
- Fixed ESP32-S2 ADC calibration loss resolution (#15671) (37ce74a)
- Fixed ADC function register not reset issue on ESP32-H2/C6/C61/C5 (e21e3f4)
- Fix adc oneshot lose power control counts (7e44f8d)
- Fix ADC oneshot read error after continuous (7e44f8d)
- Fixed ADC error after bootloader random (0974d66)
- Fixed ESP32P4 ADC continuous mode stop early (0974d66)
- Supported ESP32P4 ADC calibration (0974d66)
- Supported ADC calibration scheme on ESP32C5 (90f638e)
- Fixed
adc_cali_check_scheme
return wrong supported scheme issue on ESP32-C2/H2/C6 (c9a5909) - Fixed ADC monitor don't work issue. (#14769) (1a25f68)
- Updated continuous mode read API timeout parameter description (#14854) (08ef00d)
Analog Comparator
- Fixed the issue that unit1 can't generate the ETM event properly (f2cf0f0)
- Corrected the supported interrupt priority to 0~3 (f2cf0f0)
BitScrambler
- Add support for extra instruction as found in ESP32-C5 (5d63f25)
- Add BitScrambler loopback (memory2memory) driver (c8d4e1b)
Camera
- Added SC030IOT DVP camera support to dvp_isp_dsi example (35708ec)
- Fixed Cache-Safe build error (6184bda)
- Added camera/dvp_isp_dsi example that uses a camera sensor with ISP_DVP interface (0d68aa8)
DMA
- External memory encryption should not affect internal memory alignment (#15228) (deb703c)
- The asynchronous memory copy driver now supports destination addresses that are not aligned to the cache line size. (c586527)
- Improved the CP-DMA performance from 480MB/s to 520MB/s on ESP32S2. (486fd18)
GDMA
GPIO
- Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (#15797) (07acbee)
- Removed misleading LOG in gpio_reset_pin, and changed LOG to debug level for gpio_configure (#15569) (f3625b0)
- gpio_reset_pin can be called to revoke any IO reservation now (#15598) (f3625b0)
- Fixed the issue that configuring RTCIO as GPIO causes other initialized RTCIO to function abnormally on esp32s2 & esp32s3. (#10404, #12681) (79ee092)
- Fixed wrong register write when calling esp_rom_gpio_connect_out_signal for IO number over 31 on ESP32/ESP32S2 (#15209) (b88f30a)
- Updated rtc_io.h API reference (#13735) (486c955)
- Allow RTC-IO API to set edge type wakeup sources for targets that support this (d8de8c6)
- Added gpio_get_io_config API to get IO configuration for a specific IO (#14923) (4535c27)
- Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (#14931) (4535c27)
- Forbidden to enable pull-up, pull-down on input-only IOs (4535c27)
- Fixed gpio_dump_io_configuration API name typo in programming guide (#15031) (90a396b)
- improved GPIO set level performance by avoid "read-modify-write" operation (#14674) (01cd5cf)
GPTimer
- The start and stop functions are now idempotent (#12325) (e964cc3)
- Fixed the issue with esp32p4 losing GPTimer context after lightsleep when the peripheral power domain is powered off. (1b44d4d)
- Fixed race condition between gptimer_start and gptimer_stop (#14767) (4b9d9a1)
I2C
- When the driver enables GPIO pull-up, it will also disable the internal pull-down accordingly. (#15774) (4bec8b5)
- Fixed the issue that fsm reset would cause I2C SCL frequency changed on ESP32-S2 (#15724) (ce15bc2)
- Fixed clear bus issue in legacy i2c driver (#15638) (ccb4384)
- Fixed uses i2c customize api read one byte cause error (#15685) (f8ecc48)
- Fixed auto selection i2c slave device cause error (#15644) (8a0e310)
- Fixed stretch causes timeout in i2c probe (#15589) (d5b0520)
- Fixed array size of static array (#15583) (34b69e8)
- Fixed race condition issue (#15444) (9a91765)
- Fixed clock speed is wrong on esp32s2 with legacy i2c driver (#15301) (3286651)
- Enhhance i2c delete devices and buses logic (#15171) (e73d78b)
- Add api for customize i2c transaction interface for nonstandard i2c device (a245a31)
- Added an API for changing i2c slave address on same device. (#15011) (ce131ee)
- Add 10bit address support on esp32 (9bdbd45)
- Added a get-started example for i2c master driver (#14315) (#14902) (99013d2)
- Reduced the chance of I2C data corruption due to hardware issue in FIFO handling (#12860) (2166722)
- Enhance lp i2c clock source selection (#14908) (6b735e0)
- Fixed I2C return without release the lock (#14906) (6b735e0)
- Refactor i2c slave driver and make it easier to use. (d74e99c)
- Fixed bus handle check so that it will not panic when there is no free bus, (#14819) (2693221)
- fix(i2c): Fix some issue in programming guide, (#14794) (2693221)
I2S
- Fixed the false buf catenate while use preload (Closes #15775) (823785a)
- Added check for minimum sample rate (#15659) (84bfea4)
- Fixed i2s inappropriate check and assign sequence (#15648) (2ff1985)
- Added check for i2s DMA buffer array allocation (#15607) (3cbd391)
- Fixed failure when GDMA is set IRAM_SAFE but I2S not (#15533) (87aa9ec)
- Fixed i2s_std initializer order for cpp compiler and guarantee all initializers cpp compatible (#15405) (9f489c2)
- Support to tune the audio rate during the runtime. (1bd8fab)
- Fixed clock not update issue when re-configure the slot (#15256) (fb72b2c)
- Fix uninitialize warning for the default macros (#15271) (fb72b2c)
- The max TDM frame bits have limitation on ESP32-C3/S3/C6, add check for the TDM frame bits number to make sure it is valid. (8583c1f)
- Fixed incorrect DMA buf size calculation for 8-bit & 24-bit data width. (25de093)
- Supported to choose PA_CTRL gpio for
i2s_es8311
example. (25de093) - Report error when the division from clock source to MCLK is less than 2 (because mclk_div at least to be 2 in hardware). (25de093)
- Refactor I2S example common dependencies, make them an example common component (#14751) (12fb443)
- Removed the least 2 slots limitation for the PCM short format in TDM mode (#14879) (874ce4e)
- Supported PDM data format (RAW/PCM) selection (56349e6)
ISP
- Supported bypassing ISP to receive data from MIPI CSI (f3f3cad)
- Supported byte endianness swapping (f3f3cad)
- Fixed the issue that calling esp_isp_demosaic_disable for non-RAW output format would cause data incorrectness (ebdb804)
- Added LSC programming guide (4c9154b)
JPEG
- Fixed the issue that jpeg encoder blocked when the output buffer is not sufficient. (c07e270)
- Fixed handing of invalid JPEG marker (430bb9d)
- Added support for decoding JPEG images without Huffman table (e12db42)
- Correctly set JPEG restart interval (f7bfa95)
- Fixed get wrong gray information via get_information api (d1c0d6e)
- Fixed the com marker size when encoding a picture (3cc9d42)
LCD
- Fixed the infinite wait when lvgl timer is no ready in example (#15853) (74f0ad5)
- Supported XPT2046 in the SPI LCD example (#15414) (2011b9f)
- Fixed the issue that SPI LCD device initialization breaks the IO setting of others (#15478) (b815cb1)
- Fixed the issue that the restart buffer failed to mount to the DMA when memory encryption is enabled (#15228) (cb9257d)
- Fixed the drift issue caused by restart of the LCD screen (#15013) (67bbe37)
- Fixed the issue that when Flash encryption is enabled, PSRAM buffer fail to mount to the DMA (#15228) (9a0e097)
- Fixed the issue that RGB_LCD stops working occasionally after software restart (4393a0d)
- Increased the upper limit of PCLK frequency for RGB LCD (0c90988)
- Fixed wrong calculation for the pixel clock in the ESP32-P4 LCD_CAM (0c90988)
- Supported to simulate SPI/I80 interface LCD by Parlio peripheral (9632318)
- Fine tune MIPI DPHY PLL setting to generate the closest frequency (5917471)
- Support color conversion for MIPI LCD driver (ad476af)
- Fixed wrong return type in
esp_lcd_new_panel_io_i2c
when build for C++ project (e1a3ff1) - Updated the i2c_oled example to use LVGL v9. (fc5b392)
SPI_LCD
LDO
- LDO can output the voltage reaching power rail 3.3V (cf8521a)
- Output voltage is calibrated with eFuse data (05beaca)
LEDC
- Fix potential assert failure in ledc_fade_stop due to race condition (#15580) (95f8eb1)
- Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2/P4 (974910d)
- Fixed depending on gpio header but don't depends on it (#15174) (ef5dad5)
- Deprecated ledc_timer_set() API, where its functionality can be completely replaced by ledc_timer_config() and ledc_set_freq() (#14884) (aae5321)
- Fixed ledc_get_freq() returned frequency error due to calculation overflow (#14882) (aae5321)
LP_I2S
- Added LP I2S and LP VAD programming guides (038a666)
MCPWM
- Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (4f56bba)
- GPIO pull-up/down will be automatically disabled when the driver GPIO pull-up/down flag is not set.(#15774) (4bec8b5)
- Added MCPWM sleep retention support (6b54dfc)
- Added description of special deadtime configurations and added checking in the driver(#14773) (57eddeb)
PARL_IO
- Supported to embed a BitScrambler program in the
parlio_tx_unit_transmit
function (929e149) - Supported to set start/stop delay for valid signal on ESP32C5 (c4768ea)
- Added programming guide for PARL_IO_TX. (a25e7ab)
- Supported the infinite loop transmission for PARL_IO_TX. (8e591a2)
- Fixed line address error in simple rgb matrix example. (f0cee06)
- Fixed an issue where prematurely disabling PARL_IO TX caused errors in subsequent transmissions. (fce8230)
- Updated the rgb_matrix example to use LVGL v9. (ef437b7)
PCNT
- Fixed a typo in the
PCNT_LL_MIN_LIM
(#15554) (3447c72) - Supported step notify on ESP32H2 chip version v1.2 (d2b87ac)
- Added documentation about pull-up/pull-down (#14277) (b79c7f0)
PPA
- Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (65044ef)
RMT
- Fixed the race condition when between
rmt_receive
and receive ISR (#15842) (da50364) - Enhanced the
rmt_receive_config_t
error message (#15836) (da50364) - Added
RMT_ENCODER_FUNC_ATTR
to decorate the RMT encoder functions (#15832) (1481ecb) - TX channel can switch to different GPIO at runtime. (f56cc82)
- Added a new encoder for RMT TX driver, it allows the whole encoding session being controlled by the BitScrambler program. (3428044)
- Fixed the panic when the number of received symbols is a multiple of the memory block size. (54d7bec)
- Fixed the wrong reset code duration in the simple encoder example (#15498) (ca2e1c7)
- Use debug log for conditions where user buffer can't accommodate the received data. (#15225) (b6c94a1)
- Supported to set slower channel resolution. (#14760) (e3cf105)
- Fixed the channel resolution divider rounding issue (#15092) (4e2dad6)
- Added a function to return the real clock resolution of a channel (#15074) (0765659)
SDIO Slave
- Added SDIO Slave driver support on ESP32-C5 (67e5e59)
- Fixed issue that SDIO Slave peripheral may be powered off in lightsleep on C6, H2 and P4 (676f519)
SD_HOST
- Supported UHS-I SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) on ESP32P4 (ed8ec9d)
SDMMC
- Fixed transfer timeout due to higher priority tasks (#13934) (f214081)
- Fixed SDMMC peripheral deinitializating GPIO pins which were defined but not used due to slot width (#15328 #15330) (de05373)
- Request the SD card to send the number of the written write blocks (ACMD22) if write multiple blocks fails (CMD25). (b2e0bd9)
SPI
- Fixed the issue that driver objects may be allocated from PSRAM unintentionally (1bbb20c)
- Supported place slave_hd driver code to flash to save IRAM by disabling
SPI_SLAVE_ISR_IN_IRAM
(50be973) - Added enabld/disable API for power management in slave and slave-hd driver (f2c8b32)
- Support change device's frequency by
spi_transaction_t::override_freq_hz
(#13753) (c7a0e45) - Supported SPI slave and slave HD driver sleep retention on ESP32C6/H2/P4/C5/C61 (b0be36d)
- Fixed P4 spi master no DMA polling transaction error on cache sync. (dee6ad5)
SPI Master
- Fixed SPI stop after remove devices which using RC_FAST as clock source on ESP32C6 and H2 (68b79fc)
- Supported rx sample point adjust using
spi_device_interface_config_t::sample_point
on esp32h2 v1.2 and later. (d78f270)
SPI Slave
- Fixed HD example and driver error with
addr&len not align to 64
on ESP32-P4 (3b4f2a9)
SPI Flash
- Added mutual exclusion between
CONFIG_SPI_FLASH_ROM_IMPL
andCONFIG_ESPTOOLPY_OCT_FLASH
(64ff6ec) - Added flash suspend chip version check on esp32h2 and esp32c6 (628cca1)
- Fixed flash encryption write verify (#15380) (eb5c248)
- Add
CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM
for moving some flash functions from iram to flash in order to save RAM memory (dbd2aa8) - Fixed build fail when rom_patch config disabled (#15229) (0cc1671)
- Add a configuration to enable auto suspend status check to improve performance. (bd5945d)
- Fixed double exception after Flash no-OS API caused by branch predictor on ESP32-P4 (f93e720)
- Fixed Cache states not recorded issue when using Flash no-OS APIs on ESP32-H2/P4/C6 (f93e720)
- Add a new example for supporting customized nor flash driver which can be used both in app and bootloader (2b1c27f)
- New feature for software resume when auto-suspend enabled, improve performance (df1a7d5)
- Add suspend support on a winbond chip (e84b59c)
TWAI
- Added a unified driver interface to support both TWAI and TWAI-FD peripheral (a16f621)
- Fixed twai assert failed during recover (#9697) (991acde)
- Fixed C++ warning of macro
TWAI_GENERAL_CONFIG_DEFAULT
(#15144) (db07b97) - Fixed other node got BUS-OFF when twai init. (#14548) (90e71bf)
Temperature Sensor
- Fix the doc and return value is not consistent (#15850) (e981f0b)
- Fixed the temperature sensor return wrong values when
ESP_WIFI_ENHANCED_LIGHT_SLEEP
is enabled on esp32c6. (65577b9) - Fixed temperature sensor sleep retention on esp32p4 (9382c9a)
- Added temperature sensor calibration on ESP32-C2/C6/H2/P4 (9677a49)
Touch Element
Touch Sensor
- Fixed concurrent issue in the legacy touch v1 (esp32) driver (cee5a3d)
- Fixed the issue that tie option doesn't take effect. (762cf05)
- Fixed touch read WDT timeout issue on esp32 (#15629) (5b185da)
- Support ULP touch sensor driver on ESP32-P4 (afda4c1)
- Support runtime re-configuration for debug purpose (581cbca)
- Checks if the timer is active before stopping it (legacy driver) (8354773)
- Fix unexpected touch start on RTC peripheral init (legacy driver) (8354773)
- Support ESP32 in the new touch driver. (57a893d)
- Support RTC power down during the sleep. (c39b872)
- Support ESP32-S2 & ESP32-S3 in the new touch driver. (cb4442d)
UART
- Eliminated the possibility of garbled data sent/received from the UART port during sleep process (dbfb663)
- Added UART DMA driver support (f66a750)
- Added support for HP UART wakeup modes UART_WK_MODE_FIFO_THRESH, UART_WK_MODE_START_BIT, and UART_WK_MODE_CHAR_SEQ for ESP32-C5, ESP32-C6, ESP32-C61 and ESP32-H2. (8e25a37)
- Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (#15695) (d11ccf8)
- Add check for malloc success in uart examples (#13405) (d11ccf8)
- Added uart_detect_bitrate_bps API for data line bitrate detection (#14721) (2ee8c06)
- Updated uart_get_baudrate API documentation (#15449) (2ee8c06)
- Corrected the misleading in the driver to ensure clarity that the LP UART can't support very low baud rate (2400bps, 1700bps, etc.) (#15427) (2fabe6f)
- Enlarged default task stack size for uart_async_rxtxtasks example to avoid stack overflow (#15363) (fd2df5e)
- Updated programming guide to align configuration orders with the example codes (#13182) (fd2df5e)
- Fixed the issue of UART wake-up failure caused by an incorrect UART wake-up threshold on the ESP32-C61 (9c42149)
- Resolved ESP32-P4 UART initialization get stuck issue when monitor through USB Serial JTAG port (547fa88)
- Allowed TX and RX configure to the same pin in uart_set_pin (#14787) (78a6905)
- Fixed potential UART_SELECT_READ_NOTIF race condition (78a6905)
- Changed UART VFS read() function to directly return with the bytes available, instead of waiting for more bytes to reach the requested size (50aeec2)
- Changed UART VFS read() to treat end-of-line characters as regular bytes, with no early return (#14155) (50aeec2)
USB
- Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (#15932, #15912) (a652a84)
- Changed USB CDC VFS read() function to directly return with the bytes available, instead of waiting for more bytes to reach the requested size when in non blocking mode (5a0e161)
- Added support for OTG1.1 PHY on ESP32-P4 (70ead76)
- Added select functionality to the USB CDC driver (1fa268c)
- Fix tusb_midi example stack overflow (#14825) (4b79cb9)
USB Device
- Updated USB MSC Device documentation with performance optimization results for ESP32-S3, ESP32-P4, and ESP32-S2. (ea57c1b)
- Fixed incorrect pull-up resistor settings on the USB PHY that prevented the device from being detected by the host. (409af75)
USB Host
- Allocate DMA capable memory to external ram on ESP32-P4 (ac12d56)
- Fixed heap corruption (#15815) (4b15ef7)
- Added support for Low-Speed devices connected through Full-Speed HUB (#15683) (0ead362)
- Fixed possible deadlock when closing a device that was not previously opened (a3864c0)
- Added support for multiple MSC devices in the USB MSC Host example. (9f421f5)
- Fixed host channel number calculation for ESP32-S3, ESP32-P4, and ESP32-S2. (d53b0a9)
- Added support for Low-speed devices, connected via external Hubs to Full-speed peripheral (d7222cc)
- Fixed panic on Full Speed periodic endpoints on ESP32-P4 (dfcc0b2)
- Fix reaction on High-Speed NYET packet (f029ad2)
- Fixed spelling in USB HID Host example (#14738) (e613fcd)
- Fixed spelling in USB Host lib example (#14858) (5532fa8)
- Fixed return value in the memory allocation failure case within `usb_host_client_register() #14859) (1e7098f)
- Added support for 2 USB instances on ESP32-P4 (1805efb)
USB Serial JTAG
- Fixed wrong return value from
usb_serial_jtag_write_bytes
when encounter invalid input parameters (#15620) (e8c48db) - Add missing break statement (#15499) (f884c4a)
Power Management
- deepsleep current decrease about 7uA for C61 (17uA -> 10uA) (10a690f)
- Fixed the issue that TBTT interrupt timing error when BLE low power clock source is configured to use main xtal on ESP32-C6 v0.1 and later version (c508207)
- Fixed possible assert in
vTaskStepTick
after turning on auto light sleep (fe3da71) - Optimized IRAM memory usage in the esp32c2 power management module (186f2a8)
- Fixed the issue of modem wakeup req always high caused by pmu min slp cycle update (b93ac47)
- Added runtime sleep clock control for peripherals to be used/kept during light sleep (921cfa0)
- Fixed the issue of WiFi BB FSM hang caused by modem system clock synchronization (05d7a4c)
- Fixed the issue of mmu table content loss due to default sd signal for esp32c61 (06aea27)
- Fixed wifi power save beacon timeout issue and optimize phy sleep for esp32c5 (7675456)
- Fixed the issue of abnormal leakage current caused by floating and isolation of the Flash or PSRAM CS pin during sleep (9c42149)
- Fixed the issue of cpu execution exception caused by floating and isolation of the Flash and PSRAM CS pin during sleep (9c42149)
- Fixed esp32p4 USB OTG phy suspend failure causing high power consumption in light sleep. (01b1191)
- Fixed the crash of esp_pm auto-lightsleep when
PM_TRACE
is enabled. (35cdecb) - Fixed the JTAG IO current leakage issue when esp32p4 turns off RTC_PERIPH power domain in deepsleep (bba3063)
- Fixed bbpll cali fail bug under low temp on ESP32-H2. (2b6894e)
- 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 (b4e28be)
- Fixed a deadlock that occurred when a high-priority task and a low-priority task changed PM mode at the same time (c5ada2e)
- Supported to query PHY RF used time. (c8b6723)
- Fixed the issue of wifi rx packet loss when switchng soc root clock source (1f47975)
- Fixed the issue of mmu table content loss due to default sd signal (1f47975)
- Fixed CPU switch fail due to bbpll cali fail bug under low temp on ESP32-H2 (63fdde6)
- Improved esp_timer timing accuracy after light sleep is rejected (ae4c446)
Security
- Fix secure OTA without secure boot issue for MMU page size configurable SoCs (#15936) (29520e9)
- Fix secure boot (ECDSA) build failure for ESP32-C6 target (#15856) (f7398c5)
- Fixed a bug that resulted in a boot loop when a memory protection fault occurred on ESP32-S2 (#15359) (e81a928)
- Fixed Memory protection interrupt check for ESP32S2 (PERI1 bus) (#15359) (af0f270)
- Added support for ESP-TEE (Trusted Execution Environment) on ESP32-C6 (9ee8daf)
ESP-TLS
- Fixes IPv6 connection failure when target is set to Linux(#15812) (fd4f74a)
- Added option to set TLS handshake timeout. (877057d)
- Enabled secure element support for all chips. (#14785) (43a7248)
- Add support for async API for esp_tls_server_session_create (#14493) (030c995)
- Added support for TLS-PSK authentication for servers (36d5d8c)
Flash Encryption
- Support XTS-AES pseudo round function on ESP32H2 chip version v1.2 (a45b6e7)
MbedTLS
- Adds support for dynamic buffer for TLS 1.3 handshake. (#15448) (ff55542)
- Fixes certificate verification errors affecting TLS 1.3 connections and digital signing peripheral.(#14907) (11890df)
- Update mbedTLS version to 3.6.3. (21f59bd)
- If using MbedTLS for server certificate verification, it is mandatory to call
mbedtls_ssl_set_hostname
before the connection begins. No change is required if the application usesesp-tls
layer. (21f59bd) - Make mbedtls SHA1 software support configurable (8e4cbdf)
- Updated the default root certificate bundle (cacrt_all.pem - 25 Feb 2025) (2c68d2d)
- Updated the deprecated root certificate bundle (cacrt_deprecated.pem - 25 Feb 2025) (2c68d2d)
- Support AES pseudo round function on ESP32H2 chip version v1.2 (a45b6e7)
- Fix external memory corruption caused due to unaligned length cache sync of external memory buffers (f6591ab)
Storage
- Fixed linking issues related to
chmod
(#14174) (3765290) - Added support for std::filesystem (#13736) (3765290)
FATFS
- Changed
VolToPart
variable to be non-const to allow for run-time modification (#14148) (93ff1ae) - Improved assert check semantics (#15247) (f945dae)
- Added options
CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT
andCONFIG_FATFS_DONT_TRUST_LAST_ALLOC
to control how free space is calculated for a FATFS volume (#15241) (58fbcfb) - Make the diskio functions static (#15248) (b0aac12)
LittleFS
NVS
- Fixed erasing of old value if the new value has different type for blobs (#15559) (0b8f661)
- Updated nvs storage examples and addded nvs console example to 'examples/storage/nvs' (d69378c)
- Added support for read-only NVS partitions smaller than 0x3000 (no empty pages, have to be flagged as "readonly" in the partition table CSV file) (#15317) (3ab1dda)
- Fixed
nvs_tool.py
to properly format JSON output. Additionally, cleaned up text minimal format output (#15274) (18f514a) - Added support for reading encrypted NVS partitions by the bootloader (b5ee028)
- Fix NVS partition being incorrectly marked as encrypted by the build system (b5ee028)
- Added limited support of nvs for bootloader (8255ba2)
VFS
- Removed leakage of std namespace from header file (#15656) (decbd36)
- Fixed incorrect level of log messages (#14327) (b5ac4fb)
- Fix incorrect open and close behavior for
/dev/console
(85dd8c0)
System Hardware
- only detect VDD digital for ESP32-C5 / C61 (10a690f)
- not support C5_ECO0 & C61_ECO0 / C61_ECO1 (10a690f)
- Fixed compile error on esp_cpu_int_has_handler on ESP32-P4 (GitHub PR) (#15942 #15941) (27b8513)
- Improved voltage convergence of C5 chips for better stability (2759356)
- Fixed the issue that xtal32k may fail during startup (37c3ed6)
- Fixed esp32s3 possible cache_error triggered by another core accessing flash in esp_restart (aa2f638)
- Switched to flashing with stub with ESP32-C3 when USB Serial/JTAG mode is used (7317d96)
- Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (50e3a2b)
- Supported ESP32-H2 revision v1.2 (9b876d9)
- Supported ESP32-C2 chip rev2.0 (93aea4f)
- Internal RC32K clock is unstable at extreme temperatures and is not recommended for use. 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/P4, this option is completely removed. (8771607)
- Fixed the issue that after OTA application changes the slow clock source, the modem module not work during lightsleep on esp32c6/esp32h2/eps32c5/esp32c61. (f5ae64b)
- Fixed a possible crash on esp_restart if PSRAM is used (56db9a2)
- 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 esp32c6/esp32h2/esp32p4. (cceadc4)
BOD
- Add callback function for brownout detector (#15661) (ff16527)
- Add RTC battery backup support on ESP32-H2 (d816622)
- Remove config on P4 v0.x, use a fixed value around 2.52v instead (0546805)
Cache
- Support cache build for pure RAM app (852466e)
- Fixed L1-to-L2 Cache auto-writeback stuck issue when L2 Cache is suspended (e.g. when in DFS) (da31611)
- Fixed
Cache_Count_Flash_Pages
API wrong couting issue (#15262) (d6aff6d)
Efuse
- Supported eFuses for ESP32-C5 ECO2 (v1.0) (01e9f8f)
- Added efuse ADC calibration fields for ESP32-P4 (ce60853)
MMU
- Fixed API thread-safety in
esp_mmu_map.h
(#15564) (b45b29a) - Fixed
esp_mmu_vaddr_to_paddr
cannot figure out virtual addresses from PSRAM issue on ESP32P4 (f8ff9e4) - Supported call esp_mmu_paddr_find_caps with any physical address offsets (#14988) (6616a75)
MSPI
- Improved the selection of timing tuning points when the last few tuning points succeed consecutively (5423825)
- Improved the PSRAM timing tuning configurations on ESP32P4 (5423825)
- Fixed CPU and MSPI frequency mismatch issue leading to watchdog reset during sleep flow on ESP32P4 (19bff0e)
- Fixed startup stuck under Flash QIO and XIP_PSRAM 200MHz condition (#14979) (1ddf005)
- Supported 120MHz Flash frequency timing tuning on ESP32P4 (4cb1820)
PSRAM
- Supported configuring PSRAM to 80 MHz on ESP32P4 (b4abab3)
- Supported UnilC Octal PSRAM on ESP32S3 (847ac1a)
- Fixed external RAM .bss and .noinit section vaddr calculations (#15513) (b0f8342)
- Fix incorrect calculation of used XIP PSRAM pages that lead to wastage of some physical pages of PSRAM thus leading to increase in available heap. (37a4de8)
- Supported Quad PSRAM Error Correcting Code (ECC) feature on ESP32C61 and ESP32C5 (cc18192)
- Fixed bad timing when reading mode registers on Octal and Hex PSRAMs (e02cde8)
- Fixed ESP32 PICO-V3 psram enabled but not ignored issue (#14970) (33c2637)
TCP Transport
- add API to configure SSL cipher suites (#15868) (081de6d)
- Added an API to configure the addr family (aad91f9)
- Fixed API to correctly handle error conditions when the server sends data and an error simultaneously. (#14673) (fcd7060)
- Added interface to get underlying socket from transport (espressif/esp-mqtt#282, espressif/esp-protocols#636) (2deeaec)
- Fixed partial reads of Websocket header (#14704, #14706) (cbbb85f)
Toolchain
- Upgraded openocd version to v0.12.0-esp32-20250422 (dc91d32)
- Upgraded Clang toolchain version to esp-19.1.2_20250312(#15731) (0181d1b)
- Added standalone Clang libraries distribution as a tool (0181d1b)
- Upgraded gdb version to 16.2_20250324 (4bfb897)
- Add support to link with picolibc (enable with "CONFIG_LIBC_PICOLIBC=y") (f297a9d)
- Upgraded toolchain version to esp-14.2.0_20241119 (91858ef)
Tools
- Added ability to read tool version from the file specified with
tool_info_file
keyword intools.json
(0181d1b) - Fixed processing of packages with dots in their names in Python dependency checks (0b56c58)
- Added input validation of optional install features (cf5989c)
- Fixed deprecation warnings when using
extractall()
on Python 3.12 and newer (b4be4c2) - Deactivated the previously set ESP-IDF environment every time the export script runs (on Unix systems only) (cd1c5aa)
- Added a check before clearing IDF_PYTHON_ENV_PATH to prevent unintentional data loss when incorrectly set. (7125ee5)
- Docs: Added missing
python-pip
install dependency for ArchLinux (#15527) (2433000) - Included basic system information in the diagnostic report (57b2ef8)
- Allowed passing purge file as an argument to idf-diag (395984e)
- Avoided generating intermediate placements without sections in ldgen (814c5f1)
- Added BitScrambler assembler and related unit tests (c8d4e1b)
- Enforced
utf-8
encoding with Pythonopen()
function. (16ba8b7) - Added idf_diag.py diagnostic tool that collects information about ESP-IDF and failed build to assist in investigating reported issues (9da2e3a)
- Improved suggestion for fixing missing header file (5603258)
- Added detected
ESP_PYTHON
for executingactivate.py
inexport.fish
(#15058) (a16f359) - Fixed a bug so creating a project or a component with idf.py preserves the file mode of ESP-IDF files (757d74a)
- Enabled enforcement of the
IDF_PATH
environment variable for path detection in theexport.sh
script by settingIDF_PATH_FORCE=1
. (475e4b1) - Added DFU support for ESP32-P4 (a57e4d7)
- idf_tools.py: pip and setuptools are upgraded separately so the setuptools version dependency would be handled by the upgraded pip (82c26fd)
- Respected the
IDF_PYTHON_ENV_PATH
value in the export scripts (#15006) (93a604d) - Fixed a typo in the QEMU documentation (#14966) (e61653e)
- Added an informational message to install/export scripts about the current IDF_PATH being used or set (a2c399c)
- Added information about the
idf_version.txt
file storing the ESP-IDF version in each Python environment directory (4110d14) - Documented the need to set the
ESP_IDF_VERSION
environment variable while performing custom installation (4110d14) - Added autocomplete for @-arguments of idf.py with file names (cef2624)
- IDF Monitor: Enabled decoding addresses and panic outside of the main app (e.g. bootloader, ULP, TEE) (6495a83)
- Added basic description about SBOM (Software Bill of Materials) for ESP-IDF projects (7fcbdb9)
- Python 3.8 is no longer supported by the community, therefore, ESP-IDF installations will require Python 3.9 or newer versions (30b13b1)
- Displayed additional details if imports in idf.py are unsuccessful (5bae0b9)
- Used the
--unify
option with esp-idf-size to combine sizes for same output sections, such as .bss (cf087cb) - Guides for project configuration and component configuration are added, together with an overview of various files participating in the configuration of ESP-IDF project (0650832)
- Improved activate.py error messages and added information on enabling detailed debug option. (72308ca)
WI-FI
- Fixed esp32c2 and esp32s2 TCP TX throughput shake issue (121db0d)
- Added support for the ESP32C5 revision v0.2. (7141b95)
- Returned more information in ESPNOW send callback (2b390b2)
- Added TX callback function for ieee80211_tx (#13319) (2b390b2)
- Changed espnow sending callback function parameter
mac_addr
toesp_now_send_info_t
. (2b390b2) - Improve and enable bss max idle support for all chips (683fd03)
- Separate the LR bit in PHY mode for station and SoftAP (#9978) (488e1f8)
- Added support for SoftAP SAE extended key (80f172b)
- Supported service specific info in NAN service discovery frames (#12473, #13366) (4591658)
- Added timer to send wake null after STA received association response (a3bd31f)
- Added support for sending action frames on the target channel and remain on target channel for required duration. (d826655)
- Added new API to get mac clock time (#15348) (14b9676)
- Modified the description of function 'esp_wifi_set_band' (865adce)
- Enabled WiFi Aware (NAN) on esp32c5 & esp32c61 (2e5e9fc)
- Added the missing brackets for the C++ guards for a few header files. (#14991) (f99b965)
- Fixed the mesh connection failure in WPA3 mode after erasing flash (#14095) (f2ae681)
- Added support for the ESP32-C61 revision v0.2. (d00ad48)
- Removed support for the ESP32-C61 revision v0.1. (d00ad48)
- Added support for 2040 coexist for SoftAP (cc8bef3)
- Added new event 'WIFI_EVENT_AP_WRONG_PASSWORD' in softAP to indicate stations trying to connect with wrong password. Applicable for authentication modes WPA-PSK, WPA2-PSK and WPA3-PSK(SAE). (fae82cf)
- expended bit width of channel in rxctrl for ESP32C5/ESP32C61 (ea55be3)
- Added support for Wi-Fi API and features on targets with no Wi-Fi capabilities by esp-extconn (d30af2f)
- prevented compilation of Wi-Fi-related components when Wi-Fi is not supported (09635fd)
- Fixed the STA TBTT interval update error when AP's beacon interval changed (#14720) (6fdd380)
- Fixed bandwidth value is always 0 in esp_wfi_sta_get_ap_info() (5c3cb06)
- Modify the type of "bandwidth" and comment in wifi_ap_record_t. (5c3cb06)
- Removed support for the ESP32-C5 revision v0.0. (653ce93)
Examples
- Fixed the delete queue error in ESP-NOW example (#15383) (0902e70)
- Added GPIO output set command for cert test. (3f29f79)
- Fixed some issues in roaming app (fbe9fcd)
- Fixed the issue of Blufi connecting to WPA or WEP routers failing. (e75c170)
MAC
- Fixed STA cannot send keep alive when receive UDP packets (ad5d362)
- Fixed STA BSS max idle period always use default value (ad5d362)
- Fixed sleep without sending sleep null when enable BSS max idle (ad5d362)
- Fixed channel TX power limitation does not take effect when connected AP switch channel (ad5d362)
- Added FTM support for ESP32-C5 v1.0 (#15909) (ce340fc)
- Fixed locking in incorrect state when stop_scan is called after wifi_connect (ce340fc)
- Fixed TX power not update if country changes when enable multiple PHY init data bin (ce340fc)
- Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (ce340fc)
- Fixed the issue that rx bcn failed when sta off channel under modem state (ce340fc)
- Fixed some external coexist issues. (7aabeae)
- Fixed the issue that cannot enable MCS8/9 when set he_mcs9_enabled (0f6e067)
- Fixed phy data partition restoring default fails issue(#14698) (59cd073)
- Fixed an issue to prevent writing configuration to NVS when the station configuration remains unchanged. (5571201)
- Supported Wi-Fi beacon sample feature to optimize power consumption. (323119a)
- Supported Beacon Drop feature to optimize power consumption in dirty environment. (323119a)
- Fixed the issue that sta rx packet failed under modem state. (b93ac47)
- Fixed negotiated bandwidth not correct (8a98144)
- Added band check when config SoftAP (8a98144)
- Fixed the noise floor error on ESP32C5 (#15594) (488e1f8)
- Fixed occasional dropping of SA Query responses by SoftAP (13953d5)
- Added DS parameter in probe requests from STA (893a02e)
- Fixed the WEP shared authentication association timeout issue. (eaa77b6)
- Fixed TWT post just one event for multiple flow (3547cef)
- Fixed the issue of disconnection from the AP due to ERSU compatibility (1c5983c)
- Fixed second channel is always below in ht40 on 5G band (cfed129)
- Fixed issue that esp_wifi_set_tx_done_cb() should not process frames sent using esp_now_send(). (7a5684d)
- Modified authmode to sta for sta connect event (95ce1c0)
- Fixed issue of increased stack usage when 'failure_retry_cnt' is set in station configuration and Wi-Fi driver internally re-tries connection attempts (6f0dad2)
- Fixed the issue of failing to connect to a shared WEP AP. (47cc1b7)
- Fixed esp32c6 watchdog issue when BSS max idle period is 1 (9ede4c2)
- Add support for transition disable for softap (cc8bef3)
- Fixed incorrect ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME (30c3427)
- Updated coexistence power management period when Wi-Fi PS type being changed (30c3427)
- Fixed for crash while receiving deauth in esp32c2 v2.0 (7a305c0)
- Changed SoftAP default dtim_period to 1 (2414b28)
- Added a parameter to enable or disable send QoS NULL to keep live during TWT (0c07ee6)
- Fixed the issue that STA did not receive Probe Responses in some coexistence scenarios when wifi band is 5G. (5667216)
- Fixed the issue that STA connects twice simultaneously. (5667216)
- Fixed STA failing to sleep when connecting to connected AP. (5667216)
- Fixed the issue that association failed In WPA3 encryption mode. (5667216)
Mesh
- Updated the description for esp_mesh_send() return value (#14440) (14b9676)
- Enlarged the mesh TX task stack (c4bde5d)
Supplicant
- Cleared SAE-PK capability in Assoc Request when not enabled at STA. (f97fd74)
- Added support for WPA-Enterprise in Station mode (ce340fc)
- Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (8a54378)
- Ensured disconnection with previously connected AP when initiating WPS. (8a54378)
- Fixed DPP state machine related issues(#10615) (b737136)
- Improved handling of group parameter A in H2E (#15691, #15692) (9c75d79)
- Increased WPS message timeouts to address interoperability issues. (044de0b)
- Added domain name validation support for EAP connection. (6b5ac56)
- Fixed send_confirm value for SAE confirm according to specification. (6a633f3)
- Fixed crash when set config is called with changed password. (#15584) (fb75c85)
- Added support for Opportunistic Key Caching for Wi-Fi Enterprise Connection (7ff63ac)
- Resolved WPS connectivity issue that caused failures when the station was already connected (3d1ea22)
- Added optimized PSK implementation, closed #15072 (4cdd508)
- Fixed stack corruption in Wi-Fi wpa_supplicant's tasks(#15370) (403cc24)
- Fixed memory leak occurring in SAE PK connection. (7f1e4eb)
- Reduced WPS scan frequency to make it easier for users to enter the PIN on the AP. (7bb6c67)
- Fixed issues reported by the static analyzer on GitHub (#15097, #15098, #15099). (7a94d45)
- Fixed some issues found through static analyzers (c15e6e1)
- Added some implementation changes in roaming. (950da10)
- Enabled EAP workarounds by default (c075554)
- Fixed issue observed during static code analysis (afeefc9)
- Fixed assoc reject after WPS session (b9253b4)
Vendor
- Added more check when receiving ESP-NOW data (ad5d362)
- Fixed the issue that STA connection information loss LR info on ESP32C5 v1.0 (933a432)
- Fixed LR issues that LR info does not exist in connect information (0f6e067)
- Changed the max data length to 1470 bytes for ESP-NOW v2.0 (a3bd31f)
- Fixed the scan information error in LR only mode (14b9676)
- Added OUI check for ESPNOW(#9577) (1f46216)
- Added new APIs to set/get user OUI for ESPNOW (1f46216)
- supported ieee80211_tx using 11ax or 11ac rates to send (2cbb9f2)
- The AES IV can be random value for ESPTouch v2 (a71eb45)