Skip to content

ESP-IDF Release v4.3.5

Compare
Choose a tag to compare
@github-actions github-actions released this 27 Mar 09:15
· 20348 commits to master since this release
v4.3.5

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

ESP-IDF v4.3.5 is a bugfix update for ESP-IDF v4.3. ESP-IDF v5.0.1 is the latest stable release at the time of writing.

Obtaining v4.3.5

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 v4.3.5 --recursive https://github.com/espressif/esp-idf.git esp-idf-v4.3.5
cd esp-idf-v4.3.5/

This is the recommended way of obtaining v4.3.5 of ESP-IDF.

Download an archive with submodules included

Attached to this release is an esp-idf-v4.3.5.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/v4.3.5/esp-idf-v4.3.5.zip

Major changes

This is the list of changes since release v4.3.4:

Breaking Changes

  • sleep: esp_light_sleep_start function can now return two error codes when sleep fails: ESP_ERR_SLEEP_REJECT (if a wakeup trigger would cause the sleep to be exited instantly) and ESP_ERR_SLEEP_TOO_SHORT_SLEEP_DURATION (if the sleep duration is less than what the hardware can support). Previously the function would not return any error codes in such cases, and sleep would take longer than expected. (6225c71)
  • ADC: No longer support ADC2 continuous (DMA) mode on ESP32C3, search for errata on espressif website to know more details. Users can force use it by enabling CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 (#10135, 00746db)
  • ADC: No longer support ADC2 oneshot mode on ESP32C3, search for errata on espressif website to know more details. Users can force use it by enabling CONFIG_ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 (#10135, 00746db)
  • esp_chip_info() now returns the chip version in the format = 100 * major eFuse version + minor eFuse version. (6b32335)

Changelog

This is the list of changes since release v4.3.4.

Bluetooth

Bluetooth Low Energy

Added

  • Added config to disable scan backoff (2e0da27)
  • Support Bluetooth to release .bss and .data segment memory on ESP32-C3(2e0da27)
  • Added config to set duplicate scan list refresh period on ESP32 and ESP32-C3 (8cd8ec0)

Changed

  • Changed BLE default TX power from 3dBm to 9dBm (2e0da27)
  • Changed default TX power to 9 dBm on ESP32 (8cd8ec0)

Fixed

  • Added ADV mode error check in ADV RX isr handler function on ESP32-C3 (9e863ec)
  • Fixed the performance issue of BLE sync scan in coexistence scenario when PLL track is enabled on ESP32-C3 (9e863ec)
  • Fixed connect failed due to error sync found signal on ESP32-C3 (9e863ec)
  • Fixed BLE disconnect failed due to LL_TERMINATE_IND have sent but no ACK is received on ESP32-C3 (9e863ec)
  • Fixed BLE RAL_UNDERRUN and TX_CRYPT_ERR assert on ESP32-C3 (9e863ec)
  • Fixed scan forever if scan continue is disable on ESP32-C3 (9e863ec)
  • Fixed BLE disconnection issue when channel map update failed due to bad channels on ESP32-C3(9e863ec)
  • Fixed BLE lld_per_adv.c line 401 assert on ESP32-C3 (a2086ca)
  • Fixed BLE ASSERT_PARAM(32 0) in rwble.c at line 384 on ESP32 (a2086ca)
  • Fixed llm_scan.c assert at line 1485 during controller deinit if extend duplicate scan is not stopped on ESP32C3(2e0da27)
  • Fixed BLE array access out of bounds on ESP32C3(2e0da27)
  • Overwrite the oldest device infor if the list is full on ESP32 and ESP32-C3 (8cd8ec0)
  • Fixed duplicate scan period is not accurate on ESP32 and ESP32-C3 (8cd8ec0)
  • Fixed some memory was not released after Bluetooth controller initialization failed on ESP32 and ESP32-C3 (8cd8ec0)
  • Fixed privacy error for directed advertising on ESP32-C3 (8cd8ec0)
  • Fixed multiple periodic advertising sync failed in air on ESP32-C3 (8cd8ec0)
  • Fixed disconnect reason 0x1f (unspecified error) on ESP32 (8cd8ec0)
  • Fixed connection timeout due to LL_TERMINATE_IND has not been acknowledged on ESP32 (8cd8ec0)
  • Fixed lld_con.c line 3048 assert on ESP32-C3 (8cd8ec0)
  • Fixed crash sometimes when connected as a slave by 8th device on ESP32-C3 (8cd8ec0)
  • Enabled BLE PLL track to fix bluetooth disconnection caused by temperature rise or fall on ESP32-C3 (c3d4741)
  • Fixed BLE disconnect due to channel map update instant passed on ESP32 (dfc8c67)

Classic Bluetooth

Fixed

  • Fixed the exhaustion of ACL buffer in case of connection-disconnection stress test(a5e5ab7)
  • Fixed the duplicated reports of HCI_Connection_Request event from the same Bluetooth device. (a5e5ab7)
  • Fixed the issue that Wi-Fi task can be blocked by Bluetooth Controller because of the use of blocking coexistence callback function on ESP32 (9e6d5dc)
  • Fixed that functions "coex_enable" and "coex_disable" are not used in pairs on ESP32-C3 (419d620)

Bluedroid

Classic Bluetooth

Added

  • Added report for ACL link related events to upper layer (4268238)

Changed

  • Changed the default SR mode to R2 for the paging device when it knows nothing about the paged device's SR mode.(a0967db)
  • 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.(19310ee)

Fixed

  • Fixed authentication failure during legacy pairing by using variable PIN type instead of fixed PIN. (08ee8d7, #10005)
  • Fixed the issue Bluetooth Classic connection can not be created while there is a Bluetooth Low Energy connection is in active. (b52b357)
  • HID: Fixed compatibility issues with HID devices that do not support Secure Simple Paring in HID examples. (a69c540, #10069)
  • A2DP: fixed sink device not being able to accept and decode mono channel audio stream (07bffab)
  • SPP: Fixed esp_spp_write() crash when len is 0 (d96bb08)
  • HFP: Fixed HFP client parce CLCC command response bug (81d598b)
  • A2DP: Fixed failure of A2DP reconnection A2DP after disconnected (6298b8c)
  • Fixed memory leak due to not freeing memory if posting a message to a thread fails (df901e0)
  • SPP: Fixed repeated register of vfs_id causing memory leaks (7d61396)
  • SPP: Fixed memory leak when SPP initialization failed (7d61396)
  • Fixed the unexpected memory free when malloc failed. (067d5fb)
  • Fixed build errors when sniff subrating is enabled. (3a4755e)

Bluetooth Low Energy

Added

  • Added parameters for GATT connect event (dfc8c67)
  • Support bluedroid host maximum number of connections to 9 on ESP32-C3 (8cd8ec0)
  • Support BLE privacy by controller (dfc8c67)

Changed

  • Updated BLE tx power level mapping (a2086ca)
  • Reduced the stack consumption of BTU_TASK, saving 609 bytes (05c497e)

Fixed

  • Fixed extend advertising set remove failed (9e863ec)
  • Fixed extend ADV TX power range error (9e863ec)
  • Fixed repeatedly data length set error (9e863ec)
  • Fixed second bonding fail issue (9e863ec)
  • Fixed calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting (9e863ec)
  • Configurable max GATTC cache characteristic count on bluedroid (c482cf1)
  • Fixed BLE advertising TX power map on bluedroid (c482cf1)
  • Fixed BLE resolvable private address generate and update on bluedroid. (c482cf1)
  • Fixed ble generate RPA for ESP32 on bluedroid. (c482cf1)
  • Configurable option to modify max GATT service attributes count on bluedroid. (c482cf1)
  • HID: Fixed esp hid crash when authentication failed on bluedroid. (9040964)
  • Allow bluedroid host to report ADV_IND separately (a2086ca)
  • Fixed ble_compatibility_test example NVS init error (2e0da27)
  • Fixed sometimes BTU task overflow when doing read and write performance test (2e0da27)
  • Examples: Fixed BLE HID LED output report (0cf1971)
  • Fixed encrypt keysize of GATT characteristic permission (0cf1971)
  • Fixed BLE connection update with the same parameters (0cf1971)
  • Corrected the length of ATT_READ_BY_TYPE_REQ PDU (0cf1971)
  • Fixed BLE address type of advertising and scan parameters (dfc8c67)

NimBLE

Added

  • Support Nimble host maximum number of connections to 9 on ESP32-C3 and ESP32-S3 (0ee6433)
  • Added checks to disable stack cb registered with controller during stack deinit (ed8a4b14)

Changed

  • Changed debug level of print to avoid extra unwanted console print (93149d96)
  • Updated check for reattempt connection code (722291e)
  • Updated ESP-BLE-MESH example documentation (9248dcf)
  • Updated functions related to adding and clearing peer_dec_rec table. (c9068dc)

Fixed

  • Fixed memory corruption introduced in reconnection attempt code (f1bd2be)
  • Added check to deregister stack callback with controller during stack deinit (dd62e3b)

Blufi

Added

  • Added data subtype for more WiFi information (ec25f91)

Changed

  • BluFi example: Supported to query disconnected information, connecting information (ec25f91)
  • BluFi example: Returned error code if fail to wifi scan (ec25f91)

Fixed

  • Fixed a bug that memory freed twice(1f739d7)

ESP-BLE-Mesh

Added

  • Added an option for LPN to subscribe all-nodes-address automatically (894b1ad)
  • Added an option for initiating IV Index Recovery if missing one (1ec7a0c)

Fixed

  • Fixed regression introduced in the btc_transfer_context changes (2636907)
  • Fixed Friend not relay LPN messages if relay feature is disabled (eb922b5)
  • Fixed not using fast adv interval when PB-GATT and PB-ADV are both enabled (f1beed4)
  • Fixed not able to get optional fields from messages with a group address as DST (b08d2c8)

Coexistence

Fixed

  • Fixed part of modem module not reset when power up (167a989)

Wi-Fi

Added

  • Added UTs for country code (aefd3db)
  • Added check for ies in match security (c0ba33a)
  • Added station connect retry count to make it easier to connect to the except AP (ca6553a)
  • Added a check to avoid FTM initiator mode in SoftAP (72a643e)
  • Added an API to clear scan AP list (aefd3db)

Changed

  • Optimized DTIM sleep when WiFi beacon loss(1adb0b6)
  • Updated wifi country code docs (aefd3db)
  • PHY: Optimized phy calibration for ESP32-C3 and ESP32-S3. (1adb0b6)
  • Updated wifi scan return values and docs. (3685ed2)
  • Changed the log level of some logs to avoid misunderstanding. (3685ed2)
  • Added changes to prevent security parameters overwritten in full scan (114ce9b)
  • Updated WiFi AMSDU docs. (25a74f8)

Fixed

  • Install GTK before send group key handshake message 2 (5c3e729)
  • Fixed country policy issue (aefd3db)
  • Fixed connect failure when enable SPIRAM and send ESPNOW packets (bc4de7d)
  • Fixed ignore rx sub ampdu interrupt issue (8b8b69a)
  • Added security fixes from upstream wpa_supplicant (d2cc0f9, CVE-2019-9496, CVE-2022-23304, CVE-2022-23303, CVE-2019-9494)
  • Fixed deinit return wrong value. (1adb0b6)
  • Fixed get wrong channel value use esp_wifi_get_config. (1adb0b6)
  • Fixed bug of missing unlock when wifi stop. (1adb0b6)
  • Fixed annotation error of api esp_wifi_connect. (1adb0b6)
  • Fixed the bug that station connected to an AP already connected caused subsequent scan fail (1d5efad)
  • Fixed repeated scans causing bss overwrite in connect process (91c60b9)
  • For ESP32-C3 and ESP32-S3, fixed Wi-Fi getting stuck in Wi-Fi start when working with BT. (0dbc340)
  • Fixed WPA2 Enterprise Re-authentication issue (d732a84)
  • 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 attempt to connect it to it for the WPS timeout duration. (a74a732)
  • Fixed connect fail return wrong error code issue. (3685ed2)
  • Fixed unprotected SA Query issue and scan regression (c0ba33a)
  • Fixed sniffer mode can not capture control packet when station is enabled (ca6553a)
  • Fixed WAPI issue on GTK compability and reference to broadcast ARP packets (ca6553a)
  • Fixed TX fragment issue that PN code is less than MSDU after PN code add two for TX fragment. (ca6553a)
  • Fixed some issues on SoftAP power save. (ca6553a)
  • Fixed SoftAP memory leak after wifi init and deinit (ca6553a)
  • Fixed STA get AP info does not return connected SSID issue. (ca6553a)
  • Fixed SoftAP disconnection happened even when receive PS-Poll. (ca6553a)
  • Provided RSSI info in disconnected event (ec25f91)
  • Fixed high current issue after reconnected (ec25f91)
  • Fixed potential Wi-Fi disconnection when BT deinit. (ec25f91)
  • Fixed SSID copy length during WPS scan (3bb9fb3)
  • Prevented PMK caching if AP security has changed (3bb9fb3)
  • Added key reinstallation related security fixes from upstream wpa_supplicant (76eb672, CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, CVE-2017-13081, CVE-2017-13082)
  • Fixed home channel issue in FTM for AP+STA mode (72a643e)
  • Fixed integer overflow for T1-T4 counter variable (72a643e)
  • Cleared current PMKSA to fix WPA3 connect loop (81fb7b0)
  • Fixed the bug that long associate comeback causes STA can't connect to the AP to long(aa8a00c, #9428)
  • Fixed multicast packets drop issue for some AP when DTIM period > 1 (1fb3e3e)
  • Fixed the bug that sending two M1 of WPS EAP with different enrollee nonce as a reply to request expanded WPS (30ee33c)
  • Sent wake up Null data to AP when STA associated to AP. (97454c0)
  • Adjusted abnormal beacon log to debug. (97454c0)
  • Verified RSNXE in scan and connect. (97454c0)
  • Fixed FTM procedure with peer failed status 4 issue. (97454c0)
  • Fixed the bug that failed to connect to the AP encrypted with WPA3 SAE (80dd246)
  • Fixed the bug that STA auth failed but SoftAP shows it connected issue. (2b04fa8)
  • Fixed connection issue with specific WPA3 AP. (fcf3394)

ESP-WIFI-MESH

Fixed

  • Fixed WIFI_EVENT_AP_STADISCONNECTED event error (3685ed2)

Peripheral Drivers

Fixed

  • ADC: Fixed ADC Oneshot driver clock gating issue on ESP32-C3 (418d47a)
  • ESSL_SPI: Fixed Quad SPI wrong dummy cycle issue on ESP32-C3 (02c45b6)
  • freemodbus: Fixed RS485 RTS de-assert failure when tx delayed (bfbf113, #6728)
  • GPIO: Fixed the issue that digital GPIO can not disable hold during deep sleep on ESP32-C3/ESP32-S2/ESP32-S3 (ea57dd4)
  • GPIO: Fixed the issue that digital gpio can not enable hold during deep sleep when force_unhold is set on ESP32/ESP32-S2/ESP32-S3 (ea57dd4)
  • I2C: Fixed the issue that some functions are not placed in IRAM (8b7ae11, #10079)
  • I2C: Correct I2C clock frequency on ESP32-C3, ESP32-S3 (164d9bb)
  • LEDC: Fixed PWM signal glitch when calling ledc_set_freq to change PWM frequency (179d12d)
  • PSRAM: Fixed 40MHz PSRAM CS signal glitch issue on ESP32 (f425cd9)
  • SPI Bus Lock: Fixed a concurrency issue leading to spi_device_polling_end assertion fail (1ecf62b, #8179)
  • SDIO Slave: Fixed crash caused by incorrect return value check in host example (853ce78)
  • SPI Master: Fixed an issue on ESP32-S2, ESP32-C3 that more than 3 devices can't be added to the SPI2 Host (9a9f503, #8876)
  • SPI Slave: Fixed CS signal mapping issue when other bus signals are routed via IOMUX and CS is routed via GPOIO Matrix (81ee095)
  • SPI Slave: Fixed the issue caused by ccount in the sender example (4b6a6a2)
  • TWAI: Fixed an HW errata where the TWAI controller could still send dominant bits under listen-only mode. The errata workaround can be enabled via the CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM option. (d8a21db)
  • TWAI: Fixed that issue that CONFIG_TWAI_ISR_IN_IRAM is not working on ESP32-C3 (2ee1a33)
  • UART: fix 2nd bootloader custom UART1 baudrate issue

Removed

  • ADC: No longer support ADC2 continuous (DMA) mode on ESP32C3, search for errata on espressif website to know more details. Users can force use it by enabling CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 (#10135, 00746db)
  • ADC: No longer support ADC2 oneshot mode on ESP32C3, search for errata on espressif website to know more details. Users can force use it by enabling CONFIG_ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 (#10135, 00746db)
  • PSRAM: Removed unused CS and CLK IO kconfig options on ESP32-S2 (3bbb109)

Core System

Added

  • eFuse: Added major and minor versions for wafer and eFuse block (ea8de4d)
  • Added a new chip version logic (major * 100 + minor) (6b32335)
  • Bootloader: Added chip revision check based on the configured REV_MIN_FULL and the REV_MAX_FULL associated with IDF version (6b32335)

Changed

  • RTC: Improved XTAL stability when sleep (ESP32) (6225c71)

Fixed

  • Heap: Fixed abort on allocation failure regardless of SPIRAM (73509d9)
  • Fixed xtal32k error detection when configured but doesn't actually exist (8ed3ec7)
  • Fixed calibration failure on rtc8m clock after CPU/core reset as 8md256 clock is not enabled during calibration (83dc965)
  • Fixed 8MD256 couldn't be used as RTC slow src in deepsleep on ESP32 (af61c51, #8007, #8089)
  • Suppress CPU crash and memory issues under extreme temperature on a small amount of ESP32-C3 Chips (ed9fb4d)
  • spi_flash: Fixed clobbering RTOS base priority in spi_flash_disable_interrupts_caches_and_other_cpu (96ef8f4)
  • Fixed time jump after reboot (ffe6f24, #9448)
  • Heap: Fixed excessive heap allocator overhead introduced in release 4.3 that increased heap size by ~4KB (690b971, #7906)
  • Heap: Decreased utilization of the RAM section by the heap component binary by ~40%. (690b971)
  • Heap: Fixed heap_caps_get_allocated_size() return value when poisoning is active to not account for canary head and tail. (24aa00d)

CI

Changed

  • precommit: Changed repo URL to use official GitHub repo instead of the deprecated GitLab mirror. (9d3d773)

FreeRTOS

Fixed

  • Fixed eTaskConfirmSleepModeStatus() calling taskEXIT_CRITICAL instead of taskENTER_CRITICAL (error introduced in a3c90bf) (05be2de)

Power Management

Added

  • Added the usage of wakeup source EXT0, and how to use internal pullups if necessary (19ebbf6)

Fixed

  • Fixed RTC8M domain power down issue when used as RTC source (714cf79, #8007, #8089)
  • Fixed current leakage when hold digital io during deep sleep (ea57dd4)
  • Fixed BT sleep flow hangs in btdm_sleep_clock_sync (3105711)
  • Fixed sleep time inaccurate bug when select 8MD256 as RTC slow clock on ESP32 (3d366e1, #6687)
  • Fixed GPIO wakeup not working properly in some cases (043958e)
  • Fixed the issue related to powering down CPU and RC_FAST at the same time during light sleep (714cf79)

newlib libc

Fixed

LWIP

Added

  • Added DHCP client's configuration for coarse timer to improve power efficiency (3250b88)
  • Added TCP Fin2 timeout configuration (6439222)
  • Added on demand timers for several modules to improve power efficiency (updated DNS timer, IPv4/IPv6 reassembly timer and DHCP fine timer) (6439222)

Fixed

  • Fixed long time to get IP (6439222)
  • Fixed DHCP server's bug allowing the assigned IP addresses to exceed the configured subnet range (#10024) (7d5a228)

Provisioning

Changed

  • Wifi Prov: Disabled by default the Forcing of BLE encryption requirement on provisioning characteristics. (1d00036)

mbedTLS

Added

  • Added and refactored sanity checks and their return values (86686d1)

Fixed

  • Fixed esp_aes_crypt_ctr writing to null stream block (86686d1)

ESP-TLS

Fixed

  • Fixed socket leak in esp-tls (07251a9)
  • Fixed memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled. (d478938)
  • Fixed setting the default timeout of sockets before a connection when a timeout value was not given in the esp-tls config structure (5811166)

ESP-MQTT

Fixed

Storage

Fixed

  • FATFS: Fixed incorrect mtime reported for files created during daylight savings time (9ee1cda, #9039)

Tools

Changed

  • Use bitstring package compatible with supported Python versions (784019e)
  • partition_table: Allow 4K aligned app partition size for secure boot v2 case. This allows to use remaining space after signature block (worth 60K) for other data partitions. (3dc1ab5)

Fixed

  • Fix "KeyError: 'idfSelectedId'" when running install scripts. (4c601e1, #9837)
  • Fixed installation on Ubuntu 22.04 (and probably later versions) (feeca50, #9931)

Removed

Build System

Fixed

  • Fixed an issue where disassembly of ELF files built with ESP-IDF would sometimes be incorrect. The issue was related to .xt.prop sections missing from the final ELF file. (867c622)

External Libraries

Changed

  • expat: Upgraded expat to release v2.5.0 (ee7953d)

Documentation

Fixed

  • Provided information on how to use USB Serial JTAG in sleep modes (c930046, #8507, #8884)