Download Latest Version esp-idf-v5.4.3.zip (1.5 GB)
Email in envelope

Get an email when there's a new version of ESP-IDF

Home / v5.4.3
Name Modified Size InfoDownloads / Week
Parent folder
esp-idf-v5.4.3.zip 2025-10-22 1.5 GB
ESP-IDF Release v5.4.3 source code.tar.gz 2025-10-21 56.6 MB
ESP-IDF Release v5.4.3 source code.zip 2025-10-21 65.5 MB
README.md 2025-10-21 27.8 kB
Totals: 4 Items   1.6 GB 0

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

ESP-IDF v5.4.3 is a bugfix release for ESP-IDF v5.4.

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

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

Download an archive with submodules included

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

Major changes

Breaking Changes

  • The esp_wifi_set_config() API NOW cannot be called while Wi-Fi is connecting. (2d556f7c)
  • 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. (e839ed58)
  • Adjust touch channel number on ESP32-P4 from 0-13 to 1-14. (435cf83a)

Changelog

15.4

Thread

  • Fixed an issue with source address selection during network switching (7edf40d1)
  • Use the ML-EID address for self-hosted services if OMR address is not preferred (27934574)
  • Improved TREL message reception (26d4b9c9)
  • Handled MeshCoP mDNS service in state change callback (26d4b9c9)
  • Updated openthread submodule (b945928) (26d4b9c9)
  • Introduced a new API to register the console based openthread CLI command (26d4b9c9)
  • Supported RCP over USB Serial JTAG interface (3ecfb66e)
  • Added a function to exit openthread main loop safely (81470675)

Application Utilities

CJSON

  • Update cJSON to v1.7.19 (bf0c45e1)

ESP HTTP Client

  • Fixed handling of errors while reading data from server using API esp_http_client_perform() (8d4f0af7)
  • Updated condition to close and cleanup the HTTP client (872bcb60)
  • Updated the postman root certificate for the esp_http_client example (7c822348)
  • Fixed memory leak in HTTP client when header parsing fails during fetch operation (95699fe5)
  • Fixed the often triggering of HTTP_EVENT_ERROR when the asynchronous client is set (7183a695)

ESP HTTP Server

ESP HTTPS Server

BLE

  • Fixed uninitialized return code in BLE Get Started - NimBLE examples (ceb32b58)
  • Added Bluetooth LE CTE connless AoA/AoD example (45751f95)

BluFi

  • Added API to start advertising with specified name (cc252485)

Bluedroid

  • Fixed potential out-of-bounds memory access when resolve adv data (d66354c3)
  • Added BLE multiple connections examples (dfc29284)
  • Fixed the connection count limit in multi-connection (dfc29284)
  • Adjusted L2CAP round robin msg send strategy (dfc29284)
  • Supported multi-connection optimization vendor HCI command (dfc29284)
  • Set sec_conn only on successful pairing in ble_hid_device_demo to avoid unexpected behavior (477aa4e0)
  • Fixed issue that caused failure in "BTM_GetSecurityFlags" (88d8f5d2)
  • Fixed incorrect update of resolving_list_avail_size (88d8f5d2)
  • Fixed issue where resolving list was not updated after the oldest device was removed (88d8f5d2)
  • Fixed failure to disconnect when device record is cleared (88d8f5d2)
  • Fixed extended adv restart failure during reconnection (2b0b65fb)
  • Fixed BLE SMP state machine inconsistency on disconnection (d07f840b)
  • Fixed null pointer assert in l2c_link_check_send_pkts (3e5d2c7d)
  • Fixed build failure when some BLE features are disabled (e6c334cb)

