Documentation for IDF v5.0.1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.0.1/
ESP-IDF v5.0.1 is a bugfix update for ESP-IDF v5.0.
Obtaining v5.0.1
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.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.0.1
cd esp-idf-v5.0.1/
This is the recommended way of obtaining v5.0.1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.0.1.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.1/esp-idf-v5.0.1.zip
Major changes
This is the list of changes since release v5.0:
Breaking Changes
- System/sleep: esp_light_sleep_start now returns two error num when sleep fails: ESP_ERR_SLEEP_REJECT and ESP_ERR_SLEEP_TOO_SHORT_SLEEP_DURATION (f91cb28)
- Wi-Fi: Changed espnow receive callback function type (
esp_now_recv_cb_t
) (6818b30) - Wi-Fi: added ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM to configure the maximum ESPNOW encrypted connection number which impact the maximum SoftAP connection number (175f0de, fe4efc0)
- ADC: No longer support ADC2 continuous (DMA) mode on ESP32-S3 and ESP32-C3, search for errata on espressif website to know more details. Users can force use it by enabling ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 (1c373cf)
- ADC: No longer support ADC2 oneshot mode on ESP32-C3, search for errata on espressif website to know more details. Users can force use it by enabling ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 (bb07490)
- esp_chip_info() returns the chip version in the format = 100 * major eFuse version + minor eFuse version.
Changelog
Bluetooth
Controller
Fixed
- Fixed lld_con.c line 3048 assert on ESP32-C3 and ESP32-S3 (8b0ec09)
- Fixed crash sometimes when connected as a slave by 8th device on ESP32-C3 and ESP32-S3 (8b0ec09)
Bluetooth Low Energy
Added
- Added comments explaining how much memory will be used by each connection/advertiser for ESP32-C2 (dcc310f)
- Added config to disable scan backoff on ESP32-C3 and ESP32-S3(6d11786)
- Supported Bluetooth to release .bss and .data segment memory on ESP32-C2 (6c4292f), ESP32-C3 and ESP32-S3 (1b44990)
- Added config to set duplicate scan list refresh period on ESP32, ESP32-C3 and ESP32-S3 (e7ee437, 0733694)
Changed
- Changed BLE default TX power from 3dBm to 9dBm on ESP32-C3 and ESP32-S3(99cd534)
- Updated phy lib for ESP32-C2, ESP32-C3 and ESP32-S3 (9cfffd2)
- Enable BLE PLL track to fix bluetooth disconnection caused by temperature rise or fall on ESP32-C3 and ESP32-S3
- Unified the controller internal error code on ESP32-C2 (de7e62f)
- Changed default TX power to 9 dBm on ESP32 (0b8f0e5)
Fixed
- Fixed a bug in the linker fragment file that made BSS part marked by bt_bss_start and bt_bss_end empty on all BLE chips (d4070f7)
- Fixed llm_scan.c assert at line 1485 during controller deinit if extend duplicate scan is not stopped on ESP32-C3 and ESP32-S3(0af189b)
- Fixed memory leak issue caused by insufficient heap on ESP32-C2 (90fa0e5)
- Fixed interrupt latency when cache is disabled on ESP32-C2 (06290d4)
- Fixed occasional assertion when periodic adv is stopped on ESP32-C2
- Overwrite the oldest device infor if the list is full on ESP32, ESP32-C3 and ESP32-S3 (e7ee437, 0733694)
- Fixed duplicate scan period is not accurate on ESP32, ESP32-C3 and ESP32-S3 (e7ee437, 0733694)
- Fixed some memory was not released after Bluetooth controller initialization failed on ESP32, ESP32-C3 and ESP32-S3 (5fff471, c656e7e)
- Fixed privacy error for directed advertising on ESP32-C3 and ESP32-S3 (e95d720)
- Fixed multiple periodic advertising sync failed in air on ESP32-C3 and ESP32-S3 (e95d720)
- Fixed disconnect reason 0x1f (unspecified error) on ESP32 (0b8f0e5)
- Fixed connection timeout due to LL_TERMINATE_IND has not been acknowledged on ESP32 (0b8f0e5)
Removed
- Removed redundant pm_lock on ESP32-C2 (5c481c5)
Classic Bluetooth
Bluedroid
Classic Bluetooth
Added
- Added esp_spp_enhanced_init() API to indicate whether to enable Logical Link Control and Adaptation Layer Protocol enhanced retransmission mode (c2c9b09)
- Added report for ACL link related events to upper layer (80da46e)
- Added esp_spp_vfs_unregister() to free memory allocated by esp_spp_vfs_register() (3f5aaf1)
Changed
- Changed the default SR mode to R2 for the paging device when it knows nothing about the paged device's SR mode. (a1de1bf)
- Updated A2DP version to v1.4 (e579466)
- Updated HFP version to v1.8 (71bd180)
- Changed A2DP audio buffer management behaviour, removed audio cache in BTC layer and added flow control for audio data in application layer in A2DP sink example. (9ad1c7d, 75b2e63)
Fixed
- Fixed compatibility issues with HID devices that do not support Secure Simple Paring in HID examples. (a69c540, #10069)
- Fixed esp_spp_write() crash when data length is 0 (47232f5)
- Fixed incorrect description in macro BT_CONTROLLER_INIT_CONFIG_DEFAULT(). (ffcabde, #9906)
- Fixed the unexpected memory free when malloc failed. (11b6c25, #9972)
- Fixed the issue Bluetooth Classic connection can not be created while this is a Bluetooth Low Energy connection is in active. (650b665, #6557)
- Fixed HFP client parce CLCC command response bug (2539529)
- Fixed authentication failure during legacy pairing by using variable PIN type instead of fixed PIN. (728e2c9, #10005)
- Fixed HID Host improper handle of freeing resource in esp_hid component (de55b5d)
- Fixed A2DP failing to connect again after disconnected (d47bf56)
- Fixed HID Device can not remove virtually cabled device without a connection. (ad43b04)
- Fixed memory leak due to not freeing memory if posting a message to a thread fails (f9732cb)
- Fixed the use of invalid configuration when the peer device configures the stream, and returned an incorrect error code (9bd1484)
- Fixed memory leak when SPP initialization failed (29b718b)
Bluetooth Low Energy
Added
- Support bluedroid host maximum number of connections to 9 on ESP32-C3 and ESP32-S3 (2a76e35)
Changed
- Reduce the stack consumption of BTU_TASK, saving 609 bytes(7884457)
Fixed
- Fixed ble_compatibility_test example NVS init error (f258183)
- Clean up BLE examples sdkconfig.defaults (fdd75ea)
- Fixed sometimes BTU task overflow when doing read and write performance test(2e0a5b3)
- Fixed BLE HID LED output report error (e8fef19)
- Fixed encrypt key size error of GATT characteristic permission (c97df72)
- Fixed no BLE connection update event with the same parameters (938d912)
- Correct the length of ATT_READ_BY_TYPE_REQ PDU(4b7702c)
Removed
- Remove -Wno-format compile option for bluedroid BLE examples (16f9add)
NimBLE
Added
- Added init deinit of nimble stack in a loop. (ff29f5c)
- Added stack support for Connection subrating feature (586a471)
- Support to expose blufi handler for external BLE application (7a72210)
- Added support for HCI Commands / Events for LE Power Control (e8e79e8)
- Added an example support for ble periodic adv. (9d3e157)
- Helper macro added to set perdiodic adv interval (1623ad0)
- Support BLE memory release on ESP32C2 (6c4292f)
- Support max number of connections to 9 on esp32c3 and esp32s3 (7d68a35)
Changed
- Updated README file of BLE PHY prph example (5774ca1)
- Changed GATT notify/indicate from gattc to gatts (b1d87a4)
- Updated Mesh example documentation (71e1c0a)
Fixed
- Fixed freeing up of same memory address twice in L2CAP COC example. (5c50cbc)
- Fixed esprv_intc_int_set_type() usage (50b1a99)
Removed
- Remove -Wno-format compile option for nimble examples (cbf8cf7)
Blufi
Added
- Added API for stack and profile deinit (ab2dee9)
- Added data subtype for more Wi-Fi information (39080a2)
- Support to query disconnected information, connecting information (497b451)
Fixed
- Examples: Return errcode if fail to scan (497b451)
ESP-BLE-Mesh
Added
- Added an option for initiating IV Index Recovery if missing one (54f18a4)
Fixed
- Fixed not using fast adv interval when PB-GATT and PB-ADV are both enabled (3d695ce)
- Fixed not able to get optional fields from messages with a group address as DST (f825fcd)
- Fixed typo in the directly erase settings event (1529613)
Removed
- Removed -Wno-format compile option for BLE Mesh examples (fca1b1d)
Coexistence
Added
- Added external coexistence (leader mode) support on ESP32-S3 and ESP32-C2 (9bbe6e7)
- Added external coexistence (follower mode) support on ESP32-C2 (676a347)
- Added force RX mode in external coexistence on ESP32-C2 (676a347)
- Added support for output grant signal delay and validate pin level configuration on ESP32-C2 (676a347)
Fixed
- Fixed part of modem module not reset when power up (18fef64)
Wi-Fi
Added
- Added connectionless power save documentation (5cd3244)
- Supported Wi-Fi TX fragment in the crypto mode of GCMP (f768845)
- Added configuration options for maximum number of espnow encrypted connections. (175f0de, fe4efc0)
- Added config option to mandate station authmode threshold to WPA3 if AP sends transition_disable bit. (38bb7c2)
- Added WPS registrar support in SoftAP mode. (2accc31)
- Provided RSSI info in disconnected event (1362b58)
Changed
- Modified wifi scan return value. (054fdeb)
- Modified maximum Softap connection number. (175f0de, 270940d)
- Changed espnow receive callback to pass it more information (6818b30, #8574)
- SA Query and assoc comeback related improvements in STA and SoftAP (869d8c4, #9428)
- Changed espnow receive callback function type (
esp_now_recv_cb_t
) (6818b30)
Fixed
- Fixed the ESPNOW crash when modify the interface of the peer (7aa2b03)
- Fixed a few memory leaks in the operation of a station in WPS pin mode, which led to crashes after a few executions of WPS Start with no attempts to connect to it for the WPS timeout duration. (561cce9)
- Fixed WPA2 Enterprise Re-authentication issue (ecaa2e8)
- Added check for IEs in match security (78fe8e7)
- Fixed WAPI issue on GTK compatibility and reference to broadcast ARP packets. (f768845)
- Fixed TX fragment issue that PN code is less than MSDU after it. (f768845)
- Changed the log level of some logs to avoid misunderstanding. (054fdeb)
- Fixed connect fail return wrong error code issue. (054fdeb)
- Fixed some issues on Soft-AP power save. (675f955)
- Fixed high current issue after reconnected (5cd3244)
- Fixed potential Wi-Fi disconnection when BT deinit. (7d16868)
- Prevented PMK caching if AP security has changed (39ed5dc)
- Added key reinstallation related security fixes from upstream wpa_supplicant (e566e0b, CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, CVE-2017-13081, CVE-2017-13082)
- Fixed SoftAP memory leak in after wifi_deinit. (81f39c8)
- Fixed STA get AP info did not return connected SSID issue. (81f39c8)
- Fixed SoftAP recv PS-POLL not update inactive timer issue. (81f39c8)
- Fixed multicast packets drop issue for some AP when DTIM period > 1. (a01847c)
- Cleared current PMKSA to fix WPA3 connect loop(#10364) (823b6c8)
- Added a check to avoid FTM initiator in SoftAP mode (002e21b)
- Fixed home channel issue in FTM for AP/STA mode (002e21b)
- Fixed integer overflow for T1-T4 counter variable (002e21b)
- Added changes to use SHA256 size ciphers for WPA2 enterprise for cert size > 2048 (1db1a5f)
Removed
- Removed RC4 code instances from wpa supplicant for mbedTLS (2d0ef53)
ESP-WIFI-MESH
Fixed
- Fixed invalid child issue (e4161a1)
- Fixed memory leak issue when esp_mesh_start/stop (19fae97)
- Fixed WIFI_EVENT_AP_STADISCONNECTED event error (e4161a1)
Ethernet
Changed
Security
Fixed
- esp_flash_encrypt: In API to set flash encryption to release mode, if the target supports it then enable Secure ROM DL mode instead of disabling it completely. (04cdc55)
- [docs] Fix Secure DL mode documentation about flash read being unsupported
Peripheral Drivers
Added
- Added a new chip version logic (major * 100 + minor) (823024c)
- ESP_LCD: Support register color-transfer-done callback at runtime (a388286)
- I2C_LCD: Added support for rotation to OLED SSD1306 screen (5f6eac2)
- RGB_LCD: Added esp_lcd_rgb_panel_restart function to restart DMA transmission (7d39d12)
- RGB_LCD: Support allocating multiple frame buffers. (698fd7a)
- RGB_LCD: RGB LCD bounce buffer can work with multiple frame buffers. (07d6533)
- PCNT: Support accumulate counter value when overflow at high/low limit (0dbbf7b, #10167)
- SPI Flash: Added GD25QxxE flash high performance mode (120M) support (7e1c632)
Changed
- Examples: Updated max GPIO range for C2 examples to exclude UART0 pins (a918c13, #10174)
- Updated ESP32-C2 chip info to reflect that ESP8684 has embedded flash (7cd7056, #10175)
Fixed
- ESP_ROM: Fixed the issue that mz_crc32 is not defined in the miniz library. (af425e5)
- I2C: Fixed some functions are not in IRAM (1bd4c6a, #10079)
- I2C: The buses are now properly reset after error. The reset only happens on the stalled bus, so they won't affect each other. (4ef2ba2, #7144)
- LEDC: Fixed -Werror=maybe-uninitialized warning that could happen on glb_clk variable when CONFIG_COMPILER_OPTIMIZATION_SIZE is selected on ESP32 (c41bb46, #9025, #10322)
- MSPI: Fixed timing tuning issue for 80MHz Octal PSRAM on ESP32-S3, which would lead to system stall at early stage. (2369fa4)
- RMT: Fixed memory leak in the legacy driver (0bf7145, #10173)
- SDSPI: Allows CS line to be set to GPIO_NUM_NC (-1) in SDSPI (CS on SD card has to be pulled down) (7ca457b)
- SPI Slave: Fixed CS signal mapping issue when other bus signals are routed via IOMUX and CS is rounted via GPIO Matrix (12f9170)
- Touch Sensor: Fixed a typo in touch_sensor.h of ESP32-S2 and ESP32-S3 (4a6d51e)
- ROM: Add ROM API
esp_rom_uart_set_as_console
for all riscv chips. - UART HAL: Fixed UART LL functions can't compile with cxx (5ba7518, #10106)
- USB Host: Fixed bug where calling usb_host_device_open() would sometimes not be able open a device if the device was already opened by another client. (9e145c5)
- USB Host: Fixed bug where calling usb_host_interface_claim() would sometimes allocate an IN EP as a OUT EP. (823c8d4)
- USB Host: USB Host Library transfer API now checks that users do attempt to submit an already inflight transfer, and will return an error if attempted (9670402, #8748)
- No longer disable cache, when CONFIG_SPIRAM_RODATA and CONFIG_SPIRAM_FETCH_INSTRUCTIONS are both enabled (06e1ff2)
Removed
- ADC: No longer support ADC2 continuous (DMA) mode on ESP32-S3 and ESP32-C3, search for errata on espressif website to know more details. Users can force use it by enabling ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 (1c373cf)
- ADC: No longer support ADC2 oneshot mode on ESP32-C3, search for errata on espressif website to know more details. Users can force use it by enabling ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 (bb07490)
- PSRAM: Removed unused CS and CLK IO kconfig options on ESP32-S2 and ESP32-S3 (a674092)
Core System
Added
- Watchdogs: Added Support for Interrupt WDT and Task WDT on ESP32-C2 (b675bb2)
Changed
- RTC: Improved XTAL stability when sleep on ESP32 (e04c850)
- heap: Decreased utilization of the IRAM / DRAM sections by the heap component binary by ~40%. (47cfd0a)
Fixed
- System: Fixed time jump after reboot (61d05c0, #9448)
- System: Forced __stack_chk_fail() in RAM to prevent litigious calls from IRAM to flash. (87a7389)-
- Gdbstub: Fixed build-error due to potentially uninitialized variable on -O2 (35a2844, #9706)
- Interrupt: Fixed freed interrupt sources not being able to be allocated again with different flags (521a726)
- ULP-RISCV: Fixed spurious cocpu trap wakeups on S3 by always forcing COCPU clock on. (cd634f7)
- Heap: Fixed memory boundary check when adding a new heap (5ec5faf)
- Heap: Fixed excessive heap allocator overhead introduced in v4.3 release, increasing heap size by ~8KB (#7822)
- Panic: Fixed panic handler output not being printed to USB_SERIAL_JTAG when it was selected as a secondary console (12f8e55, #10027)
- Panic: Fixed infinite panic loop after an interrupt watchdog (35135d7)
- Panic: Fixed bug where reboot is stuck after the ESP32-S3 core1 enters the panic (c280d4b, #10320)
Debugging
Added
- SystemView: Added FreeRTOS SMP port support (5b601cd)
FreeRTOS
Added
- Added missing header include for esp_chip_info.h to port.c (7add623, #10310)
- RISC-V targets can now wrap Tasks' function to detect if one of them mistakenly returns without deleting itself. This option can be activated in the menuconfig. (96346c1)
- Added missing ESP_PLATFORM preprocessor directive for FreeRTOS static data structs. (fae2522, #9785.)
Fixed
- Fixed bug where if an unpinned task that gets interrupted by an ISR, and that ISR uses the FPU, the unpinned task will get automatically pinned to the the current core. (13b8a8f)
Removed
- Removed bad assert check for inheritance in xQueueSemaphoreTake() that could be falsely triggered when running with multiple cores (39cadc7, #10199)
Power Management
Fixed
- System/sleep: Fixed current leakage when hold digital io during deep sleep (21c9ec5)
- HAL/GPIO: Fixed digital gpio can not disable hold during deep sleep (ESP32-C2/ESP32-C3/ESP32-S2/ESP32-S3) (4223427)
- HAL/GPIO: Fixed digital gpio can not enable hold during deep sleep when force_unhold set (ESP32-32/ESP32-S2/ESP32-S3) (99c8c0c)
LWIP
Added
- Added on demand timers for several modules to improve power efficiency (updated DNS timer, IPv4/IPv6 reassembly timer and DHCP fine timer) (651db95, ebd1609)
Fixed
- Fixed long time to get IP (4d46e82)
- Fixed PPPoS re-connection issues, causing esp-modem applications failing to connect again after disconnection (d2791b3, #10308)
OTA
Added
- Added support for esp_events for diagnostic purpose (4934d01)
HTTP/HTTPS Server
Added
- Added support to enable TCP keepalive config. (311b504)
- Added support for esp_events for diagnostic purpose (1a39a17)
Fixed
- Fixed initializers missing in esp_https_server (d48b085, #10306)
- Fixed wrong context pointer in httpd_req_cleanup function (a5ee150)
ESP LOCAL CTRL
Changed
- esp_local_ctrl: Allow component to build and work with CONFIG_ESP_HTTPS_SERVER_ENABLE disabled case (7279244)
Provisioning
Added
- Added CONFIG_WIFI_PROV_STA_SCAN_METHOD to set scan policy and default has been updated to "all channel scan" from "fast scan" for more reliability in connecting to AP. (9067214)
Changed
- Wifi Prov: Disabled by default the Forcing of BLE encryption requirement on provisioning characteristics. (6091627)
Fixed
- Increased 1 byte of BLE advertising device name to store '\0', at the end. (ba8fc01)
mbedTLS
Changed
- Updated GCM implementation with CTR-based calculation which utilizes AES-DMA to improve efficiency. (3c1ac62)
Fixed
Bootloader
Added
- Added chip revision check based on the configured REV_MIN_FULL and the REV_MAX_FULL associated with IDF version (823024c)
Fixed
- MMU: Fixed wrong MMAP_ALIGNED_MASK macro on ESP32-C2 (c60257e)
- Bootloader: Fixed
esp32s3 esp_rom_printf
can not print anything when ROM log was disabled by efuse or RTC store register. - User's data in rtc_retain_mem are now ignored when determining whether to erase the structure or not. (62ad5c2)
ESP-TLS
Added
- Added support of certificate selection callback for mbedTLS stack. (e644265)
Fixed
- Fixed setting the default timeout of sockets before a connection when a timeout value was not given in the esp-tls config structure (081e2ac)
Storage
Changed
- Examples: Fixed mixing usage between
spi_flash_mmap_handle_t
andesp_partition_mmap_handle_t
,SPI_FLASH_MMAP_DATA
andESP_PARTITION_MMAP_DATA
,spi_flash_munmap
andesp_partition_munmap
Tools
Added
- Support using ESP-IDF installed in system-wide shared directory for all users (1e6e0cf, #9328, #9329)
- Added esp-rom-elfs release version 20220823 (3eec946)
Changed
- Improved download error messages coming from "idf_tools.py" with hints on how to resolve them (dc9a41b, #9618, #4081)
- Improved venv check and avoid failure in Windows systems setup with older installers (bbc5009)
Fixed
- 'idf.py gdb' loads ROM and bootloader symbols in addition to app symbols (7561367, 2d61c9c)
- 'idf.py gdb' loads necessary symbols in case '--gdbinit' option is present (2e9f175)
- Fixed idf.py monitor read on Linux target (46c9240)
- Export scripts offer to remove old toolchains versions and keep the last version of any toolchain (39ee811)
- An issue was fixed where diram size in idf.py size and idf_size.py output was half the actual size (1c35538, #9960)
Removed
Build System
Added
- Added new build system function idf_component_add_link_dependency (8468ea3)
Fixed
External Libraries
Changed
Documentation
Added
- RGB_LCD: Added a guide for how to use the RGB LCD bounce buffer with PSRAM XIP feature. (6d22959)
Changed
Fixed
- Fixed Secure DL mode documentation about flash read being unsupported. (88c3e0b)
Removed
- Removed rarely used items from the home page. (8cbaff1)