Releases: espressif/esp-idf
ESP-IDF Pre-release v5.4-beta1
Documentation for IDF v5.4-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.4-beta1/
ESP-IDF v5.4-beta1 is a preview release for ESP-IDF v5.4.
Obtaining v5.4-beta1
For full installation instructions, see the ESP-IDF Programming Guide.
The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:
Using git
To get this release, use the following commands:
git clone -b v5.4-beta1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.4-beta1
cd esp-idf-v5.4-beta1/
This is the recommended way of obtaining v5.4-beta1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.4-beta1.zip
archive. It includes .git
directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.
This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.4-beta1/esp-idf-v5.4-beta1.zip
Major changes
This is the list of changes since release v5.3:
Major New Features
- Wi-Fi: Supported ESP32-C2 chip rev2.0 Wi-Fi(e43ded7)
- Wi-Fi: Added FTM calibration values for ESP32-C6 (e990d1e)
- Wi-Fi: Supported lower coexistence power consumption when Wi-Fi disconnects from AP (5a5c004)
- ESP Bluedroid Host: Added support of Cover Art feature in AVRCP Controller (cda2846)
- ESP Bluedroid Host: Added support of Device Identification Profile (ca05aa5)
- Bootloader: Added mocks for bootloader_support component (90cc261)
- Power Management: Added support for PSRAM retention in light sleep on ESP32-P4(82e76ab)
- Peripheral Drivers: Added support for sleep retention of several peripherals in light sleep on ESP32-C6 and H2
- ULP: Added LP core debugging support (a07eed6)
- I2C: Support lp i2c instance on ESP32-P4 (ec3029e)
- ISP: Support a series of ISP features on ESP32-P4
- LCD: Added i80 LCD driver support on ESP32-P4 (fdd90d4)
- Touch Sensor: Touch Driver-NG on ESP32-P4 (c23165b)
- MbedTLS: Support ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (9a47de5)
- System Hardware: Supported ESP32-C2 chip rev2.0 (e43ded7)
- PSRAM: Supported APS3204L (cb9f474)
- Thread: Supported Thread Radio Encapsulation Link (TREL) feature (d1ef423)
Breaking Changes
- Core System: Renamed
__VA_NARG__
and its macros to be prefixed withESP_
, i.e.__VA_NARG__
toESP_VA_NARG
to avoid naming collisions. If using these then update to use the new name. (bb8fa93) - Security / ESP Cert Bundle: Due to changes in the certificate bundle format to reduce RAM usage, the use of pre-generated certificate bundles using the older format would now be incompatible with the newer application binaries. You now need to either use the default ESP-IDF build system method for attaching the certificate bundle while building applications or update your pre-generated certificate bundle binaries by generating them using the latest gen_crt_bundle.py script. (fa4c387)
- SDMMC: Function
sdmmc_host_init
no longer returnsESP_ERR_INVALID_STATE
when the SDMMC host is already initialized, now it returnsESP_OK
. (d1571c1) - SPI Flash: Removed XMC-C suspend support because there is risk that erase operation might never finish (121a272)
- Wi-Fi: Removed the definition of the "WIFI_BAND_2G_5G" field in "wifi_band_t". (7b5014a)
- ESP Bluedroid Host: Added new Kconfig option to enable SDP APIs and remove the dependency of SDP on L2CAP Kconfig option
- LWIP / PPP: PPPoS internal callback function has incompatible prototype. Please use
esp_netif
API or update your function callbacks. (d4f60fe)
Known Issues
- BLE: An BLE assert may occur in the function
r_ble_lll_rxbuffer_free_all
under low-memory conditions on ESP32-H2. - For ESP32-C2 ECO4 chips, wifi_scan_threshold_t in wifi_sta_config_t structure is invalid.
- For ESP32-C2 ECO4 chips, when the country policy is set to WIFI_COUNTRY_POLICY_AUTO, the station will not scan for channels outside current country rules.
- Power Management: In light sleep mode, rejecting sleep due to a short duration can introduce an RTC clock error, causing
esp_timer
inaccuracies and potential Bluetooth disconnections. - For ESP32, Bluedroid Host memory leaks when HFP client or AG is enabled using HCI audio datapath.
Known issues are planned to be fixed before the final v5.4 release.
Changelog
802.15.4
Added
- Supported the large scale size of pending table (8aacb78)
- Added a frame length check for the transmission frame (c7d15c1)
Changed
- Refactored the
next_operation()
logic to avoid some risks when multiple IEEE802154 events are processed in one ISR (c7d15c1) - Ignored the bit8 of the frame length (83eaef8)
Thread
Added
- Supported openthread time sync feature on both RCP and BR (2ca453d)
- Supported changing openthread version information (93c32d4)
- Added a task switching lock holder check (e42b95d)
- Supported Thread Radio Encapsulation Link (TREL) feature (d1ef423)
- Enabled vendor hooks for rcp operating in SPI mode (b835986)
Changed
- Replaced NETCONN_EXT_RESOLVE_HOOK with DNS_EXT_RESOLVE_HOOK to support more application layer protocols (4d4062a)
- Made ot task queue sending non-permanent blocking (9f1f285)
- Updated CONFIG_LWIP_IPV6_NUM_ADDRESSES to 12 in Thread BR lib (9f1f285)
- Updated openthread submodule (f32c18b) (ad8f175)
- Moved the registration of UART VFS devices to UART initialization function (9e5e1f0)
Application Utilities
Added
- ESP HTTP Client: Added new http method REPORT (beda3dc)
- Added HTTP Code 413 support in esp_http_server (#13746) (245ec91)
- Added config option to set timeout for posting events in esp_http_client, esp_http_server, esp_https_server and esp_https_ota (9294914)
- ESP HTTPS OTA: Added API to retrieve the most recent status logged from the HTTP response. (fe47676)
- Provisioning: Added an event that triggers a blocking callback to allow users set advanced WiFi configurations (2f0dc01)
- Provisioning: Added support for Notify attribute in provisioning service (0f11052)
- Provisioning: Added support for ESP IP SoC to work with bluedroid stack (6e5414b)
- Provisioning: Added API to keep BLE on after provisioning. (5b56ff6)
Changed
- Provisioning: Exposed API to set BLE random address (07e377c)
Fixed
- Fixed issue with PUT requests with async handler (#14196) (940578f)
- Fixed build errors when only TLS 1.3 is enabled (3aaac6c)
- Fix mass_mfg tool for supporting u64/i64 types (#14159) (1c351e5)
- Fixed allocating
if_name
in client context multiple times (#13945) (f0781c4) - Fixed memory leaks in HTTPS Server initialization (ade6a5e)
- ESP HTTP Client: Fixed connection close condition check for a case where no explicit
errno
is set (#14724) (95145c3) - Provisioning: Fixed incorrect input decoding when using console transport (8b4a712)
Bluetooth Low Energy (BLE)
Added
- Documentation: Added BLE Getting Started Tutorials (Chinese version) to Espressif Programming Guide, including BLE Introduction, Device Discovery, Connection, and Data Exchange. (a11aa9c)
- Documentation: Added BLE Features Support Status to API Guides (782b8f0)
- Documentation: Added BLE major feature support status page to API Guides (9dba818)
ESP Bluedroid Host
Added
- Added BLE connection ID parameter for
ESP_GATTS_RESPONSE_EVT
. (1a065dc) - Added support for retrieving the BLE address type within the bond list(#13872). (8971902)
- Added print and assert statements for memory allocation failures. (707dd9b)
- Added support for BLE 5.0 instances in related events (25f0713)
- Added definitions for BLE authentication failure reasons. (83cda5c)
- Added the check for setting BLE advertising parameters when deleting GATTS services. (27f06be)
Changed
- Optimized BLE example for setting advertising data. (cd11782)
- Optimized documentation for BLE connection parameter updates. (368cfda)
- Optimized BLE event reporting time for connection failures (33b3408)
Fixed
- Fixed error when writing Client Supported Features characteristic. (1ba647d)
- Fixed BLE handle check for GATT API. (2381487)
- Fixed access fault when reading BLE controller information fails. (1a065dc)
- Check whether the work queue is NULL before deleting it when creating thread failed. (f54e1a8)
- Fixed memory out-of-bounds issue when parsing ADV data. (6a2bc24)
- Report HCI error status to application when command fails. (ba4e111)
- Fixed incorrect state issue when unregistering BLE GATTC application. (d371677)
- Cancelled the BLE connection initiation if the connection has already been established when both devices initiate a connection simultaneously. (b24dd77)
- Fixed the issue where BLE could not create a connection if the controller doesn't support the coexistence of scanning and connection initiating states. (2c44bb7)
- Reset BLE security parameters during initialization (#13869) (54da445)
- Fixed BLE security vulnerability when using fixed local IRK. (43af0fb)
- Display BLE controller init status for ESP32 and ESP32-C3/ESP32-S3 (705c21d)
Removed
- Removed error print when failing to remove a device from the resolving list. (83cda5c)
Bluetooth Low Energy Controller
Added
- Supported using exte...
ESP-IDF Release v5.1.5
Documentation for IDF v5.1.5 is available at https://docs.espressif.com/projects/esp-idf/en/v5.1.5/
ESP-IDF v5.1.5 is a bugfix update for ESP-IDF v5.1.
Obtaining v5.1.5
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.1.5 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.1.5
cd esp-idf-v5.1.5/
This is the recommended way of obtaining v5.1.5 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.1.5.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.1.5/esp-idf-v5.1.5.zip
Major changes
This is the list of changes since release v5.1.4:
Major Features
- Support was added for ESP32-C2 revision 2.0
Changelog
802.15.4
802.15.4 MAC
Added
- Added a frame length check for the transmission frame (21ed2cb)
- Supported the large scale size of pending table (be1ba2e)
Changed
- Refactored the
next_operation()
logic to avoid some risks when multiple IEEE802154 events are processed in one ISR (21ed2cb) - Ignored bit8 for the frame length. (a08c207)
- Updated to log the "buffer full" message in debug mode only (a08c207)
Thread
Added
- Supported openthread time sync feature on both RCP and BR (be1ba2e)
- Supported changing openthread version information (9dad9f9)
- Added a task switching lock holder check (b6b4727)
- Added a method to set instance name of meshcop(e) mdns service (a08c207)
- Added max csmabackoffs numbers for transmission via spinel (ddc6cf9)
- Supported openthread ephemeral key feature (ddc6cf9)
- Added events for meshcop-e service publish and remove (ddc6cf9)
Changed
- Moved some LWIP API to LWIP task (ddc6cf9)
- Moved the registration of UART VFS devices to UART initialization function (c6ef988)
- Released openthread task switching lock before calling LWIP API in openthread udp (a08c207)
- Optimized the PIO logic in multiple BRs scenario (a08c207)
- Made ot task queue sending non-permanent blocking (e1b83ba)
- Updated CONFIG_LWIP_IPV6_NUM_ADDRESSES to 12 in Thread BR lib (e1b83ba)
- Updated openthread submodule (f32c18b) (9dad9f9)
Fixed
- Fixed dead lock issue related to MDNS (ddc6cf9)
- Fixed a deadlock risk by releasing ot task lock before tcpip_callback (a08c207)
Removed
- Removed the empty task for openthread tasklets (a08c207)
- Removed the range for some configurations (a08c207)
Application Utilities
Added
- Added check for
LWIP_NETIF_LOOPBACK
in the HTTP server control socket API (#13659) (3982d55) - ESP HTTP Client: Added support for OTA updates over TLS 1.3 (bbd9fe2)
- ESP HTTPS OTA: Added API to retrieve the most recent status logged from the HTTP response. (cd46411)
- Provisioning: Added support for ESP IP chips to work with Bluedroid stack (4f40bd4)
Changed
- Updated cJSON version to v1.7.18 (68c894b)
- Provisioning: Exposed API to set BLE random address (7c29c5f)
Fixed
- Fixed allocating
if_name
in client context multiple times (#13945) (c64c930) - Initialize mbedtls RNG context prior to setting client config in ESP-TLS, this fixes ECC key parsing issue for specific cases (2059071)
- Fixed esp_http_client to reset redirect_counter after completion of a request (#13633) (3982d55)
- Provisioning: Fixed incorrect input decoding when using console transport (321ffde)
Bluetooth Low Energy (BLE)
Added
- Documentation: Added BLE Features Support Status to API Guides (b9c2acc)
Bluetooth Low Energy Controller
Added
- Added option for BLE scan backoff in menuconfig on ESP32 (cb98558)
- Added support for BLE scanning and initiating state coexistence on ESP32. (fcc24e5)
- Supported disconnect again if the procedure is ongoing on ESP32 (cb98558)
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 (cb98558)
- Added API to get low power clock source on ESP32-C3 and ESP32-S3 (b36c954)
- Supported enhanced BLE TX power setting and getting on ESP32-C3 and ESP32-S3. (670b6c7)
- Supported mesh duplicate with extended scan on ESP32-C3 and ESP32-S3. (0ca290d)
- Added support for configurable default TX power on ESP32-C6, ESP32-H2, and ESP32-C2. (51acf13)
- Supported UHCI function on ESP32-C6 and ESP32-H2. (d82f916)
Changed
- Optimized BLE notify and write throughput performance on ESP32. (fe475fe)
- Changed the maximum TX power to +20dBm on ESP32-C3 and ESP32-S3. (dbe47c3)
- Updated the BLE rom.ld file for ESP32-C2 v2.0. (464d5d5)
Fixed
- Fixed BLE scan backoff on ESP32 (8071b02)
- Use embedded assembly to get access to DPORT registers on ESP32 (cb98558)
- Fixed BLE scan assert on ESP32 (#8532) (cb98558)
- Fixed BLE assert when receiving a packet on ESP32 (cb98558)
- Fixed Wi-Fi BLE coexistence assert issue on ESP32 (cb98558)
- Fixed issues in BLE Direct Test Mode on ESP32 (cb98558)
- Fixed memory leak issue when BLE SCAN and other BLE events coexist on ESP32. (#13747) (fe475fe)
- Fixed BLE connection timeout issue after using DTM on ESP32. (fe475fe)
- Fixed assert issue caused by DPORT access on ESP32. (fe475fe)
- Fixed assert when starting advertising due to preemption on ESP32-C3 and ESP32-S3. (836dba4)
- Fixed RPA generation after each reboot on ESP32-C3 and ESP32-S3. (836dba4)
- Fixed RPA renew timer start and stop on ESP32-C3 and ESP32-S3. (836dba4)
- Fixed extended uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3 (cb98558)
- Clear random address for extended advertising on ESP32-C3 and ESP32-S3 (cb98558)
- Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3 (cb98558)
- Fixed a memory leak in advertising data after restarting advertising on ESP32-C3 and ESP32-S3. (4efd577)
- Fixed BLE interrupt allocation using system API on ESP32-C3 and ESP32-S3. (4efd577)
- Fixed BT BB interrupt allocation on ESP32-C3 and ESP32-S3. (4efd577)
- Prevented BLE interrupt from being preempted on ESP32-C3 and ESP32-S3. (0ca290d)
- Fixed the issue where RSSI is incorrect when the peripheral latency for the connection is not zero on ESP32-C3 and ESP32-S3. (0ca290d)
- Fixed BLE channel map update issue when latency is non-zero on ESP32-C3 and ESP32-S3. (670b6c7)
- Fixed subsequent periodic advertising sync create failed after canceling sync before establishing sync on ESP32-C3 and ESP32-S3. (6436187)
- Fixed BLE util buffer free after controller reset on ESP32-C3 and ESP32-S3. (ed4220c)
- Fixed assert when BLE connection already exist and be connected again on ESP32-C3 and ESP32-S3. (ed4220c)
- Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 revision v1.1. (01bb4f9)
- Fixed BLE scan assert in lld_scan.c 1728 on ESP32-S3. (a693c96)
- Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive
SCAN_RSP
PDU on ESP32-C6 and ESP32-H2. (d456fdf) - Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive
SCAN_RSP
PDU on ESP32-C2. (d456fdf) - Fixed the issue where the
HCI_LE_Set_Extended_Scan_Parameters
command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 and less than 0xFFFF on ESP32-C6 and ESP32-H2. (d456fdf) - Fixed the issue where the
HCI_LE_Set_Extended_Scan_Parameters
command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32-C2. (d456fdf) - Fixed a disconnection issue due to timeout in multi-slave connection scenarios on ESP32-C6 and ESP32-H2. (d456fdf)
- Fixed an occasional interrupt WDT issue when creating sync on ESP32-C6 and ESP32-H2. (d4ed2ec)
- Fixed a crash issue during controller initialization when memory was insufficient on ESP32-C6 and ESP32-H2. (d4ed2ec)
- Fixed an occasional disconnection issue due to timeout after updating connection parameters on ESP32-C6 and ESP32-H2. (d4ed2ec)
- Fixed an issue with repeated memory deallocation during controller deinitialization after sending an
AUX_CHAIN_IND
packet on ESP32-C6 and ESP32-H2. (d4ed2ec) - Reduced the usage of flash and RAM when only legacy ADV and peripherals are enabled on ESP32-C2. (bd5335f)
- Fixed the issue where BLE light sleep randomly caused task watchdog upon power up on ESP32-H2. (17e072e)
- Fixed HCI not returning 0x45 when adv interval and data length mismatch on ESP32-C6,ESP32-H2 and ESP32-C2. (aaeb03a)
- Fixed an occasional cache error crash in DTM process on ESP32-C2. (aaeb03a)
- Fixed an occasional assert issue in ADV and scan coexistence scenario on ESP32-C6. (aaeb03a)
- Fixed occasional packet loss issue during severe air interference on ESP32-C6 and ESP32-H2. (aaeb03a)
- Fixed occasional assertion issues during scan process on ESP32-H2. (344e9ad)
- Fixed occasional crash issue in multi-connect scenarios on ESP32-C6. (71bac64)
- Fixed occasional ACL data packet loss issue when using UHCI...
ESP-IDF Release v5.2.3
Documentation for IDF v5.2.3 is available at https://docs.espressif.com/projects/esp-idf/en/v5.2.3/
ESP-IDF v5.2.3 is a bugfix update for ESP-IDF v5.2.2.
Obtaining v5.2.3
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.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.2.3
cd esp-idf-v5.2.3/
This is the recommended way of obtaining v5.2.3 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.2.3.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.3/esp-idf-v5.2.3.zip
Known Issues
- Crash seen in SoftAP communication with stations, when station connect and disconnect frequently. But it is not a new issue and not easy to reproduce.
Changelog
802.15.4
802.15.4 MAC
Added
- Supported the large scale size of pending table. (e98e6dc)
- Added a frame length check for the transmition frame. (f926af9)
Changed
- Refactored the
next_operation()
logic to avoid some risks when multiple IEEE802154 events are processed in one ISR (f926af9) - Updated to log the "buffer full" message in debug mode only (58264f5)
Fixed
- Ignored bit8 for the frame length (58264f5)
Thread
Added
- Supported openthread time sync feature on both RCP and BR (e98e6dc)
- Supported changing openthread version information (f7dd52f)
- Added a task switching lock holder check. (4426adf)
- Added a method to set instance name of meshcop(e) mdns service (58264f5)
Changed
- Made ot task queue sending non-permanent blocking (b4999cd)
- Updated CONFIG_LWIP_IPV6_NUM_ADDRESSES to 12 in Thread BR lib (b4999cd)
- Updated openthread submodule (f32c18b) (f7dd52f)
- Moved the registration of UART VFS devices to UART initialization function. (ce17358)
- Optimized the PIO logic in multiple BRs scenario (58264f5)
- Released openthread task switching lock before calling lwip API in openthread udp (58264f5)
- Removed the empty task for openthread tasklets (58264f5)
Fixed
- Fixed a deadlock risk by releasing ot task lock before tcpip_callback (58264f5)
Application Utilities
Added
- Added check for
LWIP_NETIF_LOOPBACK
in the HTTP server control socket API (#13659) (ab8ebe6) - Provisioning: Added support for ESP IP chips to work with bluedroid stack (59f8a48)
Changed
- Updated cJSON version to v1.7.18 (c5909dc)
Fixed
- Fixed allocating
if_name
in client context multiple times (#13945) (927e41f) - Initialize mbedtls RNG context prior to setting client config in ESP-TLS, this fixes ECC key parsing issue for specific cases (018409d)
- Fixed esp_http_client to reset redirect_counter after completion of a request (#13633) (ab8ebe6)
- Provisioning: Exposed API to set BLE random address (cfb057e)
- Fixed incorrect input decoding when using console transport (a1a05fe)
Bluetooth Low Energy (BLE)
Added
- Documentation: Added BLE Features Support Status to API Guides (7dd2a47)
Bluetooth Low Energy Controller
Added
- Supported UHCI function on ESP32-C6 and ESP32-H2. (d0da89f)
- Supported mesh duplicate with extended scan on ESP32-C3 and ESP32-S3. (9bed8f2)
- Added support for configurable default TX power on ESP32-C6, ESP32-H2, and ESP32-C2. (e149e10)
- Supported enhanced BLE TX power setting and getting on ESP32-C3 and ESP32-S3. (b8539f6)
Changed
- Optimized BLE notify and write throughput performance on ESP32. (6a4396c)
Fixed
- Fixed issue where subsequent periodic advertising sync creation failed after canceling sync prior to establishment on ESP32-C3 and ESP32-S3. (7bf8ae0)
- Fixed BLE util buffer free after controller reset on ESP32-C3 and ESP32-S3. (efdeaba)
- Fixed assertion when attempting to reconnect an existing BLE connection on ESP32-C3 and ESP32-S3. (efdeaba)
- Fixed a crash during host deinitialization after the controller had been deinitialized on ESP32-C2. (da9536d)
- Fixed instant wake-up from deep sleep when BLE is running on ESP32-H2. (fc4abfa)
- Fixed an occasional WDT issue when disabling the Controller on ESP32-C6. (a9da6b3)
- Fix BLE channel map update issue when the latency is non-zero on ESP32-C3 and ESP32-S3. (b8539f6)
- Fixed memory leak issue when BLE SCAN and other BLE events coexist on ESP32. (#13747) (6a4396c)
- Fixed BLE connection timeout issue after using DTM on ESP32. (6a4396c)
- Fixed assert issue caused by DPORT access on ESP32. (6a4396c)
- Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP PDU on ESP32-C6 and ESP32-H2. (29bc80a)
- Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP PDU on ESP32-C2. (29bc80a)
- Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32-C6 and ESP32-H2. (29bc80a)
- Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32-C2. (29bc80a)
- Fixed a disconnect issue due to timeout in multi-slave connection scenarios on ESP32C6 and ESP32H2. (29bc80a)
- Fixed assert when starting advertising due to preemption on ESP32-C3 and ESP32-S3. (358e0d6)
- Fixed RPA generation after each reboot on ESP32-C3 and ESP32-S3. (358e0d6)
- Fixed RPA renew timer start/stop handling on ESP32-C3 and ESP32-S3. (358e0d6)
- Fixed an occasional interrupt WDT issue when creating sync on ESP32-C6 and ESP32-H2. (9ae3116)
- Fixed a crash issue during controller initialization when memory was insufficient on ESP32-C6 and ESP32-H2. (9ae3116)
- Fixed an occasional disconnect issue due to timeout after updating connection parameters on ESP32-C6 and ESP32-H2. (9ae3116)
- Fixed an issue with repeated memory deallocation during controller deinitialization after sending an AUX_CHAIN_IND packet on ESP32-C6 and ESP32-H2. (9ae3116)
- Fixed BLE scan backoff on ESP32 (9c63a9a)
- Fixed HCI not returning 0x45 when adv interval and data length mismatch on ESP32-C6,ESP32-H2 and ESP32-C2. (a55fb17)
- Fixed occasional cache error crash in DTM process on ESP32-C2. (a55fb17)
- Fixed occasional assert in adv and scan coexistence scenario on ESP32-C6. (a55fb17)
- Fixed occasional packet loss issues during severe air interference on ESP32-C6 and ESP32-H2. (a55fb17)
- Fixed a memory leak in advertising data after restarting advertising on ESP32-C3 and ESP32-S3. (1491b57)
- Fixed BLE interrupt allocation using system API on ESP32-C3 and ESP32-S3. (1491b57)
- Fixed BT BB interrupt allocation on ESP32-C3 and ESP32-S3. (1491b57)
- Fixed occasional assertion issues during scan process on ESP32-H2. (401816e)
- Fixed the issue of occasional assertion in multi-synchronization scenarios on ESP32-H2. (d0da89f)
- Fixed the issue where directed advertising could not be connected when the advertisement filter was set to 0x2 on ESP32-C6, ESP32-H2, and ESP32-C2. (ab0e820)
- Fixed occasional WDT issue in multi-connection scenarios on ESP32H2. (ab0e820)
- Fixed a low-probability assertion issue in adv and scan coexistence scenarios on ESP32-C6. (ab0e820)
- Fixed the issue where connected advertising could still be set after reaching the maximum number of connections on ESP32-C6, ESP32-H2, and ESP32-C2. (ab0e820)
- Fixed response timeout triggered when updating connection parameters on ESP32-C6, ESP32-H2 and ESP32-C2. (ab0e820)
- Prevent BLE interrupt from being preempted on ESP32-C3 and ESP32-S3. (9bed8f2)
- Fixed the issue where RSSI is incorrect when the peripheral latency for the connection is not zero on ESP32-C3 and ESP32-S3. (9bed8f2)
ESP Bluedroid Host
Added
- Supported for adding BLE devices to the resolving list. (5da6f3f)
- Supported for creating BLE static random addresses and non-resolvable private addresses (5da6f3f)
- Supported for setting the resolvable private address timeout via API. (5da6f3f)
- Supported for setting BLE privacy mode for peer devices. (5da6f3f)
- Added definitions for BLE authentication failure reasons. (1491b57)
- Supported for BLE 5.0 instances in related events (17a18e8)
- Added the check for setting BLE advertising parameters when deleting GATTS services (17a18e8)
Changed
- Optimized BLE SPP example for improved compatibility (5da6f3f)
- Optimized BLE Bluedroid examples for setting advertising data. (9d6583f)
- Optimized BLE event reporting time for connection failures (b621e14)
Fixed
- Fixed issue with work queue deletion when thread creation fails. (36d2fd8)
- Fixed memory out-of-bounds issue when parsing adv data. (33539d1)
- Report HCI error status to application when command fails. (9eb139a)
- Cancelled the BLE connection initiation if the connection has already been established when both devices initiate a conn...
ESP-IDF Release v5.3.1
Documentation for IDF v5.3.1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3.1/
ESP-IDF v5.3.1 is a bugfix release for ESP-IDF v5.3.
Obtaining v5.3.1
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.3.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.1
cd esp-idf-v5.3.1/
This is the recommended way of obtaining v5.3.1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3.1.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.3.1/esp-idf-v5.3.1.zip
Major changes
This is the list of changes since release v5.3:
Known Issues
- For ESP32-P4, the data in PSRAM will be destroyed during lightsleep.
- For ESP32-P4, CPU frequency switching has become slightly slower when the DFS is used.
Changelog
15.4
Thread
Added
- Added a task switching lock holder check (e1f066e)
- Supported changing openthread version information (dc7fb34)
Changed
- Made ot task queue sending non-permanent blocking (be5feaf)
- Updated CONFIG_LWIP_IPV6_NUM_ADDRESSES to 12 in Thread BR lib (be5feaf)
- Updated openthread submodule (f32c18b) (dc7fb34)
- Move the registration of UART VFS devices to UART initialization function (c2d5712)
MAC
Added
- Added a frame length check for the transmition frame (23e2b6a)
Fixed
- Refactored the
next_operation()
logic to avoid some risks when multiple IEEE802154 events are processed in one ISR (23e2b6a)
Application Utilities
Fixed
- Provisioning: Exposed API to set BLE random address (8795e7a)
- Provisioning: Fixed incorrect input decoding when using console transport (f0ba6eb)
- ESP HTTP Client: Fixed allocating
if_name
in client context multiple times (#13945) (86b9fb7)
BLE
Changed
- Documentation: Revised and improved Bluetooth Controller && VHCI API references for ESP32. (25ff0fb)
Bluedroid
Added
- Added support for BLE 5.0 instances in related events (1fa25ff)
- Added the check for setting BLE advertising parameters when deleting GATTS services (1fa25ff)
- Added definitions for BLE authentication failure reasons. (638577b)
Changed
- Optimized BLE event reporting time for connection failures (67b0e9b)
Fixed
- Reset BLE security parameters during initialization (#13869) (883ee8b)
- Fixed incorrect state issue when unregistering BLE GATTC application. (530f10f)
- Fixed the issue where BLE could not create a connection if the controller doesn't support the coexistence of scanning and connection initiating states. (b81f351)
- Fixed BLE security vulnerability when using fixed local IRK. (638577b)
Removed
- Removed error print when failing to remove a device from the resolving list. (638577b)
Controller
Added
- Supported UHCI function on ESP32-C6 and ESP32-H2. (0efdd4a)
- Added support for configurable default TX power on ESP32-C6, ESP32-H2, and ESP32-C2. (0efdd4a)
- Supported mesh duplicate with extended scan on ESP32-C3 and ESP32-S3. (2ea1eff)
Fixed
- Fixed the issue where directed advertising could not be connected when the advertisement filter was set to 0x2 on ESP32-C6, ESP32-H2, and ESP32-C2. (bbe0750)
- Fixed occasional WDT issue in multi-connection scenarios on ESP32H2. (bbe0750)
- Fixed the issue where connected advertising could still be set after reaching the maximum number of connections on ESP32-C6, ESP32-H2, and ESP32-C2. (bbe0750)
- Fixed response timeout triggered when updating connection parameters on ESP32-C6, ESP32-H2 and ESP32-C2. (bbe0750)
- Fixed a low-probability assertion issue in adv and scan coexistence scenarios on ESP32-C6. (bbe0750)
- Prevent BLE interrupt from being preempted on ESP32-C3 and ESP32-S3. (2ea1eff)
- Fixed the issue where RSSI is incorrect when the peripheral latency for the connection is not zero on ESP32-C3 and ESP32-S3. (2ea1eff)
- Fixed a memory leak in advertising data after restarting advertising on ESP32-C3 and ESP32-S3. (638577b)
- Using system API to alloc BLE interrupt on ESP32-C3 and ESP32-S3. (638577b)
- Fixed BT BB interrupt allocation on ESP32-C3 and ESP32-S3. (638577b)
- Fixed the issue of occasional assertion in multi-synchronization scenarios on ESP32-H2. (0efdd4a)
- Fixed HCI not returning 0x45 when adv interval and data length mismatch on ESP32-C6,ESP32-H2,ESP32-C5 and ESP32-C2. (0efdd4a)
- Fixed occasional cache error crash in DTM process on ESP32-C2. (0efdd4a)
- Fixed occasional assert issue in adv and scan coexistence scenario on ESP32-C6. (0efdd4a)
- Fixed occasional packet loss issue during severe air interference on ESP32-C6 and ESP32-H2. (0efdd4a)
Mesh
Fixed
- Fixed an issue which may cause transmission resources not been released correctly (1316c4b)
- Fixed that some of the advertised segmented message sent to subscribed group address are not transmitted (d4ac547)
NimBLE
Added
- Added support for host with callback option to provide IRK during host init. (d434587)
Changed
- Updated Advertising Tx power levels to match with specification. (c4d4bfd)
- Increased Timer stack size for nimble application to fix timer overflow issue. (e78cd20)
- Updated menuconfig options to consider BLE 5.0 support options. (14135f9)
Fixed
- Fixed BLE security vulnerability when using fixed local IRK (9f7f1f3)
- Fixed the sequence of posting pairing complete event to host (9f7f1f3)
- Fixed issue where cb information passed in connect request was getting corrupted. (9f7f1f3)
- Zero initialized variables to fix incorrect paired device number information received after host initialization. (8595590)
Bluetooth Common
Controller
Fixed
- Fixed Bluetooth disconnect issue after waking up from modem sleep with external 32k crystal on ESP32 (0bbd728)
Build & Config
Removed
Classic Bluetooth
Bluedroid
Fixed
- Fixed the
stack overflow
of uTask in bt examplespp initiator
(d390c6f) - Fixed the wrong connection handle in the event handler of BTA_JV_L2CAP_READ_EVT(#13847) (35e9a11)
Controller
Added
- Added integrity check for
HCI_Link_Key_Selection
command on ESP32 (9788842)
Fixed
- Fixed failure of eSCO connection establishment eSCO when connected to two devices on ESP32(#11172) (4a4d20f)
- Fixed uninitialized random number before pausing AES encryption on ESP32 (4a4d20f)
- Fixed not report HCI_Disconnection_Complete event after the controller has initiated a disconnection procedure on ESP32 (4a4d20f)
- Fixed disconnection caused by channel map update in sniff mode on ESP32 (808950a)
- Fixed an assertion in ACL link driver which can be triggered on peripheral SNIFF mode when RX window is adjusted on ESP32. (2e512fb)
Coexistence
Fixed
- Fixed LoadProhibited issue in coexistence scenario on ESP32-C3 and ESP32-S3. (2ea1eff)
Core System
Fixed
- Print backtrace for both CPUs when cache error does not determine CPU (68bdc86)
- Console: Fixed console freeze when USB Serial JTAG is used and input data is received prior to the initialization of the driver (see #13940) (6c52686)
- Newlib: Fixed ROM(P4/H2) nano newlib can not printf float issues (90bb23f)
- Pthread: Fixed pthread join/detach potentially freeing the wrong TLS pointer(#14084) (474a926)
- Watchdogs: Allow XTAL32K WDT only on supported chips (#13955) (3914802)
Debugging
Added
- Core Dump: Include .data, .bss, and heap sections into the core dump (5325cac)
Fixed
- Core Dump: Fixed array out of the bounds compile error (ba3a106)
Ethernet
Added
- Ethernet: Added configuration of SPI Ethernet MAC address based on esp_read_mac in Protocols Connect Example (#13808) (7f1b752)
FreeRTOS
Fixed
- IDF Additions: Fixed an issue where the
vTaskDeleteWithCaps()
API leaked memory (#14222) (cada05a) - IDF Kernel: Fixed a bug where the FreeRTOS port layer would incorrectly crash on an assert failure when the system is not in an interrupt context but the port layer determines the opposite. (39a3d54)
LWIP
Fixed
- Fixed compilation error in lwIP undefined reference to
if_nametoindex
.(#13577) (b82594e) - ESP Netif: Fixed setting missing IPv6 auto-configuration flag for PPP interfaces if enabled in menuconfig (#13713) (f5e6f72)
- ESP Netif: Fixed
esp_netif_get_all_ip6()
to return only valid addresses. (7a538b9)
Low Power Features
ULP
Added
- Added option for routing LP-Core prints to HP-Core console uart (fc847a0)
- Added support ...
ESP-IDF Release v5.0.7
Documentation for IDF v5.0.7 is available at https://docs.espressif.com/projects/esp-idf/en/v5.0.7/
ESP-IDF v5.0.7 is a bugfix update for ESP-IDF v5.0.
Obtaining v5.0.7
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.0.7 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.0.7
cd esp-idf-v5.0.7/
This is the recommended way of obtaining v5.0.7 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.0.7.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.0.7/esp-idf-v5.0.7.zip
Major changes
Major Bug Fixes
- SPI Flash: Fixed stuck during spi_flash operation when a task was not pinned to a certain CPU. (f0c2da6)
Changelog
This is the list of changes since release v5.0.6:
App Update
Added
- Updated
esp_ota_revoke_secure_boot_public_key
to validate the new app and the bootloader before key revocation. (68c450d)
App Utils
Changed
- Updated cJSON version to v1.7.18 (d962b76)
Fixed
- Added check for
LWIP_NETIF_LOOPBACK
in the HTTP server control socket API (#13659) (3043a83) - Fixed allocating
if_name
in client context multiple times (#13945) (6a28414) - Fixed esp_http_client to reset redirect_counter after completion of a request (#13633) (3043a83)
- Fixed incorrect processing of HTTP header (#13497) (9d1abd7)
- Fixed esp_http_client digest auth without qop (5af8e88)
- Esp Prov: Fixed incorrect input decoding when using console transport (bf87512)
Bluetooth Low Energy (BLE)
Fixed
- Example: Use correct struct type in discover service complete event in examples/bluetooth/bluedroid/ble/gatt_client. (d388c85)
- Example: Fixed UART HCI when flow control is off in examples/bluetooth/hci/controller_hci_uart_esp32c3_and_esp32s3. (7a649e8)
Bluetooth Low Energy Controller
Added
- Supported ESP32-C2 light sleep using an external 32.768 kHz oscillator at pin0 as a slow clock source. (2796f01)
- Added CCA-related config option on ESP32-C2 (2796f01)
- Added API to get low power clock source on ESP32-C3 and ESP32-S3 (3b6ee15)
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 (dd61b7e)
- Added BLE scan backoff config in menuconfig on ESP32 (dd61b7e)
- Removed error print when disconnection again if the disconnection procedure is ongoing on ESP32 (dd61b7e)
- Added support for configurable default TX power on ESP32-C2. (4a46dce)
Changed
- Expanded the scan period to the maximum of 0xffff on ESP32-C2. (2796f01)
- Optimized BLE notify and write throughput performance on ESP32. (d156502)
- Optimized BLE event reporting time for connection failures (9a0c562)
- Changed the level of BLE interrupt to avoid allocation failure on ESP32S3. (13033ac)
Fixed
- Fixed HCI command status event sent when LLCP is busy on ESP32 (d388c85)
- Fixed HCI command status event sending for disconnection command on ESP32 (d388c85)
- Fixed LE transmitter test command parameters check on ESP32 (d388c85)
- Fixed an occasional assertion issue when enabling multiple periodic adv on ESP32-C2. (b1992f1)
- Fixed adv interval range limit error issue on ESP32-C2. (b1992f1)
- Fixed an occasional assertion issue when disabling the Controller on ESP32-C2. (b1992f1)
- Fixed scheduling when modem sleep wakeup is delayed on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed BLE IRQ FIFO overflow when entering critical on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed clock sync timeout when exiting modem sleep on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed directed adv with RPA when privacy was disabled on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed instant passed when connection updating or PHY updating on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed BLE TX count in direct test mode on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed BLE modem sleep enter failed sometimes on ESP32-C3 and ESP32-S3. (0c555c9)
- Fixed an occasional assertion issue during slave connection in WiFi coexistence scenarios on ESP32-C2. (38aef77)
- Fixed an issue of occasional ACL data loss under multiple BLE connections on ESP32-C2. (2796f01)
- Clear random address for extended advertising on ESP32-C3 and ESP32-S3 (dd61b7e)
- Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3 (dd61b7e)
- Fixed BLE scan assert on ESP32 (#8532) (dd61b7e)
- Fixed BLE assert when receiving packets on ESP32 (dd61b7e)
- Fixed extended uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3 (dd61b7e)
- Fixed memory leak issue when BLE SCAN and other BLE events coexist on ESP32. (#13747) (d156502)
- Fixed BLE connection timeout issue after using DTM on ESP32. (d156502)
- Fixed assert issue caused by DPORT access on ESP32. (d156502)
- Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP PDU on ESP32-C2. (b6f8340)
- Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32C2. (b6f8340)
- Fixed assert when starting advertising due to preemption on ESP32-C3 and ESP32-S3. (bb71e79)
- Fixed the issue where RPA did not re-generage after each reboot on ESP32-C3 and ESP32-S3. (bb71e79)
- Fixed BLE scan backoff on ESP32 (d4f35fc)
- Fixed BLE coexistence assert on ESP32 (961ca4f)
- Fixed BLE DTM status and TX count error on ESP32 (961ca4f)
- Reduced the usage of flash and RAM when only legacy adv and peripheral are enabled on ESP32-C2. (fb12a68)
- Use embedded assembly to get access to DPORT registers on ESP32 (dd61b7e)
- Fixed a memory leak in advertising data after restarting advertising on ESP32-C3 and ESP32-S3. (ef922dd)
- Fixed BLE interrupt allocation using system API on ESP32-C3 and ESP32-S3. (ef922dd)
- Fixed BT BB interrupt allocation on ESP32-C3 and ESP32-S3. (ef922dd)
- Fixed controller task blocking issue when using UART HCI on ESP32-C2. (8d86ea0)
- Prevent BLE interrupt from being preempted on ESP32-C3 and ESP32-S3. (7109734)
- Fixed the issue where RSSI is incorrect when the peripheral latency for the connection is not zero (7109734)
- Fixed HCI not returning 0x45 when adv interval and data length mismatch on ESP32-C2. (8599e25)
- Fixed occasional cache error crash in the DTM process on ESP32-C2. (8599e25)
ESP Bluedroid Host
Added
- Added bluerooth HCI layer data stream record (6d63daa)
- Added APIs for BLE direct test mode (6d63daa)
- Added API to send vendor HCI command (6d63daa)
- Added API to add BLE devices to the resolving list (2233d54)
- Support creating BLE static random address and NRPA (2233d54)
- Support API to set resolvable private address timeout (2233d54)
- Added support for setting BLE privacy mode for peer devices. (6d288ef)
- Added definitions for BLE authentication failure reasons. (ef922dd)
- Added support for BLE 5.0 instances in related events (a8f8936)
- Added the check for setting BLE advertising parameters when deleting GATTS services (a8f8936)
Changed
- Updated maximum BLE reconnection attempts configuration (597a7d1)
- Optimized BLE SPP example for improved compatibility (2233d54)
Fixed
- Fixed the issue where advertising does not restart due to disconnection reason 0x3e (6d63daa)
- Fixed crash when calculating GATTS database hash (d388c85)
- Fixed BLE crash when repeatedly initializing and deinitializing host (ffdd5dc)
- Fixed BLE periodic advertising to create sync parameter check error (ffdd5dc)
- Fixed xQueueSemaphoreTask assert when deinitializing host during scan (d253654)
- Fixed BLE appearance category ranges (#13626) (4ae73b7)
- Fixed BLE GATT max length of an attribute value (2233d54)
- Fixed the issue where the BLE data length change event was not triggered when the packet length was modified on the other connected device. (9e49bf8)
- Fixed BLE security vulnerability when using fixed local IRK. (ef922dd)
Removed
- Removed error print when failing to remove a device from the resolving list. (ef922dd)
ESP BLE Mesh
Changed
- Improved BLE mesh deinitialization procedure when using NimBLE Host (48570f5)
Fixed
- Fixed an issue that could cause incorrect transmission resources to be released (6ed2802)
- Fixed potential deadlock may happened during initialization when using Bluedroid Host (432f1ff)
- Fixed issue where the mesh deinit complete event may not be reported when using NimBLE Host (1505232)
- Fixed the struct initialization to meet C++ requirements for BLE Mesh stack (55adcbf)
- Fixed the struct initialization to meet C++ requirements for BLE Mesh examples (55adcbf)
- Fixed using wrong type value for ADV_NONCONN_IND in NimBLE Host adapter (1cc35f0)
ESP NimBLE Host
Added
- Added support for periodic ADV feature updates in BLE 5.3 (4...
ESP-IDF Release v5.3
Documentation for IDF v5.3 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3/
ESP-IDF v5.3 is a minor update for ESP-IDF v5.2. Release v5.3 is mostly compatible with apps written for ESP-IDF v5.2.
Obtaining v5.3
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.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3
cd esp-idf-v5.3/
This is the recommended way of obtaining v5.3 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3.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.3/esp-idf-v5.3.zip
Major changes
This is the list of changes since release v5.2:
Major New Features
Support for New SoCs
ESP32-P4
- Low Power System
- Low Power Core (RISC-V)
- Low-power GPIO
- Low-power I2C Master
- Low-power SPI
- Low-power Timer
- Low-power UART
- Low-power Watchdog Timer
- Peripherals
- ADC
- ADC continuous mode driver
- ADC oneshot mode driver
- DMA (Direct Memory Access)
- 2DDMA
- DMA channel allocator
- GDMA
- CRC Calculator
- GDMA2
- Ethernet driver
- SPI Ethernet driver
- internal MAC driver
- Event Task Matrix
- GPIO driver
- Analog Comparator
- GPIO ETM
- Glitch Filter
- RTC IO (LP IO) driver
- GPIO sigma delta driver
- GPSPI
- SPI Master driver
- SPI Slave HD driver
- SPI Slave driver
- GPTimer driver
- H264 Encoder
- I2C
- I2C master driver
- I2C slave driver
- I2S
- I2S driver
- I2S PDM rx mode
- I2S PDM tx mode
- I2S STD mode
- I2S TDM mode
- I2S legacy driver
- I2S driver
- JPEG
- JPEG Decoder Driver
- JPEG Encoder Driver
- LCD driver
- MIPI DSI
- LEDC driver
- Gamma Curve Generation
- MCPWM driver
- MIPI CSI
- PCNT driver
- PSRAM
- PSRAM Device Driver
- XIP PSRAM
- Parallel IO
- Parallel IO RX Driver
- Parallel IO TX Driver
- Pixel Processing Accelorator Driver
- RMT driver
- SD/SDIO/MMC driver
- SDMMC Host driver
- SDSPI Host driver
- SPI Flash driver
- Systimer driver
- Esptimer implementation over systimer
- OS tick port over systimer
- Temperature Sensor driver
- Touch Sensor driver
- UART
- Support Low Power UART instance
- UART FIFO mode driver
- USB OTG
- USB Device (TinyUSB) driver
- USB 2.0 Device Support
- USB Host driver
- USB 2.0 Host Support
- USB Device (TinyUSB) driver
- memory copy by DMA
- ADC
- Power management
- Auto Light Sleep
- Deep Sleep
- Dynamic Frequency Switch
- Light Sleep
- Security Features
- AES accelerator
- Digital Signature driver
- ECC accelerator
- Flash encryption
- HMAC driver
- RNG
- RSA hardware accelerator driver
- SHA accelerator
- Secure boot
- System Features
- Bootloader Support
- Cache
- Cache Driver
- Console
- Cxx Component
- ESP Event
- ESP ROM
- ESP Ringbuffer
- ESP Timer
- Efuse controller driver
- Floating Point Unit
- FreeRTOS
- MMU
- MSPI
- MSPI tuning (Flash & PSRAM DDR and/or over 80 MHz)
- SPI Flash auto suspend
- POSIX Threads
- Panic Handling Features
- Core Dump
- Debug Watchpoint
- GDB Stub
- Panic Handler
- Stack Guard
- Ram App
- TCM
- Watch Dog Timers
- newlib
- Wireless Expansion
- Bluedroid Host
- NimBLE Host
- ESP8689 SDIO/SPI driver
- Coexistence
Other Features
- Supported external Wi-Fi connections for ESP32-P4 and other espressif chips. (3f486c4)
- Added support for merging hosted Wi-Fi solution in esp_wifi component. (2a6b3df)
Breaking Changes
- Removed
CONFIG_IEEE802154_RECEIVE_DONE_HANDLER
option, now the code using the 802.15.4 driver directly must callieee802154_receive_handle_done
after receiving the frame (b056ac7)
Known Issues
- Linker issue [VFS/FatFS]: multiple definitions on directory manipulation routines when using std::filesystem namespace. The issue shall be fixed soon. For the meantime, please avoid using std::filesystem or use the patch mentioned here #13736 (comment). See also #14174
- For ESP32-P4, the data in PSRAM will be destroyed during lightsleep.
- For ESP32-P4, CPU frequency switching has become slightly slower when the DFS is used.
Changelog
802.15.4
802.15.4 MAC
Added
- Added the pending tx while rx feature (d499ba4)
- Added the feature of received done handler (f3039dd)
- Added ieee802154 examples (bae3c28)
- Added packets statistic of IEEE802.15.4 (b516012)
- Added 802.15.4 coex break notification (fdf5783)
- Supported IEEE802.15.4 MAC deinit (45f95e3)
Fixed
- Fixed pending tx will be delayed issue (ac76d44)
- Fixed the issue of not receiving packets when RSSI is positive in ESP32-H2 (0a1f378)
- Fixed ieee802154 include header file issue and unused value issue (d022682)
- Ignored bit8 for the frame length (6e2950d)
- Updated to log the "buffer full" message in debug mode only (6e2950d)
Removed
- Removed
CONFIG_IEEE802154_RECEIVE_DONE_HANDLER
option, now the code using the 802.15.4 driver directly must callieee802154_receive_handle_done
after receiving the frame (b056ac7)
Thread
Added
- Added deep sleep support for SED (a66055f)
- Added netif check when calling udp api (ff89cf5)
- Added max csmabackoffs numbers for transmission via spinel (8edaa94)
- Added cli support in openthread sleep example (c97077c)
- Added state indicator in Thread examples (1e01517)
- Added configure option for openthread address query (f9f32d4)
- Added ESP Radio spinel for external protocol stack (3b44a59)
- Added ESP OpenThread vendor commands support ( b44a596)
- Supported rcp re-initialization (58992e2)
- Supported the common console command in OT CLI (65c838b)
- Supported openthread radio caps rx on when idle (e358506)
- Supported setting netif_idx of udp pcb to no_index when binding UDP PCB to netif (d7b9a3b)
- Enabled uart ISR in IRAM for UART RCP process (ac76d44)
- Actively set raw pcb ttl value to 255 for icmpv6 message of border router (93d68c2)
- Supported openthread ephemeral key feature (6e2950d)
- Added a method to set instance name of meshcop(e) mdns service (6e2950d)
Changed
- Updated OpenThread upstream to 41ef807 (58992e2)
- Updated SRP server update response error code (58992e2)
- Enabled RCP uart configuration for BR by default (d183000)
- Disabled the rx on when idle in coex scenario (ac76d44)
- Released openthread task switching lock before calling lwip API in openthread udp (6e2950d)
- Optimized the PIO logic in multiple BRs scenario (6e2950d)
Fixed
- Fixed checking the lifetime value before calling sys_timeout (58992e2)
- Fixed filter the zero-length prefix when adding router table (58992e2)
- Moved router entry pointer in timeout handler (58992e2)
- Added parsing when txt entry key pointer is NULL (58992e2)
- Fixed eventfd missing issue when SPI interface is enabled (feb62db)
- Fixed the race condition in rx buffer count operation (54e7b73)
- Fixed openthread alarm timer calculation remaining_us overflow issue (cda92ca)
- Fixed RCP handle timeout crashing issue (ac76d44)
- Fixed frequent tx timeout && RCP recover issue when using SPI radio (f0d10c8)
- Fixed ot netif destroy netif order issue (eaf4fb9)
- Fixed a deadlock risk by releasing ot task lock before tcpip_callback (6e2950d)
Removed
- Removed the range for some configurations (6e2950d)
- Removed the empty task for openthread tasklets (6e2950d)
Zigbee
Changed
- Updated Zigbee examples to align with esp-zigbee-lib v1.0.9 (e81932d)
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Added BLE scan backoff config option in menuconfig on ESP32 (e3839a3)
- Added API to get low power clock source on ESP32-C3 and ESP32-S3 (6b453b8)
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 (f36a16b)
- Added CCA related config option on ESP32-C6, ESP32-H2 and ESP32-C2 (28f68a0)
- Added support for selecting whether to use CSA#2 through the configured option on ESP32-C2, ESP32-C6 and ESP32-H2 (083fe84)
- Supported enabling AUX packet when extended advertising data length is zero on ESP32-C3 and ESP32-S3 (ed025da)
- Supported ESP32-C2 light sleep using the external 32.768 kHz oscillator at pin0 as a slow clock source. (28f68a0)
- Supported initiating a disconnection again if the disconnection procedure is already ongoing on ESP32 (e3839a3)
- Supported clearing BLE legacy advertising on ESP32-C3 and ESP32-S3 (ca33198)
- Supported clearing BLE legacy advertising on ESP32 (dc66da9)
Changed
- Expanded the scan period to the maximum of 0xffff on ESP32-C6, ESP32-H2, and ESP32-C2 (28f68a0)
- Use embedded assembly to get access to DPORT registers on ESP32 (7fcac31)
- Modify mesh proxy solic uuid to 0x18590303 on ESP32 (dc66da9)
- Reduced the usage of flash and RAM when only legacy adv and peripheral are enabled...
ESP-IDF Pre-release v5.3-rc1
Documentation for IDF v5.3-rc1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3-rc1/
ESP-IDF v5.3-rc1 is a preview release for ESP-IDF v5.3.
Obtaining v5.3-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.3-rc1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3-rc1
cd esp-idf-v5.3-rc1/
This is the recommended way of obtaining v5.3-rc1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3-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.3-rc1/esp-idf-v5.3-rc1.zip
Major changes
This is the list of changes since release v5.2:
Major New Features
Support for New SoCs
ESP32-P4
- Low Power System
- Low Power Core (RISC-V)
- Low-power GPIO
- Low-power I2C Master
- Low-power SPI
- Low-power Timer
- Low-power UART
- Low-power Watchdog Timer
- Peripherals
- ADC
- ADC continuous mode driver
- ADC oneshot mode driver
- DMA (Direct Memory Access)
- 2DDMA
- DMA channel allocator
- GDMA
- CRC Calculator
- GDMA2
- Ethernet driver
- SPI Ethernet driver
- internal MAC driver
- Event Task Matrix
- GPIO driver
- Analog Comparator
- GPIO ETM
- Glitch Filter
- RTC IO (LP IO) driver
- GPIO sigma delta driver
- GPSPI
- SPI Master driver
- SPI Slave HD driver
- SPI Slave driver
- GPTimer driver
- H264 Encoder
- I2C
- I2C master driver
- I2C slave driver
- I2S
- I2S driver
- I2S PDM rx mode
- I2S PDM tx mode
- I2S STD mode
- I2S TDM mode
- I2S legacy driver
- I2S driver
- JPEG
- JPEG Decoder Driver
- JPEG Encoder Driver
- LCD driver
- MIPI DSI
- LEDC driver
- Gamma Curve Generation
- MCPWM driver
- MIPI CSI
- PCNT driver
- PSRAM
- PSRAM Device Driver
- XIP PSRAM
- Parallel IO
- Parallel IO RX Driver
- Parallel IO TX Driver
- Pixel Processing Accelorator Driver
- RMT driver
- SD/SDIO/MMC driver
- SDMMC Host driver
- SDSPI Host driver
- SPI Flash driver
- Systimer driver
- Esptimer implementation over systimer
- OS tick port over systimer
- Temperature Sensor driver
- Touch Sensor driver
- UART
- Support Low Power UART instance
- UART FIFO mode driver
- USB OTG
- USB Device (TinyUSB) driver
- USB 2.0 Device Support
- USB Host driver
- USB 2.0 Host Support
- USB Device (TinyUSB) driver
- memory copy by DMA
- ADC
- Power management
- Auto Light Sleep
- Deep Sleep
- Dynamic Frequency Switch
- Light Sleep
- Security Features
- AES accelerator
- Digital Signature driver
- ECC accelerator
- Flash encryption
- HMAC driver
- RNG
- RSA hardware accelerator driver
- SHA accelerator
- Secure boot
- System Features
- Bootloader Support
- Cache
- Cache Driver
- Console
- Cxx Component
- ESP Event
- ESP ROM
- ESP Ringbuffer
- ESP Timer
- Efuse controller driver
- Floating Point Unit
- FreeRTOS
- MMU
- MSPI
- MSPI tuning (Flash & PSRAM DDR and/or over 80 MHz)
- SPI Flash auto suspend
- POSIX Threads
- Panic Handling Features
- Core Dump
- Debug Watchpoint
- GDB Stub
- Panic Handler
- Stack Guard
- Ram App
- TCM
- Watch Dog Timers
- newlib
- Wireless Expansion
- Bluedroid Host
- NimBLE Host
- ESP8689 SDIO/SPI driver
- Coexistence
Other Features
- Supported external Wi-Fi connections for ESP32-P4 and other espressif chips. (3f486c4)
- Added support for merging hosted Wi-Fi solution in esp_wifi component. (2a6b3df)
Breaking Changes
- Removed
CONFIG_IEEE802154_RECEIVE_DONE_HANDLER
option, now the code using the 802.15.4 driver directly must callieee802154_receive_handle_done
after receiving the frame (b056ac7)
Known Issues
- For ESP32-P4, under the dual-core PD_TOP sleep scenario, if the sleep request is rejected, it may lead to a system deadlock triggering the watchdog.
- For ESP32-P4, RTC peripheral power domain cannot be powered down, resulting in ~20uA more power consumption.
- For ESP32-P4, there is a probability that the watchdog will be triggered due to the mpll being disabled and the L2 Cache not being able to write back when the PSRAM is enabled to sleep.
- For ESP32-P4, GPIO wake-up function and EXT1 wake-up function of GPIO8~15 are not available during deepsleep.
Changelog
802.15.4
802.15.4 MAC
Added
- Added the pending tx while rx feature (d499ba4)
- Added the feature of received done handler (f3039dd)
- Added ieee802154 examples (bae3c28)
- Added packets statistic of IEEE802.15.4 (b516012)
- Added 802.15.4 coex break notification (fdf5783)
- Supported IEEE802.15.4 MAC deinit (45f95e3)
Fixed
- Fixed pending tx will be delayed issue (ac76d44)
- Fixed the issue of not receiving packets when RSSI is positive in ESP32-H2 (0a1f378)
- Fixed ieee802154 include header file issue and unused value issue (d022682)
- Ignored bit8 for the frame length (6e2950d)
- Updated to log the "buffer full" message in debug mode only (6e2950d)
Removed
- Removed
CONFIG_IEEE802154_RECEIVE_DONE_HANDLER
option, now the code using the 802.15.4 driver directly must callieee802154_receive_handle_done
after receiving the frame (b056ac7)
Thread
Added
- Added deep sleep support for SED (a66055f)
- Added netif check when calling udp api (ff89cf5)
- Added max csmabackoffs numbers for transmission via spinel (8edaa94)
- Added cli support in openthread sleep example (c97077c)
- Added state indicator in Thread examples (1e01517)
- Added configure option for openthread address query (f9f32d4)
- Added ESP Radio spinel for external protocol stack (3b44a59)
- Added ESP OpenThread vendor commands support ( b44a596)
- Supported rcp re-initialization (58992e2)
- Supported the common console command in OT CLI (65c838b)
- Supported openthread radio caps rx on when idle (e358506)
- Supported setting netif_idx of udp pcb to no_index when binding UDP PCB to netif (d7b9a3b)
- Enabled uart ISR in IRAM for UART RCP process (ac76d44)
- Actively set raw pcb ttl value to 255 for icmpv6 message of border router (93d68c2)
- Supported openthread ephemeral key feature (6e2950d)
- Added a method to set instance name of meshcop(e) mdns service (6e2950d)
Changed
- Updated OpenThread upstream to 41ef807 (58992e2)
- Updated SRP server update response error code (58992e2)
- Enabled RCP uart configuration for BR by default (d183000)
- Disabled the rx on when idle in coex scenario (ac76d44)
- Released openthread task switching lock before calling lwip API in openthread udp (6e2950d)
- Optimized the PIO logic in multiple BRs scenario (6e2950d)
Fixed
- Fixed checking the lifetime value before calling sys_timeout (58992e2)
- Fixed filter the zero-length prefix when adding router table (58992e2)
- Moved router entry pointer in timeout handler (58992e2)
- Added parsing when txt entry key pointer is NULL (58992e2)
- Fixed eventfd missing issue when SPI interface is enabled (feb62db)
- Fixed the race condition in rx buffer count operation (54e7b73)
- Fixed openthread alarm timer calculation remaining_us overflow issue (cda92ca)
- Fixed RCP handle timeout crashing issue (ac76d44)
- Fixed frequent tx timeout && RCP recover issue when using SPI radio (f0d10c8)
- Fixed ot netif destroy netif order issue (eaf4fb9)
- Fixed a deadlock risk by releasing ot task lock before tcpip_callback (6e2950d)
Removed
- Removed the range for some configurations (6e2950d)
- Removed the empty task for openthread tasklets (6e2950d)
Zigbee
Changed
- Updated Zigbee examples to align with esp-zigbee-lib v1.0.9 (e81932d)
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Added BLE scan backoff config option in menuconfig on ESP32 (e3839a3)
- Added API to get low power clock source on ESP32-C3 and ESP32-S3 (6b453b8)
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 (f36a16b)
- Added CCA related config option on ESP32-C6, ESP32-H2 and ESP32-C2 (28f68a0)
- Added support for selecting whether to use CSA#2 through the configured option on ESP32-C2, ESP32-C6 and ESP32-H2 (083fe84)
- Supported enabling AUX packet when extended advertising data length is zero on ESP32-C3 and ESP32-S3 (ed025da)
- Supported ESP32-C2 light sleep using the external 32.768 kHz oscillator at pin0 as a slow clock source. (28f68a0)
- Supported initiating a disconnection again if the disconnection procedure is already ongoing on ESP32 (e3839a3)
- Supported clearing BLE legacy advertising on ESP32-C3 and ESP32-S3 (ca33198)
- Supported clearing BLE legacy advertising on ESP32 (dc66da9)
Changed
- Expanded the scan period to the maximum of 0xffff on ESP32-C6, ESP32-H2, and ESP32-C2 (28f68a0)
- Use embedded assembly to get access to DPORT registers on ESP32 (7fcac31)
- Modify mesh proxy solic uuid to 0x18590303 on ESP32 (dc66da9)
- Reduced the usage of flash and RAM when only legacy adv and periph...
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
...
ESP-IDF Pre-release v5.3-beta2
Documentation for IDF v5.3-beta2 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3-beta2/
ESP-IDF v5.3-beta2 is a preview release for ESP-IDF v5.3.
Obtaining v5.3-beta2
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.3-beta2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3-beta2
cd esp-idf-v5.3-beta2/
This is the recommended way of obtaining v5.3-beta2 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3-beta2.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.3-beta2/esp-idf-v5.3-beta2.zip
Major changes
This is the list of changes since release v5.2:
Major New Features
Support for New SoCs
ESP32-P4
- Low Power System
- Low Power Core (RISC-V)
- Low-power GPIO
- Low-power I2C Master
- Low-power Timer
- Low-power UART
- Low-power Watchdog Timer
- Peripherals
- DMA (Direct Memory Access)
- 2DDMA
- DMA channel allocator
- GDMA
- CRC Calculator
- GDMA2
- Ethernet driver
- SPI Ethernet driver
- internal MAC driver
- Event Task Matrix
- GPIO driver
- Analog Comparator
- GPIO ETM
- Glitch Filter
- RTC IO (LP IO) driver
- GPIO sigma delta driver
- GPSPI
- SPI Master driver
- SPI Slave HD driver
- SPI Slave driver
- GPTimer driver
- I2C
- I2C master driver
- I2C slave driver
- I2S
- I2S driver
- I2S PDM rx mode
- I2S PDM tx mode
- I2S STD mode
- I2S TDM mode
- I2S legacy driver
- I2S driver
- JPEG
- JPEG Decoder Driver
- JPEG Encoder Driver
- LCD driver
- MIPI DSI
- LEDC driver
- Gamma Curve Generation
- MCPWM driver
- MIPI CSI
- PCNT driver
- PSRAM
- PSRAM Device Driver
- Parallel IO
- Parallel IO TX Driver
- RMT driver
- SD/SDIO/MMC driver
- SDMMC Host driver
- SDSPI Host driver
- SPI Flash driver
- Systimer driver
- Esptimer implementation over systimer
- OS tick port over systimer
- Temperature Sensor driver
- UART
- Support Low Power UART instance
- UART FIFO mode driver
- USB OTG
- USB Device (TinyUSB) driver
- USB 2.0 Device Support
- USB Host driver
- USB 2.0 Host Support
- USB Device (TinyUSB) driver
- memory copy by DMA
- DMA (Direct Memory Access)
- Power management
- Auto Light Sleep
- Deep Sleep
- Dynamic Frequency Switch
- Light Sleep
- Security Features
- AES accelerator
- Digital Signature driver
- ECC accelerator
- ECDSA driver
- Flash encryption
- HMAC driver
- HUK Generator
- Key Manager
- RNG
- RSA hardware accelerator driver
- SHA accelerator
- Secure boot
- System Features
- Bootloader Support
- Cache
- Cache Driver
- Console
- Cxx Component
- ESP Event
- ESP ROM
- ESP Ringbuffer
- ESP Timer
- Efuse controller driver
- Floating Point Unit
- FreeRTOS
- MMU
- MSPI
- MSPI tuning (Flash & PSRAM DDR and/or over 80 MHz)
- POSIX Threads
- Panic Handling Features
- Core Dump
- Debug Watchpoint
- Panic Handler
- Stack Guard
- Ram App
- TCM
- Watch Dog Timers
- newlib
- Wireless Expansion
- Bluedroid Host
Other Features
- Supported external Wi-Fi connections for ESP32-P4 and other espressif chips. ( 3f486c4)
- Added support for merging hosted Wi-Fi solution in esp_wifi component. ( 2a6b3df)
Breaking Changes
- Removed
CONFIG_IEEE802154_RECEIVE_DONE_HANDLER
option, now the code using the 802.15.4 driver directly must callieee802154_receive_handle_done
after receiving the frame ( b056ac7)
Changelog
802.15.4
802.15.4 MAC
Added
- Added the pending tx while rx feature ( d499ba4)
- Added the feature of received done handler ( f3039dd)
- Added ieee802154 examples ( bae3c28)
- Added packets statistic of IEEE802.15.4 ( b516012)
- Added 802.15.4 coex break notification ( fdf5783)
- Supported IEEE802.15.4 MAC deinit ( 45f95e3)
Fixed
- Fixed pending tx will be delayed issue ( ac76d44)
- Fixed the issue of not receiving packets when RSSI is positive in ESP32-H2 ( 0a1f378)
- Fixed ieee802154 include header file issue and unused value issue ( d022682)
Removed
- Removed
CONFIG_IEEE802154_RECEIVE_DONE_HANDLER
option, now the code using the 802.15.4 driver directly must callieee802154_receive_handle_done
after receiving the frame ( b056ac7)
Thread
Added
- Added deep sleep support for SED ( a66055f)
- Added netif check when calling udp api ( ff89cf5)
- Added max csmabackoffs numbers for transmission via spinel ( 8edaa94)
- Added cli support in openthread sleep example ( c97077c)
- Added state indicator in Thread examples ( 1e01517)
- Added configure option for openthread address query ( f9f32d4)
- Added ESP Radio spinel for external protocol stack ( 3b44a59)
- Added ESP OpenThread vendor commands support ( 3b44a59)
- Supported rcp re-initialization ( 58992e2)
- Supported the common console command in OT CLI ( 65c838b)
- Supported openthread radio caps rx on when idle ( e358506)
- Supported setting netif_idx of udp pcb to no_index when binding UDP PCB to netif ( d7b9a3b)
- Enabled uart ISR in IRAM for UART RCP process ( ac76d44)
- Actively set raw pcb ttl value to 255 for icmpv6 message of border router ( 93d68c2)
Changed
- Updated OpenThread upstream to 41ef807 ( 58992e2)
- Updated SRP server update response error code ( 58992e2)
- Enabled RCP uart configuration for BR by default ( d183000)
- Disabled the rx on when idle in coex scenario ( ac76d44)
Fixed
- Fixed checking the lifetime value before calling sys_timeout ( 58992e2)
- Fixed filter the zero-length prefix when adding router table ( 58992e2)
- Moved router entry pointer in timeout handler ( 58992e2)
- Added parsing when txt entry key pointer is NULL ( 58992e2)
- Fixed eventfd missing issue when SPI interface is enabled ( feb62db)
- Fixed the race condition in rx buffer count operation ( 54e7b73)
- Fixed openthread alarm timer calculation remaining_us overflow issue ( cda92ca)
- Fixed RCP handle timeout crashing issue ( ac76d44)
- Fixed frequent tx timeout && RCP recover issue when using SPI radio ( f0d10c8)
- Fixed ot netif destroy netif order issue ( eaf4fb9)
Zigbee
Changed
- Updated Zigbee examples to align with esp-zigbee-lib v1.0.9 ( e81932d)
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Added BLE scan backoff config option in menuconfig on ESP32 ( e3839a3)
- Added API to get low power clock source on ESP32-C3 and ESP32-S3 ( 6b453b8)
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 ( f36a16b)
- Added CCA related config option on ESP32C6, ESP32H2 and ESP32C2 ( 28f68a0)
- Added support for selecting whether to use CSA#2 through the configured option on ESP32-C2, ESP32-C6 and ESP32-H2. ( 083fe84)
- Supported enable aux packet when extend advertising data length is zero on ESP32-C3 and ESP32-S3 ( ed025da)
- Supported ESP32-C2 light sleep using external 32.768 kHz oscillator at pin0 as slow clock source. ( 28f68a0)
- Supported disconnection again if the disconnection procedure is on-going on ESP32 ( e3839a3)
- Supported clear BLE legacy advertising on ESP32-C3 and ESP32-S3 ( ca33198)
- Supported clear BLE legacy advertising on ESP32. ( dc66da9)
Changed
- Expanded the scan period to the maximum of 0xffff on ESP32-C6, ESP32-H2, and ESP32-C2. ( 28f68a0)
- Use embedded assembly to get access to DPORT registers on ESP32 ( 7fcac31)
- Modify mesh proxy solic uuid to 0x18590303 on ESP32 ( dc66da9)
- Reduced the usage of flash and RAM when only legacy adv and peripheral are enabled on ESP32-C2. ( 148aa32)
Fixed
- Example: Fixed UART HCI when flow control is off on ESP32C3 and ESP32S3. ( 4c190c5)
- Fixed BLE coex assert on ESP32 ( 30fce03)
- Fixed BLE DTM status error and TX count error on ESP32 ( 30fce03)
- Fixed an occasional assertion issue during slave connection in coexistence scenarios on ESP32C2. ( 2cdd56e)
- Fixed the compilation issue when use nimble host only on ESP32-H2,ESP32-C6 and ESP32-C2. ( 8ea943e)
- Fixed BLE scan assert on ESP32(#8532) ( e3839a3)
- Fixed BLE assert when receiving packet on ESP32 ( e3839a3)
- Fixed the issue that BLE light sleep may randomly cause task watchdog upon power up on ESP32-H2. ( ca71f77)
- Fixed extended uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3. ( f36a16b)
- Clear random address for extended advertising on ESP32-C3 and ESP32-S3. ( f36a16b)
- Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3. ( f36a16b)
- Fixed an issue of occasional ACL data loss under multiple BLE connections on ESP32-C2. ( 28f68a0)
- Fixed occasional assert issue in modem sleep mode on ESP32-C6 and ESP32-H2. ( 3dc9d66)
- Fixed issue of slave latency applied when not receiving valid PDU on ESP32-C6 and ESP32-H2 ( 3dc9d66)
- Fixed HCI command status event sending for disconnect command on ESP32. ( 9c075b9)
- Fixed BLE transmitter test command parameters...
ESP-IDF Release v5.2.2
Documentation for IDF v5.2.2 is available at https://docs.espressif.com/projects/esp-idf/en/v5.2.2/
ESP-IDF v5.2.2 is a bugfix update for ESP-IDF v5.2.1.
Obtaining v5.2.2
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.2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.2.2
cd esp-idf-v5.2.2/
This is the recommended way of obtaining v5.2.2 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.2.2.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.2/esp-idf-v5.2.2.zip
Major changes
This is the list of changes since release v5.2.1:
Changelog
802.15.4
802.15.4 MAC
Fixed
- Fixed ieee802154 include header file issue and unused value issue (8531594)
Thread
Added
- Added max csmabackoffs numbers for transmission via spinel (1b9597f)
- Added cli support in openthread sleep example (9607a11)
- Added state indicator in Thread examples (fd4b09f)
- Added events for meshcop-e service publish and remove (66c164b)
- Supported openthread ephemeral key feature (66c164b)
Changed
- Moved some lwip api to lwip task (66c164b)
- Enabled RCP uart configuration for BR by default (fd4b09f)
Fixed
- Fixed dead lock issue related to mdns (66c164b)
- Fixed the race condition in rx buffer count operation (fd4b09f)
- Fixed openthread alarm timer calculation remaining_us overflow issue (6c1542e)
Removed
- Removed the range for some configurations (70fc0e3)
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Supported sending disconnection command if the disconnection procedure is on-going on ESP32 (8c52152)
- Supported ESP32-C2 light sleep using external 32.768 kHz oscillator at pin0 as slow clock source. (4c96e52)
- Added CCA related config option on ESP32-C6, ESP32-H2 and ESP32-C2 (4c96e52)
- Added API to get low power clock source on ESP32C3 and ESP32S3 (228f922)
- Added BLE scan backoff config option in menuconfig on ESP32 (8c52152)
- Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3. (8c52152)
Changed
- Expanded the scan period to the maximum of 0xffff on ESP32-C6, ESP32-H2, and ESP32-C2. (4c96e52)
Fixed
- Fixed BLE ASSERT_PARAM(0,0) in rwble.c in coexistence scenarios on ESP32 (408294a)
- Register coexist functions into Bluetooth controller on ESP32-C3/ESP32-S3 (8c52152)
- Fixed BLE DTM status and TX count error on ESP32 (408294a)
- Reduced the usage of flash and RAM when only legacy adv and peripheral are enabled on ESP32-C2. (5fa3428)
- Fixed BLE light sleep issue which will randomly cause task watchdog upon power up on ESP32-H2. (5aad850)
- Fixed an occasional assertion issue during slave connection in coexistence scenarios on ESP32-C2. (b19e27d)
- Use embedded assembly to get access to DPORT registers on ESP32 (8c52152)
- Fixed BLE scan assert(10,0) on ESP32(#8532) (8c52152)
- Fixed BLE assert when receiving packet on ESP32 (8c52152)
- Fixed extended uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3. (8c52152)
- Cleared random address for extended advertising on ESP32-C3 and ESP32-S3. (8c52152)
- Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3. (8c52152)
- Fixed an issue of occasional ACL data loss under multiple BLE connections on ESP32-C2. (4c96e52)
- Fixed occasional assert issue in modem sleep mode on ESP32-C6 and ESP32-H2. (1097ed0)
- Fixed issue of slave latency applied when not receiving valid PDU on ESP32-C6 and ESP32-H2. (1097ed0)
- Fixed HCI command status event send when LLCP is busy on ESP32 (daa6a0d)
- Fixed HCI command status event sending for disconnection command on ESP32 (daa6a0d)
- Fixed LE transmitter test command parameters check error on ESP32 (daa6a0d)
- Fixed an occasional assertion issue when enabling multiple periodic adv on ESP32-C2. (c630c04)
- Fixed adv interval range limit error issue on ESP32-C2,ESP32-C6 and ESP32-H2. (c630c04)
- Fixed an occasional assertion issue when disable controller on ESP32-C2. (c630c04)
ESP Bluedroid Host
Added
- Added bluerooth hci layer data stream record (40d3981)
- Added API to send vendor hci command (40d3981)
Changed
- Updated maximum BLE reconnection attempts configuration (35630f5)
Fixed
- Fixed BLE appearance category ranges (#13626) (e362358)
- Fixed ADV do not restart due to disconnection reason 0x3e (40d3981)
- Fixed crash when calculating GATTS database hash (daa6a0d)
- Fixed "report" typo in esp_ble_gap_ext_adv_reprot_t (daa6a0d)
- Fixed BLE crash when repeatedly iniitialize and deinitialize host (8def30a)
- Fixed BLE periodic advertising create sync parameters check error (8def30a)
- Example: Use correct struct type in discover service complete event (daa6a0d)
Removed
- Removed BLE functions discard declaration (2a9108f)
ESP NimBLE Host
Added
- Added usage of esp_timer_get_expiry_time to get current remaining ticks (d9be451)
- Added the check to prevent address resolution in case of identity addr for esp32 (391c3a1)
- Added support for data length change event in host (abd2184)
- Added support for deleting the oldest bonded device across reboot (a6895ce)
- Added documentation for ESP32-P4 gpio pins configuration (a253028)
- Added ble_host_rpa_enabled flag for address resoultion for esp32 (69dc6f3)
- Added support to send and receive read multiple variable length characteristic request and response. (61f8f19)
Changed
- Increased range of reattempt connection count in menuconfig (94bec84)
- Simplify reconnection code (8599ec3)
- Improved documentation for bleprph_host_only example. (909e7fc)
- Updated help sections for BLE_RPA_TIMEOUT config. (1f8e365)
Fixed
- Expose API to set RPA timeout in stack. (2ba5320)
- Fixed aggressive termination in signed write procedure (0190214)
- Fixed unpair API ignoring devices bonded with CSRK (0190214)
- Fixed compilation issues when CCCD is set to 0 (f9163c6)
- Fixed for CVE-2024-24746 vulnerability (709b74c)
- Fixed the size of number packets in dtm event (33c6315)
- Set correct peer_addr during reattempt connection (3d0682d)
- Handled missing free in ble spp example (6020d08)
- Handled auto connection flag in extended connect (064df2a)
- Fixed call to ble_hid_task_startup and compilation issues due to incorrect prototypes (962d9de)
- Fixed compilation issue occurring after disabling security. (ec7e307)
- Fixed type in blehr/README (#13034) (374a03f)
- Fixed compilation error for strict-prototype enabled (464a62b)
- Exposed baud rate in the menuconfig. (259e2ba)
- Handled memory leak in callout deinit (deacd79)
- Changed 'move_count' to uint8_t type to fix compilation issue in nimble for -O2 flag. (c0faa8f)
BluFi
Fixed
- Fixed BluFi module link error(C++ hybrid compilation) (daa6a0d)
Classic Bluetooth
Classic Bluetooth Bluedroid Host
Fixed
- Fixed the HID Host inner error state caused by repeat connection of the same device (d4e3253)
- Fixed inconsistency of connection initiator state for HID Host open event (d4e3253)
- Allocate memory for control block of HFP Audio Gateway in its initialization when dynamic memory is enabled (1c09bc1)
- Fixed SPP crash due to the connection not being disconnected before
esp_spp_deinit
was called (8096a16) - Fixed the crash caused by using illegal pointers during SDP deinit (a70bb45)
- Fixed missing of callback event when removing an invalid SDP record (a70bb45)
Classic Bluetooth Controller
Fixed
- Fixed the incorrect timing in reporting HCI_Link_Key_Type_Changed event on ESP32 (d34b024)
- Fixed the incorrect initialization vector during resuming encryption on ESP32 (d34b024)
- Fixed incorrect link key returned from HCI command HCI_READ_STORED_LINK_KEY (d34b024)
- Fixed crash during Bluetooth deinitialization in coexistence scenario on ESP32 (f2e1c06)
- Fixed invalid transmission of LMP_MAX_POWER PDU in case that peer device is expected peer to increase TX power to maximum on ESP32 (f2e1c06)
- 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 (daa6a0d)
- Clear sniff state in coexistence scheme when no connections exist (daa6a0d)
Bluetooth Common
Added
- Added an option to make alarm number configurable (cc5101f)
Fixed
- Fixed error in CMakeLists on ESP32-C2 (#13451) (7646dd5)
- Fixed missing linker generated symbols in using esp_bt_mem_release when
ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY
is enabled (#10427, #11377) (dc3e953)
Bluedroid
Fixed
- Fixed controller using null pointer after bluedroid deinitialization (b0eef7f)
Controller
Changed
- Use compile options
-ffunction-sections
and `-fdata-section...