Controller

  • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C2 (cf9d5885)
  • Fixed occasional assertion in scan/connection coexistence scenario on ESP32-C6 (cf9d5885)
  • Fixed occasional assertion in adv/scan/connection coexistence scenario on ESP32-H2 (cf9d5885)
  • Improved security when receive connection request PDU with an invalid Access Address on ESP32 (203f114f)
  • Supported the PAwR feature on ESP32-C6 and ESP32-H2 (61ee93bc)
  • Optimized check Access Address when receive connection request PDU on ESP32 (175cb021)
  • Fixed the issue where RSSI of connection is incorrect when latency is no zero on ESP32 (8e094e70)
  • Fixed priority setting for BLE events on ESP32 (8e094e70)
  • Fixed disconnection issue when coexisting with other BLE events on ESP32 (8e094e70)
  • Fixed crash due to bandwidth full when updating connection params on ESP32 (8e094e70)
  • Supported multiple connection optimization vendor HCI command on ESP32 (8e094e70)
  • Fixed an occasional assert issue in case of controller disable on ESP32-C2 (94496778)
  • Fixed an occasional sync lost issue on ESP32-C6 and ESP32-H2 (94496778)
  • Fixed BLE TX issue when the event is aborted on ESP32-C3 and ESP32-S3 (65c03605)
  • Fixed BLE assert llc_llcp.c 487 on ESP32-C3 and ESP32-S3 (65c03605)
  • Fixed BLE assert sch_prog.c 304 on ESP32-C3 and ESP32-S3 (65c03605)
  • Fixed BLE anonymous extended advertising filtering on ESP32-C3 and ESP32-S3 (65c03605)
  • Fixed occasional disconnection issue when sending Data Length Update too quickly on ESP32-C6 and ESP32-H2 (68a63ff1)
  • Fixed an occasional assertion issue during sync on ESP32-C6 and ESP32-H2 (68a63ff1)
  • Fixed an occasional abnormal scanning stop issue on ESP32-C6 and ESP32-H2 (b84ccbc4)
  • 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 (b84ccbc4)
  • Fixed an occasional assertion issue during scanning on ESP32-C6 (b84ccbc4)
  • Fixed an APM panic issue when enabling TEE in the BLE scenario on ESP32-C6 and ESP32-H2 (b84ccbc4)
  • Fixed double free exception during BLE init under low memory on ESP32-C3/S3 (f5edc858)

Documentation

  • Updated ESP-Nimble SIG qualification version to core specification 6.1 (d7d895ce)
  • Added Bluetooth LE 6.0 features support status (24dfb49e)

