Releases: espressif/esp-idf
ESP-IDF Pre-release v5.4-rc1
Documentation for IDF v5.4-rc1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.4-rc1/
ESP-IDF v5.4-rc1 is a preview release for ESP-IDF v5.4.
Obtaining v5.4-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.4-rc1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.4-rc1
cd esp-idf-v5.4-rc1/
This is the recommended way of obtaining v5.4-rc1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.4-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.4-rc1/esp-idf-v5.4-rc1.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 ESP32-H2
- ULP: Greatly expanded support for LP Core on C6 and P4 with among others: openocd debugging support, LP-ADC, LP-SPI, ETM wakeup, LP-IO wakeup.
- I2C: Support lp i2c instance on ESP32-P4 (ec3029e)
- ISP: Support a series of ISP features on ESP32-P4
- LCD: Added i80 and RGB LCD driver support on ESP32-P4 (fdd90d4) (6d71638)
- Touch Sensor: New touch sensor 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) - Modify the type of "bandwidth" and comment in wifi_ap_record_t. (3b0cf1a)
- ESP HTTP Server: HTTP version 1.0 was previously supported due to a software bug. With this update, only HTTP/1.1 is allowed. (57553ec)
- MbedTLS: MbedTLS option
MBEDTLS_ECP_FIXED_POINT_OPTIM
is disabled by default to save on significant (~27KB) flash footprint. This allows easier migration from IDF 4.x to 5.x release. If the performance is desired and ECC accelerator is not available then the config can be turned on. (27f11f8) - MbedTLS: Supported for SHA3 operations is now configurable and disabled by default to save flash size. The config can be enabled if an application needs to perform SHA3 operations. (27f11f8)
- Bluetooth Common / Controller: Move
esp_wifi_bt_power_domain_on
andesp_wifi_bt_power_domain_off
fromesp_bt.h
toesp_phy_init.h
(a09d574) - For ESP32-C6, to continue to use RC32K clock as the RTC slow clock source now requires to select RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED Kconfig first; For ESP32-H2/ESP32-P4, this option is completely removed. (0f1bec1)
Known Issues
- For ESP32-P4 chips, when
ESP_SLEEP_KEEP_DCDC_ALWAYS_ON
is not enabled (enabled by default), accessing external storage (Flash/ PSRAM) after waking up from light sleep may get incorrect data.
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)
Fixed
- Returned ESP_FAIL if enh-ack generating logic was not implemented (84569bc)
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)
- Added OpenThread dataset changed event (f012157)
- Supported custom header file for openthread configuration (9181eca)
- Supported RCP compatibility mismatch error handler (69a9b17)
- Supported to allocate NAT64 session from PSRAM. (69a9b17)
- Supported modifying port and txt in SRP server (69a9b17)
- Enabled bbr feature to support multicast by default (69a9b17)
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)
- Updated openthread submodule (005c5ce) (69a9b17)
Fixed
- Fixed the issue of incorrect duration and channel configuration in
otPlatRadioEnergyScan
calls (1754c8f) - Fixed the bug that 3-wire external coexistence on ESP32-H2 does not work properly. (69a9b17)
Zigbee
Changed
- Updated Zigbee Gateway example to use ot_rcp instead of esp_zigbee_rcp (dd8b4fa)
- Updated the Zigbee examples to be based on the ESP-Zigbee 1.6.x release (dd8b4fa)
Removed
- Removed the esp_zigbee_rcp example (dd8b4fa)
Application Utilities
Added
- ESP HTTP Client: Added new feature of http method (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 chips 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)
- ESP HTTP Server: Updated logic to enforce HTTP/1.1, no longer supporting other versions (#14723) (57553ec)
- Provisioning: Fixed hostname resolving for IPv6-only host (343bb81)
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)
ESP Bluedroid Host
Added
ESP-IDF Release v5.3.2
Documentation for IDF v5.3.2 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3.2/
ESP-IDF v5.3.2 is a bugfix update for ESP-IDF v5.3.
Obtaining v5.3.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.3.2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.2
cd esp-idf-v5.3.2/
This is the recommended way of obtaining v5.3.2 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3.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.3.2/esp-idf-v5.3.2.zip
Major changes
This is the list of changes since release v5.3.1:
- Thread: Supported Thread Radio Encapsulation Link (TREL) feature (47dc6f3)
Breaking Changes
- MbedTLS option
MBEDTLS_ECP_FIXED_POINT_OPTIM
is disabled by default to save on significant (~27KB) flash footprint. This allows easier migration from IDF 4.x to 5.x release. If the performance is desired and ECC accelerator is not available then the config can be turned on. - MbedTLS Support for SHA3 operations is now configurable and disabled by default to save flash size. The config
MBEDTLS_SHA3_C
can be enabled if an application needs to perform SHA3 operations.
Known Issues
- For ESP32-P4 chips, when
ESP_SLEEP_KEEP_DCDC_ALWAYS_ON
is not enabled (enabled by default), accessing external storage (Flash/ PSRAM) after waking up from light sleep may get incorrect data.
Known issues are planned to be fixed before the next v5.3 release.
Changelog
802.15.4
Thread
Added
- Supported the large scale size of pending table (dddc293)
- Supported RCP compatibility mismatch error handler (d271b6b)
- Supported to allocate NAT64 session from PSRAM (d271b6b)
- Supported modifying port and txt in SRP server (d271b6b)
- Added OpenThread dataset changed event (6ba4aa7)
- Supported openthread time sync feature on both RCP and BR (dddc293)
- Supported Thread Radio Encapsulation Link (TREL) feature (47dc6f3)
Changed
- Updated openthread submodule (005c5ce) (d271b6b)
- Replaced NETCONN_EXT_RESOLVE_HOOK with DNS_EXT_RESOLVE_HOOK to support more application layer protocols (ae4b955)
Fixed
- Enabled bbr feature to support multicast by default (d271b6b)
- Enabled vendor hooks for rcp operating in spi mode (47dc6f3)
- Fixed the bug that 3-wire external coexistence on ESP32-H2 does not work properly (f18a122)
- Fixed the issue of incorrect duration and channel configuration in
otPlatRadioEnergyScan
calls (6df4318)
Zigbee
Changed
- Updated Zigbee Gateway example to use ot_rcp instead of esp_zigbee_rcp (7e712b6)
- Updated the Zigbee examples to be based on the ESP-Zigbee 1.6.x release (7e712b6)
Removed
- Removed the esp_zigbee_rcp example (7e712b6)
Application Utilities
Added
- ESP HTTPS OTA: Added API to retrieve the most recent status logged from the HTTP response (1f68652)
- Provisioning: Added support for Notify attribute in provisioning service (77475b4)
- Provisioning: Added support for ESP IP chips to work with bluedroid stack (a034b21)
Changed
- ESP HTTP Server: Updated logic to enforce HTTP/1.1, no longer supporting other versions (#14723) (8b6ef89)
Fixed
- ESP HTTP Server: Fixed issue with PUT requests with async handler (#14196) (d8a2be0)
- Provisioning: Fixed hostname resolving for IPv6-only host (dc2b26c)
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. (a7782d0)
- Documentation: Added BLE Features Support Status to API Guides (4913f93)
ESP Bluedroid Host
Added
- Added API to set BLE supported channel selection algorithm. (6948697)
- Added BLE connection ID parameter for
ESP_GATTS_RESPONSE_EVT
. (d4a69b5)
Changed
- Optimized BLE examples for setting advertising data. (0593e04)
Fixed
- Fixed Classic Bluetooth build failure when enabling dynamic memory and disable BLE (f35389e)
- Fixed crash issue in BLE SMP when a disconnection process is ongoing (951aaa2)
- Fixed BLE build failure when enabling dynamic memory with BLE 5.0 (845a925)
- Fixed an error when writing Client Supported Features characteristic. (89bf068)
- Fixed BLE handle check for GATT API. (fe53000)
- Fixed access fault when reading BLE controller information fails. (d4a69b5)
- Fixed memory out-of-bounds issue when parsing ADV data. (140873d)
- Reported HCI error status to application when commands fail. (1720dc7)
- Cancelled the BLE connection initiation if the connection has already been established when both devices initiate a connection simultaneously. (1720dc7)
- Added print and assert statements for memory allocation failures. (1720dc7)
- Checked whether the work queue is NULL before deleting it when creating thread failed. (1720dc7)
Bluetooth Low Energy Controller
Added
- Added config for whether to disconnect after the instant of ACL control procedure has passed on ESP32. (d22ed3f)
- Added a verification step for the Access Address within the
CONNECT_IND
PDU on ESP32. (d22ed3f) - supported for BLE scanning and initiating state coexistence on ESP32. (1245cb2)
- supported for running controller code in flash-only mode on ESP32-C3 and ESP32-S3 (9196ca3)
- Supported using external 32k oscillator as Bluetooth sleep clock on ESP32/ESP32-C3/ESP32-S3 (5bb5407)
- Supported enhanced BLE TX power setting and getting on ESP32-C3 and ESP32-S3. (dfbbbab)
- Supported for putting code in flash on ESP32-C2 (7cd3d4a)
Changed
- Changed the maximum TX power to +20dBm on ESP32-C3 and ESP32-S3. (1bde824)
- Updated the BLE rom.ld file for ESP32-C2 revision 2.0. (5ccf21e)
Fixed
- Fixed the issue where the BLE connection can't be established when initiating and advertising coexist on ESP32. (d22ed3f)
- Fixed the issue where SCAN could not be reset when the Controller was reset during scanning on ESP32. (88030d4)
- Fixed assert in ke_mem.c at line 409 when controller resets on ESP32. (d22ed3f)
- Fixed an occasional issue where BLE fails to send ADV packets when Wi-Fi keeps scanning in the coexistence scenario. (0a14e9a)
- Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 revision v1.1. (03a0b7a)
- Fixed early wake-up during light sleep when using the RC oscillator on ESP32-C3 and ESP32-S3. (7531d7e)
- Fixed BLE TX power retrieval failure on ESP32-C3 and ESP32-S3. (7531d7e)
- Fixed extended connectable advertising data length check on ESP32-C3 and ESP32-S3. (530f891)
- Fixed BLE scan assert in lld_scan.c 1728 on ESP32-C3 and ESP32-S3. (351e920)
- Fixed the issue where the subsequent periodic advertising sync creation failed after canceling sync before sync established on ESP32-C3 and ESP32-S3. (ee735d7)
- Fixed the BLE assert on emi.c 210 on ESP32-C3 and ESP32-S3. (4d0db70)
- Fixed assert when the BLE connection already exists and is connected again on ESP32-C3 and ESP32-S3. (4d0db70)
- Fixed BLE channel map update issue when latency is non-zero on ESP32-C3 and ESP32-S3. (dfbbbab)
- Fixed occasional crash issue in low memory scenarios on ESP32-C6 and ESP32-H2. (dc1265c)
- Fixed occasional crash issue in multi-connect scenarios on ESP32-C6. (a286bc3)
- Fixed occasional ACL data packet loss issue when using UHCI on ESP32C6 and ESP32-H2. (a286bc3)
- Fixed occasional assertion issue when enabling logging on ESP32-C2. (a286bc3)
- Fixed memory leak issue when deinitialising UART HCI on ESP32-C2, ESP32-H2 and ESP32-C6. (a286bc3)
- Fixed instant wake up from deep sleep when BLE is running on ESP32-H2. (5a14b3c)
- Fixed a crash during host deinitialization after the controller had been deinitialized on ESP32-C2. (8afaec4)
- Fixed an occasional WDT issue when disabling the Controller on ESP32-C6. (990a84a)
ESP BLE Mesh
Added
- Added an option
BLE_MESH_V11_SUPPORT
to enable or disable BLE Mesh v1.1 features (ded2989)
Fixed
- Fixed wrongly updating time set parameter in the time scene server model (48088ec)
- Fixed crash may happen when using NimBLE host at compilation level Os (310e71e)
ESP NimBLE Host
Added
- Added support for ext adv param v2 HCI command (3743d38)
- Added support for bidirectional data transfer between SPP client and server (7c0c3fa)
- Created a function to make
CCCD
flags configurable (50abf54) - Updated
BT_HCI_LOG_INCLUDED
usage according to nimble nomenclature (64d8797) - Added BLE NimBLE Get Started examples added under examples/bluetooth/ble_get_started/nimble (b1f6f33)
- Added new event to indicate link establishment. (10bba8f)
- Added support to initiate a connection while a scan is in progress. (7506432)
- Supported Bluetooth LE 5.1 direction finding on nimble host. (30d5bd0)
Changed
- Update correct parameter in set Data len API in case where BLE 5.0 support is disabled (5f5feed)
Fixed
ESP-IDF Pre-release v5.4-beta2
Documentation for IDF v5.4-beta2 is available at https://docs.espressif.com/projects/esp-idf/en/v5.4-beta2/
ESP-IDF v5.4-beta2 is a preview release for ESP-IDF v5.4.
Obtaining v5.4-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.4-beta2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.4-beta2
cd esp-idf-v5.4-beta2/
This is the recommended way of obtaining v5.4-beta2 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.4-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.4-beta2/esp-idf-v5.4-beta2.zip
Major changes
This is the list of changes since release v5.3:
Major New Features
- Added support for ESP32-C2 chip rev 2.0 (e43ded7)
- Wi-Fi: Added FTM calibration values for ESP32-C6 (e990d1e)
- Wi-Fi: Reduced power consumption in coexistence mode when Wi-Fi is disconnected 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 ESP32-H2
- ULP: Greatly expanded support for LP Core on ESP32-C6 and ESP32-P4 with, among others: OpenOCD debugging support, LP-ADC, LP-SPI, ETM wakeup, LP-IO wakeup.
- I2C: Added support for LP I2C instance on ESP32-P4 (ec3029e)
- ISP: Supported a series of ISP features on ESP32-P4
- LCD: Added i80 and RGB LCD driver support on ESP32-P4 (fdd90d4) (6d71638)
- Touch Sensor: New touch sensor driver for ESP32-P4 (c23165b)
- MbedTLS: Added support ESP32-C2 rev2.0 ROM mbedtls-v3.6.0 (9a47de5)
- PSRAM: Added support for APS3204L chip (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)
- Wi-Fi: Modified the type of "bandwidth" and comment in wifi_ap_record_t. (3b0cf1a)
- 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) - ESP HTTP Server: HTTP version 1.0 was previously supported due to a software bug. With this update, only HTTP/1.1 is allowed. (57553ec)
- MbedTLS: MbedTLS option
MBEDTLS_ECP_FIXED_POINT_OPTIM
is disabled by default to save on significant (~27KB) flash footprint. This allows easier migration from IDF 4.x to 5.x release. If the performance is desired and ECC accelerator is not available then the config can be turned on. (27f11f8) - MbedTLS: Supported for SHA3 operations is now configurable and disabled by default to save flash size. The config can be enabled if an application needs to perform SHA3 operations. (27f11f8)
Known Issues
- For ESP32-C2 ECO4 chips, instruction access fault will be triggered only when receiving deauth packets with ccmp and crypto_aes_128_cmac encryption mode.
- For ESP32-P4 chips, when
ESP_SLEEP_KEEP_DCDC_ALWAYS_ON
is not enabled (enabled by default), accessing external storage (Flash/ PSRAM) after waking up from light sleep may get incorrect data. - Programming guide in PDF format is not available for this release.
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)
- Added OpenThread dataset changed event (f012157)
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)
Fixed
- Fixed the issue of incorrect duration and channel configuration in
otPlatRadioEnergyScan
calls (1754c8f)
Zigbee
Changed
- Updated Zigbee Gateway example to use ot_rcp instead of esp_zigbee_rcp (dd8b4fa)
- Updated the Zigbee examples to be based on the ESP-Zigbee 1.6.x release (dd8b4fa)
Removed
- Removed the esp_zigbee_rcp example (dd8b4fa)
Application Utilities
Added
- ESP HTTP Client: Added new feature of http method (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 chips 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)
- ESP HTTP Server: Updated logic to enforce HTTP/1.1, no longer supporting other versions (#14723) (57553ec)
- Provisioning: Fixed hostname resolving for IPv6-only host (343bb81)
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)
- Added API to set BLE supported channel selection algorithm. (755d3a2)
Changed
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...