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

latest releases: v5.3.1, v5.0.7, v5.3...
12 months ago

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

ESP-IDF v5.0.4 is a bugfix update for ESP-IDF v5.0.

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v5.0.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.

This archive can also be downloaded from Espressif's download server:
https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.0.4/esp-idf-v5.0.4.zip

Changelog

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

Bluetooth Low Energy (BLE)

Bluetooth Low Energy Controller

Added

  • Added comments to the header files for esp32c3 and esp32s3 to support CI (01871aa)

Fixed

  • Fixed BLE disconnection delay on peripheral when slave latency is not zero on ESP32 (40aac86)
  • Fixed BLE LLCP initialization for central and peripheral on ESP32 (40aac86)
  • Fixed sent command status event twice for disconnect command on ESP32 (40aac86)
  • Fixed crash when controller initialization fails due to insufficient memory on ESP32-C3 and ESP32-S3 (40aac86)
  • Fixed memory leak when setting ADV data on ESP32 (d3031dd)

ESP Bluedroid Host

Added

  • Bluedroid: Added support of NULL check while allocating the memory in the transport layer of the Bluedroid host. (1812fdc)
  • Bluedroid: Added a log statement to print the Bluetooth MAC address (1853b46)

Fixed

  • Bluedroid: Prohibiting the enablement of privacy uring non-connected activities to comply with the protocol specifications (01871aa)
  • Bluedroid: Fixed issues about data length is equal to 0 when setting extend ADV data, extend scan response data and periodic ADV data (01871aa)
  • Bluedroid: Fixed GATTC database cache free when disconnecting (55976a5)
  • Bluedroid: Fixed compile warning when optimize for performance (55976a5)
  • Bluedroid: Fixed the issue of setting BLE advertising data incorrectly when the data length is 0 (1853b46)
  • Bluedroid: Fixed BLE default extended connection parameters (40aac86)

ESP NimBLE Host

Added

  • Nimble: Added checks before accessing event pointers (52890ae)
  • Nimble: Added health thermometer profile (baecf8d)
  • Nimble: Added check to set length only if data is valid in perdioic adv (2f7ccb7)
  • Nimble: Added Example Walkthrough tutorial for Multi Adv example (35b6a54)
  • Nimble: Added Example Walkthrough tutorial for HTP example in nimble (f833ea4)

Changed

  • fix(nimble): Updated Menuconfig option to remove separate 5.2 feature option (339dff0)
  • fix(nimble): Updated connection type in reattempt connection code (5fb0d55)
  • doc(nimble): Updated Kconfig help section for Example Ext Adv (6211d5a)
  • Nimble: Increased the number of semaphore count for allocation (ff9b958)
  • Nimble: Added change to expose addr resolution API outside stack (82ce7dc)

Fixed

  • Nimble: Fixed L2CAP COC application for sending more than one packet of data (9ec33f6)
  • fix(nimble): Fixed assert due to controller event while stack deinit (67f6b66)
  • fix(Nimble): Expose API to clear all addresses in whitelist out of stack (007ae93)
  • Nimble: Fixed setting macro values based on selected configuration (c68e7ea)
  • Nimble: Corrected conditional check during connection to handle failure case (e71bab2)

Removed

  • Nimble: Removed the extra status field in the enh read transmit power level (b541a23)

ESP-BLE-Mesh

Added

  • Added support for Duplicate Scan Exceptional list for NimBLE Host (60acb32)

Other Profile

Fixed

  • HID: Fixed BLE HID battery level setting (40aac86)

Classic Bluetooth

Classic Bluetooth Bluedroid Host

Added

  • Bluedroid: Add instructions and diagrams on the execution workflow for examples bt_l2cap_server and bt_l2cap_client. (08c6c90)
  • Bluedroid: Added option whether to include or exclude device name in extended inquiry response data (1baf105)

Changed

  • Bluedroid: Updated AVRCP version to v1.5. (7c149c9)
  • Bluedroid: Improved documents for Bluetooth HID Host API reference. (12d9baf)
  • Bluedroid: Modified the number of SDP maximum connections from 2 to 4 to avoid connection exhaustion. (87d429f)