NimBLE

  • Fixed incorrect HCI status in connect event (632ee747)
  • Updated reattempt count handling for periodic adv (484e6e25)
  • Restructured table of README.md file of bleprph and blecent (e252fb27)
  • Add connection failure event when connection fails (7912b04e)
  • Added ISO minor support for NimBLE Host (803d852c)
  • Added helper api's in nimble. (de407c69)
  • Fixed include service definition handle being the same for all definitions (d0ad380c)
  • Updated ble_gatts_show_local to show CPFDs and CAFDs (d0ad380c)
  • Added VSC for Set Scan Channel Bitmap (98f0a9b9)
  • Updated count parameter correctly by considering offset (bd708524)
  • Fixed for attribute count mismatch between cached gatt db and actual db (bd708524)
  • Fixed compilation issue due to BLE_GATTS flag (3dd20871)
  • Clear GATT service entries counter upon GATT deinit (ace0f634)
  • Added packet allocation retry for limited iteration (2ff67c4b)
  • Added timestamp information to HCI logging (c868984d)
  • Provided a way to make blufi advertising customizable (https://github.com/espressif/esp-idf/issues/16234) (a16d45ce)
  • Add ble_ancs example to build-test-rules configuration file (96ae24c8)
  • Fixed compilation issues when gatt caching is enabled in peripheral only mode (10a14131)
  • Added a missing instance of ble_hs_unlock() in a corner case (d1e87afe)
  • Added parameter in peer_init() to allocate memory for included services (66a5a588)
  • Added option to require Encryption, Authentication, or Authorization to subscribe for Notifications or Indications (c52e8ee1)
  • Automatically initiated security and retry service request if service request fails due to insufficient security (c52e8ee1)
  • Fixed issue of Adv report not observed in PAwR example (f26f6e46)
  • Added Support for Apple Notification Center Service (ANCS) in NimBLE (81064fa0)
  • Added sdkconfig with options to showcase DRAM reduction for NimBLE examples (03e9d2d7)
  • Fix compilation issue when CSFCS is set to 0 (de813ca8)
  • Wrap BLE service API with extern "C" (de813ca8)

Bluetooth Common

Controller

  • Fixed the issue that BTBB might not reinitialize after stopping and starting Bluetooth when coexisting with WiFi on ESP32 (https://github.com/espressif/esp-idf/issues/15841) (0926ce5f)
  • Fixed the issue that unfixed core tasks may register or trigger software interrupts of the wrong core when calling the Bluetooth interface on ESP32 (c66629e3)

Build & Config

Classic Bluetooth

Bluedroid

  • Prevented out-of-bounds access and add type check when resolving EIR data (2dac39bd)
  • Added record_handle parameter in ESP_SDP_REMOVE_RECORD_COMP_EVT (8c002cf5)
  • Fixed HFP AG data callback cleared after profile re-initialization, if Bluedroid dynamic memory allocation is enabled (0f4cc8eb)
  • Fixed AVRCP build issue when Cover Art feature is disabled (https://github.com/espressif/esp-idf/issues/16155) (d4cf9d27)
  • Added AVRCP callback event for notification of profile ON/OFF state (27d2a245)

Controller

  • Fixed the issue that sniff anchor pointer mismatched from Central and Peripheral on ESP32 which prevented them from receiving peer packets (76d19ae7)
  • Fixed wrong state caused by transaction collision in Enryption Pause and Resume procedure on ESP32 (203f114f)
  • Fixed zero size of encryption key used in Active Peripheral Broadcast on ESP32 (203f114f)
  • Ignored received LMP_DETACH during detach process on ESP32 (203f114f)
  • Fixed missing event for truncated page cancel procedure on ESP32 (203f114f)
  • Fixed possible access to NULL pointers on ESP32 (203f114f)
  • Fixed for no HCI_LINK_KEY_NOTIFICATION_EVENT on repairing of the acceptor size on ESP32 (203f114f)
  • Always send LMP_ENC_KEY_SIZE_MASK_REQ before changing to temp key on ESP32 (203f114f)
  • Fixed that Tx descriptor for FHS packet in page procedure may becomes empty after handshake failure on ESP32 (203f114f)
  • Fixed the incorrect unit of clock in CPB Rx event on ESP32 (e12ceb9d)
  • Fixed LMP legacy and secure authentication collision bugs on ESP32 (21335ad1)

Coexistence

  • Fixed the issue that BLE connection may disconnect when WIFI is reconnecting on ESP32-C2 (32adb5f5)

Core System

Console

ESP Timer

IPC

  • Allowed IPC recursion calls in esp_ipc_call (a9ba29d6)

Panic handling

  • Fixed infinite loop in .eh_frame-based backtracing when DWARF unwind information was missing (12b8f9c9)
  • Fixed an issue where the panic handler may reboot even though it is configured to dump the CPU registers and halt (https://github.com/espressif/esp-idf/issues/17260) (77266e7c)

Debugging

Apptrace

  • Updated SEGGER SystemView source file version to v3.56 to support data plotting (05cf51dc)
  • Updated SystemView trace processing to support SEGGER standard multicore format available in v3.60 or later (05cf51dc)

Core Dump

  • Fixed CONFIG_ESP_COREDUMP_MAX_TASKS_NUM option that was previously ignored, allowing users to limit the number of tasks included in core dumps (e155cfc2)

FreeRTOS

IDF Additions

LWIP

  • Fixed DHCP ARP check issue (1021335e)
  • Fixed IPv6 forwarding to clone PBUF_REF buffers into PBUF_RAM, matching IPv4 behavior (35950a6a)
  • Fixed NULL pointer dereference in ip_napt_enable and added unit tests (https://github.com/espressif/esp-lwip/issues/69) (35950a6a)

DHCP

  • Fixed incorrect DHCP length calculation causes potential memory corruption for some longer options (ESP_NETIF_HOSTNAME_MAX_SIZE) (fbac0723)

DHCP Server

ESP Netif

IPv6

  • Added support for Route Information Options in IPv6 Neighbor Discovery (ND6 RIO) (35950a6a)

Low Power Features

  • Fixed the issue where RTC_BOD may reset or get stuck when waking up from Deepsleep on ESP32-P4 (b2eefe5a)
  • Removed the support for switching power from DCDC to LDO during ESP32-P4 lightsleep (b2eefe5a)
  • Added esp_sleep_get_wakeup_causes() to support multiple wakeup sources and deprecate esp_sleep_get_wakeup_cause() (a15becb5)
  • Warning instead of assert when disable a disabled power domain using esp_sleep_pd_config (https://github.com/espressif/esp-idf/issues/16872) (b3c8bc44)
  • Added explicit handling for ESP_PD_OPTION_AUTO, allowing direct mode switching and reference count reset (b3c8bc44)
  • Fixed the issue where the sleep wakeup failed after reset when RTC_CLK_SRC_INT_8MD256 is enabled on ESP32/ESP32-C2/ESP32-C3/ESP32-S3 (https://github.com/espressif/esp-idf/issues/16243) (508441f9)
  • Fixed the problem that the modem would work abnormally after waking up from light sleep if ADC is initialized on ESP32-C6/ESP32-H2 (080cccfb)
  • Fixed a possible wakeup failure on ESP32 if lightsleep/deepsleep was requested by Core1 (https://github.com/espressif/esp-idf/issues/16243) (fd78cc61)
  • Fixed esp_sleep_get_ext1_wakeup_status always return 0 on ESP32-P4 (cc6b993b)

ULP

LP Core

ULP-RISC-V

PHY

  • Updated librtc.a to fix coexist problems on ESP32 (e8486a1d)
  • Added protection against double phy-disable operations by one modem source which can result in hardware clock being switched off in coexistence scenario (c0c0ee4a)
  • Fixed phy cert_test example crash on ESP32-C3 and ESP32-S3 (https://github.com/espressif/esp-idf/issues/16888) (9c4fbf3e)

Peripheral Drivers

ADC

  • Fixed RNG ADC stuck after deep sleep wakeup (d547f4fe)

Camera

  • Fixed DVP loss half frames error (dc2f9df9)
  • Added a help function to allocate camera buffer (95c40cc8)

DVP

  • Fixed wrong DMA descriptor type on ESP32-S3 (4877b2f1)

GPIO

I2C

  • Added gpio reserve check on i2c driver (0b78d625)
  • Make I2C nack error log as debug level, not force print anymore (0b78d625)

I2S

JPEG

  • Fixed random black line appearance while jpeg decode (066a24e6)
  • Fixed wrong parameter in jpeg encoder memory sync which leads to cache error (066a24e6)

LEDC

  • Forced the new duty update to wait until its last duty update finishes for ESP32 (b8ea51b2)

MCPWM

PCNT

  • Fixed race condition causing accum_value loss on counter overflow (963fc922)

RMT

SD_HOST

SDMMC

  • Fixed sdmmc initialization issue caused by CMD52 CRC error (f10ac3ee)

SPI

  • Change ESP32-P4 SPI master default clock source to PLL to support up to 80M by default (0f6b6834)

SPI Flash

  • Fixed issue of escaping boundary check (b3f05386)
  • Updated 32-bit address (16MB or more) documentation to clarify experimental support for code execution and data access with CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH (58ddea79)

Touch Sensor

  • Fixed legacy touch sensor v1 can not read from ISR context issue (https://github.com/espressif/esp-idf/issues/17045) (5d20d91d)
  • Fixed calculation of sleep intervals (435cf83a)
  • Adjust touch channel number on ESP32-P4 from 0-13 to 1-14 (435cf83a)

UART

  • Added UART DMA driver support on ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S3 (8a94f195)

USB

  • CherryUSB host and device demo example is added (7d95eae7)
  • Added select functionality to the USB CDC driver (378bab6e)
  • Changed USB CDC VFS read() to treat end-of-line characters as regular bytes, with no early return (d727ae38)
  • Changed USB CDC VFS read() to return with available data when in blocking mode (d727ae38)
  • Updated ESP32-P4 USB pins for mass production version (https://github.com/espressif/esp-idf/issues/16136) (cde982d6)

USB Host

  • Added USB Host support for Full Speed peripheral on ESP32-P4 (b3269af4)
  • Improved stability of the USB Host Library with external hubs (121b41a4)
  • Added support for custom FIFO sizing via HAL API (e055bd52)

USB Serial JTAG

  • Changed USB Serial JTAG VFS read() to treat end-of-line characters as regular bytes with no early return (d727ae38)

Power Management

  • The current leakage for ESP32 in light sleep has been decreased by 80uA (d626163d)

Security

  • Fixed app image encryption length for secure update without secure boot case (3ad2b49d)
  • 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. (a1b7cc9f)
  • 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. (e839ed58)

ESP-TLS

Flash Encryption

  • Fixed esp_flash_encryption_set_release_mode() API to program the eFuse bit to level low only if the eFuse is not already programmed (b0f6b878)

MbedTLS

  • Dependent peripheral clock usage optimization for the ESP32-H2's revision v1.2 whose ECDSA peripheral does not use the MPI peripheral (c9161097)
  • Fixed build failure when using non-AES ciphers GCM operation fallback with CONFIG_MBEDTLS_GCM_C being disabled (c6599cbd)
  • Updated mbedTLS version to 3.6.4 (583fd13c)

Secure Boot

  • When Secure Boot is enabled, write disable SECURE_BOOT_SHA384_EN / ECDSA_CURVE_MODE in the security init function instead of the bootloader to allow configuring other efuses sharing the same write-protection (b0f6b878)

Storage

Partitions

  • Added support for partitions larger than 4MB on Linux target (de5cc2bf)

System Hardware

  • Fixed assert when changing 8MD256 RTC slow clock source during OTA on ESP32/ESP32-S2/ESP32-S3 (7436ed4b)
  • Fixed the issue that LP_WDT is triggered in ROM after esp_restart reset if UART0 is disabled in app (Affected targets: ESP32-C5/ESP32-C6/ESP32-H2) (fb0e8de7)
  • Auto adjusted core voltage for different chip and different environment on ESP32-P4 (1abb219d)

EFuse

  • Allowed custom key purposes (694c3a97)

MMU

  • No longer disable Cache when doing external memory mapping on ESP32S3, C3, C2, C6, H2 (489eba40)

PSRAM

Toolchain

Tools

WI-FI

  • Set NVS default value for SAE identifier to NULL (8574a0a6)
  • Added support for sending action frames on the target channel and remain on target channel for required duration (df2c1232)
  • Fixed scan trigger failure after roam event (c128e143)
  • Enabled IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (6f769323)
  • Added support for SoftAP SAE extended key (edeae998)
  • Fixed ESP32-C2 and ESP32-S2 TCP TX shake issue (a56f2016)

Examples

  • Supported 11ax rate for cert test (59d86f5d)

MAC

  • Fixed the issue where the device fails to sleep if it gets disconnected during the transmission of probe requests after beacon timeout (d3a98e25)
  • Fixed the issue that wifi disconnect when sta scan in connected state (d3a98e25)
  • Fixed scan done event miss issue (d3a98e25)
  • Returned error if call esp_wifi_set_config() when STA is connecting (2d556f7c)
  • The esp_wifi_set_config() API NOW cannot be called while Wi-Fi is connecting (2d556f7c)
  • Fixed ESP32 mac deinit stuck issue (2d556f7c)
  • Corrected the 'wifi_auth_mode_t' type sent during 'WIFI_EVENT_STA_CONNECTED' event (11a46c0d)
  • Fixed inactive time reset when wifi disconnect (00ee8827)
  • Fixed cache access error after TWT setup (00ee8827)
  • Fixed TX error 0xa1 (00ee8827)
  • Fixed beacon timeout when TWT setup (00ee8827)
  • Fixed open mode receive fragment packet fail issue (2b2a722a)
  • Prevented NON-PMF STA from retrying connection attempts if esp_wifi_disconnect() called before handshake, even if 'failure_retry_cnt' allows retries (7ae6d4b0)

Mesh

  • Fixed the mesh crash issue when changing mesh AP's authmode (edeae998)
  • Fixed the esp_mesh_scan_get_ap_record() error in chain topology (edeae998)

Supplicant

  • Fixed crash to uninitialized roaming neighbor list lock (cc158ee7)
  • Disable suite-b configuration if Wi-Fi enterprise is not enabled (https://github.com/espressif/esp-idf/issues/17567) (f0ad8350)
  • Resolved WPS crash triggered by repeated EAPOL-Start during handshake. (6b0b85b6)
  • Added support to limit EAP method supported by device based on user configuration (51257119)
  • Fixed pmksa expiration caused by sntp time synchronization issue. (ca0f2094)
  • Ensured disconnection with previously connected AP when actually starting the WPS instead of initiating WPS. (09bea2a5)
  • Added support for WPA-Enterprise in Station mode (28e9f352)
Source: README.md, updated 2025-10-21