ESP-IDF Release v5.1.1
Documentation for IDF v5.1.1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.1.1/
ESP-IDF v5.1.1 is a bugfix update for ESP-IDF v5.1.
Obtaining v5.1.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.1.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.1.1
cd esp-idf-v5.1.1/
This is the recommended way of obtaining v5.1.1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v5.1.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.1.1/esp-idf-v5.1.1.zip
Major changes
This is the list of changes since release v5.1:
- Power management support for ESP32H2: Light sleep, DFS, BLE Modem Sleep/Light sleep, Openthread Modem sleep/Light sleep
- Power management support for ESP32C6: BLE Modem sleep/Light sleep, Openthread Modem Sleep/Light sleep
- Added external coexistence support for ESP32C6
Known Issues
- Supplicant: During WiFi Enterprise connection benign error prints like these may appear - "wpa: EAPOL TxDone with invalid payload len!"
Changelog
802.15.4
802.15.4 MAC
Added
- 802.15.4 MAC: Added debug feature for driver. (fabe338)
- 802.15.4 MAC: Match ESP32-C6/ESP32-H2 max txpower value with datasheet (966312e)
Changed
- 802.15.4 MAC: Updated coex_arb_delay reg (aa43494)
Fixed
- 802.15.4 MAC: Fixed a bug when stop tx/rx ack, no event will be posted to upper stack. (9658469)
- 802.15.4 MAC: Fixed multipan api error (aa43494)
Thread
Added
- Thread: Support DUA and linkmetrics feature optional. (1296991)
- Thread: Support light sleep for openthread (a300e79)
- Thread: Support settings API for openthread port. (65bf500)
- Thread: Introduce the Thread auto start API (65bf500)
- Thread: Added event post for OpenThread role changed (65bf500)
Changed
- Thread: Enable HW AES for mbedtls. (65bf500)
Fixed
- Thread: Forbid otPlatUdp to connect to address 0.0.0.0 with port 0. (1296991)
- Thread: Fixed dead lock issue related to ot and lwip (65bf500)
- Thread: Fixed an out-of-range memory issue when calling NVS API. (65bf500)
- Thread: Fixed assert when parsing security key failed. (9658469)
- Thread: Enable openthread border agent id support. (4cb9554)
- Thread: Fixed memory leak for handling ICMP6 MLQ packets (4cb9554)
- Thread: Fixed set mcast forwarding enable (4cb9554)
Zigbee
Changed
- Zigbee: Updated Zigbee examples based on latest library (7ae116e)
Bluetooth Low Energy
Bluetooth Low Energy Controller
Fixed
- Controller: Fixed BLE disconnection delay on peripheral when slave latency is not zero on ESP32. (56bb50b)
- Controller: Fixed BLE LLCP initialization for central and peripheral on ESP32. (56bb50b)
- Controller: Fixed sent command status event twice for disconnect command on ESP32. (56bb50b)
- Controller: Fixed crash when controller initialization fails due to insufficient memory on ESP32-C3 and ESP32-S3. (56bb50b)
- Controller: Fixed memory leak when setting adv data on ESP32. (5e34883)
- Controller: Fixed the problem of disconnection in high and low-temperature environments on ESP32-C2.(43a67a5)
- Controller: Fixed scan failure issue on ESP32-C6. (aa6a8b7)
- Controller: Fixed crash issue in light sleep on ESP32-C6. (aa6a8b7)
- Controller: Changed the power level for ESP32-C6. (aa6a8b7)
- Controller: Fixed the crash issue when BLE MESH pairing on ESP32-C6. (aa6a8b7)
Added
- Controller: Supported extra link retention used for sleep on ESP32-C6, ESP32-H2. (a8c9665)
- Controller: Added VS commands to support mesh duplicate list for ESP32-C6, ESP32-H2. (e68d4a7)
ESP Bluedroid Host
Added
- Bluedroid: Added a log statement to print the Bluetooth MAC address (82fde1e)
Fixed
- Bluedroid: Fixed GATT control block free when disconnecting. (aa5b7e0)
- Bluedroid: Fixed GATTC database cache free when disconnecting. (aa5b7e0)
- Bluedroid: Fixed BLE default extended connection parameters. (56bb50b)
- Bluedroid: Fixed BLE HID battery level setting. (56bb50b)
- Bluedroid: Fixed the issue of setting BLE advertising data incorrectly when the data length is 0. (82fde1e)
- Bluedroid: Added support of NULL check while allocating the memory in the transport layer of the Bluedroid host. (25876e8)
ESP NimBLE Host
Added
- NimBLE: Added proximity sensor as a service (a125e8f)
- NimBLE: Added API to send VSC and handle VSE (68654bf)
- NimBLE: Added tutorial for Multi adv example (4b761af)
- NimBLE: Added tutorial for HTP example (c6bc222)
- NimBLE: Added support to send Power control related events in the registered callback. (40bf1ed)
- NimBLE: Added health thermometer profile (4cf31c3)
- NimBLE: Added BLE multi-connection example for ESP32-C6, ESP32-H2
Changed
- NimBLE: Updated central examples to consider failure when attempting connection (c558904)
- NimBLE: Increase the number of semaphore count to allow more semaphore allocation (e2e5894)
- NimBLE: Sync missing changes between porting folder and nimble submodule files. (f1b9af7)
- NimBLE: Updated macro names in menuconfig as per nimble1.5 (9d47a58)
Fixed
- NimBLE: Fixed mismatch of number of completed packtes in host flow control. (d25df89)
- NimBLE: Fixed data type of power level and delta to handle negative values (e27b44e)
- NimBLE: Fixed assert due to controller event while stack deinit. (a7b62bb)
- NimBLE: Memory leak fixes (60163c3)
- NimBLE: Fixed setting macro values based on selected configuration (bd0343c)
- NimBLE: Fixed watchdog timer issue in throughput app (0e1bcdd)
- NimBLE: Expose API to clear all addresses in whitelist out of stack (633d072)
- NimBLE: Updated connection type in reattempt connection code (dab45c2)
- NimBLE: Removed the extra status field in the enh read transmit power level (051965a)
Removed
- NimBLE: Removed example files referring to older TTFW framework. (b875331)
ESP-BLE-MESH
Changed
- ESP-BLE-Mesh: Updated ble mesh to support duplicate scan on ESP32-C6 and ESP32-H2. (196fc55)
Classic Bluetooth
Classic Bluetooth Bluedroid Host
Added
- Bluedroid: Added instructions and diagrams on the execution workflow for examples
bt_l2cap_server
andbt_l2cap_client
. (bd985de)
Changed
- Bluedroid: Updated AVRCP version to v1.5 (425b660)
- Bluedroid: Improved documents for Bluetooth HID Host API reference. (09f2ab8)
Fixed
- Bluedroid: Fixed null pointer access after disconnection. (5e34883)
- 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. (71a5663)
- Bluedroid: Fixed the alarm leak which is caused by not releasing the timer during A2DP and HF-AG deinitialization. (d682fbe)
- Bluedroid: Fixed SDP not being able to configure 32-bit and 128-bit UUID (#11572) (11d34b1)
Classic Bluetooth Controller
Fixed
- Controller: Fixed memory exhaustion resulted from repetitive unhanded event LC_AFH_UPDATE_IND on ESP32 (5e34883)
- Controller: Fixed link disconnection during sniff negotiation due to invalid D_sniff value on ESP32 (5e34883)
- Controller: Fixed failure of re-connection after ACL link is disconnected but host continues to send ACL data to controller on ESP32 (5e34883)
Wi-Fi
Added
- Added new API to get RSSI info after station connected to AP. (d7604b5)
Changed
- the callback of
esp_wifi_set_vendor_ie_cb()
can be set to NULL now. (d7604b5) - Enable FTM on ESP32-C2, fixed first FTM distance estimation. (d7604b5)
- Implemented changes to prioritize sending EAP-Failure before de-authentication in WPS registrar. (37ff7a9)
- Updated the code of how to configure multiple antennas of wifi (cc74be8)
Fixed
- Fixed the ESP-NOW send error when the channel info is not matched with bandwidth. (d7604b5)
- Fixed bugs in FTM initiator and responder mode. (d7604b5)
- Fixed association refused temporarily comeback time set to zero issue. (d7604b5)
- Fixed crash in use of
esp_wifi_action_tx_req()
(d7604b5) - Ignored Immediate Associate req till the previous one is processed. (b98bcd7)
- Fixed the issue that STA will reconnect when receive two AP's commit with different sequence number (b98bcd7)
Wi-Fi MAC
Fixed
- MAC: 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. (6ec5267)
- MAC: Fixed issue with action frame TX API causing TX buffer overflow. (6ec5267)
- MAC: Fixed an issue where PMF was getting disabled during the connection. (6ec5267)
- MAC: Allow OWE traffic to flow after 4 way handshake is completed (6ec5267)
- MAC: Fixed beacon timeout issue in OWE transition mode (6ec5267)
- MAC: Fixed Wi-Fi scan failure with BLE init and light sleep on ESP32-C6. (6ec5267)
- MAC: Fixed error propagation in FTM initiate API (6ec5267)
- MAC: Fixed beacon timeout and disconnect with error code 201, m f probe req l=0 issue. (7148d82)
Supplicant
Fixed
- Supplicant: Fixed crash when EAPOL is received before processing EAP Success (01c6fc6)
- Supplicant: Fixed infrequent issue with the de-initialization and BTM task deletion. (7d6a860)
- Supplicant: Fixed crash in sending neighbor report request. (adcc697)
- Supplicant: Fixed EAPOL Key TxDone callback implementation (8d2dbd4)
PHY
Changed
- Track pll logic refactor (6b2209c)
- Improved Wi-Fi performance when RX 11b packets for AC-DC power supply modules with high interference for ESP32C2. (64ba835)
Fixed
- Fixed Wi-Fi disconnection in low temperature environment. (64ba835)
- Fixed RTC_SW_CPU_RST occur in Wi-Fi start and stop process. (64ba835)
Coexistence
Fixed
- external coex: Added txline, apply coex schm and half TX, apply lowest pti. (d7604b5)
- external coex: External coex apply txline in iperf exmaple. (d7604b5)
- external coex: Improved ESP32-S3 master performance and fixed issues. (d7604b5)
- external coex: Added external coexistence support for ESP32C6, ESP32C6 can work as a leader/follower(d7604b5)
- internal coex: fixed Wi-Fi unable to work normally in coexistence with BLE extended scan, when scan whitelist is enabled, on ESP32-C3 and ESP32-S3. (4474b0a)
Ethernet
Fixed
- Fixed W5500 version ID check which could fail for some units when the version was read right after the reset (#11337) (97b0cb9)
- Fixed
esp_eth_transmit_vargs
to transmit only when link is up. (b8cfb56)
Security
Added
- ESP32-C6/ESP32-H2: Added DPA (Differential Power Analysis) protection config for crypto peripherals (0bf9313)
Fixed
- Hardware AES: Fixed DMA descriptor calculation for the specific aligned data length case causing memory corruption (#11310) (c81bc8c)
Peripheral Drivers
Added
- ADC: Supported ADC calibration on ESP32-C6 (5c11366)
- RGB_LCD: Support LCD rotation for RGB LCD whose pixel size is one byte (#11581) (a17bdbd)
Changed
- LEDC: Improved ledc_get_freq() calculation accuracy by rounding instead of truncating (#11810) (26046c0)
Fixed
- ADC: Fixed ADC continuous driver conv_frame not bigger than 4092 issue (#11385) (adc2bf1)
- ADC: Fixed wrong ADC oneshot mode clock divider on ESP32, ESP32S2, ESP32S3 (f195d48)
- ADC: Use circular dma descriptor link under ADC continuous mode (#11500) (adc2bf1)
- ADC: Fixed potential multiply overflow in the calibration code (cacb45d)
- ADC: Fixed potential out-of-bound read in function
adc_digi_get_io_num
. (cacb45d) - I2C: Fixed i2c command maximum numbers (#10811) (a0e8f5a)
- I2S: Fixed i2s_ll compiling failure under C++ environment (Closes: #11625) (0e4c071)
- MCPWM: Fixed a typo in the name
MCPWM_SELECT_SYNCx
(4f0f317) - RMT: Fixed potential memory overwrite in the led strip example (#11487) (32928e6)
- spi_flash: Fixed concurrency issue when concurrently calling esp_flash APIs under XIP_PSRAM or Auto-suspend condition (0930b5c)
- SPI Master: Fixed fix the assertion on a NULL desired_dev (#11536) (952998a)
- SPI Master: Set the default MOSI level to low for all targets (7a30edc)
- TWAI: Fixed missing initializer warning for c++ in macro
TWAI_TIMING_CONFIG_xxx
(#11405) (e70c174) - Temperature Sensor: Fixed the conflict between wifi and peripheral. (cf517e3)
- Temperature Sensor: Fixed the value is wrong when detecting minus value (5d78511)
- VFS/UART: Fixed an issue that might lead to a crash when opening a UART port that doesn't exist (f963c7c)
- GPIO: Fixed potential crash in ISR when CONFIG_SPIRAM_USE_MALLOC is enabled (#11876) (a56ea11)
System Hardware
Added
- MSPI: Added timing tuning start, success log (934bdca)
Fixed
- Brownout: Disable the hardware brownout reset when brownout interrupt is enabled. (0c7e2a9)
Removed
- Removed the warning log when RC_FAST clock calibration is performed on ESP32-H2 (2f9bb79)
PWDET
Fixed
- Fixed wrong PWDET base address on ESP32-C6, ESP32-H2 (d026b92)
Core System
Changed
- Updated docs description of the number of interrupts for ESP32-C6 and ESP32-H2 (d7986f9)
Fixed
- esp_event: Fixed build error and crash in event handling loop when CONFIG_ESP_EVENT_LOOP_PROFILING is enabled (#11428) (174c38b)
- xtensa: Fixed a bug that altered Tasks' FPU registers (#11690) (cadf80e)
- esp_event: Fixed missing error return documentation for esp_event_loop_create_default (#11745) (62b20b5)
- Linux_target: Fixed heap_caps_realloc not correctly allocating the requested number of bytes (#11523) (423931c)
- esp_hw_support: Fixed different signed comparison warning in esp_ptr_in_drom (#11653) (bba66a1)
- Ringbuf: Fixed ther ordering of
StaticRingbuffer_t
members to matchRingbuffer_t
. Prevents host compilers (e.g., Linux GCC) from inserting different paddings. (#11726) (c66e4a8) - ULP-FSM: Fixed incorrect register address parsing in ULP FSM register read/write macros (#11652)
- Cache: Fixed cache hit errors caused by accessing cachelines that are being writebacked. (a28ef8d)
Debugging
Added
- coredump: Added
CONFIG_ESP_COREDUMP_LOGS
option to disable core dump related logs, reducing RAM usage (f34139e)
Power Management
Added
- Supported the software workaround for retention of BLE and 15.4 modules. (207e589)
- Supported the feature of using the 40 MHz XTAL as the BLE low power clock source on the esp32c6 (da8b9ad)
Changed
- Enabled deep sleep reject feature, if deep sleep request is rejected, throw a warning and trigger the watchdog. (b0717c6)
- Updated help text for
ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND
ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND
ESP_SLEEP_MSPI_NEED_ALL_IO_PU
options to be more descriptive (#11558) (bf4e212)
Fixed
- Fixed the problem that the PSRAM program crashed due to wrong MSPI timing after frequency switching when using high-speed PSRAM and enabling DFS (27a5a6f)
- Fixed potential abnormal light sleep current if
ESP_SLEEP_POWER_DOWN_FLASH
disabled (b210054) - Fixed ESP32-C6 PMU wait 40 MHz XTAL stable time issue (2cffd23)
- Fixed the issue of missing configuration for calibration cycles of the internal 32 kHz RC slow clock source (7c696fc)
- Fixed output formatting issue in esp_pm_dump_locks function (#11704) (29f52ac)
- Fixed ESP32-C6 enable light sleep, vTaskStepTick assert failed issue (2c19659)
- Fixed potential lightsleep wakeup failure with ESP_SLEEP_POWER_DOWN_FLASH enabled (b210054,727f7cbb)
- Fixed potential illegal instruction exception after waking up from light sleep (afcf3e2)
- Managed i2c_ana_master clock with reference count. (e519939)
- Fix ESP32-H2 wakeup process access flash cause stuck (cd21729)
LWIP
Added
- Added a hook for ip6 source address selection. (65bf500)
- esp_netif: Added return value to esp_netif_receive() to report issues on packet input path (#10770) (788f1de)
Changed
- Lower the dhcp discover and request retry backoff time. (ae5f8dc)
Fixed
- Fixed DHCP server's incorrect invocation of the hook
LWIP_HOOK_DHCPS_POST_APPEND_OPTS
(#11374) (18a8f86)
OTA
Fixed
- docs: fixed a typo in api-reference/system/ota (8c5e1c1)
HTTP Server
Fixed
- ws_echo_server: Fixed memory leak in ws_echo_server when httpd_queue_work failed (86eb786)
mbedTLS
Changed
- ESP32: Updated the intermediate SHA state in the
mbedtls_shaX_update
API (77f6f72)
Fixed
- Fixed incorrect transmission of esp-aes APIs' return values and zeroising the output buffer in case of an error condition (b530d76)
- Fixed the port for the
mbedtls_internal_shaX_process
API (77f6f72) - Fixed
mbedtls_ecdsa_can_do
definition when ECDSA_SIGN_ALT is defined but ECDSA_VERIFY_ALT is not defined (e9a8456) - Fixed build issue in dynamic buffer feature with
CONFIG_MBEDTLS_DHM_C
enabled case (bcef59f) - Fixed incorrect assertion in the MPI H/W operation routine (#11850) (320f8eb)
Bootloader
Added
- Fixed ESP32-C6 bootloader print wrong spi speed mode when SPI speed is configured to 80MHz (8051cb7)
Storage
Added
- VFS: Added
CONFIG_VFS_MAX_COUNT
Kconfig option to configure the maximum number of VFS drivers that can be registered (#10987) (87b9601)
Tools
Changed
- Improved error message showing when using idf.py and the working directory is deleted. (#11476) (c8ea979)
Fixed
- app_trace: Fixed trace data corruption on ESP32-S3 (#10604) (87426b8)
- Fixed passing the right chip revision for IDF Monitor in order to avoid using the default 0 rev for other chips than ESP32 (04b0929)
Build System
Changed
Fixed
- Fixed init.bat crash on Windows when path contains Unicode characters (7e34637)
Documentation
Added
- Added CN translation and updated api-reference/api-conventions.rst (1520559)
Changed
- Updated chip revisions to follow ESP32-C3 errata (#11743) (f3e2681)
- Updated installation prerequisites for Ubuntu and Debian systems (a4bf7dd)
Fixed
Removed