Documentation for IDF v5.5.3 is available at https://docs.espressif.com/projects/esp-idf/en/v5.5.3/
ESP-IDF v5.5.3 is a bugfix release for ESP-IDF v5.5.
Obtaining v5.5.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.5.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.5.3
cd esp-idf-v5.5.3/
This is the recommended way of obtaining v5.5.3 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.5.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. 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.5.3/esp-idf-v5.5.3.zip
Major changes
Breaking Changes
- Peripheral Drivers/SPI The SPI master and slave no longer accepts
ESP_INTR_FLAG_SHAREDas interrupt flag during initialization. (2fad74c)
Changelog
15.4
MAC
- Updated the 'ieee802154_get_recent_rssi' API to obtain real-time RSSI from baseband (cbed615)
- Replaced the TX pending feature with backoff-based retransmission mechanism (2544a15)
- Added pending tables and APIs for multipan interfaces (7cef83e)
- Fixed ACK pending bit handling when pending-enhance is enabled (7cef83e)
Thread
- Supported OTA examples over Thread interface (61ca635)
- Supported RCP debugging via Spinel (405f144)
- Updated openthread submodule (a12ff0d0f) (021f8da)
- Replaced iperf command from ot-cli-extension with iperf-cmd (ee58372)
Application Utilities
ESP HTTP Client
- Added fix to prevent out-of-bounds read in Digest auth causing a potential security vulnerability (6d0a7a0)
ESP HTTP Server
- Fixed a potential deadlock that can happen with Websocket server while using HTTPD_QUEUE_WORK_BLOCKING (#17591) (8b6e9b0)
- Fixed the WebSocket implementation to stop reading data when the peer closes the connection. (#17822) (ffc215c)
ESP HTTPS OTA
- Added fix to Align the OTA written length to 16 bytes during OTA resumption when flash encryption is enabled. (961abe6)
Protocomm
- Added validation for Security1 client verifier data (4cd5e63)
- Added security checks for buffer overflow / incorrect length handling (ee7543c)
BLE
BluFi
- Supported setting BLE encryption for blufi example (1d78301)
Bluedroid
- Fixed GATT response timeout setting (b4a987a)
- Improved debugging by adding more logs and thread diagnostic tools (b4a987a)
- Supported bluedroid host PAwR feature (482f7d4)
- Supported bluedroid host Advertising Coding Selection feature (482f7d4)
- Supported bluedroid host channel sounding feature (482f7d4)
- Supported LE Security Levels Characteristic (482f7d4)
- Supported bluedroid host encryption with mbedTLS (2a8fd3c)
- Supported bluedroid host encryption with TinyCrypt (2a8fd3c)
- Supported bluedroid encrypted advertising data (2a8fd3c)
- Added bluedroid encrypted advertising data examples (2a8fd3c)
- Optimized bluedroid some code (5ca6847)
- Increased maximum notify/indication registration limit in Bluedroid (IDFGH-16690) (e78cf39)
- Added retry mechanism for Periodic Advertising Create Sync to improve synchronization reliability (e78cf39)
- Fixed multiple potential issues and strengthened security in Bluedroid, including memory safety vulnerabilities and improper packet validation (e78cf39)
- Added flow diagrams to Bluedroid BLE examples to improve documentation clarity and onboarding experience (e78cf39)
- Introduced BLE ACL latency measurement example for evaluating round-trip latency between central and peripheral device (e78cf39)
- Replaced hardcoded advertising-type values with descriptive macros across Bluedroid examples (IDFGH-16960) (e78cf39)
- Added BLE time-interval conversion macros (ESP_BLE_GAP_SCAN_ITVL_MS, ESP_BLE_GAP_ADV_ITVL_MS, etc.) to improve readability and prevent unit-conversion errors (e78cf39)
- Reduced bluedroid host bin size (43cc92f)
- Fixed bluedroid host get white list size error (43cc92f)
- Fixed a potential UAF issue in BLE ATT when a disconnection process is ongoing (35b1b78)
Controller
- Added a feature that allows the Controller to continue receiving PDUs in the next connection event instead of entering latency after receiving a data packet on ESP32-C6/C61, ESP32-H2, and ESP32-C5. (2cbffea)
- Fixed an occasional interrupt watchdog timeout issue when stopping scanning for ESP32-C2. (2cbffea)
- Fixed crash in btdm_controller_task on ESP32 (17cd450)
- Fixed scan HCI command timeout issue on ESP32 (17cd450)
- Changed the maximum number of concurrent connections to 70 on ESP32-H2 (0a10858)
- Fixed an occasional Interrupt Watchdog Timeout issue in an edge case of Multi-ADV scenario for ESP32-C2. (daf364e)
- Add a feature to automatically initiate a data length update using the appropriate parameters when a PHY update or a connection interval update occurs for ESP32-C6 and ESP32-H2. (e4d066c)
- Fixed an occasional disconnect issue caused by MIC errors on ESP32-C6, ESP32-H2 and ESP32-C5. (e4d066c)
- Fixed a disconnection issue that occurred when using the Coded PHY to transmit data with a 7.5 ms connection interval and a Tx data length of 251 bytes for ESP32-C5, ESP32-C6, ESP32-C61 and ESP32-H2.. (e4d066c)
- Fixed an occasional assertion issue that occurred during connections with certain mobile phones under severe air interference conditions on ESP32-C6, ESP32-C61, ESP32-H2 and ESP32-C5. (c601ffd)
Documentation
- Added BLE Multi-Connection Guide in API Guides (8c7d825)
Mesh
- Support Device Firmware Update. (41bcb17)
- Supported using unified crypto implementation in Bluetooth Mesh (b92c91c)
NimBLE
- Added API to read the currently used local IRK (516e2ef)
- Fix tinycrypt related compilation issue (728d58a)
- Add support for static passkey (728d58a)
- Update report_map_len to uint16_t (espressif/esp-nimble#74) (728d58a)
- Modified NVS namespace for storing peer device GATT data (728d58a)
- Memory optimization with dynamic memory allocations support. (728d58a)
- Added Helper function to find identity address from RPA address (516e2ef)
- Add AD type macros in example (64150ac)
- Fix NULL psync access in periodic advertising sync lost. (d4a83ca)
- Reset HID services during deinit (1f51d48)
- Modified API's which parse advertising data (1f51d48)
Build & Config
- ldgen: Fixed non-default symbol placement for symbols created by the compiler during inter-procedural optimization (IPA) (f0538f3)
- Fixed inconsistent MINIMAL_BUILD status in menuconfig when a custom COMPONENTS list is defined (ca22d0e)
- Fixed the IMPORTED_LOCATION error that occurred when using the file-based API with CMake version 4.2 and newer (#18103) (9c0f87f)
Classic Bluetooth
Bluedroid
- Added an API to create SPP server with a parameter that selects whether to create a corresponding SDP service record (ec191d2)
- Fixed crash caused by performing A2DP deinitialization when initating an A2DP connection (e0c12ad)
- Allows downgrading AVRCP version to 1.5 by disabling the Cover Art feature (8c47552)
- Fixed missing NULL pointer check in l2c_fcr_clone_buf in Bluedroid (1e9f631)
- Deprecate RSSI threshold related macros (7a628dc)
- Split A2DP sink example to several simpler examples to demonstrate A2DP/AVRCP functions of different aspects (7c18387)
- Fix the status judgment in registration of A2DP source stream end point (0e194e6)
- Backported several security-related fixes to from Google Fluoride to esp-idf Bluedroid (dae755c)
- Fix index boundary check and function return values during A2DP SEP registration (f56bea3)
- Fixed failure of buffer allocation in L2CAP throughput test by optimizing L2CAP memory footprint (9c49790)
- Fix bluetooth L2CAP data transmission stops after a failed write (9c49790)
- Check whether to overwrite number of BR/EDR controller max synchronous connections if Bluedroid HFP is enabled on ESP32 (88ee44c)
- Fixed the issue where ESP_A2D_AUDIO_CFG_EVT can be lost when the A2DP SOURCE acts as acceptor (c0dc0b14)
- Added check against packet length before using the data in HCI, SDP, AVRCP, etc (c0dc0b14)
Controller
- Fixed not reject connection request when auto accept is off and connect request event is masked on ESP32 (17cd450)
- Fixed wrong key type was notified during changing connection link key on ESP32 (bd79273)
Core System
- Removed the exe flag from PSRAM memory for ESP32. ESP32 is not capable of running code from PSRAM. This is a link-time check, and actual CPU RWX permissions are controlled seperately so this has no practical implications, but it could mistakenly be remarked upon during security scansor checks by customers. (2ddcb62)
Heap
- Fixed a heap tracer bug that caused a startup crash when static memory usage was too high (#17232) (e2cc50c)
- Fixed the advanced heap tracing example name in its README file (#17233) (e2cc50c)
Ethernet
- Fixed ESP32P4 higher than expected EMAC MDC range frequency issue (c1a09f9)
Low Power Features
- Fixed an issue on ESP32P4 where GPIO wakeup from Light Sleep failed for pins powered by VDD_IO_4. (75b5fc9)
- Fixed LP UART bad clock source selection on esp32p4. (67025a2)
- Supports ESP32P4 rev3.1 enabling peripheral power-down lightsleep when PSRAM is enabled. (187b080)
PHY
- Fix Wi-Fi Rx performance issue due to imcomplete phy initialization at coexistence scenarios. (c1e3d07)
Peripheral Drivers
ADC
- Fixed ESP32-P4 ADC2 oneshot do not claim apb periph clock (7837f4b)
- Fixed ADC hw calibration do not free apb periph clock (#16130) (7837f4b)
- Fixed ADC continuous mode ISR not in IRAM issue leading to panic on ESP32 and ESP32-S2 (#17526) (1c37e72)
Camera
- Fixed CSI and ISP_DVP driver RX buffer data corrupted issue due to cache coherence issue caused by cache autowriteback (79cd306)
DMA
I2C
I2C Master
- Added timeout range check (#17930) (d4b93a4)
- Fixed LOG_LOCAL_LEVEL redefinition error when CONFIG_I2C_ENABLE_DEBUG_LOG is enabled (#17877) (1f590bc)
I2S
- Report the full buffer length to the UAC stack by setting bytes_read in usb_uac_device_input_cb(), so the host correctly detects received audio data instead of seeing zero bytes. (#17926) (c4df42a)
- Support to get channel configuration, MCLK & BCLK clock frequency and channel state information by
i2s_channel_get_info(e516267)
STD
- Fixed STD mode initialization failure on ESP32 when using
I2S_NUM_AUTO. (e5b4993)
ISP
- Support video frame crop in ISP module on esp32p4-rev3. (2a481f5)
- Added
subwindowfield toesp_isp_awb_config_tfor AWB subwindow statistics (c4ac92b) - Fixed AWB subwindow always need to be set issue (5aede3a)
- Allowed to configure ISP submodule configurations immediately (bypassing shadow registers) (5aede3a)
JPEG
- Add feature that engine can decode to yuv420 from a yuv444/yuv422 jpeg picture on esp32p4 revision 3 (a873c3c)
LCD
DSI_LCD
- Allow set the pixel clock frequency with float value (499441c)
PARL_IO
- Parlio RX driver can accept unaligned user buffer (#17581) (e5b4993)
- Added more strict buffer size check for parlio_tx (#17970) (5cdf6f4)
- fixed Parlio RX opposite sample edge issue (#18012) (694116f)
PPA
- Added notes about SRM bilinear interpolation algorithm in programming guide (#17531) (36972d5)
- Removed PPA_SRM_COLOR_MODE_YUV444 as a valid SRM output color mode (36972d5)
- Fixed a potential issue on SRM operations may get stuck on DMA (36972d5)
- Fixed PPA SRM YUV422/420 incorrect DMA descriptor port mode block size (36972d5)
SD_HOST
SDMMC
- Fixed repeated resetting of GPIO 0 when calling
sdmmc_host_deinitfunction with an uninitialized slot (3ca3759)
SDSPI
- Added an option to modify the waiting time for MISO before sending next command - can help speed up transaction speed for e.g. SD cards on boards with no or incorrect pull-up resistors (#16909, #10493) (0fd9f0a)
- Fixed missing error handling in
sdspi_host_start_commandfunction when callingspi_device_acquire_busfunction (0fd9f0a)
SPI
- The SPI master and slave no longer accepts
ESP_INTR_FLAG_SHAREDas interrupt flag during initialization. (2fad74c)
SPI Master
- SPI Master can transfer PSRAM buffers with DMA directly without extra copy (003eaf0)
TWAI
Touch Sensor
- Fixed touch channel 8/9 enable mask bit swap issue (b36dfcf)
- Fixed non-symmetric gpio reserve/revoke in Touch Sensor driver (#17806) (e5b4993)
UART
- Fixed UHCI RX buffer data potential corrupted issue due to cache coherence issue caused by cache autowriteback (8992416)
USB Serial JTAG
- Check the pointer validation of tx ringbuffer (de3dad2)
Power Management
- Reduce current of ESP32-H2 in light sleep with TOP PD and flash PU (9b69adf)
- Support sleep with top pd for esp32c5 eco3 (8a2f308)
- Auto adjust LDO volt for esp32c6 using PVT function (a3ce1fc)
- Fixed ESP32P4 rev3 core1 initialization after single-core active power consumption optimization (bc7a18f)
- Removed the configurable constraint for sleep memory usage optimization option (8c96f15)
- optimize system auto light sleep minimum sleep time configuration constraints (e0409f0)
- Auto adjust core voltage for different chip and different environment on ESP32-P4 v3.0 and above (f4ad576)
- Auto adjust core voltage for different chip and different environment on C61 (20107fe)
- Auto adjust core voltage for different chip and different environment (18ce7a6)
- fix too many print when cpu switch from XTAL to PLL source on C6 (ab213a9)
- Fix RTC WDT stage-0 timeout configuration issue (double setting) on ESP32-P4 (version ≤ 3.0) (d565664)
Security
AES
- Fixed a DMA + write-back cache coherency bug during AES-DMA operations that caused intermittent PSRAM output corruption by enforcing proper cache clean on DMA destination buffers. (3f10cda)
Secure Boot
- Fixed the issue where bootloader fails to properly skip image verification and triggers reset when both CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP and secure boot are enabled. (0f47475)
- Fixed the application's Secure Boot verify API to support ECDSA-P384 (f8fe1ce)
- Fixed ROM Secure Boot fast wakeup feature for ESP32-C5, ESP32-C6, ESP32-H2, ESP32-H21. (9d80cb0)
Storage
- Fixed readdir setting errno on directory end issue in SPIFFS (f19b20b)
NVS
- Added 2 new NVS examples:
nvs_statisticsandnvs_iteration(bc31174) - Fixed the order of NVS page state changes in space reclaim function to allow recover from sudden power-OFF event. (10b5088)
System Hardware
- Fixed incorrect breakpoint and watchpoint numbers for ESP32-C5 (ded4814)
- Fixed inaccurate warning that encryption not enabled on PSRAM on ESP32-C5 v1.2 and C61 v1.1 (9e1c0fc)
- Fix vdd_dig big glitch when boot & deepsleep wakeup on ESP32-P4 v3.0 and above (0ea4e69)
BOD
- Update vbat threshold for ESP32-P4 revision 3 (e382f96)
Cache
MSPI
- Fixed potential system crash due to MSPI reconfig at startup on ESP32. (c680ab6)
PSRAM
- Fixed MSPI wrong reading from PSRAM addr, when the same addr is written by DMA before, on ESP32C5/C61 rev1.0 (8992416)
Toolchain
- Upgraded openocd version to v0.12.0-esp32-20251215 (fbfa940)
Tools
- Updated
ccacheversion to 4.12.1 (#17756) (b214c68) - Updated example commands defining
@argument_filewith quotations (#18077) (4fec7af)
WI-FI
- Optimized Flash and Internal RAM size used when REV_MIN_FULL is ESP32C5 v1.2 or ESP32C61 v1.1 (1ebc545)
- Fixed assert for probe resp allocation due to incorrect length calculation. (a392764)
- Fixed the issue that ESP32C6 RX packet failed when Station in modem state (ebf4daf)
- Add lltf bit mode for selection of 8-bit lltf or 12-bit lltf (b3a14b5)
- Fix crash issue caused by accessing flash in sleep wake process (b3a14b5)
MAC
- Fix scan done or disconnected event miss issue (fd892af)
- Ensured Sta parses FTM Responder beacon correctly (7f2f009)
- Set NVS SAE pwe default value to SAE_PWE_BOTH for SoftAP and station (a392764)
- Fixed the issue that sta rx packet failed under modem state for ESP32C5 and ESP32C61. (81240a4)
- Fixed incorrect deauth reason parsing for station (a392764)
- Fixed memory corruption issue by ensuring management frames are only encrypted when they are robust management frames (a392764)
- Fix GCMP fragment tx issue (fd892af)
- Support WAPI fragment tx and rx (fd892af)
- Fix the issue where the WAPI unicast key index was incorrect after reconnection (fd892af)
- Fix lmacTxDone assert issue (fd892af)
- Fixed the issue that ESP32C2 will not report err when setting >=40Mhz bandwidth or 5g protocols. (161927f)
- B-TWT setup now respect user's dwell timeout configuration. (161927f)
Supplicant
- Fixed some invalid memory access in wpa_supplicant (d9a77c8)
- Validated dpp auth instance before using it (5ecea92)
- Fixed a crash where STA is freed before WPA3 SAE finishes (1ebc545)
- Ensured EAPOL state machine is correctly terminated when WPS is reinitialized during an ongoing WPS session (WPS Registrar). (24a3a65)
- Fixed WPS stack issue by skip calling same function multiple times. (62014eb)
Vendor
- Fixed the memory leak when call esp_now_set peer_rate_config() (b5cd44e)