Documentation for IDF v5.2-rc1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.2-rc1/
ESP-IDF v5.2-rc1 is a preview release for ESP-IDF v5.2.
Obtaining v5.2-rc1
For full installation instructions, see the ESP-IDF Programming Guide.
The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:
Using git
To get this release, use the following commands:
git clone -b v5.2-rc1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.2-rc1
cd esp-idf-v5.2-rc1/
This is the recommended way of obtaining v5.2-rc1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.2-rc1.zip
archive. It includes .git
directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.
This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.2-rc1/esp-idf-v5.2-rc1.zip
Major changes
This is a list of changes since IDF v5.1.
Major Features
- Supported ESP32-C3 (v1.1) (6481080)
- Added external coexist support for esp32h2/esp32c6 as a follower (8d48ff5)
- Added support of light sleep for ieee802.15.4 on chip esp32c6 (f64a6bc)
- Supported ESP32-C6 PMP and PMA sleep retention (d899199)
- ADC: Supported ADC calibration on ESP32-H2 (4331ae7)
- ADC: Supported ADC calibration V2 on ESP32-C6 (028c7be)
- I2C: Added new I2C Slave driver (fec9a11)
- I2C: Added new I2C master driver (96bf37a)
- UART: Added a new LP_UART port for UART driver on ESP32C6 (03d4fa2)
- MCPWM: Added FOC SVPWM open loop example (2975cc5)
- PSRAM: Supported 32MB Octal PSRAM (APS256XXN) on ESP32S3 (e3fea3a)
- USB Host: Restrict ESP32-S2 USB OTG AHB errata workaround to only ESP32-S2 ECO0 chips. Other chips and ECOs will no longer be affected by USB OTG DMA usage. (4fc2e5c)
- NVS Flash: Added support for HMAC peripheral-based NVS encryption scheme (d00e7b5)
- SPI Flash: Added new flash GD25QL255E suppport (a754efc)
- TWAI: Added new TWAI driver APIs to support multiple controller instances (#11383) (d4dbacf)
- Added USB-NCM example that demonstrates USB to WiFi bridge (9f9bd8c)
- FreeRTOS: Upgraded IDF FreeRTOS kernel to v10.5.1 LTS. (b0124b9)
Major Bug Fixes
- Efuse: Fixed the burning issue when RS coding data is left at zero. (#12489) (172b7e4)
- Spi Flash: Fixed concurrency issue when concurrently calling esp_flash APIs under XIP_PSRAM or Auto-suspend condition (ad0345a)
Breaking Changes
- Python 3.7 is no longer supported by the community, therefore, ESP-IDF installations will require Python 3.8 or newer versions (4bbc57c)
- SPI Flash: Now HPM-DC (Quad Flash > 80MHz on some flash models) is no longer enabled by default because it needs bootloader support. Without this support, some flash chips are not able to run > 80 MHz. Read Programming guide
SPI Flash API > Optional Features for Flash > High Performance Mode
to know how to enable this feature on new projects or re-enable it on existing projects. (d2d75ef) - Modified the 11AX
esp_wifi_rxctrl_t
membernoise_floor
fromunsigned 8
tosigned 8
(42db3c8) - Added more descriptive reason codes upon station disconnect due to no AP found, original
WIFI_REASON_NO_AP_FOUND
now will beWIFI_REASON_NO_AP_FOUND
,WIFI_REASON_NO_AP_FOUND_W_COMPATIBLE_SECURITY
,WIFI_REASON_NO_AP_FOUND_IN_AUTHMODE_THRESHOLD
andWIFI_REASON_NO_AP_FOUND_IN_RSSI_THRESHOLD
(2fa1e2b) - Wi-Fi/Vendor: esp_now_send() will return ESP_ERR_ESPNOW_CHAN if current channel doesn't match ESP-NOW channel (40f7ada)
Known Issues
- Occasional assertion of get_rxed_buffer() occurs when the BLE host task is blocked for a long time on ESP32-C6 and ESP32-H2.
Changelog
802.15.4
802.15.4 MAC
Added
- Added debug feature for 802.15.4 driver (685dff0)
- Added support of light sleep for ieee802.15.4 on chip esp32c6 (f64a6bc)
- Open source driver code (5d222db)
- Introduced the feature of received done handler (0e03d10)
- Supported IEEE802.15.4 MAC deinit support (9d2d1e2)
- Added packets statistic of 802.15.4 MAC (3139ae0)
Changed
- Match ESP32-C6/ESP32-H2 max txpower value with datasheet (80e1c5a)
- Updated coex_arb_delay reg (54e45c7)
Fixed
- Fixed multipan api errorg (54e45c7)
- Fixed a typo in set_channel API (8c5a395)
- Fixed the issue of not receiving packets when RSSI is positive in ESP32-H2 (be39aab)
Thread
Added
- Added deep sleep support for SED (a25673e)
- Supported time synchronization feature (f6c76aa)
- Added support to allocate message pool from PSRAM (a9349f4)
- Added support for border router deinit. (c1e464a)
- Added configuration for setting mesh local prefix (32ad8f1)
- Added the default DNS server address configuration (bb12cda)
- Supported border router to communicate with the SSED (8fd6e73)
- Support border router to response the link metrics registration (8fd6e73)
- Added openthread border agent id support (42e18dd)
- Added event post for OpenThread role changed (28a6aeb)
- Introduced the auto start API (72972db)
- Added netif check when calling udp api (3139ae0)
- Supported rcp re-initialization. (3139ae0)
- Supported OTBR's discovery delegate be able to reply selfhosted service (fce25bc)
- Supported setting netif_idx of udp pcb to no_index when binding UDP PCB to netif (3139ae0)
Changed
- Host connection logic refactor (fbf8d06)
- Added rcp size optimization configuration (a5caa1c)
- Optimized Thread Sleepy device power consumption by disabling ND6 timer (7af7723)
- Updated OpenThread upstream to 41ef807 (3139ae0)
- Set raw pcb ttl value to 255 for icmpv6 message of border router (ffe6458)
- Updated SRP server update response error code (3139ae0)
Fixed
- Fixed removing client service failure in some cases (c1e464a)
- Fixed curl failure in NAT64 (c1e464a)
- Fixed multi connection issue in NAT64 (c1e464a)
- Fixed openthread settings get next empty index (c135efe)
- Fixed memory leak for handling ICMP6 MLQ packets (871943a)
- Fixed set mcast forwarding enable (871943a)
- Fixed an out-of-range memory issue when calling NVS API (453dc6a)
- Fixed dead lock issue related to ot and lwip (acbdbbb)
- Fixed assert when parsing security key failed (523e259)
- Fixed frame counter setting bugs when re-transmition (38b4952)
- Fixed Call sleep api only in native radio (8019d6d)
- Fixed eventfd missing issue when SPI interface is enabled (3c43fb0)
- Fixed frequent tx timeout && RCP recover issue when using SPI radio (3139ae0)
- Fixed ot netif destroy netif order issue (3139ae0)
- Fixed checking the lifetime value before calling sys_timeout (3139ae0)
- Fixed filter the zero-length prefix when adding router table (3139ae0)
- Moved router entry pointer in timeout handler (3139ae0)
- Added parsing when txt entry key pointer is NULL (3139ae0)
Zigbee
Changed
- Updated the zigbee example to adapt the newest esp zigbee and zboss lib version (a287a0b)
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Supported IRAM release in esp_bt_mem_release for ESP32-C2. (59417a4)
- Supported clear BLE legacy advertising on ESP32 (7f8fe95)
- Supported clear BLE legacy advertising on ESP32-C3 and ESP32-S3. (7f8fe95)
- Supported ESP32-C3(v1.1) BLE (6481080)
- Supported extra link retention used for sleep on ESP32-C6, ESP32-H2 (d918b52)
- Added DTM function on ESP32-C6 and ESP32-H2. (865d29e)
- Added support for using the RPA to remove the device from the whitelist after the IRK is deleted on ESP32-C2, ESP32-C6 and ESP32-H2. (865d29e)
- Added config to enable HW recorrect eco on ESP32-C3 and ESP32-S3 (daf1fc7)
- Added support for using RPA to remove devices from the resolution list on ESP32-C2, ESP32-C6 and ESP32-H2. (f19f1db)
- Added modem reset when initializing BLE on ESP32-C2, ESP32-C6 and ESP32-H2. (83943ed)
- Added wake up overhead change on ESP32-C6 and ESP32-H2. (a1c0d9c)
- Added API to enable/disable pll track on ESP32 (4f7e7ce)
- Added BLE mesh ADV types for exception list on ESP32-C3 and ESP32-S3 (98d9d14)
- Added BLE mesh ADV types for exception list on ESP32 (6daba77)
- Added the vendor hci command for adv report flow control on ESP32-C2. (8904d6b)
- Added the vendor hci command for adv report flow control on ESP32-C6 and ESP32-H2. (db51cee)
- Added VS commands to support mesh duplicate list for ESP32-C6, ESP32-H2 (a7e5d49)
Changed
- Improved scan performance when scan and sync coexist on ESP32-C3 and ESP32-S3 (5a603a6)
- Modified mesh proxy solic uuid to 0x18590303 on ESP32 (7f8fe95)
- Modified mesh proxy solic uuid to 0x18590303 on ESP32-C3 and ESP32-S3 (daf1fc7)
- Improved the coexistence performance of ADV in conn throughput on ESP32-C6 and ESP32-H2. (ca78f8b)
- Moved PHY enable from BT controller initialization to enable on ESP32-C3 and ESP32-S3. (8e5aebe)
- Changed the power level for ESP32-C6. (aa6a8b7)
Fixed
- Fixed power state setting when entering modem sleep on ESP32-C3 and ESP32-S3 (7f8fe95)
- Fixed adv chain pdu tx stopping issue on ESP32C6 and ESP32H2. (3d37631)
- Fixed scan not stopping after scan window expires on ESP32C2. (3d37631)
- Fixed peripheral latency without ACL data to send on ESP32C6, ESP32H2 and ESP32C2. (3d37631)
- Fixed BLE bugs in setting advertising data and scan response data on ESP32-C3 and ESP32-S3. (0f84e7d)
- Fixed mempool get cause crash issue on ESP32-C6, ESP32-H2 and ESP32-C2. (865d29e)
- Fixed ble occasional connection timeout issue on ESP32-H2. (865d29e)
- Fixed occasional abnormal TX behavior issue on ESP32-C6. (865d29e)
- Fixed msys mempool assert issue on ESP32C6 and ESP32-H2. (865d29e)
- Fixed crash issue of setting scan response data after enabling nonscannable legacy adv on ESP32-C6 and ESP32-H2. (865d29e)
- Fixed DTM payload length cannot be 0 on ESP32-C3 and ESP32-S3 (daf1fc7)
- Reported the number of packets sent on the TX end on ESP32-C3 and ESP32-S3 (daf1fc7)
- Fixed extended advertising address setting after advertising restart on ESP32-C3 and ESP32-S3. (492c819)
- Fixed resolvable private address renew after timeout on ESP32-C3 and ESP32-S3. (2c51e10)
- Fixed address resolution for directed advertising when scanning on ESP32-C3 and ESP32-S3. (2c51e10)
- Fixed crash issue when memory is insufficient on ESP32-C2. (ca78f8b)
- Fixed connection control process failure due to no memory on ESP32C6 and ESP32-H2. (a1c0d9c)
- Fixed BLE not entering light sleep after deinit mesh issue on ESP32-C6 and ESP32-H2. (a1c0d9c)
- Fixed BLE slave latency update failure issue on ESP32-C6 and ESP32-H2. (a1c0d9c)
- Fixed BLE crash issue when out of memory on ESP32-C6 and ESP32-H2. (a1c0d9c)
- Fixed connect parameter update issue on ESP32-C2. (8904d6b)
- Fixed issues of wrong data packet length when there is a chain mbuf on ESP32-C2, ESP32-C6 and ESP32-H2. (5663531)
- Fixed the issue of establishment failure when creating synchronization with periodic advertiser on ESP32-C2. (b39180d)
- Fixed the issue of packaging SYNC_IND PDU when updating channel map on ESP32-C2. (b39180d)
- Fixed instant setting for BLE LLC procedures with instants on ESP32. (70071a3)
- Fixed advertising random delay when advertising interval is less than 20ms on ESP32. (70071a3)
- Fixed the heap corruption issue when controller deinit on ESP32C6 and ESP32H2. (db51cee)
- Fixed advertising random delay when advertising interval is less than 20ms on ESP32-C3 and ESP32-S3 (ad77064)
- Fixed advertising random address setting when owner address type is public on ESP32-C3 and ESP32-S3 (ad77064)
- Fixed compilation issue when disabling duplicate config option in kconfig on ESP32-C6 and ESP32-H2. (b439147)
- Fixed the crash issue when BLE MESH pairing on ESP32C6. (aa6a8b7)
- Fixed scan failure issue on ESP32-C6. (aa6a8b7)
- Fixed crash issue in light sleep on ESP32-C6. (aa6a8b7)
- Added comments to the header files for ESP32-C3 and ESP32-S3 to support CI (5d98218)
- Fixed memory leak when setting advertising data on ESP32. (3d23b3d)
- Fixed BLE disconnection delay on peripheral when slave latency is not zero on ESP32. (b9e89da)
- Fixed BLE LLCP initialization for central and peripheral on ESP32. (b9e89da)
- Fixed sent command status event twice for disconnect command on ESP32. (b9e89da)
- Fixed crash when controller initialization fails due to insufficient memory on ESP32-C3 and ESP32-S3. (9da31ea)
- Fixed the issue that the slave reports a wrong address when the address resolution is disabled on ESP32-C2. (f5d5196)
- Fixed the problem of disconnection in high and low-temperature environments on ESP32-C2. (4f9f50c)
- Fixed BLE connection terminated due to MIC failure during encryption procedure on ESP32-C3 and ESP32-S3. (9652d8e)
- Fixed BLE connection failed to be established when disabled 5.0 feature on ESP32-C3 and ESP32-S3 (3aa1ac9)
- Fixed BLE disconnection failure on ESP32 (968ef8c)
- Fixed the occasional mic error caused by the wrong tx count on ESP32-C6 and ESP32-H2. (d6b7fc9)
- Fixed cache error occured in ble scan on ESP32-C6 and ESP32-H2, caused by global constants accessed in ISR are put in flash.rodata, and also caused by a lack of compiler option "-fno-tree-switch-conversion". (d6b7fc9)
- Disable controller 5.0 feature bits if host 5.0 feature is not enabled on ESP32C3 and ESP32S3 (a2b2cda)
- Fixed disconnection due to consecutive CRC errors in first 6 intervals on ESP32 (89bf31f)
- Fixed non-connectable and non-scannable directed advertising on ESP32-C3 and ESP32-S3. (e58e271)
- Fixed duplicate scan refresh cycle is not accurate after restarting scan on ESP32 (f5b1268)
- Controller: Fixed the occasional issue of being unable to receive packets on ESP32-C2. (f0e1a1f)
- Controller: Fixed extended adv tx issue when connection and adv coexist on ESP32-C2. (f0e1a1f)
- Controller: Fixed BLE occasional connection timeout after connection params update process on ESP32-C6, ESP32-H2 and ESP32-C2. (f0e1a1f)
- Controller: Fixed BLE occasional wakeup failure from lightsleep when restarting scan and updating connection params on ESP32-C6 and ESP32-H2. (f0e1a1f)
- Controller: Fixed assert when BLE disconnect due to instant passed on ESP32-C3 and ESP32-S3. (56563f7)
- Controller: Fixed add RPA to white list on ESP32-C3 and ESP32-S3. (56563f7)
- Controller: Fixed AES encryption for RPA resolution on ESP32-C3 and ESP32-S3. (56563f7)
- Controller: Fixed assert when BLE disconnect due to instant passed on ESP32. (56563f7)
- Controller: Fixed scan event timeout on ESP32. (56563f7)
- Controller: Fixed random address setting when scanning on ESP32. (56563f7)
- Controller: Fixed BLE recorrect enable bug on ESP32-C3 and ESP32-S3 (086294e)
- Controller: Fixed BLE bb isr is enabled by default on ESP32-C3 and ESP32-S3 (086294e)
- Controller: Fixed add(remove) RPA to(from) white list on ESP32-C3 and ESP32-S3. (90e21c4)
- Controller: Fixed the crash issue of deinitializing controller when controller is busy on ESP32-C2. (5592d28)
- Controller: Added support for selecting whether to use CSA#2 through the configured option on ESP32-C2, ESP32-C6 and ESP32-H2. (5592d28)
- Controller: Fixed occasional enter sleep failure during scan and connection on ESP32-C2. (5592d28)
- Controller: Fixed occasional MIC error during multiple concurrent connection on ESP32-C6 and ESP32-H2. (5592d28)
- Controller: Added CCA enable and CCA threshold configure option in menuconfig on ESP32-C2, ESP32-C6 and ESP32-H2. (5592d28)
- Controller: Fixed the issue of slave waiting for response timeout in indication procedure when the device is in multi-connection on ESP32-C6 and ESP32-H2. (5592d28)
- Controller: Fixed an assertion issue when stopping periodic adv if the extended adv data is longer than 228 bytes and the periodic adv is enabled after extended adv on ESP32-C6 and ESP32-H2. (5592d28)
- Controller: Fixed the issue that fail to establish synchronization with periodic advertising when the connection coexisted with synchronization on ESP32C2. (4e09c6e)
- Fixed memory leak in BLE controller after enabling CONFIG_MAC_BB_PD on ESP32-C3 and ESP32-S3. (bb45925)
- Controller: Fixed BLE scan request ifs time error in coexistence scenarios on ESP32 (11eaf41)
- Controller: Fixed the issue of releasing memory improperly when the controller is de-initialized after scanning on ESP32-C6 and ESP32-H2. (c54555b)
- Controller: Fixed the assertion of get_rxed_buffer() when the host task is blocked for a long time on ESP32-C6 and ESP32-H2. (c54555b)
- Controller: Fixed interrupt timeout issue after enabling CONFIG_MAC_BB_PD on ESP32-C3 and ESP32-S3. (b8bb114)
ESP Bluedroid Host
Added
- Added APIs for BLE direct test mode (60961e9)
- Added API to clear BLE legacy advertising (7f8fe95)
- Added support for NULL check while allocating the memory in the transport layer of the Bluedroid host. (ba0b8dc)
- Support BLE GATTC notify registration number (deceda3)
- Support control point in BLE HID example (deceda3)
- Support BLE scan response data length to zero (ea81f4c)
- Support periodic ADI feature (d750b3b)
- Added BLE periodic advertising sync transfer API and EVT (b2906d4)
- Added GATTC read multiple variable length characteristic API and EVT (809bd5a)
- Added BLE GATTS local database print API (269ff98)
- Supported BLE create sync report disable and filter duplicate (1f2d548)
Changed
- Optimized compatibility with IOS and MACOS devices (deceda3)
- Optimized the description of scan duplicate in BLE (ea81f4c)
- DOC: Updated BLE documentation on ESP32-P4 (bec164a)
- Examples: BLE examples malloc related code optimization (09f5f66)
- Updated BLE gatt_server_service_table example document (1f2d548)
- Optimized the BT_GATTS_ROBUST_CACHING_ENABLED configuration option by disabling the GATT robust caching feature to avoid compatibility issues with the Windows operating system (#12656) (2710c37)
- Updated BLE gattc gatts coex example (#12803) (2710c37)
- Optimized BLE remove all bonded devices function (2710c37)
- Updated BLE ibeacon example document (2710c37)
Fixed
- Fixed BLE advertising scan response event type (9cd791b)
- Fixed BLE key size check error (9cd791b)
- Fixed BLE remove bond list status (1ae8347)
- Delete one HID service to optimize compatibility with Android 10 and later devices (deceda3)
- Fixed encryption key size check in BLE SMP (deceda3)
- Fixed BLE load bond information error after reboot (e925665)
- Fixed bluedroid host DTM API parameters error (daf1fc7)
- Fixed HID example stack overflow bugs when using ESP32-S3 (ea81f4c)
- Fixed remove resolving list error for ESP32 (ea81f4c)
- Fixed bugs in handling reading requests for GATT service changes characteristic (ea81f4c)
- Fixed setting periodic advertising data error when periodic advertising data length is BTM_BLE_PERIODIC_ADV_DATA_LEN_MAX (284edcc)
- Fixed an issue where memory resources were not properly released when devices disconnected (c301deb)
- Fixed timeout error when update connect param. (3616815)
- Fixed connection parameter validation error. (3616815)
- Fixed bug while calculating block cipher using AES-128 (6b14a61)
- Fixed BLE GATTC cache address saving when the cache list is full. (cce55cf)
- Report BLE disconnect event after BLE link closed. (8466930)
- Fixed address check when using NRPA as random device address. (f5d9986)
- Support high duty advertising interval setting. (ad149a6)
- Prohibiting the enablement of privacy uring non-connected activities to comply with the protocol specifications (2c3454e)
- Fixed issues about data length is 0 when setting extend ADV data, extend scan response data and periodic ADV data (47ae2c2)
- Fixed GATTC database cache free when disconnecting. (1269b62)
- Added a log statement to print the Bluetooth MAC address (5ebe3b0)
- Fixed the issue of setting BLE advertising data incorrectly when the data length is 0. (f71b23e)
- Fixed GATT control block free when disconnecting. (a272d45)
- Fixed compile warning when optimize for performance. (126b98d)
- Fixed BLE default extended connection parameters. (40d1d7f)
- This reverts commit c8a3805. (37d11ea)
- Fixed BLE extended advertising random address setting for NRPA. (c0ab96b)
- Fixed BLE advertising data construct for device name. (c0ab96b)
- Fixed BLE SMP key distribution setting. (c0ab96b)
- Report disconnect event after BLE link closed. (cac7a5c)
- Fixed battery profile wrong condition in bluedroid host (00687a1)
- Fixed no error report when own address type is rpa_random and no random address setting (0b5b952)
- Fixed saving GATTC cache with the same device address. (bc21680)
- Report status when clearing the BLE whitelist is complete. (18af256)
- Fixed BLE SMP register log level (1f2d548)
- Fixed add RPA to white list. (56563f7)
- Fixed bluedroid menuconfig dependents (1f2d548)
- Fixed BLE Prepare Write Request timeout on Client Characteristic Configuration and Client Supported Features characteristic (50cb3a4)
- Fixed Prepare Write out-of-bound memory write BLE for example (50cb3a4)
- Fixed the BLE adv and scan status after stop/start cycles of the host (c8b5789)
- Fixed the connection cannot be established after several stop/start cycles of the host (c8b5789)
- Fixed BLE memory leak when gattc config off (9156cb0)
- Fixed BLE adv data check to avoid memory overflow (#12886) (0c5d2c2)
ESP NimBLE Host
Added
- Added Protocomm BLE Event Structure and Event Handling. (9b5be39)
- Added an example of Bluetooth LE using auto light sleep (9b3dfe2)
- Added support to send Power control related events in the registered callback. (ef23242)
- Added periodic Adv Feature Updates in BLE 5.3 ( 94234f0)
- Added health thermometer profile (329eec2)
- Added the tutorial for coc_bleprph example. (26ba685)
- Added the tutorial for the spp_server example. (7022c93)
- Added the tutorial for the spp_client example. (b953afe)
- Added the tutorial for coc_blecent example. (a231b6f)
- Added tutorial for HTP example (1c53adf)
- Added tutorial for Multi adv example (9403cea)
- Add support for LE Data Set Related Address Change command (6072487)
- Added the tutorial for the bleprph example. (9daa2d9)
- Added support for high duty adv interval (53102f6)
- Added the tutorial for blecent example. (82cceab)
- Add API to send pcl set rssi vsc (762e2be)
- Added support of encrypted advertising data (301b322)
- Added support for dynamic services addition/deletion (830acd0)
- Added queue congestion check for BLE adv report (c0977bf)
- Added checks before accessing event pointers (2bc2a35)
- Added check to set length only if data is valid in perdioic adv (bae1838)
- Add event for reattempt connection count information (83aedb2)
- Added check to validate allowed random address (477e19f)
- Added the tutorial for the ble heartrate example. (90f3855)
- Added the tutorial for the ble_multi_adv example. (f1afecc)
- Added log information for extended advertising (3da06e4)
- Added walkthrough tutorials for ble_periodic_adv and ble_periodic_sync examples. (8148ba6)
- Added BLE multi connection example for ESP32-C6, ESP32-H2 (13ea139)
- Added Walkthrough tutorial for phy_cent example (PR: #10985 ) (5222ba7)
- Added proximity sensor as a service (64a01af)
- Added API to send VSC and handle VSE (1268530)
- Added Current Time Service support. (4122499)
- Added support for VSC to clear legacy adv memory. (dc835a0)
- Added API to get controller's white list size. (ecd894a)
- Handled all 0s address of controller during IRK generation. (21f33f6)
- Handled race condition for conn elements being set to NULL (b85b15a)
- Added VSC to set the chan select algorithm to be used (14d88e5)
- Added periodic_adv_enh SOC capabilities for ESP32-C2, ESP32-H2 (14d88e5)
- Added Support for HID service. (21f33f6)
- Added NULL peer address check during connection initiation. (21f33f6)
Changed
- Updated macro names in menuconfig as per nimble1.5 (03cad65)
- Updated central examples to consider failure when attempting connection (1ad8913)
- Updated BLE PHY example for nimble (cd2ddd8)
- Updated nimble submodule pointer for SPDX manifest addition for SBOM tool (c1342d3)
- Updated connection type in reattempt connection code (c68b5b0)
- Updated Kconfig help section for example Extended Adv. (9a7106c)
- Increased the number of semaphore count to allow more semaphore allocation (4918dca)
- Refactor Nimble header files for documentation (78c3377)
Fixed
- Use Unique local IRK for each chip. (47ddba6)
- Handled deletion of IRK/LTK on basis of key availability. (fe3d095)
- Added change to initiate pairing when enc fails with key missing reason (89b2757)
- Fixed compilation warnings when max bonds and cccd is set to 0. (422d6f9)
- Handled error return value while removing RPA list from controller. (d0c00b1)
- Added change to fix compilation warning due to unknown MYNEWT_VAL (d6e0e86)
- Fixed compilation warnings generated while using GCC13 (8467e37)
- Fixed L2CAP COC application for sending more than one packet of data (335d707)
- Fixed data type of power level and delta to handle negative values (f274a8b)
- Fixed assert due to controller event while stack deinit. (b0b722d)
- Exposed macros used by the GAP service as menuconfig options. (4d3e48a)
- Exposed API to clear all addresses in whitelist out of stack (db5a263)
- Fixed watchdog timer issue in throughput app (2bb1e52)
- Sync missing changes between porting folder and nimble submodule files. (6ace246)
- Fixed setting macro values based on selected configuration (0b5ab48)
- Memory leak fixes (1937282)
- Fixed mismatch of number of completed packtes in host flow control. (59b7a49)
- Added debug code to print HCI events information (134d878)
- Fixed compilation issue for nimble examples when optimization is enabled (f4f8d4e)
- Exposed Address Resolution API outside stack (aaefc8c)
- Handled the deletion of RPA mapping. (eb848ea)
- Fixed the parameters in duplicate exception list vsc command (f40318c)
- Fixed dangling pointer error during compilation (#12491) (1700556)
- Fixed incorrect handling of bonded devices. (a9f7ea3)
- Fixed issue of incorrect IRK being set during stack init. (ba8afdb)
- Added change to return success for API execution in "ble_sm_inject_io" (0a1e584)
- Fixed invalid year value write on current time char in CTS service. (40d4810)
- Fixed authcomplete failure due to mismatch in the c1 value. (f32321e)
- Handled race condition for conn elements being set to NULL (b85b15a)
Removed
- Removed occurance of IRAM_ATTR from internal files. (bfa65bf)
- Removed Menuconfig option BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM (249e45a)
- Removed indicate flag from gatt db and added subscription case in spp_server example (743fd29)
- Removed unused coex header inclusion (5a061ef)
- Removed example files referring to older TTFW framework. (310bb89)
- Removed the extra status field in the enh read transmit power level (658ce48)
BluFi
Fixed
ESP-BLE-Mesh
Added
- MESH: Support Bluetooth Mesh Protocol v1.1 (Preview) (2bc1f2f)
- MESH: Support updating duplicate exceptional list for NimBLE (4b6f22e)
- MESH: Support duplicate scan on ESP32C6 and ESP32H2 (a313fcb)
Changed
- Mesh: Put Bluetooth Mesh 1.1 lib files in submodule (2110f6b)
Fixed
- MESH: Fix PB-GATT adv packets reported to app layer too frequently (0171bea)
Other Profile
Fixed
- BLE HID: Fixed BLE HID battery level setting. (2e9669a)
Classic Bluetooth
Classic Bluetooth Bluedroid Host
Added
- Bluedroid: Added support for using the Bluedroid Host only without the embedded Bluetooth controller (04ead4c)
- Bluedroid: Added an example on how to use the Bluedroid-Only mode (04ead4c)
- Bluedroid: Added new version of API for Bluedroid host stack initialization which allows the upper layer to configure different parameters (78af508)
- Bluedroid: Added support for build different roles in corresponding profile HID and HFP into a single binary (8a12837)
- Bluedroid: Added support for specific indicator sending from AG to Client (1f25202)
- Bluedroid: Added two new APIs for HFP performance test to collect statistics of synchronous stream transmission and reception (cd9eeff)
- Bluedroid: Added an API for HFP to terminate an ongoing call from HF client side (6598c6e)
- Bluedroid: Added peer Bluetooth device address into HF callback parameters (6598c6e)
- Bluedroid: Added two new GAP APIs to set and get the value of page timeout. (0f852ec)
- Bluedroid: Added option whether to include or exclude device name in extended inquiry response data (3632aa5)
- Bluedroid: Added instructions and diagrams on the execution workflow for examples
bt_l2cap_server
andbt_l2cap_client
(4dcab6c) - Bluedroid: Added 32 and 128-bit service UUIDs to the EIR data when service records are created in SDP server (d4b4fe8)
- Bluedroid: Added an API to set packet types for ACL-U traffic (c23973d)
Changed
- Bluedroid: Improved documents for Bluetooth HID Host API reference (d2fb724)
- Bluedroid: Updated AVRCP version to v1.5 (5354759)
- Bluedroid: Changed the description of esp_hf_client_reject_call (6598c6e)
- Bluedroid: Modified the number of SDP maximum connections from 2 to 4 to avoid connection exhaustion (37c3fa8)
Fixed
- Bluedroid: Fixed AG will response to HF when AG actively calling esp_hf_ag_out_call (1f25202)
- Bluedroid: Fixed the error code return of function btc_hf_indchange_notification (1f25202)
- Bluedroid: Replace api esp_hf_ag_devices_status_indchange with esp_hf_ag_ciev_report (5557ef4)
- Bluedroid: Fixed incorrect enumeration values defined in type esp_hf_dial_type_t (965af35)
- Bluedroid: Fixed uninitialized parameters for event BTA_AG_WBS_EVT in HFP (965af35)
- Bluedroid: Fixed errors in parsing ATD command in HFP AG (6598c6e)
- Bluedroid: Fixed incorrect definition of event ESP_HF_CIND_RESPONSE_EVT in HF-AG (6598c6e)
- Bluedroid: Fixed wrong indexes of HF-AG indicators (6598c6e)
- Bluedroid: Fixed the resource leak of osi_alarm caused by not releasing the timer during A2DP and HF-AG deinitialization (d688987)
- Bluedroid: Fixed the unexpected use of 3-EV3 packet type in HFP when Wide-Band Speech is disabled, by revising the (e)SCO configuration parameter sets according to HFP_v1.8 (0a8610a)
- Bluedroid: Fixed the problem of memory access out-of-bounds in HFP caused by the variable-length array introduced in 3268075 (#11264) (e156fce)
- Bluedroid: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator (#6486) (b0d595d)
- Bluedroid: Fixed use of empty Bluetooth device address in HFP AG calback events reported to application layer (6598c6e)
- Bluedroid: Fixed invalid access to freed semaphore in HF-AG example (6598c6e)
- Bluedroid: Fixed HID congestion checking issue (47649d5)
- Bluedroid: Limit HID device sending interrupt report when the triggering reconnection is in progress (1bcd94a)
- Bluedroid: Fixed incorrect handling of A2DP set configuration command when response with error code INVALID_CODEC_TYPE is expected (23ebfd1)
- Bluedroid: Fixed crash resulting from access of NULL pointer after A2DP disconnection (fe04d6d)
- Bluedroid: Fixed the issue in A2DP source example that the a2dp source would not send the media start command due to the connection initiated by the peer device (#11170) (40aa745)
- Bluedroid: Fixed the crash of A2DP source when it connects to Bose speaker, which is caused by the crossed incoming- and outcoming-AVDT procedures and solved by separating the processing of the different directions (6aa6d00)
- Bluedroid: Increased the stack size of
write_read
task in bt_spp_vfs_acceptor to fix theLoadProhibited
error (5171308) - Bluedroid: Fixed the mistaken deletion of bluedriod enable in bt_spp_acceptor example (f0b4a69)
- Bluedroid: Fixed failure in QoS configuration when polling interval requested is greater than 40 (d637880)
- Bluedroid: Fixed failure of GAP disconnection complete event (d637880)
- Bluedroid: Limit the number of paired BT devices stored into NVS and remove the oldest exceeded device from NVS when loading bond list (ce98ac8)
- Bluedroid: Implemented esp_coex_status_set/clear using vendor HCI command instead of calling firmware API directly (7e91e90)
- Bluedroid: Limit sniff request when pending the mode change event caused by the previous sniff request (10c7026)
- Bluedroid: Fixed SDP not being able to configure 32-bit and 128-bit UUID (#11572) (52071f4)
- Bluedroid: Added check for function arguments in some HFP AG APIs (26aa680)
- Bluedroid: Corrected the API documents of HFP AG (26aa680)
- Bluedroid: Fixed bug with zero handler return in btc_sdp.c (d4b4fe8)
- Bluedroid: Fixed compilation error in the L2CAP and HF_AG module when compiler optimization level is optimize for performance (1fb7a2c)
- Bluedroid: Added dynamic memory allocation for HFP control blocks when HF_DYNAMIC_MEMORY is enabled (7823f6c)
- Bluedroid: Fixed LoadProhibited crash during HFP AG deinitialization by releasing the control block in the event of BTA_AG_DISABLE_EVT (7823f6c)
- Bluedroid: Corrected the definitions of HF Client callback events (7823f6c)
- Bluedroid: Removed redundant operation of SCO clean up (7823f6c)
- Bluedroid: Changed the default air mode to invalid value (7823f6c)
- Bluedroid: Disabled Disabled Sniff Subrating temporarily as it did not work well (7823f6c)
- Bluedroid: Fixed the panic when the mutex created is enclosed by macro SMP_INCLUDE, but locked by functions beyond that macro (0af120a)
Removed
- Bluedroid: Deleted the redundant 'memset' in btc_hf_cb_handler (6598c6e)
- Bluedroid: Removed the unused code about command parsing in hf and ag examples. (5557ef4)
- Bluedroid: Removed media stop command and audio stopped state in A2DP. (0cb0c49)
- Bluedroid: Removed the incorrectly defined HCI error code ESP_BT_STATUS_HCI_PENDING (3da60ec)
- Bluedroid: Removed example sdkconfigs that are not in effect (8495745)
Classic Bluetooth Controller
Changed
- Moved the transmission of hardware error event out of ISR context on ESP32 (90ed5a7)
Fixed
- Fixed error in HCI_Recevie_Synchronization_Train Command parameter check on ESP32 (92e8662)
- Fixed error in HCI_Set_Connectionless_Peripheral_Broadcast Command parameter check on ESP32 (92e8662)
- Fixed LMP response timeout during connection establishment caused by failure of secure authentication for peripheral on ESP32 (92e8662)
- Fixed logic error during sniff negotiatoin which causes failure to enter sniff mode on ESP32 (90ed5a7)
- Fixed conflicts during unsniff procedure negotiation on ESP32, when local and peer devices initiate unsniff procedure at the same time (90ed5a7)
- Fixed crash when central and peripheral both attempt to initiate sniff procedure on ESP32 (90ed5a7)
- Fixed the crash during hardware error handling caused by Rx IRQ generated from sniff frame on ESP32 (90ed5a7)
- Fixed assertion resulted from failure of insertion of role switch frame on ESP32 (90ed5a7)
- Fixed the assertion caused by improper handling of Rx IRQ in inquiry scan frame on ESP32 (90ed5a7)
- Fixed the assertion caused by improper handling of Rx IRQ in page scan frame on ESP32 (90ed5a7)
- Fixed logic error of coexistence status set and clear upon failure of sniff negotiation on ESP32 (90ed5a7)
- Fixed IntegerDevideByZero caused by interrupted procedure of synchronous link creation on ESP32 (90ed5a7)
- Fixed error in HCI_Change_Connection_Packet_Type Command parameter check on ESP32 (ef056aa)
- Fixed error in HCI_Accept_Synchronous_Connection_Request Command parameter check on ESP32 (ef056aa)
- Fixed error in HCI_Set_Connectionless_Peripheral_Broadcast_Data Command parameter check on ESP32 (ef056aa)
- Fixed Central not being able to handle the procedure collision between remote Peripheral's role switch request and local initiated encryption mode request on ESP32 (0331e6f)
- Fixed memory exhaustion resulted from repetitive unhandled event LC_AFH_UPDATE_IND on ESP32 (fe04d6d)
- Fixed link disconnection during sniff negotiation due to invalid D_sniff value on ESP32 (fe04d6d)
- Fixed failure of re-connection after ACL link is disconnected but host continues to send ACL data to controller on ESP32 (fe04d6d)
- Fixed crash after controller is disabled and then re-enabled on ESP32 (661f5e1)
- Fixed the crash caused in processing HCI_Read_Remote_Extented_Features command in the non-connected state on ESP32 (661f5e1)
- Fixed parameter check for HCI_Setup_Synchronous_Connection command on ESP32 (56563f7)
- Controller: Fixed the failure in establishing two SCO connections on ESP32 (4efa9ca)
Bluetooth Common
Added
- Bluedroid: Added API to update bluetooth config file path (66e720c)
Changed
- Bluedroid: Unify the process of loading bonded device during bluetooth initialization and update the newest active device when an new ACL link is established (ce98ac8)
- Organize header files related to controller of Bluetooth (58775f8)
- Bluedroid: Increase default stack size of BTU task by 256 bytes (eae8973)
Fixed
- Fixed the link target conflict when SPIRAM is enabled (b790f0a)
- Bluedroid: Fixed bluedroid host build warning when log is disabled (7cea351)
Controller
Added
- Added config to disable hci uart flow control on ESP32, ESP32-C3 and ESP32-S3 (5306b33)
Changed
- Enable pll track by default on ESP32 (0fd57f4)
Coexistence
Added
- External coex: Added external coexist support for esp32h2/esp32c6 as a follower (8d48ff5)
- External coex: Added txline, apply coex schm and half TX, apply lowest pti (d04928a)
- External coex: applied txline in iperf exmaple. (d04928a)
Changed
- External coex: Improved ESP32-S3 master performance and fixed issues (d04928a)
Fixed
- Internal coex: Fixed Menuconfig option BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM invisible on ESP32-C3/ESP32-S3 (249e45a)
- Internal coex: Fixed dependency errors of Menuconfig option BT_LE_COEX_PHY_CODED_TX_RX_TLIM on ESP32-C2/ESP32-C6/ESP32-H2 (249e45a)
- Internal coex: Fixed BLE scan not restarting after being interrupted by WIFI on ESP32 (a0ae1bb)
- Internal coex: fixed Wi-Fi unable to work normally in coexistence with BLE extended scan, when scan whitelist is enabled, on ESP32-C3 and ESP32-S3 (51aaed8)
- Fixed the issue that ESP32-C6 coexist reg not reset when the module is reset (db15c0e)
- Added a notification when 802.15.4 is broken by coex. (3139ae0)
PHY
Added
- Supported PLL track on all targets. (500d415)
- Supported legacy PHY command in cert_test example (7121ec0)
Changed
- Optimized Wi-Fi HT40 TX sideband interference (968ce2e)
- Optimized WIFI RX performance under multipath interference environment (8ed9671)
- Optimized BLE TX sideband interference for ESP32-C3/ESP32-S3 (8ed9671)
- Track pll logic refactor (8bfbd28)
- Improved Wi-Fi performance when RX 11b packets for AC-DC power supply modules with high interference for ESP32C2 (8daed29)
- PHY init enable WiFi receive mode as default (05541a2)
- PHY init do not enable WiFi receive mode as default. (500d415)
Fixed
- Fixed Wi-Fi deinit stuck issue for ESP32-C6 (bd52831)
- Fixed btbb version print. (6fc45d4)
- Fixed Wi-Fi not working with temperature sensor on ESP32-S2 (53b9469)
- Fixed PWDET and temperature sensor power cannot be set twice issue (#11627) (6d60dd9)
- Fixed Wi-Fi disconnection in low temperature environment (8daed29)
- Fixed RTC_SW_CPU_RST occur in Wi-Fi start and stop process (8daed29)
- Fixed the iPhone disconnects immediately after connecting when BLE and wifi coexist on ESP32-C3 (5838c2e)
- Fixed LP_BOD reset if BT/802.15.4 init PHY before wifi (d888f54)
- Fixed BLE TX IFS time for ESP32 (33756fd)
- Fixed Bluetooth coexist bug on ESP32. (33756fd)
- Fixed ESP32-H2 wakeup i2c fail (5408580)
Wi-Fi
Added
- Added support SAE extended key encryption mode for station interface (6db16c6)
- Added support for WPS registrar in APSTA mode (a189bdb)
- Docs: Added the missing Wi-Fi header file to generate document by doxygen (2fa1e2b)
- Examples: Added a script to generate certificates for Wi-Fi enterprise (7b89dcf)
- Examples: Supported get AP info from stdin in wifi power save example (6e9708a)
- Examples: Added an example that creates a Wifi AP and STA and allows NAT between them. (ff01354)
- Added new API to get one scan ap record (bdb0756)
- Added channel change event (#12538) (40f7ada)
Changed
- Changed format of iTWT setup event status. (1eba917)
- Installed keys after successful transmission of EAPOL 4/4 Message (7da760d)
- Decoupled SoftAP code for ESP32-C2 to decrease bin size. (7b5cec5)
- Docs: Format AP basic configuration tables (4a545a5)
- Docs: Updated the code of how to configure multiple antennas of wifi (056a259)
- Docs: Update wifi and wpa_supplicant documentation (514d9a8)
- Example: Updated 'connect_hander' to 'start_handler' (#11560) (3790cec)
Fixed
- Fixed esp32c6 iTWT example hang on pd_top light sleep (d899199)
- Fixed the issue that STA will reconnect when receive two AP's commit with different sequence number (f5fb6a6)
- Fixed some crash issues for ESP32-C6 (175e887)
- Ignored Immediate Associate req till the previous one is processed. (447704b)
- Fixed some NAN Service discovery and data path bugs (781d271)
- Power Save: Fixed ESP32-C6 UDP BC/MC RX loss rate is high when light sleep is enabled (52aea44)
- Power Save: Fixed the issue that hardware fail to parse beacon with ie length equal to zero (e79d6a5)
- Power Save: Fixed the issue that the wifi can not go to sleep caused by MAC waiting for RX/TXING (e79d6a5)
- Power Save: Fixed light sleep failure if enable light sleep at PHY disabled (ea8b5c2)
- Power Save: Fixed ESP32-C2 DTIM=10 failed to enter light sleep for about one second. (b82a55d)
- Example: Fixed a crash in iperf example from github PR (#11662) (6eda926)
- Solved wifi may not work bug for BB PLL not locked or not stable when open_rf & SW_RESET on ESP32-C2/ESP32-S3/ESP32-C6 (e1dfdf2)
Wi-Fi MAC
Added
- Added support for iTWT wake duration unit. (1eba917)
- Added a new API to get RSSI info after station connected to AP (625f1ba)
- Added iTWT setup timer to track iTWT setup response frame (175e887)
- Supported using 11ax rate to send ESP-NOW frame (c898321)
- Added home_channel_dwell_time to wifi_scan_config_t. (6b16801)
- Added a new auth mode for WPA3 enterprise 192 bit security (340602d)
- Added feature for static buffer to RX management, Ctrl, QoS NULL, NULL data frames. (789569a)
- Added support for configuring ESP_WIFI_EXTRA_IRAM_OPT to improve performance (104d50d)
- Added more descriptive reason codes upon station disconnect due to no AP found (#5957) (2fa1e2b)
- Added iTWT parameter check. (b82a55d)
- Supported ESP32-C3(v1.1) WiFi. (aa22a66)
- Supported fragment for LR mode (5bf1070)
- Supported to adjust listen interval to DTIM period (aa22a66)
- Supported TX packets without wake null (aa22a66)
- Added HT20/40 capability indication in extended caps IE. (f2898bd)
- Supported dump 802.11 ACK frame for CSI (40f7ada)
- Added support for WPA3 + WPA3_EXT_PSK mixed mode (6769179)
Changed
- Enabled PMF when connecting to mixed mode AP (5bf1070)
- Optimized bin size for STA only mode (5bf1070)
- Changed TX fragment threshold to 256 if necessary (5bf1070)
- Added improvements in scan/connect path as per specifications along with bug fixes (#12517) (6769179)
Fixed
- Fixed OWE transition mode connection failure on ESP32C6. (1eba917)
- Fixed failed to ping when STA was in 11ax mode. (1eba917)
- Fixed association refused temporarily comeback time set to zero issue. (60fd11d)
- Fixed crash in use of
esp_wifi_action_tx_req()
(60fd11d) - Enabled FTM on ESP32-C2, fixed first FTM distance estimation (ccb6e28)
- Fixed bugs in FTM initiator and responder mode (ccb6e28)
- Fixed the issue that WPA3 SoftAP does not free resource after disconnection which leads to connection issue after resource exhaustion (510e544)
- Fixed the issue that SoftAP will not verify SSID of association request (510e544)
- Fixed the issue that when STA connected with 11g AP and TXOP enabled, Tx buffer leak happens (984340f)
- Fixed SoftAP mode nvs <ssid,password,pmk> not match issue. (31f34b9)
- Fixed some memory not freed after esp_wifi_deinit (c720d01)
- Fixed occasional crash during FT roam. (6b16801)
- Fixed parsing of scan results of APs in Enterprise mode. (6b16801)
- Fixed the issue that Station change channel with CSA packets that do not belong to it. (175e887)
- Fixed the issue that beacon is not free when SoftAP interface is stopped (78a549a)
- Fixed CCMP and GCMP PN became too large which cause no packets accepted by replay detection anymore. (52c10f2)
- Fixed some crash of timer callback after Wi-Fi deinit for ESP32C2 (93fcfbe)
- Fixed incorrect value for SAE PWE get from NVS. (29a3f86)
- Fixed connection issues with ESP32C6 SoftAP in hidden mode (1efcd78)
- Fixed the issue that TKIP cipher not rejected in OWE connection (ef91be6)
- Allowed OWE traffic only after 4 way handshake is completed (5ab6f5f)
- Fixed beacon timeout issue in OWE transition mode (5ab6f5f)
- Fixed the issue that wifi fail scan after deinit and init (293f563)
- Fixed ESP32-C6 rxctrl info is not correct. (42db3c8)
- Fixed the issue that iTWT information frame format was incorrect. (42db3c8)
- Fixed issue with incorrect beacon timeout and problems associated with disconnecting when scanning for a single channel (fdb4e0e)
- Fixed wrong Association-ID (AID) assigned to stations when multiple stations try to connect simultaneously (fdb4e0e)
- Fixed WiFi API docs typo (#12330) (db4598e)
- Fixed multi antenna issue (f67aa66)
- Fixed h/w modem state consecutive times when the modem sleep type was modified in runtime (f67aa66)
- Fixed WiFi API docs typo (#12353) (f67aa66)
- Fixed error propagation in FTM initiate API (ea33db3)
- Fixed Wi-Fi scan failure with BLE init and light sleep on ESP32-C6. (de409c2)
- Fixed the issue that STA with PMF disabled did not reject AP with PMF required (2fa1e2b)
- Fixed bug in
esp_wifi_deauthenticate_internal()
and other improvements (2fa1e2b) - Fixed the issue that station disconnecting immediately after scanning if RSSI equals to zero (5bf1070)
- Fixed the bug that WPA3 SoftAP sending deauth when the SoftAP is busy processing SAE confirm and it receives assoc req from the same station. (5bf1070)
- Fixed key installation issue in EAP Re-authentication (5bf1070)
- Fixed connecting failure after disconnecting from AP (aa22a66)
- Fixed Wi-Fi failed to enter light sleep after disconnected on ESP32-C6. (db4598e)
- Fixed Wi-Fi crash when connected to non-trans BSSID on ESP32-C6. (db4598e)
- Fixed Wi-Fi station no response after
m f null
happened. (db4598e) - Fixed Wi-Fi beacon timeout after connection established. (8b74d93)
- Fixed enable PSRAM causes DHCP failure in WAPI encryption mode. (98b84b3)
- Fixed the issue that ESP32C6
esp_wifi_set_max_tx_power
fail. (98b84b3) - Fixed incorrect wifi mode causing crash issue. (98b84b3)
- Fixed ESP32C6 disconnect from AP caused by NULL data sequence always equal 0. (98b84b3)
- Fixed some iTWT bugs. (b82a55d)
- Fixed unexpected HT frame from DUT during iperf. (b82a55d)
- Fixed ERUS configuration in ESPNOW rate does not work when set to LGI rate. (b82a55d)
- Fixed ESP32-C6 returning WiFi primary channel for all packets as 0 in promiscuous mode(#12205). (b82a55d)
- Fixed erroneous disconnect when scanning single channel. (f2898bd)
- Fixed
m f probe
/m f null
due to too many probe request / null data. (aa22a66) - Fixed AMPDU duration issue (5bf1070)
- Fixed RX fragment fail in Open mode (5bf1070)
- Fixed the issue that NULL data frame TX after going off channel. (d005068)
- Dropped fragmented aggregated packets CVE-2020-26142. (5bf1070)
- Prevented PMF config overwritten by tx_cb (494c33e)
- Fixed bcn_timeout and disconnect with error code 201, m f probe req l=0 issue. (0c49689)
- Fixed station switch channel by CSA cause disconnection (1eba917)
- Fixed the crash issue when clearing the scan ap list (bdb0756)
- Fixed the issues with NAN service discovery and datapath (6388f3f)
- Fixed psram enabled but failed initialization issue (#11971) (ff14e38)
- Allowed some special invalid igtk keyindex to workaround faulty APs (8cc8a11)
- Fixed crash while stopping NAN (9694fe3)
- Fixed when AP recv auth in SA query porcess will memset psq casue memory leakage (1eb6d90)
ESP-WIFI-MESH
Changed
- Updated comments in esp_mesh.h and esp_mesh_internal.h (2fa1e2b)
Fixed
- Fixed the IE crypto disable error in manual_networking example (2fa1e2b)
- Fixed the layer2 node scan issue when fixed root (8eb5a77)
- Fixed a heap corrupt issue (deab8d3)
- Fixed the bug that station can't found AP when the auth mode is WPA (#12646) (ff14e38)
- Fixed wifi mode error when mesh start after station has connected to router (ff14e38)
- Mesh: Fixed the crash issue when mesh deinit (1eb6d90)
Wi-Fi Supplicant
Added
- Added the MBO information element in the probe request frame (cd53393)
- Added support for recognizing GCMP and GCMP-256 ciphers if used by AP. (cd53393)
- Added support to detect PBC overlap in WPS registrar mode (b642bb9)
- Added parameter to configure reason code of deauth frame (2fa1e2b)
- memzeroed wifi config before sending DPP config event. (f0869bb)
- Added checks in DPP listen and deinit path. (8023a2b)
- Added checks to ensure that DPP APIs follow the init->bootstrap->listen path. (b73e462)
- Added support for making WPA2-ent configurable to save binary size. (5933779)
- Ported fast_pbkdf2 implementation to calculate PMK (62720ff)
Changed
- Implemented changes to prioritize sending EAP-Failure before de-authentication in WPS registrar. (f6b9c48)
- Optimized SAE crypto operations for ESP32 (cc1fe58)
- Updated softAP pairwise cipher. (2522216)
- Rename WPA2 enterprise APIs to EAP Client. (3b748a6)
- Moved CCMP enc/decrypt logs to verbose (8ef5a0f)
Fixed
- Fixed crash in sending neighbor report request. (e6e0b0d)
- Fixed the issue that PMF not disabled in WPA. (2522216)
- Fixed a DPP listen issue(#10865) (f73bd61)
- Fixed concurrency issue observed while doing eloop register (f5ccae4)
- Fixed missing PMKSA cache flush scenario incase of invalid pmkid (fdb4e0e)
- Skipped using PMK caching for WPA3 connection incase configured password is incorrect (d6c5227)
- Fixed abstraction violation in one instance (1771577)
- Added fix for issue of WPS-PBC overlap in WPS-PIN method. (0087f71)
- Fixed crash in DPP when DPP-AKM enabled AP starts authentication. (8023a2b)
- got passphrase in WPS if AP support SAE (a0b5fb4)
- Fixed station connecting with WPA security in enterprise mode (02b6c1f)
- Minor enterprise fixes (07dd194)
- Fixed infrequent issue with the de-initialization and BTM task deletion. (5995cab)
- Fixed race condition in BTM scan (12306ef)
- Fixed WPS issue for WPA3+WPA2 mode (2135042)
- Fixed the bug that WPS registrar for AP not responding to assoc req (f6452f0)
- Fixed PMKID SHA-256 related regression (670c086)
- Fixed the bug in SoftAP store WPA3 SAE authmode in NVS (ddb57be)
- Fixed memory leak in DPP deinit path (bdb0756)
- Added a 1s timeout for DPP authentication process and runs DPP callback with reason code ESP_ERR_DPP_AUTH_TIMEOUT upon timeout (bdb0756)
- Fixed WDT when esp_supp_dpp_start_listen is called multiple times. (bdb0756)
ESP Vendor Feature
Changed
- Updated the ESP-NOW example for the recv callback function (7fd92ac)
- Updated the CSI RX callback function and CSI related doc (2fa1e2b)
- esp_now_send() will return ESP_ERR_ESPNOW_CHAN if current channel doesn't match ESP-NOW channel (40f7ada)
Fixed
- Fixed the ESP-NOW send error when the channel info is not matched with bandwidth (625f1ba)
- Vendor ie callback can be set to NULL now (625f1ba)
- Fixed the issue of incorrect GI value when sending HE20 rate frames through ESP-NOW. (175e887)
- Fixed set LR rate fail for ESP-NOW and 80211_tx (closes #11751) (cc01cc1)
- Checked the PHY bandwidth when setting ESP-NOW peer rate (cc01cc1)
- Fixed the RX error when softAP/station and ESP-NOW both encrypted, and the ESP-NOW peer address is equal to the connection peer address. (ad99c16)
Ethernet
Added
- Added reception of multicast frames for KSZ8851SNL. (4f6c86e)
- Added multiple attempts when autodetecting PHY address. (4f6c86e)
- Added model number 0x13 to ksz80xx driver's list of supported models to include KSZ8041RNLI (962c7c0)
- Added IRAM optimization option for internal EMAC (380b83d)
- Added opencores ethernet support for ESP32-C3 target (QEMUonly) (3bf829a)
- Examples: Added EMAC DMA burst length configuration to Ethernet examples to prevent possible SPI Ethernet module issues when it is used along with internal EMAC. (e82dce7)
- Added abstraction of SPI driver for SPI Ethernet modules (e0c225b)
Changed
- Made IEEE 802.3 Ethernet PHY API public (87d8273)
Fixed
- Fixed loopback configuration for supported Ethernet chips (87d8273)
- Fixed
esp_eth_transmit_vargs
to transmit only when link is up. (e270c8a) - Fixed W5500 version ID check which could fail for some units when the version was read right after the reset (#11337) (5da56ea)
- Fixed reset timing of RTL8201 to align with datasheet. (fac7cb4)
- Fixed issue when APLL CLK was not released when deleting internal EMAC's driver. (4f6c86e)
- Fixed issue when speed could not be configured for DM9051 and KSZ80xx. (4f6c86e)
- Fixed the issue that ESP32-S3 chip fails to initialize Eth Module Dm9051 (#11083) (df9310a)
Security
Added
- Added locking mechanism for the ECDSA and ECC peripherals (ab74fb4)
- Added DPA (Differential Power Analysis) protection config for crypto peripherals of ESP32C6/ESP32H2 (c20f640)
- Added support for RNG peripheral in ESP32-C6 and ESP32-H2 (86b2ca3)
Changed
Fixed
- AES: Correct the linking of the DMA descriptors, fixes AES completion timeout issue for certain data lengths (5b001f9)
- AES-GCM: Correct the DMA completion wait condition for hardware GCM case (5b001f9)
- Hardware AES: Fixed DMA descriptor calculation for the specific aligned data length case causing memory corruption (#11310) (743df41)
- [OTA] Fixed issue with app verification built without secure padding v2 case (e468d22)
- Unconditionally program efuse ESP_EFUSE_ECDSA_FORCE_USE_HARDWARE_K bit for ECDSA peripheral (as a security measure) (df7ba09)
Peripheral Drivers
Added
- ADC: Supported ADC calibration on ESP32-H2 (4331ae7)
- ADC: Added an API to flush the continuous driver internal pool (167ab6d)
- ADC: Supported ADC calibration V2 on ESP32-C6 (028c7be)
- ADC: Added a flag to replace continuous driver internal pool data with newest data, when pool is full (1033322)
- ADC: Supported ADC digital threshold monitor for ADC continuous mode driver. (47fe2b9)
- ADC: Supported ADC calibration on ESP32-C6 (7a462d8)
- Analog Comparator: Supported Analog Comparator ETM sub-driver on ESP32-P4 (9a239b8)
- Async Memcpy: Async memory copy now can support different DMA backends (55ea6b7)
- Dedicated Gpio: Added software UART example implementation for Xtensa targets. (74d87ae)
- esp_lcd: Support LCD panel goes into sleep mode (#12370) (a21e46d)
- esp_lcd: Added API lock for LVGL example (1956196)
- esp_lcd: Allow user to specify RGB data endian in
esp_lcd_panel_dev_config_t
(01f3c93) - GDMA: Added driver for GDMA to support parallel CRC calculation on ESP32-P4 (cf61f63)
- GDMA: Supported
err_eof
interrupt on RX channel (7219e50) - GDMA: Supported
on_recv_done
callback (628f0e4) - GDMA: Support register callback function on GDMA descriptor error exception (#11499) (0992343)
- GPIO: Support output root clock to the GPIO (0049cc6)
- GPIO: Added an API to dump IO configurations (#12176) (d73bf72)
- GPTimer: Added a config option to specify the interrupt priority (6eabfc2)
- I2C: Added new I2C Slave driver (fec9a11)
- I2C: Added new I2C master driver (96bf37a)
- I2S: Added a config option to specify the interrupt priority. (4c6f4b3)
- I2S: Supported inputting an external clock as the I2S source clock in the STD and TDM mode. (f629c4b)
- I2S: Public
bclk_div
ini2s_pdm_tx_clk_config_t
andi2s_pdm_rx_clk_config_t
and added a default config for PDM TX DAC (e9e5f1b) - I2S TDM: Added the check for
slot_mask
field, there will be failure ifslot_mask
is0
. (9ee4c48) - LEDC: Added a helper function to find the maximum possible duty resolution for a timer to achieve the desired signal frequency (#11810) (8141594)
- LEDC: Added Kconfig
LEDC_CTRL_FUNC_IN_IRAM
to place control functions likeledc_stop
andledc_update_duty
into IRAM. (#11554) (2a76052) - LEDC: Added a check for the driver to prevent global clock from being switched undesirably (6700630)
- MCPWM: Support update timer period dynamically (767595a)
- MCPWM: Added ETM event support for MCPWM comparator (ae1a9bf)
- MCPWM: Added a config option to specify the interrupt priority (329bc7e)
- MCPWM: Added a config option to set the clock source for the carrier (b39fd79)
- MCPWM: Added FOC SVPWM open loop example (2975cc5)
- MCPWM: Support MCPWM generator actions triggered by fault and sync event (ed36b91)
- MCPWM: Support MCPWM generator's GPIO pull up/down configurable (#11878) (b488cb7)
- MCPWM: Support MCPWM generator's GPIO open drain output (#11878) (b488cb7)
- MCPWM: Make the MCPWM capture timer's resolution configurable (3e5906a)
- PCNT: Added a new api
pcnt_unit_set_clear_signal
for targets which support clear signal (9db2ffd) - PCNT: Added a config option to specify the interrupt priority (05f110e)
- RMT: Support using
rmt_receive
in the ISR context. AddCONFIG_RMT_RECV_FUNC_IN_IRAM
to control the placement of thermt_receive
function. (621acc4) - RMT: Added a config option to specify the interrupt priority (3b0c0ae)
- RMT: Define
RMT_ENCODING_RESET
in thermt_encode_state_t
(#11200) (90c2786) - RGB_LCD: Added
user_data
in the public LCD panel interface (78e166d) - RGB_LCD: Added callback to notify when bounce buffer finish copying a frame (fc4fcb5)
- RGB_LCD: Support LCD rotation for RGB LCD whose pixel size is one byte (#11581) (5a9bfc1)
- SPI: Support SPI as the backend peripheral of the led_strip in the blink example (91f16fe)
- SPI: Supported placing SPI driver hal-layer IRAM functions into flash (06a4059)
- SDMMC: Supported input delay phase tuning on ESP32-S3 (ca2624e)
- SDMMC: Added an SDMMC Host example to communicate with an eMMC chip on ESP32-S3 (ef64e4e)
- SDMMC: Added timeout and return of proper error code to
sdmmc
driver functions, fixes infinite loop when SD card is not responsive (#10532) (6055674) - SDMMC: Added vTaskDelay yields to prevent WDT triggers (6055674)
- SDMMC, SDSPI: Added write protection (WP) polarity switch feature (#11208) (cf7e743)
- Spi Flash: Added note about no auto-suspend support in Chip-ROM ESP Flash driver in programming guide (bbc4339)
- Spi Flash: Added new flash GD25QL255E suppport (a754efc)
- Spi Flash: Added flash suspend support on ESP32-S3/ESP32-C2 and optimize its performance (1219080)
- Spi Flash: Supported 32-bit-address (over16MB) SPI Flash access via CPU (experimental feature). (247cc7d)
- Spi Flash: Enable quad flash suspend when flash works under 120M (a80717f)
- SPI LCD: Supported quad mode SPI IO driver (fc4fcb5)
- SPI Master: Added transaction length check to refuse longer than hardware supported transactions (313f8cd)
- SPI Master: Added an API to know the max transaction length (313f8cd)
- TWAI: Added new TWAI driver APIs to support multiple controller instances (#11383) (d4dbacf)
- UART: Added a new LP_UART port for UART driver on ESP32-C6 (03d4fa2)
- USB Host: Restrict ESP32-S2 USB OTG AHB errata workaround to only ESP32-S2 ECO0 chips. Other chips and ECOs will no longer be affected by USB OTG DMA usage. (4fc2e5c)
- Usb Device Examples: Added USB-NCM example that demonstrates USB to WiFi bridge (9f9bd8c)
- Usb Device Examples: Added composite device examples of Serial Device as well as MSC device (Storage media as SPI-Flash) (2fb3681)
Changed
- USB Host: USB Host HID example update (using idf-extra-component instead of local component) (f9bc38f)
- ADC: Improved ADC continuous driver realtime performance by using circular dma descriptor link(#11500) (cd7ef82)
- esp_lcd: Updated the LVGL example to support loading image from filesystem (6f6ed69)
- GPIO: Updated the incorrect values and comments in
esp32xxx/rom/gpio.h
(#11737) (7ec38eb) - I2C: Added check for scl frequency on new i2c driver (#12598) (c3b7aa7)
- LEDC: Improved ledc_get_freq() calculation accuracy by rounding instead of truncating (#11810) (a9523b2)
- SPI Flash: Move config options that depends special flash models into
Main Flash configuration
menu (d2d75ef) - SPI Flash: Now HPM (Quad Flash > 80MHz), that rely on special flash model, needs users' manual confirmation by selecting
SPI_FLASH_HPM_ENA
(Read Programming guideSPI Flash API > Optional Features for Flash > High Performance Mode
First!) (d2d75ef) - USB Host: Updated MSC example for MSC driver v1.1.1 (717aa73)
- USB Device: Updated example to demonstrate usage of event callbacks for MSC events (espressif/idf-extra-components#166)). (f4dfc8f)
Fixed
- ADC: Fixed wrong ADC reading results caused by ADC and WiFi power conflict on ESP32-H2 (89c3beb)
- ADC: Fixed wrong ADC reading results caused by ADC and WiFi power conflict on ESP32-C6 (56f991d)
- ADC: Fixed ADC read zero caused by the dalay of ADC read signal delay on ESP32-H2 (ab3bb3d)
- ADC: Fixed ADC oneshot mode clock divisor setting issue (be39a0d)
- ADC: Used const pointers for io_to_channel / channel_to_io helper APIs (#11788) (9241936)
- ADC: Fixed continuous mode HAL functions not in IRAM issue when GDMA are set to IRAM-Safe (#11781) (18107f1)
- ADC: Fixed wrong ADC oneshot mode clock divider on ESP32, ESP32S2, ESP32S3 (b3b9b32)
- ADC: Fixed legacy ADC continuous driver DMA descriptor not in internal RAM issue (17a5d16)
- ADC: Fixed potential out-of-bound read in function
adc_digi_get_io_num
. (575ad2b) - ADC: Fixed potential multiply overflow in the calibration code (5cd6189)
- ADC: Fixed ADC continuous driver stuck issue when
conv_frame_size
bigger than 4092 (#11385) (a938fe0) - ADC: Fixed ADC filter allocation logic (4fd45f2)
- ADC: Fixed wrong results after ADC continuous mode stops and starts again on ESP32-ESP32-C6/ESP32-H2/ESP32-S3/ESP32-S2/ESP32-C2 (1fb97c1)
- ADC: Fixed ADC calibration error after waking up from light sleep on ESP32-H2 (61bd19b)
- esp_lcd: Propagate the IO link errors from the panel driver (#11741) (84a680b)
- GPIO: Fixed potential crash in ISR when CONFIG_SPIRAM_USE_MALLOC is enabled (#11876) (ff4a1bb)
- GPTimer: Fixed the issue that
timer_hal_capture_and_get_counter_value
is not placed in the IRAM conditionally (#12021) (3e31826) - HAL: Fixed the issue that some HAL header files can't compile with cxx (#12093) (43db5fb)
- I2C: Fixed I2C1 doesn't work on esp32h2 (e19324b)
- I2C: Fixed i2c command maximum numbers (#10811) (e1149f0)
- I2C: Fixed a bug in the SDA sample timing calculation resulting in the SCL staying low after a NACK (#9777) (3bc3f87)
- I2S: Fixed a concurrency issue while doing
disable
andwriting/reading
in different threads. (93da40d) - I2S: Fixed inaccurate frequency after switching from another sample rate. (96f2d21)
- I2S Std: Fixed the check of
mclk_multiple
,mclk_multiple
should be a multiple of3
only when theslot_bit_width
equals 24. (9ee4c48) - I2S Tdm: Fixed the calculation of
half_sample_rate
in HAL. (9ee4c48) - I80 LCD: Reset the CS GPIO when deleting the i80 IO driver (5748ce4)
- LEDC: PWM duty cycle can achieve 100% in most circumstances (#11516) (0f64142)
- LEDC: Fixed duty overflow when setting duty cycle to 100% on ESP32 (#12083) (0f64142)
- MCPWM: MCPWM will fall back to use a default clock if it's not set explicitly in the driver configuration. (641fdab)
- MCPWM: Fixed a typo in the name
MCPWM_SELECT_SYNCx
(ba9de25) - MCPWM: Fixed the force level setting in the BLDC example (a7d7945)
- MCPWM: Don't allow to apply the same delay module to multiple generators (#11327) (6ef187d)
- MCPWM: Reset the MCPWM peripheral if restart or panic happens (#11324) (06b1e10)
- RMT: Fixed the issue that a stopped RMT TX channel can still pick up a pending transaction (7c93afb)
- RMT: Fixed the issue that the RMT non-DMA channel can't work reliably during DFS. (#12292) (9e9eb0b)
- RMT: Fixed potential memory overwrite in the led strip example (#11487) (7b97b24)
- RMT: Fixed the issue that the filter and idle value set by the user can be out of the range (#11262) (eaa4ad5)
- RMT: Fixed RMT 1-Wire example unstable issue, and refactored to use component manager (#10790) (de72ac2)
- RMT: Reenable DMA owner check (#12564) (c73141a)
- RGB LCD: Restart the LCD when detecting a wrong order of bounce buffer switching (213564e)
- RGB LCD: Make PCLK gpio setting optional (#11298) (2b707de)
- SPI: Fixed undesired touching to DMA (#12241) (010a65d)
- SDMMC: Fixed SD combo cards not detected as memory cards (#9822, #10280) (e1a20bf)
- SDMMC: Fixed incorrect clock phase settings (#8521) (ef64e4e)
- SPI: Corrected macro REG_SPI_BASE(i) for all targets (#12559) (#12562) (6a34106)
- Spi Flash: Fixed concurrency issue when concurrently calling esp_flash APIs under XIP_PSRAM or Auto-suspend condition (ad0345a)
- Spi Flash Examples: Fixed typo in a function name in flash suspend example (#11204) (0eb2bdf)
- Spi Lcd: Fixed the issue that the maximum SPI transfer size is not correct (2a5ee5c)
- Spi Master: Fixed polling api blocks all SPI transmit when
ESP_ERR_NO_MEM
(#11845) (623c4e6) - Spi Master: Set the default MOSI level to low for all targets (f5e26a5)
- Spi Master: Fixed fix the assertion on a NULL desired_dev (#11536) (9f4a296)
- TWAI: Fixed
twai_driver_install()
so that an error is returned on interrupt allocation failure (#11494) (464052a) - TWAI: Fixed missing initializer warning for c++ in macro
TWAI_TIMING_CONFIG_xxx
(#11405) (b4e6019) - Temperature Sensor: Fixed issue that if temperature sensor driver is disabled then phy can't work properly. (c16b76f)
- Temperature Sensor: Fixed the conflict between wifi and peripheral. (224430f)
- UART: Fixed incorrect task priorities in UART Asynchronous Example (#12523) (a2b9004)
- UART: Fixed potential division-by-zero crash inside uart_ll_set_baudrate (#12179) (3717963)
- UART: Improved the UART RX ringbuffer space usage (#12386) (4e5757f)
- USB Host: Added extra assertions to ensure that USB transfers are correctly initialized when they are submitted (e297470)
- USB Host: Added better debugging/error logging information when attempting to claim an interface containing endpoints that exceed the USB Host controller's hardware capabilities (e.g.,
bInterval
orwMaxPacketSize
exceeds the limits supported by the hardware). (36a09e9) - USB Host: Fixed bug in enumeration where a device would always be configured to
bConfigurationValue = 1
instead of thebConfigurationValue
of the first configuration descriptor found (#11113). (f93bb3a) - USB Host: Loosened requirements on bInterval for INTR and ISOC endpoints. Large bInterval values will now be internally rounded down to 32 (e19be79)
- USB Host: Fixed string descriptor fetching for non-compliant USB devices (e19be79)
- USB Serial Jtag: Fixed an issue where high TX throughput would cause bytes to be dropped (#11344) (923fcc2)
- USB Serial Jtag: Fixed usb_serial_jtag vfs lose data randomly (#12119) (#11344) (#9318) (#11192) (0bb8c13)
- Temperature Sensor: Fixed the value is wrong when detecting minus value (a296532)
Removed
- ADC: Deprecated wrong name
ADC_ATTEN_DB_11
, now it's updated toADC_ATTEN_DB_12
. (02cacc6) - SOC: Deprecated soc/apb_ctrl_xxx.h on ESP32, ESP32-S2, ESP32-S3 and ESP32-C3, suggest to use soc/syscon_xxx.h instead (dccc31e)
System Hardware
Added
- Support 8MD256 as RTC slow clock work properly ESP32-S2/ESP32-C3/ESP32-C2/ESP32 (a624d8d)
- PSRAM: Supported 32MB Octal PSRAM (APS256XXN) on ESP32S3 (e3fea3a)
- MSPI: Added timing tuning start, success log (f9cd9e3)
- Cache: Added cache memory synchronization API doc (7d8f015)
- Cache: Supported doing
esp_cache_msync
to instructions (b58a2ea) - Cache: Added memory-to-cache direction esp_cache_msync() behaviour, by default it's an invalidation (2d4dabd)
- DMA: Added an API to do memory allocation that meets DMA alignment requirements (b58a2ea)
- Psram: Allow PSRAM CLK being shared with flash on ESP32-D0WD. (1317d9a)
Changed
- Memory: Updated
esp_ptr_internal
andesp_ptr_in_drom
to include unused DCache region as internal RAM for ESP32-S3 (6773ad6) - MSPI: Improved timing tuning stability on ESP32-S3 (e1dfdf2)
- Increase the maximum supported version of ESP32-C3 to v1.99 (e8a5fdc)
Fixed
- Manage i2c_ana_master clock with reference count (025be6b)
- Removed the warning log when RC_FAST clock calibration is performed on ESP3-2H2 (1ef1d93)
- MSPI: Fixed Octal PSRAM timing tuning failure under low temperature, on ESP32-S3 (476e50b)
- MSPI: Removed 120MHz SDR timing tuning warning on ESP32-S3 (fbecb1e)
- Fixed missing header include in
esp_cpu.h
(#11388) (0036e55) - Psram: Fixed wrong counting mapping pages under XIP_PSRAM (6fa901f)
- Psram: Fixed wrong start virtual address and max virtual address size in the programming guide (1bdcdd9)
- Pwdet: Fixed wrong PWDET base address on ESP32-C6, ESP32-H2 (22cfbf3)
- Efuse: Fixed byte order in MAC_EXT (for C6 and H2) (ac188ad)
- Efuse: Fixed efuse summary description containing semi-colon breaking efuse-summary (1f06806)
- Efuse: Explicit setting of efuse time settings (6a7f730)
- Efuse: Added config for using custom MAC as base MAC. (97594d2)
- GDMA: Fixed crash from logging when using newlib nano (#9631, #10366) (97aab3b)
- MMU: Fixed potential hal assertion failure caused by wrong end vaddr calculation when mmaping to boundary of memory (36d4262)
- MSPI: Fixed 120MHz DDR max frequency issue when temperature is higher than 45 celsius degree (7894b21)
- Cache: Fixed cache hit errors caused by accessing cachelines that are being writebacked. (9a1cc59)
- Fixed POWER ON reset when using RTC IO as input in deepsleep on ESP32-S2/ESP32-C3/ESP32-C2 (a624d8d)
- Fixed RTC memory lost in high temperature in deepsleep on ESP32-S2/ESP32-C3 (a624d8d)
- Fixed dangerous power parameters in sleep modes on ESP32-S2 (a624d8d)
- Fixed DROM_HIGH_ADDR for ESP32-S3 used in memory utils APIs. (ff8a6a5)
Core System
Added
- Added
esp_intr_dump
function to debug interrupt allocation issues (e6c3f62) - Added
libunwind
implementation to retrieve any callstack at runtime for RISC-V targets (#7866) (dc7ff86) - Added hardware stack guard. Enabled by default for esp32c2/esp32c3/esp32c6/esp32h2 (e270427)
- Added mocking for USB serial driver (usb_serial_jtag.h) (87f8a8e)
- Added reset reasons for USB_UART and USB_JTAG (#10950) (cae3ef4)
- Console: Added additional help command argument to print specific command's help (#11945) (0b595f3)
- Console: Added option for specifying which heap caps console should allocate with to config struct. Thanks to @chipweinberger for this contribution (#11562) (54f327a)
- Console: Added support for console output over USB_OTG peripheral's CDC port. (#8879) (274fa56)
- Console: Enable the option to use custom UART1 as console on ESP32C3, ESP32C2, ESP32-C6, ESP32-H2 (587b4b3)
- Esp Common: Added
ESP_ERR_NOT_ALLOWED
error code (64befdc) - Heap: Added configuration to allow placement of the hash map array to external memory (#11172). (db6ba51)
- Heap: Added configuration to force the heap implementation to be placed in flash (48932ce)
- Heap: Added memory poisoning checks of used blocks when calling heap_caps_check_integrity_xx functions (#12231). (d6def6c)
- Heap: Added possibility to enable task tracking without enabling light or comprehensive poisoning. (63952fe)
- Implement Floating-Point Unit (FPU) support for RISC-V targets which has one (ESP32-P4) (51434a8)
- Linux Target: Added WiFi mock support for all header files in components/esp_wifi/include (#10582) (f0e7474)
- Log: Added master log option (#11049, #11057) (0e5098e)
- Newlib: Implement getentropy() function (#11963) (3247253)
- Pthread: Added
pthread_condattr*
functions as stubs (#12171) (4227d99) - Pthread: Added pthread_rwlock_tryrd/rwlock() (05cbd19)
- Ring Buffers: Added functions to create ring buffers with specific memory capabilities (e.g.,
MALLOC_CAP_INTERNAL
) (9f52710) - WDT: Added LP WDT HAL functions for ESP32-H2 (11cf6f6)
Changed
xt_utils.h
now compiles with-Wsign-conversion
without warning in C++ (#10895) (0a3cfce)- unity_utils_task_delete now waits for idle tasks to run on all cores. (d9e99ac)
- Changed CONFIG_COMPILER_OPTIMIZATION_DEFAULT to CONFIG_COMPILER_OPTIMIZATION_DEBUG (#8404) (adef00f)
- Moved some esp-system functions that were previously placed in IRAM to flash, freeing up IRAM space. (03c2c8d)
- Console: Changed console examples to give a warning if secondary console is active (#11731) (47bcee11)
- Console: Changed ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT to be defined only when CONFIG_ESP_CONSOLE_UART_DEFAULT or CONFIG_ESP_CONSOLE_UART_CUSTOM is defined (#10707) (4ba38c2)
- Esp Event: Made implicit include of stdint.h explicit in esp_event_base.h (efd46fc)
- Esp Timer: Added IRAM_ATTR for esp_timer_restart and esp_timer_is_active (#10522, #10859) (5d08385)
- Heap: Changed some memory allocate priority with capability to improve malloc efficiency. (5debc3b)
- Heap: Increased max stack depth allowed for heap trace(#11508) (856d371)
- Heap: Optimized size of heap trace records when hash map config is enabled (#11173). (787a4ad)
- Heap: Updated heap trace standalone to not allocate memory until init is called (#11509) (b70aaa1)
- Interrupts: Improved log messages and documentation related to interrupt allocation failures (e6c3f62)
- Interrupts: Updated docs description of the number of interrupts for ESP32-C6 and ESP32-H2S (3d11043)
- Linux Target: Exclude all incompatible components from Linux build (fa1a3ce)
- Pthread: Mutex lock and unlock functions are not place in IRAM anymore (852c60f)
- Riscv: Moved some riscv functions that were previously placed in IRAM to flash, freeing up IRAM space. (03c2c8d)
- WDT: Changed ESP32-C3 WDT to use XTAL as clock src instead of APB, making the timeout consistent even when CPU frequency changes. (573404b)
- WDT: Changed ESP32-C6/ESP32-H2 WDT to use XTAL as clock src instead of PLL, as PLL could be powered down by power management. (573404b)
- Xtensa: Deprecated some legacy include paths of Xtensa related headers. Any Xtensa header previously included by #include "freertos/xtensa_...h" or #include "xtensa/xtensa_...h" is now replaced with #include "xtensa_...h". (8005821)
Fixed
- Fixed esp_restart triggering RTC_WDT if uart driver is deleted in usercode. (fdd8d42)
- Brownout: Fixed RF cannot be enabled again after brownout triggered on C6/H2. (90d69b3)
- Brownout: Disable the hardware brownout reset when brownout interrupt is enabled. (a97d480)
- Console: Fixed
CONFIG_ESP_CONSOLE_USB_CDC
option not being functional on ESP32-S3 unless PHY_SEL Efuse was burned (#12437) (43f2476) - Console: Fixed build failure with
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y
on ESP32-C6 (#11924) (8545f85) - Efuse: Fixed the burning issue when RS coding data is left at zero. (#12489) (172b7e4)
- Esp Event: Fixed build error and crash in event handling loop when CONFIG_ESP_EVENT_LOOP_PROFILING is enabled (#11428) (d41ddfc)
- Esp Event: Fixed missing error return documentation for esp_event_loop_create_default (#11745) (8abdf2f)
- Esp Timer: Fixed a race condition in esp_timer which resulted in linked list corruption (#11215) (500b5b2)
- Esp Timer: Fixed delay in ISR dispatch callbacks when TASK dispatch callbacks take more time (#11637) (92d84b4)
- Fixed a race-condition in esp_ipc_isr in QEMU env (#11447) (a4bb596)
- Fixed corrupted backtraces on ESP32-S3 when a ROM function was encountered (#11512) (d01e399)
- Fixed different signed comparison warning in
esp_ptr_in_drom
(#11653) (3466204) - Fixed digital system (peripherals) not being reset when the Memprot is ON and the OS restart is required (esp_restart, panic_restart) (e097c40)
- Fixed ESP32 chip info not listing esp32 pico v3-02 as having embedded spiram (#11233) (266229e)
- Fixed invalid system time if s_esp_rtc_time_us & s_rtc_last_ticks were moved around, after OTA (#9448) (f875978)
- Interrupts: Fixed ordering of AES and SHA irq names to align with the respective irq numbers (681647f)
- Interrupts: Fixed that
shared_vector_desc_t
is not guaranteed to be allocated from internal RAM (#12271) (0fe1114) - Interrupts: Fixed the issue that a CPU interrupt of priority
N
was actually set asN+1
on RISC-V targets (3d020d9) - Linux Target: Fixed compilation error for Linux target (b83d362)
- Linux Target: Fixed heap_caps_realloc not correctly allocating the requested number of bytes (#11523) (8e8f617)
- Pthread: Fixed pthread condition variable linker hook (a412474)
- Removed unnecessary newline character in logs (#11465) (c350c3c)
- Ringbuf: Fixed ther ordering of
StaticRingbuffer_t
members to matchRingbuffer_t
. Prevents host compilers (e.g., Linux GCC) from inserting different paddings. (#11726) (0e1bbb0) - Riscv: Fix a bug in esp_cpu_set_watchpoint() where a watchpoint on a range of addresses was improperly set on RISC-V targets. (35013d9)
- WDT: Fixed int WDT reset reason being reported as task WDT on ESP32-C2 (a0be5e9)
- Xtensa: Fixed a bug that altered Tasks' FPU registers (#11690) (d2471b1)
- Xtensa: Fixed a6, a7 registers corruption after FreeRTOS task context switch (2585e53)
Low Power Features
Power Management
Added
- Supported the software workaround for retention of BLE and 15.4 modules. (87dd7bb)
- Supported ESP32-C6 PMP and PMA sleep retention (d899199)
- Supported light sleep for ESP32-H2 (7c2ac1f)
- Supported DFS (Dynamic Frequency Switching) for ESP32-H2 (7c2ac1f)
- Supported sleep clock with 32MHz XTAL, 32KHz RC, 32KHz Crystal for ESP32-H2 (7c2ac1f)
- Supported deep sleep for ESP32-H2 (57c6c0a)
- Supported LP timer wakeup and EXT1 wakeup for ESP32-H2 (57c6c0a)
- Added documentation for sub power modes of ESP32-S2, ESP32-S3, ESP32-C2, and ESP32-C3 (8845767)
- Supported hp_regi2c for ESP32-C6 (94a6629)
- Supported EXT1_WAKEUP_MODE_PER_PIN for ESP32-C6 and ESP32-H2 (0878b9b)
- Supported power down HP AON domain in deep sleep for ESP32-C6 (7913603)
- Added internal pull-up/downs option for GPIO used for deep sleep wakeup for all chip types (925a731)
- Supported callback for light sleep (adae54f)
- Supported the feature of using the 40 MHz XTAL as the BLE low power clock source on the ESP32-C6 ECO1 (4b48457)
- Added new deep sleep APIs that help to skip deep sleep if the wakeup source is set before the sleep request. (a94bb62)
- Supported PMU trigger regdma when PU TOP in ESP32-H2 (62a4b70)
Changed
- Returned deep sleep APIs to the original behavior (#12359). (a94bb62)
- Deep sleep bottom current for ESP32H2 can be as low as
5uA
(57c6c0a) - Light sleep bottom current for ESP32H2 can be as low as
24uA
(7c2ac1f) - Deep sleep current will increase
2 ~ 3uA
when in deep sleep by default config (a624d8d) - Light sleep current will increase when 8MD256 used as RTC slow clock in sleep (a624d8d)
- Deep sleep current will increase about
2uA
on C6 and H2 (2ec907e) - Light sleep current will increase about
20uA
whentop_on
and7uA
whentop_off
on ESP32-C6 (2ec907e) - Light sleep current will increase about
5uA
whentop_on
and3uA
whentop_off
on ESP32-H2 (2ec907e) - Updated help text for
ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND
\ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND
\ESP_SLEEP_MSPI_NEED_ALL_IO_PU
options to be more descriptive (#11558) (173d095)
Fixed
- Fixed the issue that not able to go to sleep again after waking up light sleep from ULP RISCV (9d694e4)
- Fixed current leakage on usb pad during light sleep on ESP32-S2, ESP32-C3, ESP32-S3, ESP32-C6, ESP32-H2 (1cdca25)
- Fixed PSRAM access failed after CPU power downed light sleep wakeup if VFS console uses UART driver (bf8a6ef)
- Fixed ESP32-C6 ADC CH1 sample issue caused by ext32k XTAL (e0286e2)
- Fixed the issue on ESP32-C3 where retention memory was exhausted prematurely and preventing the CPU from powering down. (5debc3b)
- Fixed ESP32-C6 with default LWIP timer, light sleep average current more than the expected threshold. (b82a55d)
- Fixed CPU crash problem caused by voltage insufficient when its frequency switched from high to low on ESP32S2/S3. (efb9d9e)
- Fixed ESP32-C6 UDP BC/MC RX loss issues when light sleep is enabled ( 5d983c3, 52aea44)
- Managed modem_etm clock in modem_clock for bt/154 indepently (24914d1)
- Fixed the issue that the UART always prints the characters left in the FIFO at the moment of going sleep after the power-down peripheral lightsleep wakeup. (6e9708a)
- Fixed ESP32-C6 enable light sleep, vTaskStepTick assert failed issue (1210a3e)
- Fixed potential illegal instruction exception after waking up from light sleep (016cb6a)
- Fixed EXT1 bug of trigger mode option "ALL LOW" for ESP32-S2, ESP32-S3, ESP32-C6 and ESP32-H2 (57c6c0a)
- Fixed potential abnormal light sleep current if
ESP_SLEEP_POWER_DOWN_FLASH
disabled (deae388) - Fixed potential light sleep wakeup failure with
ESP_SLEEP_POWER_DOWN_FLASH
enabled ( deae388, 9340696) - Fixed the issue of missing configuration for calibration cycles of the internal 32 kHz RC slow clock source (df36c3a)
- Fixed output formatting issue in esp_pm_dump_locks function (#11704) (392e6aa)
- Fixed the problem that the PSRAM program crashed due to wrong MSPI timing after frequency switching when using high-speed PSRAM and enabling DFS (1be9eee)
- Fixed deep sleep abnormal base current when goto deep sleep from softAP mode on ESP32-S2 (9894697)
- Fixed abnormal deep sleep base current of ULP ADC on ESP32-S2/ESP32-S3 chips (fa6a743)
- Fixed PMA cfg and CSR regs bad retention in pd_top sleep (73dcc39)
- Fixed can't enter deep sleep on ESP32-C6 if Wi-Fi Enhanced light sleep is enabled (217defb)
- Fixed the bug that LP memory may lost in deep sleep & light sleep mode in high temperature on ESP32-C6 and ESP32-H2 (2ec907e)
- Fixed the bug that light sleep wakeup may fail in high temperature when top not power down on ESP32-C6 (2ec907e)
- Fixed the bug deep sleep wakeup may fail, deep sleep wakeup time will increase 346us on ESP32-C6 (2ec907e)
- Fixed the problem of abnormal CPU frequency in ESP32-H2 after pd_top lightsleep (41ca909)
- Fixed the potential problem of ESP32-C6/ESP32-H2 deepsleep not being able to wake up. (a2b9622)
- Fixed lp_aon_ll_ext1_set_wakeup_pins function for ESP32-C6 and ESP32-H2 because it should not use '|=' to configure hardware (c7a270f)
- Added mac/bb power down/up prepare callback for fix ESP32-C6 BT/IEEE802.15.4 pll issue. (d0dab67)
- Fixed the issue where ESP32-C6 Light sleep wakes up too quickly when Flash is turned off, causing Flash access timing errors (c30d982)
- Fixed the error of watchdog trigger when running Bluetooth/IEEE802.15.4 with flash power down enabled (0b9b16c)
- Fixed a frequency switching issue on the ESP32 where the next systick timeout can be set too late, leading to a interrupt watchdog timeout. (f4e96ad)
ULP
Added
- Lp Core: Added support for LP UART driver to the LP core. (67552c3)
- Lp Core: Added printf functionality for the LP core. (67552c3)
- Lp Core: Added support for
abort()
function to the LP core. (ab8ed89) - Lp Core: Added support for LP I2C peripheral to the LP core. (efe9192)
- Lp-Timer: Added GPIO support for lp core as well as an example showcasing it. (9f31c65)
- Ulp-Risc-V: Added a Kconfig option to configure the read/write timeout values for RTC I2C. (#11154) (02d4736)
- Ulp-Risc-V: Added support for reading the touch sensor from the ULP RISC-V core for the ESP32-S2 and ESP32-S3. Also added an example to demonstrate this feature (#10480). (4b35e00)
- Ulp-Risc-V: enabled adc support for ulp riscv on ESP32-S2 (#11052, #11040) (a4cf0e2)
Fixed
- Ulp-Fsm: Fixed incorrect register address parsing in ULP FSM register read/write macros (#11652) (98bc3d7)
- Ulp-Risc-V: Fixed ulp i2c not working from main cpu if compiled with 0S or O2 (#12214) (e39e058)
- Ulp-Risc-V: Fixed an issue where ulp_riscv_register_ops.h header file always needed to be included to avoid register operation macros redefinition errors while compiling. (#12116) (abc89df)
- Lp Core: Fixed a bug where the
LP I2C
SCL clock was programmed incorrectly. (397825a) - Lp Core: Fixed a bug where the
LP I2C
write operation got stuck when thelp_core_i2c_master_write_read_device()
API was used. https://jira.espressif.com:8443/browse/IDFGH-10740. (397825a) - Lp Core: Fixed a bug where a 16-byte
LP I2C
read got stuck with some sensors. (397825a) - Lp Core: Fixed ESP32-C6's LP_CPU not being able to go to sleep after halt and resulting in high power consumption problem. (#12651) (194343e)
Debugging
Added
- Added panic details to core dump ELF file (2fbb631)
- Panic handler now sends panic reason string to the OpenOCD when the debugger is connected (3de3192)
- Added
CONFIG_ESP_COREDUMP_LOGS
option to disable core dump related logs, reducing RAM usage (08be8ff) - Implemented runtime debugging for riscv targets using GDBStub (a77f723)
- Added apptrace example and python script to show how to transfer sensor data over JTAG and visualize them on host (a065f0f)
- Added info to core dump to indicate whether the crash happened in an interrupt context or not. (a3cee54)
- Added task watchdog panic output to the core dump ELF file. (499625b)
Changed
- Replaced deprecated
flushregs
GDB command withmaintenance flush register-cache
(#11535) (cfa1896) - Separated Kconfig gdbstub from panic feature. (#11569) (a120ea8)
Fixed
- Set default GDB timeout to 3 seconds when dumping data with
info-coredump
(3ab9a2f) - Fixed non-default coredump partition table offset issues (5fca973)
- Don't use port when core file is specified (#12673) (a36d8bc)
- Fixed apptrace data corruption on ESP32-S3 (#10604) (cdaf1fd)
- Fixed out of bounds array access in
esp_sysview_vprintf
(#11245) (a0f4664) - Fixed build warning when saving core dump to flash with log disabled (#11869) (3befd5f)
- Fixed compilation warning observed in coredump (#12318) (e7e4782)
- Re-enabled CONFIG_ESP_DEBUG_OCDAWARE functionality (6cd8030)
- Fixed bp/wp logic when debugger is connected (f0fba3f)
- Fixed coredump build error (8e69e0a)
FreeRTOS
Added
- Idf Kernel: Upgraded IDF FreeRTOS kernel to v10.5.1 LTS. (b0124b9)
- Idf Kernel: Added a new Kconfig option to set a custom name for the FreeRTOS Timer Service task. (165955d)
- Idf Kernel: Added support for multi-core RISC-V targets. (52bca70)
- Idf Kernel: Added static buffers on the top of FreeRTOS 10.5.1 (c6cc6e7)
- Idf Kernel: Optimized
xTaskRemoveFromEventList()
for single-core builds by removing unnecessary checks. (c1cbd9a) - Enabled POSIX/Linux simulator for SMP FreeRTOS (af2d326)
- Added configuration option to set the runtime counter's data type (see
CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE
). (3d591c5) - Added SBOM manifest file for SPDX file generation (51846b4)
- Added GetStaticBuffer and CreateWithCaps functions (4004dff)
Changed
- Idf Kernel: Updated vTaskRemoveFromUnorderedEventList() to check the scheduler suspension state on both cores before unblocking and scheduling a task. (54576b7)
- Idf Kernel: When CONFIG_FREERTOS_UNICORE is enabled, creating tasks using PinnedToCore() API will no longer accept xCoreID values that are not equal to 0 or tskNO_AFFINITY. (df43d67)
Fixed
- Idf Kernel: Fixed a bug that cause a "Load Access Fault" in
xTaskResumeAll()
when called fromxEventGroupSetBits()
orvEventGroupDelete()
(c1cbd9a) - Idf Kernel: Fixed an issue where the FreeRTOS IDLE tasks for each core had the same task name. #12204 (5e65545)
- Idf Kernel: Fixed a bug wherein the
xTaskRemoveFromEvenetList()
did not account for nested scheduler suspension when checking for scheduler state. (ead5f19) - Idf Kernel: Fixed a bug where the systick is not properly enabled when restarting the ESP following an OTA upgrade from ESP-IDF v4.3 to a newer, thus leading to Interrupt Watchdog timeout on startup. (f29cff3)
Removed
- Removed the
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT
. Task Snapshot APIs are now always compiled. (f1c71b7) - Deprecated
CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP
and user definedvPortCleanUpTCB()
. Users should now useCONFIG_FREERTOS_TASK_PRE_DELETION_HOOK
and definevTaskPreDeletionHook()
instead. (4962bb5)
LWIP
Added
- Added config options for TCP out-of-order sequence buffers (340195b)
- Added sbom description file for Software BOM (4ec2c70)
- Added option to enable or disable Port mapping if NAPT is enabled. NAPT works, as usual, but the port mapping portion of the code can be optionally compiled out. (d057bac)
- Added support for configuring TCP/IP task priority and LWIP_EXTRA_IRAM_OPTIMIZATION to improve performance (104d50d)
- Added option to use packet input thread for TCP/IP processing (LWIP_TCPIP_CORE_LOCKING_INPUT) to improve performance (104d50d)
- IPv6: Added option to disabling NDP (Neighbor Discovery Protocol) to improve power efficiency if ND6 not needed (7af7723)
- Added check to ensure safe restart of dhcp fine timer in dhcp.c in lwip. (cdfd5a7)
- Added a hook for IPv6 source address selection. (bcb1741)
- ESP-NETIF: Added PPP config option to disable/enable LCP keepalive mechanism runtime for a new session (3b2a22f)
- ESP-NETIF: Added option to bridge WiFi AP (35d4dd7)
- ESP-NETIF: Added return value to esp_netif_receive() to report issues on packet input path (#10770) (e888bb0)
- Examples/Network: Added capability to enable NAPT in the vlan_support example. (68863b7)
- Examples/Network: Added WiFi station to Wired interface bridge example (Ethernet/USB) (28c643a)
- Examples/Network: Added WiFi AP interface to bridge example (35d4dd7)
- Added support for disabling LWIP build with Kconfig option (36e3246)
- Added improvements and fixes to NAPT module (espressif/esp-lwip#43)
- Added support to enforce Neighbor Advertisement (NA) router forwarding (7a3efab)
Changed
- Updated TCP connection code to increase transmission timeout only if we're not opening a new connection (fb2c844)
- DHCP Server: Updated to support sending DHCP offer and ACK messages in unicast (c7eb0d2)
- Lower the dhcp discover and request retry backoff time. (576ce64)
- ESP-NETIF: PPP netif: Used allocated packet buffers of exact size for input to TCP/IP stack to consume less memory in download mode (compared to the previously used fixed sized packet buffers) (3b2a22f)
- ESP-NETIF: Updated the lost IP timer to trigger even if there was no valid address previously (e64712b)
- Examples: Adjust iperf example compiler optimization level from COMPILER_OPTIMIZATION to COMPILER_OPTIMIZATION_PERF to improve performance (104d50d)
- Examples: Updated and rename default TCP/UDP buffer sizes in iperf (77bcefb)
- Updated IP TTL value from 255 to 64. (15341d5)
Fixed
- DHCP Server: Fixed esp_netif_dhcps_option() API to fail when setting incorrect subnet mask (if the subnet mask is different from the interface ip_info) (7f0f299)
- DHCP Server: Fixed DHCP server pool configuration issue. (41ee651)
- DHCP Server: Fixed DHCP server bug ensuring pool range doesn't exceed subnet mask; verified server IP and subnet match. (f7ef577)
- DHCP Server: Fixed DHCP server's incorrect invocation of the hook
LWIP_HOOK_DHCPS_POST_APPEND_OPTS
(#11374) (fd8ed0d) - Fixed an issue where the getaddrinfo() was returning NULL when using an IPv4 mapped address (#9693) (8fe688c)
- ESP-NETIF: Fixed network interface list locking issue (#12261) (210f757)
- ESP-NETIF: Fixed Link speed to be set after connection is established in esp-netif (c5ec77d)
OTA
Changed
- App Update: Updated
esp_ota_revoke_secure_boot_public_key
to validate the new app and the bootloader before key revocation (eea2536) - Examples/Pre_Encrypted_Ota: Updated to newer API from esp_encrypted_img component (1fc1f7a)
Fixed
- Fixed
pre_encrypted_ota
example with partial OTA updates config for non-chunked encoding case. (ee43513) - Revised unnecessary initialization from read_header() functionality during OTA upgrade (e05455e)
- app_update: Avoid erasing an extra sector than the actual required size (#12460) (a5b9169)
- Fixed return code of esp_https_ota_finish API (7add372)
- Fixed undeclared variable (#12813) (796065f)
HTTP Client
Added
- Added support to set authentication data received in a custom header (e958498)
- Added support to use ECDSA peripheral to use ECDSA key stored in efuse (2b3418b)
- Added support for OTA using ds peripheral for TLS (bd0eac7)
Fixed
- Fixed to support OTA updates over TLS 1.3 (200cf10)
- Fixed esp_http_client example for potential out-of-bound access (#11775) (1a471f7)
- Fixed incorrect TCP configuration of TCP keep alive and interface binding for SSL transport (espressif/esp-protocols#322) (5f115cc)
- Fixed potential memory leak/crash in when handling error condition (c5ae121)
- Fixed issue while reading in async mode. (3ca40da)
HTTP Server
Added
Changed
- Http2 Request: Moved http2_request example to idf-extra-components repository (c3e5f05)
Fixed
Provisioning
Added
- protocomm: Added salt-verifier generation API in SRP6a implementation and make its interface public (821d82f)
Fixed
- Fixed example build failure with secure boot enabled case (c9282e7)
- Wifi Prov Mgr: Fixed memory leak after bluetooth stack was stopping. (08a21e3)
- Wifi Provisioning: Exposed events for secure session establishment and credential mismatch (ff024dc)
mbedTLS
Added
- Bignum: Added a hardware abstraction layer for the MPI peripheral (a8b6a70)
- Support ESP32-C2 mbedtls can use crypto algorithm in ROM (345565d)
- Added configurable option for setting interrupt priority levels for AES and SHA (dbc33ca)
- Added a new configuration option
MBEDTLS_ECP_FIXED_POINT_OPTIM
for mbedtls (eaca331)
Changed
- Updated mbedTLS to release v3.5.0 (fa1da64)
- Updated config to use
MBEDTLS_SSL_CID_TLS1_3_PAD_GRANULARITY
for CID padding (#12177) (a57c8dc) - Optimized heap allocation wrapper APIs by removing redundant
IRAM_ATTR
annotations, resulting in IRAM space saving (a93cdfb) - Updated the intermediate SHA state in the
mbedtls_shaX_update
API for ESP32 (48ead01)
Fixed
- [SHA]: Fixed hardware DMA mode issue of incorrect result for certain input data lengths (#11915) (6f5f7fd)
- Fixed the port for the
mbedtls_internal_shaX_process
API (48ead01) - Fixed incorrect assertion in the MPI H/W operation routine (#11850) (56f15ab)
- Fixed incorrect transmission of esp-aes APIs' return values and zeroising the output buffer in case of an error condition. (85b122b)
- Fixed build issue in dynamic buffer feature with
CONFIG_MBEDTLS_DHM_C
enabled case (e2a8413) - Fixed
mbedtls_ecdsa_can_do
definition when ECDSA_SIGN_ALT is defined but ECDSA_VERIFY_ALT is not defined. (360f551) - Allocate AES interrupt during AES operation initialization regardless of input buffer size. (e67e9cc)
- Fixed enable dynamic mbedtls will occur heap corruption when server support TLS renegotiation. (35e025f)
Bootloader
Added
- Added the possibility to ignore extra components at build time (0368aa5)
- Added bootloader description structure to read bootloader version from app (#8800, #9132) (bd1ac6a)
- Added support to enable Brown-Out-Detector in 2nd stage bootloader for ESP32-C2. This provides protection against power glitch kind of attacks. (4e3a32b)
- Added API to verify bootloader/app image before revoking the secure boot key. (eea2536)
Changed
- Updated
read_otadata()
API name tobootloader_common_read_otadata()
and made the API public (ca6d4a5)
Fixed
- Raised voltage for ESP32-C6, ESP32-H2 to increase stability (2308292)
- Lowered CPU frequency of ESP32-H2 to 64 MHz to increase stability (2308292) (https://www.esp32.com/viewtopic.php?f=13&t=34682&sid=63f95d73eb2ee22c44b72a93914a3666) (000b455)
- Fixed super watchdog not being automatically enabled at startup on ESP32-C3, ESP32-S3, ESP32-C2 (4e3a32b)
- Fixed the condition in startup to check signature block when
SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
is enabled for ECDSA_V2 case (5d9ebd2) - Fixed settings for BOOTLOADER_RESERVE_RTC_MEM feature for bootloader on ESP32-C6 and ESP32-H2 (6132abe)
- Fixed ESP32-C6 bootloader print wrong spi speed mode when SPI speed is configured to 80MHz (cbcddc8)
- Flash: Fixed OTA fail on octal flash with 32MB memory (fix requires updating bootloader version)
- Flash: Backup the USER2 register of SPI flash controller in
bootloader_flash_execute_command_common
(1438d9a) - Flash: Move SPI Flash config options that depends on bootloader into bootloader submenu to make them more obvious (d2d75ef)
ESP-TLS
Added
- Added config and API to set and get ciphersuites list in MbedTLS (b5055b9)
- Added support for TLS 1.3 connection in client mode (cba9237)
- Added the setter function to set the connection sockfd value (225be9a)
- Added the getter/setter functions for the esp_tls conn_state (225be9a)
- Added support to use ECDSA peripheral for a TLS connection (2b3418b)
Fixed
- Fixed using TLS 1.2 when
CONFIG_MBEDTLS_SSL_PROTO_TLS1_3
configured in menuconfig (aaa438a) - Fixed build issue with secure element and
CONFIG_ATECC608A_TCUSTOM
case (#11923) (29a4b05) - Track certificate check related failure error for cert bundle case (ef24dd3)
- Fixed issue in the DS peripheral case to release mutex from the owner task only (#11402) (1747f2e)
- Fixed missing header files in esp_tls_errors.h header file (692d15a)
ESP-MQTT
Added
- Added possibility to SUBSCRIBE to multiple topics (cf604c7)
- Added option to configure poll read timeout (cf604c7)
- Added support to bind to network interface (cf604c7)
- Added support to limit the outbox size (cf604c7)
- Added support to use a custom transport (cf604c7)
- Added support to set server common name (cf604c7)
- Added an option to select outbox data destination (cf604c7)
- Added subscribe_id in esp_mqtt5_event_property_t (cf604c7)
Fixed
- Fixed return when publishing QoS0 message while disconnected (cf604c7)
- Fixed flow control will increase count when send fragmented packet in mqtt5 (cf604c7)
- Fixed publishing allowing zero length payload in mqtt5 (cf604c7)
- Fixed formatting when using printf nano (cf604c7)
- Fixed flow control will regard the DUP packet and not consider PUBCOMP packet in mqtt5 (cf604c7)
Storage
Added
- NVS: Added function nvs_find_key and related host test case (#12155)
- Examples: Added an example for benchmarking storage media (SPI flash, SD card) IO speed in relation to using different file systems (or none at all) (ae34457)
- NVS: Added a key consistency check to
nvs_tool.py --integrity-check
option (6c83e63) - NVS: Added support for HMAC peripheral-based NVS encryption scheme (d00e7b5)
- Partition Table: Added new
readonly
flag which allows to define read-only partitions in a partition table CSV file (64befdc) - Sd-Card: Added warning for unsupported targets in SD-Card example (ab4ab45)
- VFS: Added support for multi-task UART select() call (e48ca24)
- VFS: Added
CONFIG_VFS_MAX_COUNT
Kconfig option to configure the maximum number of VFS drivers that can be registered (#10987) (690aa43) - esp_partition: Added read-only functionality to prevent writing and erasing data in read-only flagged partitions, doing so now returns
ESP_ERR_NOT_ALLOWED
(64befdc) - FATFS: Added Kconfig option to enable automatic immediate f_sync to any action on fatfs that changes size of file, this should improve size reporting, but may have adverse effects on performance (0024867)
- NVS: Added
nvs_entry_find_in_handle
to iterate over a namespace handle (#11118) (352e759) - VFS: Added NULL checks when calling
console_start_select
,console_end_select
andesp_vfs_select
functions to prevent system crash in a certain situation. (c212305) - Added LittleFS demo example (02f5b9a)
- UART: UART_SELECT_WRITE_NOTIF event added in UART driver (3fca9b7)
- NVS: Added function nvs_find_key and related host test case (#12155) (985cc93)
- Examples: Marked storage-related examples as supported on ESP32-C2 (8f79c54)
Changed
- NVS: Changed nvs_get_stats to return available_entries showing number of entries available for data storage (excluding reserved space) (db43088)
- SD: Updated SD card troubleshooting notes in readme.md (1d5dbb8)
- NVS: Changed implementation of nvs_page host tests (4c8c5de)
- VFS: Updated event_write function to have balanced critical sections. (#12258) (9d0b39c)
- Wear Levelling: Changed host tests build system to Cmake (d8b8ab5)
- Wear Levelling: Revamp variable names and update code documentation for wear levelling component (9735e61)
- VFS: move tests from unit-test-app to a component test app (668521d)
Fixed
- C File IO Api:: Files on a filesystem partition flagged as
readonly
can only be open in read-only modes. See more in documentation:API Guides -> Partition tables
(64befdc) - FATFS: Fixed FATFS lock-up when trying to write to a read-only filesystem (#12052) (af79a47)
- FATFS: Fixed
open
failure withO_CREAT|O_WRONLY
flags (#1817) (81d814b) - NVS: NVS partition flagged as
readonly
in the partition table can only be open inNVS_READONLY
open mode (64befdc) - NVS: Fixed test case issues reported by ASAN (#11117) (2a28061)
- NVS: Fixed test case warnings related to sprintf (#11116) (6da2eb9)
- NVS: Fixed nvs_set_* behaviour when mixing data types for same key. Function now overwrites the existing value regardless of its data type (#11062) (c50dfa2)
- Nvs Flash: Fixed documentation related to handling of NVS keys and data types (c50dfa2)
- VFS/UART: Fixed an issue that might lead to a crash when opening a UART port that doesn't exist (ff20794)
- Wear Levelling: Fixed reinitialization of wl status block after mismatched crc (d8b8ab5)
- esp_partition: Exposed esp_partition_unload_all() function which unloads partitions at runtime (#12625) (6fcfe37)
- FATFS: Fixed esp_vfs_fat_spiflash_format_rw_wl function always formatting the first partition (number 0) (#12542) (e089cb3)
- VFS/UART: Added VFS UART select callback in IRAM when UART ISR is placed in IRAM (004e937)
- VFS/UART: Fixed uart malloc when locates ISR context in IRAM (b780287)
Tools
Added
- Added ESP-IDF PATH order check on Windows platform (d78d008)
- Added option for generating menu labels in minimal kconfig (#10358) (44fcbe2)
- idf_tools.py: added support for renaming downloaded files with the
rename_dist
key intools.json
(ad1a920) - Added customizable keystrokes for IDF monitor (#7184) (aa9f81c)
- Added QEMU version esp-develop-8.1.3-20231206 ( 2472c62, aefe072)
- Added shellcheck tests for
install.sh
andexport.sh
(b608726) - Added Chinese dl.espressif.cn IDF_GITHUB_ASSET to documentation (f28daac)
- Added Windows-ARM64 support (#10345) (e2b262f)
- Added support for argument expansion in
idf.py
via@filename
(#11821) (7fdf25e) - Added a help message (-h, --help) option to the install scripts (#11231) (983987d)
- NVS: Added (...)
) which generates an NVS partition using
nvs_partition_gen.pyand the created image is optionally flashed to device during
idf.py flash` (#11926) (42ac85a) - Made the gcov dump task size configurable (16be3a1)
- hints: added guide to fix error with unsupported
asyncio
(15c4b93) - esptool: added support for forcing chip flashing (a05b306)
- Docker: Allowed to set git's safe.directory with IDF_GIT_SAFE_DIR environment variable (#12636) (60e439d)
Changed
- Python 3.7 is no longer supported by the community, therefore, ESP-IDF installations will require Python 3.8 or newer versions (4bbc57c)
- Improved esptool
@flash_args
command print format for compatibility with PowerShell (fbc31c8) - Improved error message showing when using
idf.py
and the working directory was deleted (#11476) (99772e6) - Moved kconfig checks to standalone tool in
esp-idf-kconfig
package (#10872) (81804be) - Refactored
export.sh
to keep it compatible with BourneShell (#12247) (0c2decc) - Updated ninja 1.10.2 -> 1.11.1 (https://github.com/ninja-build/ninja/releases/tag/v1.11.1) (ad1a920)
- Upgraded to Ubuntu 22.04 LTS in the ESP-IDF docker image (#12046) (ba8c181)
- Improved the flashing instructions printed after "idf.py build" (#11181) (782acb1)
- Upgraded OpenOCD version to v0.12.0-esp32-20230921 (3402629)
- Upgraded gdb version to 12.1_20231023 (0d8ca93)
Fixed
- Docker: Allowed access to ESP-IDF repository to non-root users (#12389) (bcf2ef7)
- Clarified the flashing ports and possible errors in the getting started guide (#12366) (91da72e)
- Fixed ZSH autocompletion for the
--port
option (#7970) (3f88247) - Fixed
idf.py gdb
failure due to line endings in gdbinit file (#12052) (af79a47) - Fixed inconsistency between export paths in Powershell and Command Prompt on Windows (#9849) (e228453)
- Fixed waiting on gdb process when interrupted with CTRL+C (#11871) (f4a1567)
- Creating project or component with idf.py now preserves the file mode of ESP-IDF files (#11836) (c5b3551)
- Ensured the presence of the curses library module within the environment (#11643) (88f18aa)
- Fixed passing the right chip revision for IDF Monitor in order to avoid using the default 0 rev for other chips than ESP32 (4c71322)
- ldgen: Fixed compatibility with
pyparsing>=3.1.0
as well (7edf6f1) - idf.py flash: Fixed the last line newline for progression output and condense the output (0de9dab)
- Fixed hints processing in interactive mode (4c9fcce)
- Enabled libstd++ to use ESP-IDF posix-semaphores implementation (e634137)
- Set uninitialized IDF_ADD_PATHS_EXTRAS variable in UNIX-based export scripts (#11296) (77f8aa2)
- Enabled hints for IDF Monitor and fix ANSI color issues on Windows (1bf382a)
- coredump-info: set default gdb timeout to 3 seconds (3ab9a2f)
- Removed unused gdp_panic_server and replaced it with new esp-idf-panic-decoder package (2166d91)
- idf_tools.py: fixed execution of empty command in get_version() (8eaa598)
- python_dep_check: replaced deprecated pkg_resources with importlib (6fd4974)
- coredump-info: fixed non-default partition table offset issues (5fca973)
- Fixed init.bat crash in windows when folder contains Unicode characters (2ab0941)
- Fixed control characters print if hints enabled (072b70b)
- Fixed print filter environment variable for IDF monitor (026fb6e)
- fatfsparse.py: Fixed compatibility with construct==2.10.70 by handling StringError when Unicode decoding error happens (aba5fdc)
- Coredump-info: Port detection is avoided when core file is specified (#12673) (a36d8bc)
- Fixed build failure if CMAKE_EXECUTABLE_SUFFIX is set (#12558) (f41d1b0)
- Fixed detection of raw coredump files by idf.py coredump-debug command (#10852) (23e7663)
- Docker: Added IDF_CLONE_SHALLOW_DEPTH docker image build argument (#12637) (17f2bce)
- Opt for the recommended tool listed in tools.json rather than the supported one (1765497)
- Fixed path delimiter in gdbinit for Windows (#12683) (5b11097)
Toolchain
Added
- Added linux-i686 support for the esp32ulp toolchain (#11561) (b9cc4f0)
- Updated Clang toolchain to esp-16.0.0-20230516 (d4e1935)
- Updated GNU toolchain to esp-13.2.0_20230928 (2585e53)
- Added support for Clang's toolchain compiler-rt (d4e1935)
Build & Config
Added
- Added initial and current versions of ESP-IDF into kconfig files (60a7b72)
Changed
- Changed C++ standard to C++23 (#11025) (d82eb69)
- Improved diagnostic messages related to
git_describe()
(#9071) (c74c185)
Fixed
- Fixed project names with dots in an app binary name (267e52a)
- Replaced attribute
noreturn
by__noreturn__
in header files (#11339) (c291b6a) - Replaced
ADDITIONAL_MAKE_CLEAN_FILES
withADDITIONAL_CLEAN_FILES
(3947688) - Fixed checking for the target conflict when the mapping entries use section aliases (b790f0a)
Removed
- Removed non-existent directories from chip-specific CMakeLists.txt in esp_hw_support (#12700) (56a6cad)
External Libraries
Changed
- Console: Changed vt100 terminal detection timeout from 300 to 500 ms. (1bf382a)
- COAP: Moved coap_client and coap_server example to idf-extra-components repository (f2f5b41)
- Updated cJSON version to v1.7.17 (9699f27)
Fixed
Examples
Fixed
- Protocols: Fixed encoding issue in esp_local_ctrl's proto script (5f74ed7)
Documentation
Added
- Flash Encryption: Added documentation regarding enabling of flash encryption feature externally with help of the espefuse tool. (62634fc)
- Security: Added documentation for host based workflow to enable secure boot externally (b8a8dfe)
- Added configuration for Vale linter (d6a5d55)
- Added showing of include path and
REQUIRED
component for API-Reference header files (d27dd4d) - Added links to gdbstub in JTAG debugging section (acc04fc)
- Added documentation about two third-party tools, VisualGDB and CLion (ddcb5f6)
- Fixed the docker flashing command issue in docs (#12060) (5f74dd2)
- Added the Bluetooth Overview document into API Guides (d8b34c7)
- Added documentation for the compatibility between ESP-IDF version and chip revisions (026c155)
- Added power save docs. (0ac1ee4)
- Added description for decoding ROM code addresses with esp-idf-monitor (30672c7)
- Added a chapter to describe how to measure the current of a module in the deep-sleep mode (6044188)
- Added description related to thread safety to component/log/readme (2c24513)
- Added documentation for the approach of fatfsgen.py and fatfsparse.py in the 'fatfsgen.rst' (248dadc)
- Added C++ std::jthread limitation (3010fd3)
- Added more information about which GPIOs can be used to wake up the chip (ESP32-C3/ESP32-C2/ESP32-H2) from Deep-sleep mode (0bfffa0)
Changed
- Iperf: Update documentation with console interface details (a7bd04b)
- Updated dedicated GPIO doc with esp32h2 specific content (e1b6713)
- Improved the the docker instructions by creating files owned by the calling user instead of the default root (#11987) (3adee7e)
- Updated chip revisions to follow ESP32-C3 errata (#11743) (b10e699)
- Reorganized the section order of Sleep Modes documentation (c5d4abf)
- Updated installation prerequisites for Ubuntu and Derian system (7e5d3fb)
- Updated JTAG documentation with the IDF Eclipse Plugin ESP-IDF GDB OpenOCD Debugging functionality (24525c3)
- Updated the hardware setup connection description in ESP32-S2-DevKitC-1 user guide (a154a93)
- Synchronised contribution agreement to match the one in CLA Assistant (149fc60)
- Updated custom bootloader example readme to better match program output (#11163) (c4e3529)
- Updated the ESP-NOW frame length in docs (deab8d3)
Fixed
- Fixed hard-coded HW breakpoints/watchpoints number (3b23dc8)
- Fixed ESP-TLS chapter for correct instructions to clone
esp-wolfssl
repository (#11602) (819bbeb) - Fixed wrong link to esp-adf github issues in migration guide, should link to esp-idf issues. (#11326) (ffdea97)
- Get-Started: Fixed a syntax error in get-started/start-project (b5bc966)
- Hardware Reference: Fixed typos in ESP32 DevKitC V4 Getting Started Guide (8a7ce45)
- Fixed documentation to correctly state NAN support on ESP32 and ESP32-S2 (f04854b)
Removed