Fixed

  • Bluedroid: Fixed crash resulting from access of NULL pointer after A2DP disconnection. (d3031dd)
  • Bluedroid: Fixed SDP not being able to configure 32-bit and 128-bit UUID (#11572) (095bb9f)
  • Bluedroid: Fixed the alarm leak which is caused by not releasing the timer during A2DP and HF-AG deinitialization. (5cb2736)
  • Bluedroid: Fixed the unexpected use of 3-EV3 packet type in HFP when Wide-Band Speech is disabled, by revising the (e)SCO configuration parameter sets according to HFP_v1.8. (10ee738)

Removed

  • Bluedroid: Removed an incorrectly defined HCI error code. (16aef4b)

Classic Bluetooth Controller

Fixed

  • Fixed memory exhaustion resulted from repetitive unhanded event LC_AFH_UPDATE_IND on ESP32 (d3031dd)
  • Fixed link disconnection during sniff negotiation due to invalid D_sniff value on ESP32 (d3031dd)
  • Fixed failure of re-connection after ACL link is disconnected but host continues to send ACL data to controller on ESP32 (d3031dd)
  • Fixed Central not being able to handle the procedure collision between remote Peripheral's role switch request and local initiated encryption mode request on ESP32. (e6c1c5c)

PHY

Changed

  • Optimized WIFI RX performance under multipath interference environment (80231a8)
  • Optimized BLE TX sideband interference for ESP32-C3/ESP32-S3 (80231a8)
  • Optimized Wi-Fi HT40 TX sideband interference (80231a8)

Coexistence

Fixed

  • Internal coex: Fixed the issue on ESP32-C3/ESP32-S3 when BLE scan when ADV_EXT_IND is received but no AUX_ADV_IND followed, which caused Wi-Fi unable to work normally (2173ff9)

Wi-Fi

Added

  • Added new API to get RSSI info after station connected to AP. (264c807)

Changed

  • Implemented changes to prioritize sending EAP-Failure before de-authentication in WPS registrar. (1a0dc04)

  • Updated the code of how to configure multiple antennas of wifi (2ea4253)

  • The callback of esp_wifi_set_vendor_ie_cb() can be set to NULL now. (264c807)
    Fixed

  • Fixed association refused temporarily comeback time set to zero issue. (264c807)

Supplicant

Fixed

  • Supplicant: Fixed abstraction violation where use esp_rom_delay_us() (3d99ce2)
  • Supplicant: Ignored EAPOL non-key frames in EAPOL TxDone callback (186b5b4)
  • Supplicant: Fixed EAPOL Key TxDone callback implementation. (92bc2c7)
  • Supplicant: Fixed crash in sending neighbor report request. (98c2bc8)
  • Supplicant: Fixed infrequent issue with the de-initialization and BTM task deletion. (bb89a57)

Wi-Fi MAC

Added

  • MAC: Enable FTM on ESP32-C2 (d8f9786)

Fixed

  • MAC: Fixed the issue that SoftAP will not verify SSID of association request. (c920123)
  • MAC: Fixed some FTM bugs (d8f9786)
  • MAC: Fixed error propagation while initiating FTM (58f2441)
  • MAC: Fixed the issue that the Wi-Fi MAC parse beacon bug when IE length is zero (264c807)
  • MAC: Fixed the issue that the Wi-Fi can not go to sleep caused by MAC waiting for RX/TXING (264c807)

ESP Vendor Feature

Fixed

  • Vendor: Fixed set LR rate fail for ESP-NOW and esp_wifi_80211_tx (closes #11751) (4780221)
  • Vendor: Fixed the RX error when softAP/station and ESP-NOW both encrypted, and the ESP-NOW peer address is equal to the connection peer address. (4780221)

Ethernet

Fixed

  • Fixed the issue that esp32s3 chip fails to initialize eth module DM9051 (086412c)

Peripheral Drivers

Added

  • GPTimer: Add configuration to specify the priority of the alarm interrupt (5e933a8)
  • MCPWM: Make the MCPWM generator's GPIO pull up/down configurable (#11878) (acec0ef)
  • MCPWM: Support MCPWM generator's GPIO open drain output (#11878) (acec0ef)
  • RGB LCD: Support LCD rotation for RGB LCD whose pixel size is one byte (#11581) (74e032e)
  • SPI Master: Added transaction size check to refuse size bigger than hardware limitation (8b1efb6)
  • SPI Master: Added an API to get the maximum transaction length (8b1efb6)

Changed

  • LEDC: Improved ledc_get_freq() calculation accuracy by rounding instead of truncating (#11810) (c36f5fb)

Fixed

  • ADC: Fixed continuous mode HAL functions not in IRAM issue when GDMA is set to IRAM-Safe (#11781) (62e6999)
  • ADC: Fixed legacy ADC continuous driver DMA descriptor not in internal RAM issue (8e3b112)
  • ADC: Fixed wrong ADC oneshot mode clock divider on ESP32, ESP32-S2, ESP32-S3 (9f2fe91)
  • Brownout Detector: Disable the hardware brownout reset when brownout interrupt is enabled. (8e5718f)
  • GPIO: Fixed potential crash in ISR when CONFIG_SPIRAM_USE_MALLOC is enabled (#11876) (598c1fa)
  • I2S: Fixed i2s LL functions compile failure under C++ environment (Closes: #11625) (f7b97b5)
  • I80 LCD: Reset the CS GPIO when deleting the i80 IO driver (c7a5b3c)
  • MCPWM: Fall back to using a default clock if it's not set explicitly in the driver configuration. (45e1b89)
  • MCPWM: Fixed a typo in the name MCPWM_SELECT_SYNCx (43fa7e2)
  • SDMMC: Fixed the issue that the card clock is disabled before ACMD41 is completed, which prevented certain cards from initializing properly. (1b58018)
  • SPI Flash: Fixed concurrency issue when concurrently calling esp_flash APIs under XIP_PSRAM or Auto-suspend condition (3fba342)
  • TWAI: Fixed twai_driver_install() so that an error is returned on interrupt allocation failure (#11494) (9aefeb6)
  • Temperature Sensor: Fix the issue that sensor values are wrong at sub-zero temperatures (80d3e7a)
  • USB Host: Restrict ESP32-S2 USB OTG AHB errata workaround to only ESP32-S2 ECO0 chips. Other chips and ECOs will no longer be affected by USB OTG DMA usage. (a55ab7c)

System Hardware

Fixed

  • Cache: Fixed cache hit errors caused by accessing cache lines that are being writebacked. (0004505)
  • MMU: Fixed issue that only 128KB vaddr ranges can be mapped to instructions on Flash on ESP32-S3 (#10373) (a78ad03)
  • MMU: Fixed issue that only 16MB vaddr ranges can be mapped to read-only data on Flash on ESP32-S3 (a78ad03)
  • MMU: Fixed issue that only 128KB vaddr ranges can be mapped to instructions on Flash on ESP32-C3 (a78ad03)
  • MMU: Fixed issue that only at most 128KB vaddr ranges can be mapped to instructions on Flash on ESP32-C2 (a78ad03)
  • MMU: Corrected mmap reserved irom and drom size (#2561) (73551a7)
  • PSRAM: Fixed ID cannot be detected issue under ESP32 2T mode (8797a92)
  • PSRAM: Allow PSRAM CLK to be shared with flash on ESP32-D0WD. (116f343)

Core System

Added

  • Added support for console output over USB_OTG peripheral's CDC port. (#8879) (38bd8d3)

Fixed

  • Fixed different signed comparison warning in esp_ptr_in_drom (#11653) (befe69d)
  • Fixed build error and crash in event handling loop when CONFIG_ESP_EVENT_LOOP_PROFILING is enabled (#11428) (ba6e04d)
  • Esp-Event: Fixed missing error return documentation for esp_event_loop_create_default (#11745) (1f1b10a)
  • Fixed the issue that a CPU interrupt of priority N was actually set as N+1 on RISC-V targets (6c6a55e)
  • Ringbuf: Fixed ther ordering of StaticRingbuffer_t members to match Ringbuffer_t. Prevents host compilers (e.g., Linux GCC) from inserting different paddings. (#11726) (cf83b32)
  • Ulp-Fsm: Fixed incorrect register address parsing in ULP FSM register read/write macros (#11652) (d503e17)

Debugging

Added

  • Core Dump: Added CONFIG_ESP_COREDUMP_LOGS option to disable core dump related logs, reducing RAM usage (f0de10e)

Fixed

  • App Trace: Fixed trace data corruption on ESP32-S3 (#10604) (2ab2d8d)
  • Espcoredump: Fixed build warning when dumping to flash with log disabled (#11869) (8b692dd)
  • GCOV: Fixed on-the-fly (non-hardcoded) gcov dumping when esp_gcov_dump is not used (cf90dc9)

FreeRTOS

Changed

  • Updated linker fragment files to optimize IRAM space utilization by the FreeRTOS kernel. (7c91c8f)

Power Management

Changed

  • Updated help text for ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND, ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND and ESP_SLEEP_MSPI_NEED_ALL_IO_PU options to be more descriptive (#11558) (7a0e39d)

Fixed

  • PSRAM: Fixed the problem that the PSRAM program crashed due to wrong MSPI timing after frequency switching when using high-speed PSRAM and enabling DFS (c10505f)
  • Fixed potential illegal instruction exception after waking up from light sleep (cbb4126)
  • Fixed output formatting issue in esp_pm_dump_locks function (#11704) (afe026f)

LWIP

Added

  • esp_netif: Added return value to esp_netif_receive() to report issues on packet input path (#10770) (b0b3e0d)

Changed

  • Lower the dhcp discover and request retry backoff time. (c920123)

Fixed

  • Fixed DHCP server bug ensuring pool range doesn't exceed subnet mask; verified server IP and subnet match. (85b69db)
  • Fixed DHCP server's incorrect invocation of the hook LWIP_HOOK_DHCPS_POST_APPEND_OPTS (#11374) (4c7e652)
  • Added check to ensure safe restart of dhcp fine timer in dhcp.c in lwip. (4efb3d7)

OTA

Fixed

  • Fix a typo in api-reference/system/ota (1655084)

mbedTLS

Added

  • Added a new configuration option MBEDTLS_ECP_FIXED_POINT_OPTIM for mbedtls. (baa90a6)

Changed

  • Updated to version v3.4.1 (958dae0)

Fixed

  • Fixed the port for the mbedtls_internal_shaX_process API (1315845)
  • Fixed incorrect transmission of esp-aes APIs' return values and zeroising the output buffer in case of an error condition. (3fc6eb9)
  • Fixed mbedtls_ecdsa_can_do definition when ECDSA_SIGN_ALT is defined but ECDSA_VERIFY_ALT is not defined. (1c0887b)
  • ESP32: updated the intermediate SHA state in the mbedtls_shaX_update API (1315845)
  • Fixed incorrect assertion in the MPI H/W operation routine (#11850)

ESP-TLS

Fixed

  • Fixed build issue with secure element and CONFIG_ATECC608A_TCUSTOM case (#11923) (e8507d1)

Storage

Fixed

  • VFS/UART: Fixed an issue that might lead to a crash when opening a UART port that doesn't exist (a6d8a33)

Tools

Fixed

  • Fixed inconsistency between export paths in Powershell and Command Prompt on Windows (#9849) (6daffb3)
  • Fixed waiting on the GDB process when interrupted with CTRL+C (#11871) (35c4843)
  • Fixed IDF Monitor print filter when no ELF file is supplemented (8b01e23)
  • A bug was fixed in idf_size.py where rodata.noload was wrongly counted in the total flash size, this data is discarded and never makes it to the binary (#9177) (098a029)

Build System

Changed

  • Improved diagnostic messages related to git_describe() (#9071) (36de1ba)

Fixed

  • Fixed crash on Windows when path contains Unicode characters (ed93de6)

External Libraries

Changed

  • Cjson: Updated version to v1.7.16 (ca087a1)

Documentation

Changed

  • Updated chip revisions to follow ESP32-C3 errata (#11743) (3a7e3fb)
  • Updated installation prerequisites for Ubuntu and Debian systems (c9129ba)
  • Iperf: Updated documentation with console interface details (056de3b)

Fixed

Removed

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.