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
andbt_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
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 asN+1
on RISC-V targets (6c6a55e) - Ringbuf: Fixed ther ordering of
StaticRingbuffer_t
members to matchRingbuffer_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
andESP_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
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
whererodata.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
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