ESP-IDF Release v4.4.8
Documentation for IDF v4.4.8 is available at https://docs.espressif.com/projects/esp-idf/en/v4.4.8/
ESP-IDF v4.4.8 is a bugfix update for ESP-IDF v4.4 and also the last bug fix release of ESP-IDF v4.4. According to ESP-IDF Support Period Policy, ESP-IDF v4.4 release branch reached end-of-life in July 2024. With EOL, new features, bug fixes, and security fixes will no longer be supported on this branch. Customers who are currently using ESP-IDF v4.4 release branch are encouraged to upgrade their projects to more recent ESP-IDF releases, such as ESP-IDF v5.x.
Obtaining v4.4.8
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 v4.4.8 --recursive https://github.com/espressif/esp-idf.git esp-idf-v4.4.8
cd esp-idf-v4.4.8/
This is the recommended way of obtaining v4.4.8 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v4.4.8.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/v4.4.8/esp-idf-v4.4.8.zip
Changelog
This is the list of changes since release v4.4.7.
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 ( a4eb486)
- Added API to get low power clock source on ESP32C3 and ESP32S3 ( 7731658)
- Added BLE scan backoff config in menuconfig on ESP32 ( a4eb486)
- Support sending disconnection command again if the disconnection procedure is on-going on ESP32 ( a4eb486)
Changed
- Controller: Optimized BLE notify and write throughput performance on ESP32. ( 7c2922a)
Fixed
- Fixed assert when starting advertising due to preemption on ESP32-C3 and ESP32-S3. ( 79e71e0)
- Fixed RPA generation after each reboot on ESP32-C3 and ESP32-S3. ( 79e71e0)
- Fixed RPA renew timer start and stop on ESP32-C3 and ESP32-S3. ( 79e71e0)
- Fixed BLE scan backoff on ESP32 ( 4a69a88)
- Fixed BLE coex assert on ESP32 ( c1f02f6)
- Fixed BLE DTM status and TX count error on ESP32 ( c1f02f6)
- Use embedded assembly to get access to DPORT registers on ESP32 ( a4eb486)
- Fixed BLE scan assert on ESP32 (#8532) ( a4eb486)
- Fixed BLE assert when receiving packet on ESP32 ( a4eb486)
- Fixed extend uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3 ( a4eb486)
- Clear random address for extended advertising on ESP32-C3 and ESP32-S3 ( a4eb486)
- Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3 ( a4eb486)
- Fixed HCI command status event send when LLCP busy on ESP32 ( 5bd00ec)
- Fixed HCI command status event sending for disconnection command on ESP32 ( 5bd00ec)
- Fixed LE transmitter test command parameters check error on ESP32 ( 5bd00ec)
- Fixed memory leak issue when BLE SCAN and other BLE events coexist on ESP32. (#13747) ( 7c2922a)
- Fixed BLE connection timeout issue after using DTM on ESP32. ( 7c2922a)
- Fixed assert issue caused by DPORT access on ESP32. ( 7c2922a)
ESP Bluedroid Host
Added
- Added support for setting BLE privacy mode for peer devices. ( d84b40d)
- Supported adding BLE device to resolving list ( 29221d1)
- Supported creating BLE static random address and NRPA ( 29221d1)
- Supported setting resolvable provate address timeout by api ( 29221d1)
- Added bluerooth hci layer data stream record ( 5c8b63c)
- Added APIs for BLE direct test mode ( 5c8b63c)
- Added api to send vendor hci command ( 5c8b63c)
Changed
- Optimized BLE SPP example for improved compatibility ( 29221d1)
- Optimized BLE documentation comments to comply with Doxygen syntax ( 29221d1)
- Optimized the BLE documentation ( 29221d1)
- Updated maximum BLE reconnection attempts configuration ( 8247e0b)
Fixed
- Example: Use correct struct type in discover service complete event ( 5bd00ec)
- Fixed BLE GATT max length of an attribute value ( 29221d1)
- Fixed BLE appearance category ranges (#13626) ( d1f549f)
- Fixed ADV do not restart due to disconnection reason 0x3e ( 5c8b63c)
- Fixed crash when calculating GATTS database hash ( 5bd00ec)
- Fixed "report" typo in esp_ble_gap_ext_adv_reprot_t ( 5bd00ec)
- Fixed BLE crash when repeatedly iniitialize and deinitialize host ( c4ce15b)
- Fixed BLE periodic advertising create sync parameter check ( c4ce15b)
- Bluedroid: Fixed the issue where the BLE data length change event was not triggered when the packet length was modified on the other connected device. ( d1c8a1d)
ESP NimBLE Host
Added
- Added ble_host_rpa_enabled flag for address resoultion for esp32 ( cfb86ec)
- Added API to get resolve ADV data ( 799e503)
- Added change to start readvertising for disconnect with 0x3E code in slave mode ( 1424b2b)
- Added support for data length change event ( 74767e9)
- Created separate API to only extract cb info ( 3168c79)
- Added APIs to handle vs HCI commands and events ( ff9db0d)
- Added support for deleting the oldest bonded device across reboot ( 718cdd6)
- Added the check to prevent address resolution in case of identity addr for esp32 ( 407795d)
- Expose API to set RPA timeout in stack. ( 370636b)
Changed
- Changed 'move_count' to uint8_t type to fix compilation issue in nimble for -O2 flag. ( 7a00499)
- Increased range of reattempt connection count ( 29f9259)
- Improved find conn by ble_addr_t function ( fdfe99c)
- Updated help sections for BLE_RPA_TIMEOUT config. ( c93a15c)
Fixed
- Fixed compilation issues when CCCD is set to 0 ( 96db015)
- Fixed for CVE-2024-24746 vulnerability ( caa1e63)
- Set correct peer_addr during reattempt connection ( fadb408)
- Simplify reconnection code ( b65ac34)
- Handled missing free in ble spp example ( 3193203)
- Fixed dangling pointer error during compilation (#12491) ( 6f4ff9b)
- Fixed type in blehr/README (#13034) ( f2d72fe)
- Authorize or deauthorize a BLE device for a connection ( 0eb7ad2)
- Fixed memory leak during reattempt adv data usage ( fd916b3)
- Copy data correctly into reattempt buffer ( fd916b3)
- Explicitly NULL assign adv data pointer after free. ( fd916b3)
- Reserve space for one extra ext adv packet ( fd916b3)
BluFi
Fixed
- Fixed BluFi module link error(C++ hybrid compilation) ( 5bd00ec)
ESP-BLE-MESH
Fixed
- Fixed potential deadlock during mesh GATT initialization when using Bluedroid Host ( a94dcb9)
- Fixed the struct initialization to meet C++ requirements for BLE Mesh stack ( 29efc96)
- Fixed the struct initialization to meet C++ requirements for BLE Mesh examples ( 29efc96)
Classic Bluetooth
Classic Bluetooth Bluedroid Host
Added
- Added description of use limitations of security masks in SPP API document ( 6cb955e)
Changed
- Unify the conversion of error code between HCI status and esp_bt_status_t constants( e1f8314)
Fixed
- Fixed the HID Host inner error state caused by repeat connection of the same device ( 22dd4ba)
- Fixed inconsistency of connection initiator state for HID Host open event ( 22dd4ba)
- Fixed the HID Device inner error state caused by the failed connection ( 22dd4ba)
- Allocate memory for control block of HFP Audio Gateway in its initialization when dynamic memory is enabled ( be2fba6)
- Fixed SPP crash due to the connection not being disconnected before
esp_spp_deinit
was called ( e83ed8b)
Classic Bluetooth Controller
Fixed
- Register coexist functions into Bluetooth controller on ESP32-C3/ESP32-S3 ( a4eb486)
- Fixed assert 1024 issue when Classic Blueooth TX and Wifi coexist on ESP32 ( 4a69a88)
- Fixed the error in parsing packet_type argument for HCI_Enhanced_Setup_Synchronous_Connection, which causes acception of eSCO EDR packet types when they are configured not to be used ( 4a69a88)
- Fixed the incorrect timing in reporting HCI_Link_Key_Type_Changed event on ESP32 ( efcbfbe)
- Fixed the incorrect initialization vector during resuming encryption on ESP32 ( efcbfbe)
- Fixed incorrect link key returned from HCI command HCI_READ_STORED_LINK_KEY on ESP32 ( efcbfbe)
- Fixed crash issue when doing Bluetooth deinit in coexistence scenario on ESP32. ( dc35452)
- Fixed invalid transmission of LMP_MAX_POWER PDU in case that peer device is expected peer to increase TX power to maximum on ESP32. ( dc35452)
- Fixed incorrect link key returned from HCI_rd_stored_link_key command on ESP32 ( 2146569)
- Fixed the assert triggered during APB TX on ESP32 ( 2146569)
- Fixed role switch LMP collision bug on ESP32 ( 2146569)
Bluetooth Common
Added
- Added an option to make alarm number configurable ( 5510aab)
- Fixed missing linker generated symbols in using esp_bt_mem_release when
ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY
is enabled (#10427, #11377) ( 9160abc)
Bluedroid
Fixed
- Fixed controller using null pointer after bluedroid deinit ( 0f65165)
Controller
Added
- Added compile options
-ffunction-sections
and-fdata-sections
when building libbtdm_app.a, to allow to reduce code and data from executable on ESP32 ( 5c5ab4b)
Fixed
- Apply only necessary patches for Bluetooth controller ROM code according to Bluetooth mode on ESP32 in order to reduce IRAM consumption and binary size ( 5c5ab4b)
PHY
Changed
- Updated ESP32-S2 PHY version to 2500, 8368a9b, Mar 21 2024 ( 1fda281)
- Updated ESP32-C3 PHY version to 1170, f4aea9b, Apr 30 2024 ( b2bc7b1)
- Updated ESP32-S3 PHY version to 670, b7bc9b9, Apr 30 2024 ( b2bc7b1)
Fixed
- Fixed BLE coded PHY S8 packet TX issue in coexistence scenarios on ESP32-C3 and ESP32-S3. ( 309ffa5)
Wi-Fi
Changed
- Updated the LMK description in ESP-NOW documentation (#12976) ( 7bc1137)
- Updated scan AP number when clear scan AP records ( 6ec1935)
Fixed
- Fixed a memory leak issue in WPA3-SAE. ( 509c4c2)
Wi-Fi MAC
Changed
- Updated FTM PHY Compensation values ( ea45a64)
- Improved Wi-Fi connecting success rate at coexist scenario ( 9dce0a4)
Fixed
- Fixed ESP32 unrecoverable "m f" issue ( c0e0af0)
- Fixed FTM failures with external AP while connected with 40MHz bandwidth ( ea45a64)
- Fixed issue that `esp_wifi_set_mode()` not returning error for invalid argument ( 58c7816)
- Fixed AMPDU compatibility issue for some AP ( 58c7816)
- Fixed sporadic crash arising out of concurrency issues in functioning of DPP module ( e1affdc)
- Used low rate to send DHCP offer and DHCP ack to avoid get IP fail ( 58c7816)
- Fixed QoS encapsulated EAPOL issue ( 58c7816)
- Limited the number of sub AMSDU frame ( 58c7816)
- Fixed crash issue during WiFi connect when AMSDU TX enabled ( 58c7816)
- Fixed multicast address QoS frames issue ( 58c7816)
- Fixed task watchdog got triggered by
esp_wifi_stop
issue ( 58c7816) - Fixed scan get AP number issue ( 58c7816)
- Fixed issue in decryption of ESP-NOW packets for esp32 and esp32s2 when station disconnects from PMF AP ( d98ba8b)
- Fixed STA scan when connected to AP cause loop beacon timeout issue ( ed01a2a)
- Refactor code and fixed multiple FTM issues ( d07bdc7)
ESP-WIFI-MESH
Fixed
- Fixed the TX issue when mesh lifetime remain equal to zero ( a323398)
- Waited for child disconnect event when mesh deinit ( 6ec1935)
Wi-Fi Supplicant
Changed
- CVE-2023-52160 Updated phase2 requirement for WiFi PEAP authentication to required when client cert/private key is not used . ( 5452195)
Fixed
- Fixed a memory leak that occurs when the SAE connection is interrupted. ( 1558b05)
ESP Vendor Feature
Changed
- Changed the magic variable from int to uint32_t on the receiving side (#10912) ( 7cd8242)
- Updated the documentation for the use of sniffer APIs (#10740) ( 7cd8242)
Coexistence
Fixed
- Fixed the issue that BLE do not update SCAN status correctly for coexistence module on ESP32C3 and ESP32S3. ( 79e71e0)
- Fixed circular dependency issue on esp32 (#13113) ( fac1a07)
- Fixed the loss of coexistence request event during sniff transition process due to insufficient of message queue length, which causes Bluetooth link disconnection in case of wireless coexistence on ESP32 ( 5bd00ec)
- Cleared sniff state in coexistence scheme when no connections exist ( 5bd00ec)
Ethernet
Fixed
- Fixed reset timing of IP101 to align with datasheet. ( 093f045)
Peripheral Drivers
Fixed
- GPIO: Fixed uncorrect drive capability of some IOs on ESP32C3 and ESP32S3 ( 6c3f8c2)
- I2C: Fixed timeout being overwritten when starting an I2C transfer (#4999) ( 88b9c71)
- SDMMC: Fixed initialization process for certain cards in SPI mode (#6686, #10542) ( 30f96ff)
- UART: Fixed inconsistent number of UART wakeup rising edges required with the threshold value configured on ESP32S2 and later chips (#12586) ( 8f44525)
- USB Host: Fixed a bug in the USBH layer where multiple concurrent events on the same device would result in some of those events being dropped. ( 0241b95)
System Hardware
Fixed
- Fixed watchdog timeout issue when doing bbpll calibration on ESP32-S3. ( 894a0d5)
Core System
Changed
- 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) ( 8643854)
Fixed
- Heap: Fixed size propagated to allocation failed hook in heap_caps_calloc() ( be6cf38)
- Log: Fixed incorrect argument type in hexdump log functions (#13347) ( fc56e0e)
- Console: Fixed missing fsync propagation to secondary output when CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is enabled (see #13162) ( 834ae1c)
Debugging
Fixed
- GCOV: Fixed unhandled exceptions when GCOV enabled ( 1e9c933)
Toolchain
Changed
- Upgraded openocd version to v0.12.0-esp32-20240318 ( c902eac)
Low Power Features
Power Management
Fixed
- Fixed Fast Memory and Slow Memory may lost in sleep modes on C3/S3 ( 8df220e)
- Fixed a bug where using XTAL as the clock source for the watch dog timers would trigger a watchdog timeout immediately after waking up from light sleep. ( 1e877f6)
- Fixed the issue of modem hang caused by incorrect configuration of power and isolate signals in modem domain ( 5017ec0)
LWIP
Fixed
- esp_netif: Fixed memory leak caused by mdlv6 report timer creation ( 822fbc2)
App Utils
Fixed
mbedTLS
Changed
- Updated MbedTlS version from 2.28.7 to 2.28.8 ( 6b60008)
Bootloader
Added
Storage
Changed
- NVS: Improved NVS initialisation by extending consistency check of multi page BLOBs ( d2bc43f)
Fixed
- NVS: Fixed race condition during Lock class initialisation ( d2bc43f)
- NVS: Fixed buffer overrun in nvs_get_blob when reading from NVS partition containing inconsistent multi page BLOBs ( d2bc43f)
Tools
Added
Fixed
- The ESP-IDF version is acquired only from the version or header file (#13385) ( 2a4923f)
- Fixed Access Violation Error on Windows with Python 3.12 (#13232) ( 0b75989)
- Fixed return codes in BAT scripts ( cebb1b3)
- idf.py: Avoid crashing when trying to use Git to acquire the ESP-IDF version (#13345) ( a7a18f4)
Documentation
Fixed
- SPI Flash: Correct the default enable state of
Flash Auto Suspend
in the programming guide ( 0036aaa)