github espressif/esp-idf v5.2.1
ESP-IDF Release v5.2.1

latest release: v5.4-dev
one month ago

Documentation for ESP-IDF v5.2.1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.2.1/

ESP-IDF v5.2.1 is a bugfix update for ESP-IDF v5.2.

Obtaining v5.2.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.2.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.2.1
cd esp-idf-v5.2.1/

This is the recommended way of obtaining v5.2.1 of ESP-IDF.

Download an archive with submodules included

Attached to this release is an esp-idf-v5.2.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.2.1/esp-idf-v5.2.1.zip

Major changes

This is the list of changes since release v5.2:

Breaking Changes

  • Removed CONFIG_IEEE802154_RECEIVE_DONE_HANDLER option, now the code using the 802.15.4 driver directly must call ieee802154_receive_handle_done after receiving the frame. ( dbbe2cf)

Changelog

802.15.4

802.15.4 MAC

Added

  • Added the pending tx while rx feature ( dbbe2cf)

Removed

  • Removed CONFIG_IEEE802154_RECEIVE_DONE_HANDLER option, now the code using the 802.15.4 driver directly must call ieee802154_receive_handle_done after receiving the frame. ( dbbe2cf)

Thread

Added

  • Added ESP Radio spinel for external protocol stack ( dbbe2cf)
  • Added ESP OpenThread vendor commands support ( dbbe2cf)
  • Added configure option for openthread address query ( dbbe2cf)
  • Supported the common console command in OT CLI ( dbbe2cf)
  • Supported openthread radio caps rx on when idle ( dbbe2cf)

Fixed

  • Fixed RCP handle timeout crashing issue ( dbbe2cf)
  • Enabled UART ISR in IRAM for UART RCP process ( dbbe2cf)
  • Disabled the rx on when idle in coex scenario ( dbbe2cf)

Zigbee

Changed

  • Updated Zigbee examples to align with esp-zigbee-lib v1.0.9 ( dbbe2cf)

Bluetooth Low Energy (BLE)

Bluetooth Low Energy Controller

Added

  • Support enable aux packet when extend advertising data length is zero on ESP32-C3 and ESP32-S3. ( d4dd0d4)

Fixed

  • Fixed the occasional assertion of rxbuffer_free_all on ESP32-C6 and ESP32-H2. ( b0fc021)
  • Fixed the assertion in memory check when the host processing is too slow on ESP32-C6 and ESP32-H2. ( b0fc021)
  • Fixed the assertion of get_rxed_buffer() when the host task is blocked for a long time on ESP32-C6 and ESP32-H2. ( 1c2a671)
  • Resolved the problem of packet loss occurring during the 1M DTM Rx process on ESP32-H2. ( 1c2a671)
  • Fixed the occasional cache error issue when sleep is enabled on ESP32-C6 and ESP32-H2. ( 1c2a671)
  • Fixed scheduling when modem sleep wakeup delayed on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed BLE IRQ FIFO overflow when enter critical on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed clock sync timeout when exit modem sleep on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed directed advertising with RPA when privacy disabled on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed instant passed when connection updating or PHY updating on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed BLE TX count in direct test mode on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed BLE modem sleep enter failed sometimes on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed BLE TX count in direct test mode on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed BLE modem sleep enter failed sometimes on ESP32-C3 and ESP32-S3. ( d4dd0d4)
  • Fixed Bluetooth not waking up due to internal 136k oscillator clock drift on ESP32-C3 and ESP32-S3 ( 9e984cd)
  • Fixed BLE scan request IFS time error in coexistence scenarios on ESP32 ( 11eaf41)

ESP Bluedroid Host

Added

  • Added getter for BLE GATTC GATTS and GAP calllback. ( d4dd0d4)

