Documentation for IDF v5.3.4 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3.4/
ESP-IDF v5.3.4 is a bugfix release for ESP-IDF v5.3.
Obtaining v5.3.4
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.4 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.4
cd esp-idf-v5.3.4/
This is the recommended way of obtaining v5.3.4 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.3.4.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. To reduce the size of the archive, the .git
directory doesn't include the history of commits older than one year. Users who need to use git checkout
to access an older release of IDF will have to use git fetch
first to download the remaining part of the history.
This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.3.4/esp-idf-v5.3.4.zip
Major changes
Breaking changes
- Security: The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (cddc668)
- Security / MbedTLS: If using MbedTLS for server certificate verification, it is mandatory to call
mbedtls_ssl_set_hostname
before the connection begins. No change is required if the application usesesp-tls
layer. (52b43b3) - Peripheral Drivers / Touch Sensor: Adjust touch channel number on P4 from 0-13 to 1-14. (dc625ba)
- Peripheral Drivers / SD_HOST / SDMMC: Function
sdmmc_host_init
no longer returnsESP_ERR_INVALID_STATE
when the SDMMC host is already initialized, now it returnsESP_OK
. (a3aa438) - 15.4 / MAC: Added a duration argument for ieee802154_receive_at() (4eddf0c)
Changelog
This is the list of changes since release v5.3.3.
15.4
MAC
- Added Tx/Rx frame dumping for debugging (935f660)
- Added a duration argument for ieee802154_receive_at() (4eddf0c)
Thread
- Use the ML-EID address for self-hosted services if OMR address is not preferred (b9460c5)
- Supported RCP over USB Serial JTAG interface (838a24e)
- Added a function to exit openthread main loop safely (39515e2)
- Supported bus_latency configuration for Thread BR (c16caab)
- Updated openthread submodule (ec2b0d487) (4c8ebb9)
- Supported OT_BR example for ESP32-P4 (4c8ebb9)
- Supported periodic parent search mechanism for MTD (165bacc)
- Added a function to ensure monotonically increasing frame counter (da11774)
- Added a callback to handle rcp reset failure (da11774)
- Bound DNS server to unspecified netif on Border Router (da11774)
- Supported DNS resolution / forwarding for Thread BR (d84c417)
- Fixed recursive multicast packet forwarding issue (d84c417)
- Updated openthread submodule (8c30b93) (d84c417)
- Fixed CSL issue in which RX is not turned off during idle periods (4eddf0c)
Application Utilities
CJSON
- Update to latest upstream cJSON master. (2be4cef)
ESP HTTP Client
- Fixed memory leak in HTTP client when header parsing fails during fetch operation. (a2ad569)
- Added API to extract TLS error from HTTP client. (#15059) (7d97a53)
- Added a configuration to set address type (635c419)
ESP HTTP Server
- Fixes multiple WebSocket frame parsing errors. The issue arises due to httpd_recv_with_opt returning partial data. (#15767, #15235) (103d5d1)
- Fixed httpd_register_uri_handler api for memory leak (#15878) (064a724)
ESP HTTPS Server
- Fixed the HTTP server Async handler example for multiple /long URI requests and handled some error conditions. (#15587) (df74d2b)
- Updated the CA certificates that were used for self-signing/mutual authentication use cases to contain the
Key Usage
parameter due to the change in Python3.13's default ssl context requirements. (3527042)
BLE
BluFi
- Added support for stopping adv in BLUFI for nimble (9e042f6)
Bluedroid
- Fixed extended adv restart failure during reconnection. (96c50f9)
- Fixed BLE SMP state machine inconsistency on disconnection (d1159f6)
- Fixed null pointer assert in
l2c_link_check_send_pkts
(8ef8691) - Fixed issue with deleting link key when classic Bluetooth is not used. (1dd628e)
- Increased maximum attribute value length to 517 to prevent data loss. (60cd7f5)
- Fixed validation logic for BLE GAP appearance configuration. (60cd7f5)
- Added
sync_cte_type
in bluedroid PA sync fucntion (b158614) - Added throughput mode for BLE SPP example. (c854f7f)
- Added BLE eddystone sender example. (ee7e35a)
- Fixed missing event reporting in
esp_ble_create_sc_oob_data
. (2216ed9) - Fixed BLE crash when disabling bluedroid host. (2216ed9)
- Fixed potential uint32_t overflow in BLE
btu_start_timer
. (2216ed9) - Fixed memory leak issue when using dynamic memory and deinitializing the host. (2216ed9)
- Added support for the "Read Periodic Advertiser List Size" command. (8c0f374)
- Added Read Long Characteristic Values example. (2a45026)
- Supported BLE iso in bluedroid host (4615344)
- Supported BLE CTE in bluedroid host (4615344)
- Supported BLE bluedroid host power control feature (4615344)
- Supported BLE bluedroid host connection subrating feature (4615344)
- Added a new API
esp_bt_config_file_path_get()
to retrieve the Bluetooth configuration file path used for storing bond keys in the NVS module. (4615344) - Added
esp_ble_gap_read_channel_map()
API to retrieve the BLE channel map of a connected device. (4615344)
Controller
- Optimized check Access Address when receive connection request PDU on ESP32 (8926bc4)
- Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3. (a42a69f)
- Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3. (a42a69f)
- Fixed BLE anonymous extended advertising filtering. (a42a69f)
- Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3. (a42a69f)
- Fixed an occasional sync lost issue on ESP32-C6 and ESP32-H2. (37db553)
- Fixed an occasional assert issue in case of controller disable on ESP32-C2. (37db553)
- Fixed an occasional assertion issue during sync on ESP32-C6 and ESP32-H2 (c5f6896)
- Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6 and ESP32-H2. (c5f6896)
- Reduced bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (4009aa6)
- Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (4009aa6)
- Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2. (4a01630)
- Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2. (4a01630)
- Fixed an issue where the central role would disconnect abnormally when the peripheral did not support the Connection Parameters Request Procedure on ESP32-C6 and ESP32-H2. (4a01630)
- Fixed an occasional assertion issue during scanning on ESP32-C6. (4a01630)
- Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (#15789) (ade43f3)
- Fixed an occasional assertion issue in scan and connection scenarios on ESP32-C6. (88cb302)
- Supported creating connections during scanning process on ESP32-C6 and ESP32-H2. (88cb302)
- Fixed occasional packet loss issue in multi-connection scenarios on ESP32-C6. (88cb302)
- Fixed crash issue caused by using os_mbuf_dup on ESP32-C6 and ESP32-H2. (88cb302)
- Fixed occasional timeout issue during connection parameter update while latency is active on ESP32-C6 and ESP32-H2. (29c26da)
- Fixed an issue where the DID was not refreshed after stopping advertising and updating the advertising data on ESP32-C6 and ESP32-H2. (29c26da)
- Fixed an occasional assert issue when repeatedly starting and stopping extended advertising during periodic advertising scenario on ESP32-C6 and ESP32-H2. (29c26da)
- Fixed an occasional interrupt watchdog timeout issue on ESP32-H2. (29c26da)
- Fixed an occasional assert issue in function r_ble_lll_sched_check_remaining_entries when ble spi log is enabled for ESP32-H2. (29c26da)
- Fixed MIC error disconnection when pairing with an iOS device on ESP32-C3 and ESP32-S3. (6946068)
- Disable anonymous extended advertising reporting on ESP32-C3 and ESP32-S3. (aa5357a)
- Fixed BLE assert lld_adv.c 2992 on ESP32-C3 and ESP32-S3. (aa5357a)
- Fixed heap assert due to advertising data buffer double freeing on ESP32-C3 and ESP32-S3. (aa5357a)
- Fixed BLE 0x08 disconnect when the window size is greater than half of the connection interval on ESP32-C3 and ESP32-S3. (aa5357a)
- Fixed an occasional assert issue when stopping aux scan on ESP32-C6 and ESP32-H2. (182b158)
- Fixed an occasional assert issue when the task is blocked during the extended scan scenario on ESP32-C6 and ESP32-H2. (182b158)
- Fixed the occasional issue of not receiving packets during the extended scan scenario on ESP32-C6 and ESP32-H2. (182b158)
- Fixed the cache error if controller runs in flash and BLE sleep is enabled on ESP32-C2. (c399ca8)
- Fixed possible assertion when multiple ACL runs concurrently on ESP32-C6, ESP32-H2. (c399ca8)
- Fixed occasional interrupt watchdog timeout issue when scanning and connection coexist on ESP32-C6. (c399ca8)
- Fixed an occasional issue where the connPeripheralLatency parameter was not properly applied on ESP32-C6, ESP32-H2. (c399ca8)
- Fixed an occasional
load access fault
issue when performingext_conn
creation for ESP32-C2. (5de769c) - Added a function to maintain the connection when an instant pass issue occurs on ESP32-C2. (5de769c)
- Fixed extended advertising interval upper limit issue on ESP32-C6 and ESP32-H2 (#15240) (5de769c)
- Fixed hci assertion issue when uart interference occurs on ESP32-C2, ESP32-C6,ESP32-H2. (97016c9)
- Changed the maximum supported value of the whitelist to 31 on ESP32-C2, ESP32-C6,ESP32-H2. (97016c9)
- Fixed GPIO unavailable warning when repeatedly reconfiguring HCI UART pins on ESP32-C2, ESP32-C6, ESP32-H2. (97016c9)
Mesh
- Optimized the performance of remote provisioning (4e7e58f)
- Fixed an unprovisioned device may be provisioned by provisioner and remote provisioning client at the same time (4e7e58f)
NimBLE
- Add timestamp information to HCI logging. (2138198)
- Provide a way to make blufi advertising customizable. [ https://github.com/espressif/esp-idf/issues/16234\\] (9d031f2)
- Add a missing instance of ble_hs_unlock() in a corner case. (e2c9605)
- Added Bluetooth LE CTE connless AoA/AoD example. (bcba433)
- Added parameter in peer_init() to allocate memory for included services (be58299)
- Automatically initiate security and retry service request if service request fails due to insufficient security. (fed967d)
- Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications. (fed967d)
- Wrap BLE service API with extern "C" (cf343ab)
- Fix compilation issue when CSFCS is set to 0. (cf343ab)
- Fixed issue of Adv report not observed in PAwR example. (34868cf)
- Added sdkconfig with options to showcase DRAM reduction for NimBLE examples. (9fc65dc)
- Handle memory leak due to missing mempool_deinit call (f506bf2)
- Add Support for Apple Notification Center Service (ANCS) in NimBLE (1a6c26d)
- Add chip dependancy flag for Flow control feature (95b3176)
- Fixed incorrect comparison with gattc proc that can cause request-response mismatches (7e99457)
- Added support for anonymous address type for whitelist (4d86268)
- Added fix for an async race condition with HCI outstanding packets counter (4d86268)
- Add configurable option to select ext adv v2 command (4d86268)
- Fixed UUID type error in GATT caching API to search for included services. (37c0d83)
- Added api's to fetch gatt cache info (d56f1b5)
- Added option to enable stack to handle repeat pairing internally (d00ce57)
- Added runtime configurable support for observer role, security mode 1 level, and GATT caching (9e99b2a)
- Modified HID KIR and MIR Characteristic write permission from hardcoded to configurable (9e99b2a)
- Fixed LLS crash when no callback was registered for LLS event (9e99b2a)
- Added SPS callback event to expose changes in scan parameters (9e99b2a)
- Fixed incorrectly passed in GATT Caching disovery operations (9e99b2a)
- Enabled Connection Subrating bit in ESP32C6 (9e99b2a)
- Optimized nimble throughput example by extended adv support and switching between different Phy modes. (207db46)
- feat(nimble): Added tutorials for PAwR examples (a11b8f7)
- Fix sync handle assignment for PAwR connection (33eb5fc)
- Updated event posting in Read Remote Features event handling [ Closes #15670 ] (5ac3846)
- Addressed incorrect OTA address type assignment (5ac3846)
- Fix conversion for min-max itvl of periodic adv param in example (84c4160)
- Added a change in the BLE SPP Client example to allow the client to subscribe to the server. (002c737)
- Made ble_gap_wl_tx_add API visible to applications to add a device in whitelist (70c9a75)
- Add support for Vendor Event mask VSC (70c9a75)
- Fix SMP command allocation (70c9a75)
- Fix incorrect event deinit in gatt caching discovery (70c9a75)
- Add Bluetooth LE 5 1 direction finding feature. (70c9a75)
Bootloader
- Fixed partition size cannot exceed 16MB issue, when CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH or CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH is on (48dedde)
Build & Config
- Misspelled Kconfig[.projbuild] files are now detected by the build system (espressif/esp-idf-kconfig#14) (4c68cde)
- Fixed ESP32-P4 linker script that was missing the
arrays
attribute for external RAM section. (8b725de) - Fixed CMake configuration warning CMP0165 for Linux target (#15488) (833adbc)
- Changed build fatal error to warning when the ESP_ROM_ELF_DIR environment variable is not set (d618bb5)
Classic Bluetooth
Bluedroid
- Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (575007a)
- Added AVRCP callback event for notification of profile ON/OFF state (ede2d09)
- Fixed the issue where an incorrect mask was used to exclude SCO packets during the establishment of eSCO link (ed87d1d)
- Fixed the issue that L2CAP server stop operation does not report the
ESP_BT_L2CAP_SRV_STOP_EVT
event (1977c70) - Added events for l2cap register and unregister vfs (8b83368)
- Fixed
write_read
task stack overflow in l2cap example (8b83368) - Fixed the issue with l2cap not using dynamic memory (8b83368)
- Fixed no report of ESP_SPP_WRITE_EVT and Bluedroid btc task being blocked when SPP connecion number reaches the upper limit (8b83368)
- Fixed memory leaks in SPP callback mode (dd8d184)
- Added APIs to get status on such information as initialization state, connection number, for Classic Bluetooth profiles (5a011fa)
- Fixed connection failure due to insufficient number of service security records when multiple profiles are initialized. (91a8ee9)
- Fixed reporting of unexpected
ESP_BT_GAP_DISC_STATE_CHANGED_EVT
event upon ACL disconnection, due to uninitialized local variable (4adf400) - Fixed the issue that after SPP reaches the maximum number of connections, it will mistakenly free the server resources when disconnecting, causing the next server start to fail. (6034125)
Controller
- Fixed bt hci event was not report to host when hci command was sent on ESP32 (24bc87d)
- Fixed the incorrect unit of clk in CPB rx event on ESP32 (c04f7e0)
- Fixed LMP legacy and secure authentication collision bugs on ESP32 (b0781fe)
- Implemented a workaround for potential data packet exchange issues when secure connection is enabled on ESP32 (82b1690)
- Fixed ACL has few chance to run when it coexists with SCO on ESP32 (3a0d5d7)
- Fixed errors in dynamic priority configuration in Bluetooth dual mode on ESP32 (3a0d5d7)
- Fixed a crash issue caused by accessing external memory in ISR context on ESP32 (3a0d5d7)
- Fix the incorrect unit of
duration_min
in CPB TX on ESP32 (916f199) - Recalculate the channel map when AFH is enabled on ESP32 (916f199)
Coexistence
- Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32C2 (778e501)
- Support BR/EDR (e)SCO and Wi-Fi coexistence. (5233129)
Core System
- Fixed esp_ptr_executable and esp_ptr_byte_accessible to consider TCM memory (#15998, #15996) (6a4ab82)
- Fixed an issue that prevented RTC reserved area to have a size multiple of 4 (#13082) (84ddb41)
- Fixed esp_ptr_executable to specifically check if the pointer is in PSRAM memory on esp32p4. (83bac55)
- Ensure proper reset for crypto peripherals before software restart. This fixes a rare and intermittent secure boot verification failure based on RSA-PSS scheme. The fix is recommended for aggressive revocation config. Please see commit log for more details. (d950dde)
- Added explicit drop for sections .got and .got.plt; In case these sections appear a hint will be shown. (#14296) (f3782f6)
- Fixed DRAM_DMA_ALIGNED_ATTR for ESP32-P4 (2f084e4)
Heap
- Fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not being able to be used together with CONFIG_HEAP_TLSF_USE_ROM_IMPL. (ce31db1)
Interrupts
- Fixed a bug in the interrupt allocator that resulted in the level of shared interrupt being overwritten with the last level given. (fe631a7)
Newlib
- Updated Newlib
usleep()
to always sleep for the desired sleep period or more but never less (#15132) (acea1fc)
Panic handling
- Fixed multi-core race condition in the panic handler when enabling RTC WDT. (ae2b544)
- Updated the panic handler to use RTC WDT. This fixes a bug where in the panic handler could get stuck without rebooting the system (#15166, #15018, #10110) (7fea3ef)
Watchdogs
- The LP-WDT on ESP32-P4 now takes into account the value EFUSE_WDT_DELAY when setting the timeout (6d8f288)
Debugging
Apptrace
- Store CRC16 checksum of trace blocks in Xtensa perfmon register to enable host-side data integrity verification. (ef4c750)
- Fix deadlock on sysview start (087d7db)
Ethernet
- Fixed ESP32P4 EMAC REF RMII CLK output mode (dcd92c9)
- Fixed ESP32P4 EMAC flow control enable (dcd92c9)
FreeRTOS
IDF Additions
- Updated
xRingbufferReceive()
andxRingbufferReceiveFromISR()
APIs to restrict them from being called to retrieve items from allow-split buffers. (b187b74)
IDF Kernel
- Fixed an issue in HWLP coprocessor support where, due to a hardware bug, the previous context could be incorrectly restored in certain cases. (080ad84)
- Fixed an issue where automatic light-sleep can cause FreeRTOS ticks to jump and cause unexpected timeouts (#15642) (201b376)
LWIP
DHCP
- Fixed DHCP server recv decline issue (72ae23c)
DHCP Server
ESP Netif
- Fixed potential crash caused by DHCP restore callback for PPP interface types (espressif/esp-protocols#800) (39d5b3c)
Low Power Features
- Fixed a possible wakeup failure on esp32 if lightsleep/deepsleep was requested by Core1. (4871de8)
- Fixed
esp_sleep_get_ext1_wakeup_status
always return 0 on esp32p4/esp32c6. (8752e3f) - Fixed deepsleep leakage after USB HS phy is initialized on esp32p4 (96037e9)
- Fixed the issue that esp32p4 may get stuck when entering deepsleep. (b7cdd6e)
- Improved esp_timer timing accuracy for esp32 and esp32s2 when esp_pm DFS is enabled. (b78ef76)
- Allowed to keep SAR ADC power when using ADC_ULP_MODE. (#12426) (e63d13e)
- Fixed power leakage when external 32k slow clock source detection fails. (a344138)
- Warning the use of lightsleep GPIO/UART wakeup source if
PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP
option is enabled. (ca42f3e)
ULP
LP Core
- Updated the LP UART and LP I2C drivers to not enable interrupts but rather use raw interrupt registers to prevent the LP core from jumping to the default interrupt handler and aborting the LP core code. (0c7bd3e)
- Fixed accumulation of wakeup cause bits in ULP (#15794) (9e2fe50)
ULP-RISC-V
- Fix a bug in the ULP RISC-V interrupt handler that resulted in a corrupted stack upon return (#14930) (5eb2b86)
PHY
- Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (#16888) (6045e49)
- Fixed the issue that tsens read abnormal value in Wi-Fi STA mode for esp32c2 v2.0. (e65ad01)
Peripheral Drivers
ADC
- Fixed P4 ADC2 oneshot do not claim apb periph clock (c60f52b)
- Fixed ADC hw calibration do not free apb periph clock (#16130) (c60f52b)
- Fixed S2 ADC calibration loss resolution(https://github.com/espressif/esp-idf/issues/15671) (3c5910d)
Analog Comparator
- Fixed the issue that unit1 can't generate the ETM event properly (5ad0818)
- Corrected the supported interrupt priority to 0~3 (5ad0818)
Camera
- Fixed Cache-Safe build error (d69f12a)
GPIO
- Fixed the issue that when USJ PAD is configured as GPIO, the GPIO function is unavailable after waking up from lightsleep. (#15797) (be21344)
- Fixed wrong pu/pd/drv values got from gpio_dump_io_configuration for ESP32 RTC IOs (#14931) (7c447b5)
- Forbidden to enable pull-up, pull-down on input-only IOs (7c447b5)
- Allow RTC-IO API to set edge type wakeup sources for targets that support this (086e129)
I2C
- Add api for customize i2c transaction interface for nonstandard i2c device (53ab7b8)
- Fixed clear bus issue in legacy i2c driver (#15638) (53ab7b8)
- Fixed that fsm reset cause i2c scl frequency changed on esp32s2 (#15724) (53ab7b8)
- Fixed race condition issue (#15444) (d808131)
- Fixed stretch causes timeout in i2c probe (#15589) (d808131)
- Fixed array size of static array (#15583) (d808131)
- Fixed auto selection i2c slave device cause error (#15644) (d808131)
- Added a Kconfig option
I2C_SKIP_LEGACY_CONFLICT_CHECK
to disable the legacy driver conflict check (1a79c5e)
I2S
- Fixed the false buf catenate while use preload (#15775) (9395329)
- Fixed i2s inappropriate check and assign sequence (#15648) (bbe8bfb)
- Added check for minimum sample rate (#15659) (bbe8bfb)
- Fixed failure when GDMA is set IRAM_SAFE but I2S not (#15533) (94f6398)
- Added check for i2s DMA buffer array allocation (#15607) (94f6398)
JPEG
- Fixed wrong parameter in jpeg encoder memory sync which leads to cache error. (9f5cea4)
- Fixed random black line appearance while jpeg decode (9f5cea4)
- Fixed the issue that jpeg encoder blocked when the output buffer is not sufficient. (430695b)
- Fixed handing of invalid JPEG marker (cff4d59)
- Added support for decoding JPEG images without Huffman table (cff4d59)
- Correctly set JPEG restart interval (cff4d59)
LCD
- Fixed the issue that the restart buffer failed to mount to the DMA when memory encryption is enabled (#15228) (220910f)
LEDC
- Fixed potential incorrect PWM output at relatively high frequency for ESP32-C6/H2/P4 (3f9d5ca)
- Fix potential assert failure in ledc_fade_stop due to race condition (#15580) (949b045)
MCPWM
- Fixed the issue that MCPWM output wrong frequency during DFS on ESP32 and ESP32-S3 (c590bc5)
PARL_IO
- Fixed an issue where prematurely disabling PARL_IO TX caused errors in subsequent transmissions. (3816f5f)
PCNT
- Fixed race condition causing accum_value loss on counter overflow (22e579d)
PPA
- Fixed calling ppa_do_scale_rotate_mirror could potentially get blocked when scaling to YUV420 color mode (7356a99)
RMT
- Enable the internal pull-up resistor in the onewire bus example (5545ae0)
- Fixed the race condition when between
rmt_receive
and receive ISR (#15842) (bc6a235) - Enhanced the
rmt_receive_config_t
error message (#15836) (bc6a235) - TX channel can switch to different GPIO at runtime. (ba27554)
- Fixed the panic when the number of received symbols is a multiple of the memory block size. (b1c16b8)
- Fixed the wrong reset code duration in the simple encoder example (#15498) (89c81ac)
SD_HOST
SDMMC
- Improved checking of SD being busy and always requesting SD to send status, even if a write operation failed. (0de3c91)
- Fixed sdmmc initialization issue caused by CMD52 CRC error (14fc801)
- Fixed multiple definitions of SD Card example pins issue in project Kconfig file (a2c53e5)
- Fixed all pins need to be set issue when using slot0 on ESP32P4 (a2c53e5)
- Function pointer to
sdmmc_host_deinit
is now not used as default deinitialization function inSDMMC_HOST_DEFAULT()
define macro. Insteadsdmmc_host_deinit_slot
is used which hasint slot
argument to deinitialize slots and the SDMMC host gracefully.sdmmc_host_deinit
can still be called and forces the host deinitialization even if slots are still in use. (a3aa438) - Function
sdmmc_host_init
no longer returnsESP_ERR_INVALID_STATE
when the SDMMC host is already initialized, now it returnsESP_OK
. (a3aa438) - Fixed transfer timeout due to higher priority tasks (#13934) (13cf4ba)
SPI
- Change ESP32P4 spi master default clock source to PLL to support up to 80M by default (17264e6)
- Fixed the issue that driver objects may be allocated from PSRAM unintentionally (d47c37f)
SPI Flash
- Updated 32-bit address (over 16MB) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (f256e57)
- Fixed issue of escaping boundary check (c7a31ce)
- Fixed flash encryption write verify (#15380) (a29e997)
- Added flash suspend chip version check on esp32h2 and esp32c6 (a29e997)
TWAI
Touch Element
Touch Sensor
- Adjust touch channel number on P4 from 0-13 to 1-14. (dc625ba)
- Fixed calculation of sleep intervals. (dc625ba)
- Fixed tie option take no effect issue. (5bcebb9)
- Fixed touch read WDT timeout issue on esp32 (#15629) (5bcebb9)
- Fixed concurrent issue in the legacy touch v1 (esp32) driver (5bcebb9)
UART
- Unsupported low baud rates (e.g., 2400bps, 1700bps) on LP UART is now properly reported (#15427) (46ac830)
- Updated uart_get_baudrate API documentation (#15449) (2e89dce)
- Fix wrong unit conversion from knots to m/s in uart/nmea0183_parser example (#15695) (2e89dce)
- Eliminated the possibility of garbled data sent/received from the UART port during sleep process (2e89dce)
- Enlarged default task stack size for uart_async_rxtxtasks example to avoid stack overflow (#15363) (1eb1fad)
- Updated programming guide to align configuration orders with the example codes (#13182) (1eb1fad)
USB
- Changed USB CDC VFS read() to treat end-of-line characters as regular bytes, with no early return (e3eeb9d)
- Changed USB CDC VFS read() to return with available data when in blocking mode (e3eeb9d)
- Updated ESP32-P4 USB pins for mass production version (#16136) (074a730)
- Fixed switching between TinyUSB and USB-Serial-JTAG modes on ESP32-S3 (#15932, #15912) (995b09e)
USB Device
- Fixed incorrect pull-up resistor settings on the USB PHY that prevented the device from being detected by the host. (b4baef0)
USB Host
- Add USB Host support for Full Speed peripheral on ESP32-P4 (a228b4c)
- Added support for custom FIFO sizing via HAL API (15bc442)
- Improved stability of the USB Host Library with external hubs (fa23083)
- Allocate DMA capable memory to external ram on ESP32-P4 (711836a)
- Added support for Low-speed devices, connected via external Hubs to Full-speed peripheral (52215a7)
- Added support for Low-Speed devices connected through Full-Speed HUB (#15683) (4066380)
- Fixed heap corruption (#15815) (3a1bd70)
- Fixed host channel number calculation for ESP32-S3, ESP32-P4, and ESP32-S2. (3fc84fd)
- Fixed possible deadlock when closing a device that was not previously opened (aa99002)
USB Serial JTAG
- Changed USB Serial JTAG VFS read() to treat end-of-line characters as regular bytes, with no early return (e3eeb9d)
- Fixed wrong return value from
usb_serial_jtag_write_bytes
when encounter invalid input parameters (#15620) (46e271e) - Add missing break statement in
usb_serial_jtag_ll_phy_select
(#15499) (b4fd30c)
Power Management
- Fixed regdma wait timeout caused by default wait parameters (bea47a1)
- Fixed the issue of modem wakeup req always high caused by pmu min slp cycle update. (c7f4ebd)
- Fixed possible assert in
vTaskStepTick
after turning on auto light sleep (c06e9d3)
Security
- Added support for RSA decryption using the DS peripheral. Users can now leverage the DS peripheral with secure cert manager to securely store and use private keys for hardware-accelerated RSA decryption. (5276f0b)
- Fixed a bug that resulted in a boot loop when a memory protection fault occurred on ESP32-S2 (#15359, #7656) (a919029)
- The ECDSA peripheral of the ESP32-H2 supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with ESP32-H2 revision 1.2, only ECDSA-P256 operations are enabled by default. CONFIG_ESP_ECDSA_ENABLE_P192_CURVE need to be enable to turn on the ECDSA-P192 operations. (cddc668)
- Updated ecdsa and deterministic support for ESP32H2. (cddc668)
- Fix secure boot (ECDSA) build failure for ESP32-C6 target (#15856) (c50e49d)
MbedTLS
- Update mbedTLS version to 3.6.4. (7cdc3ae)
- Make mbedtls SHA1 software support configurable (8e82583)
- If using MbedTLS for server certificate verification, it is mandatory to call
mbedtls_ssl_set_hostname
before the connection begins. No change is required if the application usesesp-tls
layer. (52b43b3)
Storage
- Concurrent use of more SDMMC devices (SD cards, eMMC, etc.) is now possible. (a3aa438)
NVS
- Fixed
nvs_tool.py
to properly format JSON output. Additionally, cleaned up text minimal format output (#15274) (433f0ab)
System Hardware
- Fixed the issue that some ESP32 chips may crash when CPU cores run on 240MHz (9312c35)
MMU
- No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (7597b55)
- Fixed API thread-safety in
esp_mmu_map.h
(#15564) (950c9df)
MSPI
- Improved the selection of timing tuning points when the last few tuning points succeed consecutively (da5f469)
- Improved the PSRAM timing tuning configurations on ESP32P4 (da5f469)
PSRAM
- Supported using fallback driver pattern when PSRAM ID is not matched on ESP32-S3, P4 (95f455c)
- Fixed PSRAM pointer check error issue when XIP_PSRAM is enabled on ESP32P4 (#15997, #15999) (83b9e29)
- Fixed external RAM .bss and .noinit section vaddr calculations (#15513) (4bab63d)
- Supported UnilC Octal PSRAM on ESP32S3 (9e58fe0)
TCP Transport
- Added an API to configure the addr family (635c419)
Toolchain
- Upgraded gdb version to 16.2_20250324 (dcaef8f)
- Upgraded openocd version to v0.12.0-esp32-20250422 (d1af51f)
Tools
- Explicitly disabled pip 'user' option, when installing ESP-IDF python virtual environment. (#16189) (077a8f2)
- Updated
ccache
version to 4.11.2 (espressif/idf-installer#305) (6ce783f) - Fixed
idf_tools.py install tools@version
command to be able to install specific tool versions. (5028d9e) - Switched to flashing ESP32-C3 with stub when the USB Serial/JTAG mode is used (13091e4)
- Fixed processing of packages with dots in their names in Python dependency checks (d73b3d8)
- Deactivated the previously set ESP-IDF environment every time the export script runs (on Unix systems only) (8196800)
- Added input validation of optional install features (58c1476)
- Fixed deprecation warnings when using
extractall()
on Python 3.12 and newer (3f2690a)
WI-FI
- Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (cb1f350)
- Fixed esp32c2 and esp32s2 TCP TX throughput shake issue (02447c9)
- Added support for SoftAP SAE extended key (de842b0)
- Modified authmode to sta for sta connect event (6a98af1)
- Added timer to send wake null after STA received association response (181aeb8)
- Fixed the noise floor error on ESP32C5 (#15594) (181aeb8)
Examples
- Fixed some issues in roaming app (6c1754a)
MAC
- Fixed the issue that STA fail to RX packet under modem state. (c7f4ebd)
- Fixed the issue that STA fail to RX beacon when off channel under modem state. (c7f4ebd)
- returned error if call esp_wifi_set_config() when STA is connecting. (c7f4ebd)
- Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout. (c7f4ebd)
- Fixed esp32 mac deinit stuck issue. (c7f4ebd)
- Fixed locking in incorrect state when stop_scan is called after wifi_connect (717be30)
- Fixed some external coexist issues. (4baebdc)
- Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries. (96b3442)
- Fixed STA cannot send keep alive when receive UDP packets (18b4832)
- Fixed STA BSS max idle period always use default value (18b4832)
- Fixed sleep without sending sleep null when enable BSS max idle (18b4832)
- Fixed channel TX power limitation does not take effect when connected AP switch channel (18b4832)
- Fixed the issue that TWT just post one event for multiple flows (df274a3)
- Fixed TX power not update if country changes when enable multiple PHY init data bin (df274a3)
- Fixed the issue when the PS state machine becomes invalid after enabling BSS max idle (df274a3)
- Supported service specific info in NAN service discovery frames (#12473, #13366) (fe6f2d0)
- Fixed issue that esp_wifi_set_tx_done_cb() should not process frames sent using esp_now_send(). (6389791)
- Added DS parameter in probe requests from STA (d63d26d)
- Fixed the WEP shared authentication association timeout issue. (8e95ca2)
- Fixed phy data partition restoring default fails issue. (8e95ca2)
- Fixed occasional dropping of SA Query responses by SoftAP (7615c09)
Mesh
Supplicant
- Added support for WPA-Enterprise in Station mode (8bbe500)
- Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (7be9480)
- Added support to limit EAP method supported by device based on user configuration (2061f0c)
- Fixed pmksa expiration caused by sntp time synchronization issue. (30c47e8)
- Cleared SAE-PK capability in Assoc Request when not enabled at STA. (9a8d1bf)
- Improved WPS PBC overlap detection to ensure it works correctly, even if the UUID is missing. (d2b851d)
- Ensured disconnection with previously connected AP when initiating WPS. (d2b851d)
- Disabled IP renew skip by default since most AP don't support it. (37acb54)
- Fixed issues reported by static analyzer. (37acb54)
- Increased WPS message timeouts to address interoperability issues. (0a0b9bf)
- Added domain name validation support for EAP connection. (e4b89c0)
- Fixed send_confirm value for SAE confirm according to specification. (0ac4b9a)
- Added optimized PSK implementation (#15072) (02dcf4f)