Changed

  • Optimized BLE heap allocation to fix malloc fail in malloc_internal_wrapper (#12574). ( d4dd0d4)

Fixed

  • Fixed BLE dangling pointer issue in deletion of bonded devices. ( d4dd0d4)
  • Fixed xQueueSemaphoreTask assert when deinit host during scan ( 7e6e769)
  • Example: Fixed UART HCI when flow control is off on ESP32C3 and ESP32-S3. ( 5cb1e9f)

ESP-BLE-Mesh

Fixed

  • Fixed compiling error when PB-ADV is disabled for node ( 95b5f12)
  • Fixed using wrong adv type for ADV_NONCONN_IND in NimBLE Host adapter ( 8a0132a)
  • Fixed the struct initialization to meet C++ requirements for BLE Mesh stack ( 7a9b686)
  • Fixed the struct initialization to meet C++ requirements for BLE Mesh examples ( 7a9b686)

ESP NimBLE Host

Added

  • Added change to return success for API execution in "ble_sm_inject_io" ( e094428)
  • Added APIs to support BLE DTM functions. ( e094428)
  • Added Gatt Caching support ( 8b08d11)
  • Added connection reattempt in case of Ext connect ( 8b1c532)
  • Added check to validate adv interval min /max range ( e094428)
  • Added test API to show stack operations status ( e094428)
  • Added nimble-host only support over UART. ( e094428)
  • Added observer role flag. ( e094428)
  • Added support for user to authorize GATT read or write operations. ( e094428)
  • Added support for more advertisement data AD Types. ( e094428)
  • Added support for Characteristic Presentation Format Descriptors. ( e094428)
  • Added support for Characteristic Aggregate Format Descriptor. ( e094428)
  • Added support for sending and receiving signed write commands using CSRK and Sign Counter. ( e094428)

Changed

  • Updated variable name to remove keyword. ( e573b7c)

Fixed

  • Fixed wrong #if guard in porting layer and UART configuration support. ( a707ab9)
  • Fixed signed write procedure using correct CSRK and message. ( 9feab17)
  • Authorized or deauthorized a BLE device for a connection ( 768bd47)
  • Fixed general and limited scanning to check relevant Flags AD Type. ( e094428)
  • Fixed allowing selective and auto connection establishment. ( e094428)
  • Fix out of order message causing DOS during SMP procedure. ( e094428)
  • Fixed address resolution during inquiry for host based privacy. ( 93ea06f)
  • Fixed issue of enabling address resolution across reboot ( 2d36710)

Removed

  • Removed unwanted assert. ( 99552eb)
  • Removed double free of l2cap packet in example ( 923546b)
  • Removed duplicate hci_common.h file. ( e094428)

Classic Bluetooth

Classic Bluetooth Bluedroid Host

Added

  • Added field link key type to the parameter structure of callback event ESP_BT_GAP_AUTH_CMPL_EVT ( 77f5391)
  • Added callback event ESP_BT_GAP_ENC_CHG_EVT to notify the change of encryption mode to application layer ( 77f5391)
  • Added description of use limitations of security masks in SPP API document ( 9dcc8c9)

Changed

  • Update migration docs for new version of API for Bluedroid host stack initialization ( 3de398b)

Fixed

  • Fixed SPP connection failure due to out-of-sync status of application layer and BTU layer ( ee4fdf8)
  • Fixed the dangling pointer in processing the list of bonded Bluetooth device ( 406e11b)

Classic Bluetooth Controller

Bluetooth Common

Bluedroid

Changed

  • Make the maximum number of bond devices to be configurable. ( 5cb1e9f)

Coexistence

Fixed

PHY

Fixed

  • Fixed BLE 2M PHY TX problem causing by phy_wifi_enable_set() on ESP32-C3 and ESP32-S3 ( 8ab1027)
  • Fixed BLE CCA bug on ESP32-C2 ( 8ab1027)
  • Fixed Wi-Fi boot bug at low temperature on ESP32-C6 ( 8ab1027)
  • Fixed BLE and Wi-Fi could not receive packets after entering light sleep for a long time on ESP32-C3, ESP32-S3, ESP32-C2 and ESP32-C6 ( 8ab1027)

Wi-Fi

Fixed

  • Smart Config: Removed rogue semicolon in SMARTCONFIG_START_CONFIG_DEFAULT() which was causing some build errors when used in C++ (#12867) ( f1561c6)

Wi-Fi MAC

Changed

  • Updated scan AP number when clear scan AP records ( a328e1a)

Fixed

  • Fixed beacon timeout after restart ( a328e1a)
  • Fixed Wi-Fi stop cost too much time at coexist scenario ( a328e1a)
  • Fixed the old_snd filed error in WIFI_EVENT_HOME_CHANNEL_CHANGE event (closes #13051) ( a328e1a)
  • Fixed issue that task watchdog got triggered in mplen clear on ESP32C6( a328e1a)
  • Fixed issue that esp_wifi_set_mode() not returning error for invalid argument ( a328e1a)
  • Used low rate to send DHCP offer and DHCP ack to avoid get IP fail ( a328e1a)
  • Used QoS data to send EAPOL packets ( a328e1a)
  • Fixed potential memory issue in wifi stop(may increase binary image by 2KB) ( a328e1a)
  • Fixed esp_wifi_scan_start memory leakage issue (#10693) ( 1cd164b)
  • Fixed PMK invalid causes same SSID WPA and WPA2 connect fail issue ( e8548e7)
  • Fixed ESP32-C2 disconnect reason code wrong issue ( 4f6cca6)

ESP-WIFI-MESH

Fixed

  • Waited for child disconnect event when mesh deinit ( a328e1a)

Wi-Fi Supplicant

Added

  • Added low heap Kconfig option for EAP enterprise ( 4a3f224)
  • Added support to move supplicant BSS to external memory ( 65d127d)

Fixed

  • Added change to allow calling esp_mbo_* APIs only when MBO config flag is enabled. ( 7e9a9b3)

ESP Vendor Feature

Fixed

  • Example: Fixed smart config BSSID set issue. ( 1cd164b)

Ethernet

Added

  • Added option to use SPI Ethernet modules in poll mode without interrupt. #12682 ( 34ec96e)
  • Added a timeout in Rx task when waiting for interrupt for KSZ8851. ( 34ec96e)
  • Added option to read/write PHY registers via ioctl API ( 5a557bb)
  • Added extra delay after setting PHY speed for LAN87xx ( 5a557bb)

Fixed

  • Fixed SPI Ethernet _alloc_recv_buf error handling ( 527ce5e)
  • Fixed W5500 flush received frame function ( 527ce5e)

Security

Fixed

  • Fixed build failure and incorrect GCM hardware usage when CONFIG_MBEDTLS_HARDWARE_GCM is disabled ( b43aa04)
  • Additional protection for secure version check in anti-rollback case to avoid security bypass with physical access to flash ( d7f19c4)
  • Updated API esp_hmac_disable_jtag() to disable JTAG access correctly. ( 1bd76ee)

Peripheral Drivers

Added

Changed

  • I2C LCD: Updated the OLED example with the new I2C master driver (#13201) ( 383a1e8)

Fixed

  • Modbus: Fixed possible incorrect event processing in modbus slave examples ( 6717fa0)
  • ADC: Fixed disable adc will make temperature sensor crash (#12921) ( 6e70290)
  • ADC: Fixed wrong results after ADC continuous mode stops and starts again on ESP32-C6/H2/S3/S2/C2/C3 ( 1156370) ( db3aa57)
  • Dedicated GPIO: Fixed the software UART driver to stop sending the dummy byte from the emulate_uart_send routine. ( 0810501)
  • I2C: Fixed i2c_master driver failed to read one byte on ESP32. ( 4bf00b2)
  • I2S: Fixed incorrect reg base name on ESP32-C3 (#12643) ( 81dc597)
  • MCPWM: Reset the generator GPIO after deleting (#12980) ( 48e3103)
  • RGB LCD: Fixed the issue that the restart transmission can't work with RGB332 pixel format (#13020) ( de6aecf)
  • Temperature Sensor: Fixed issue that temperature sensor cannot change range smoothly on ESP32-H2 ( 2fc023e)
  • Temperature Sensor: Fixed incorrect value after disable and enable again (#12864) ( 6e70290)

Removed

  • RGB LCD: Removed the validation of pins for RGB_LCD output (#13103) ( de6aecf)

System Hardware

Added

  • Efuse: Added new eFuses for ESP32-H2 and ESP32-C6 ( 3c7c582)

Changed

  • Improved voltage convergence of ESP32-C6/H2 chips for better stability ( 8e1cd38) ( 3c7c582)

Fixed

  • BOD: Fixed the wrong threshold set on ESP32-H2 ( a65db35)
  • Cache: Fixed the startup crash on ESP32-S2 when the DCache size is set to zero ( cc60b86)

Core System

Fixed

  • Console: Fixed a bug in linenoise console where a negative prompt length can lock up the console, making it unresponsive and leading to a task watchdog timeout. (#4924) ( 6b6ca2d)
  • Console: Fixed app failing to boot with CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG on ESP32C3 (#13197) ( 7ec8266)
  • Heap: Fixed missing include in esp_heap_task_info.h ( 08a50af)
  • Heap: Fixed double traversal of SLIST in map_find_and_remove() when heap trace standalone is enabled (#12820) ( 709d8ef)

Debugging

Added

  • Coredump: Add ESP32-P4 support ( 61db22a)

Changed

  • Coredump: Improved TCB access by changing task traversal method. ( 04ce3af)

Low Power Features

Power Management

Added

  • Support GDMA channel configuration retention in peripheral power down light sleep ( 2b084b1)

Fixed

  • Deep sleep current may decrease about 0.2uA on ESP32-H2 ( 3c7c582)
  • Deep sleep current may decrease about 0.2uA on ESP32-C6 ( 8e1cd38)
  • Light sleep current may decrease about 3uA when top_on and cpu_on on C6 ( 8e1cd38)

ULP

Added

  • ULP: Added API for de-initing the ULP-RISCV ADC (#12785) ( 47b7e61)

Fixed

  • ULP: Fixed an issue where the RTC I2C SDA and SCL lines were not initialized in open-drain mode. ( 2c0d846)
  • ULP: Fixed an issue where the LP I2C SDA and SCL lines were not initialized in open-drain mode. #12969 ( 228c9a7)

LWIP

Added

  • Added a config option to set fall back DNS server (#12530) ( 3f730f2)

Fixed

HTTP Client

Fixed

  • Fixed esp_http_client_example build failure for ESP32-C6 ( 585f9a0)
  • Fixed esp_http_client digest auth without qop ( 3549a15)
  • Fixed reset errno value to 0 before call esp_transport_read. ( 51d2f67)

mbedTLS

Changed

  • Updated mbedTLS to v3.5.2 ( 360ecf5)

Bootloader

Added

  • Added legacy retained memory CRC calculation as an option (#12849) ( da6412b)
  • Added a config to encrypt only the app image instead of the whole partition when flash encryption is enabled (#12576) ( 4beadd4)

Fixed

  • Fixed the value of the image_length field of the image metadata populated by esp_image_verfiy() to include the size of the signature sector when Secure Boot V1 is enabled. ( 4beadd4)

Storage

Fixed

  • Fatfs: Fix issue where FatFs tried to trim on sd cards that did not support it ( 001b8ff)

Tools

Fixed

  • Fixed support of gdbgui on Unix with Python 3.11 (#12764) ( 0d3486b)
  • Removed extra new lines in saved command's output (stdout/stderr) on Windows, which may break hint processing. ( 7ab6811)

Documentation

Fixed

  • Added missing semi-colons in the code blocks presented in the esp_event documentation. (#13156) ( 98cbd1f)

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.