Skip to content

ESP-IDF Release v4.3.4

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Sep 15:38
· 23293 commits to master since this release
v4.3.4

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

ESP-IDF v4.3.4 is a bugfix update for ESP-IDF v4.3. ESP-IDF v4.4.2 is the latest stable release at the time of writing.

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

  • efuse (ESP32): Fixed burn operation when data was written directly to regs. This was regression from v4.3.3 release and it was causing secure boot workflow to fail. Please see #9290 and #9333 for more details.

Breaking Changes

  • esp_crt_bundle: "esp_crt_bundle_set" API now has additional argument bundle_size and now returns esp_err_t.

Changelog

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

Bluetooth

Controller

Added

  • Added UHCI example to ESP32-C3, used for Bluetooth Controller only mode through HCI UART transport
  • Added support to use main crystal as Bluetooth sleep clock to be used in SoC light sleep on ESP32-C3
  • Power down Bluetooth module upon de-initializaing Bluetooth controller for ESP32-C3 and ESP32-S3

Changed

  • Initialize all elements of esp_bt_controller_config_t. (#9073)

Fixed

  • Fixed that functions used in light sleep wake-up procedure are not put in IRAM, which causes RTC watchdog timeout on ESP32-C3
  • Fixed that FreeRTOS semaphores and queues used by Bluetooth Controller are created in SPIRAM, which causes software crash when handling ISRs
  • Fixed missing in processing VHCI interrupt caused by lack of protection against race conditions in accessing VHCI environment variables on ESP32
  • Fixed the issue of Bluetooth disconnection due to not backing up Bluetooth AGC related registers when light sleep is enabled and baseband power down on ESP32-C3 and ESP32-S3

Bluetooth Low Energy

Added

  • Add description for de-initialize bt controller API

Fixed

  • Fixed BLE got disconnected when when modem sleep is disabled and Bluetooth is initialized after Wi-Fi on ESP32-C3 and ESP32-S3
  • Fixed BLE ke_mem.c assert on ESP32
  • Fixed BLE ke_mem.c assert on ESP32-C3
  • Fixed BLE advertising report on ESP32-C3

Classic Bluetooth

Fixed

  • Fixed the issue during legacy pairing procedure that controller does not report link key to Host on ESP32
  • Fixed the task watchdog issue during controller initialization due to invalid hardware state after system reset on ESP32-C3
  • Fixed the assertion in function em_bt_clkoff1_setf when clock overflow happened, the overflow can be safely ignored
  • Allow max supported feature page lower than current feature page when handle with the respond of extend features to support for some devices which generate wrongly LMP respond.
  • Fixed the EDR mode wrongly cleared by a successful role switch which caused that the 2M/3M package type can not be selected for use.
  • Fixed the crash in accessing bt_util_buf_env buffer list due to lack of protection against race condition when operating on the linked list in context of both task and interrupt service routine

Bluedroid

Added

  • Added new OSI utility "osi_event" to avoid duplicated message posting and thus reducing the workqueue size for HCI thread.
  • Added new OSI utilities "pkt_queue" and "fixed_pkt_queue" to for data buffer management and reduce the frequent allocation/free of small memory fragments compared with previous "fixed_queue".

Changed

  • Modified the implementation of the workqueue of osi_thread using freeRTOS queue instead of fixed_queue, to reduce the use of system heap, and thus becoming more robust against memory allocation failure, and achieving better execution performance, with an increase of memory footprint by about 1600 Bytes during Bluedroid inititalization.

Fixed

  • Fixed the linker error of functions not defined when memory debug is enabled

Classic Bluetooth

Added

  • Added Bluetooth device address field in the parameter structure of ESP_BT_GAP_READ_REMOTE_NAME_EVT callback event

Changed

  • Updated HFP_AG version to 1.7.2

Fixed

  • A2DP: Fixed AVDTP general reject format error
  • A2DP: Fixed the A2DP source example application state machine in the processing of inquiry response, which can result in the failure of stopping device discovery
  • A2DP: Fixed A2DP sink example that audio playback is clogged due to higher priority of application task in case of heavy workload from the task
  • Fixed the default sdkconfig file for HFP examples that causes failure of 'connect audio' operation
  • Fixed type redefinitions in btc_spp.h and btc_hd.h/btc_hh.h

Bluetooth Low Energy

Changed

  • Optimized BLE legacy advertising report datapath and advertising report flow control mechanism, make it more robust in case of heap exahustion.

Fixed

  • Fixed BLE sync periodic advertising report will lose data
  • Fixed bluedroid BLE extend advertising parameters detection
  • Fixed bluedroid host memory overflow
  • Fixed compilation error when BLE5.0 is enabled
  • Fixed the linker error of functions not defined when enable memory debug. The according function definitions is included by a macro but the .c file has no access to the macro. Solve the problem by including the macro definition

NimBLE

Added

  • Added changes for mbedTLS v3.1.0

Fixed

  • Added check to free keypair if already allocated to avoid memory leak
  • Corrected function declaration in crypto header.
  • Fixed rep-airing issue by clearing device record.
  • Sync sending Host Number of Completed Packets command

Blufi

Fixed

  • Fixed an issue that Softap mode do not assign ip
  • Fixed an issue that SoftAP current connection always show 0

ESP-BLE-Mesh

  • Fixed continuously putting secure update into friend queue
  • Fixed friend relay lpn message when relay feature is disable
  • Fixed the count_log field should be 0 when HBS is sent
  • Fixed not ignoring connectable PB-ADV PDU with Link Open
  • Fixed key refresh from non-primary subnet been ignored
  • Fixed the sequence of invalid provisioning pdu type check
  • Fixed not checking invalid link flag during PB-GATT
  • Fixed overwriting the expect_ack_for after sending Public Key
  • Added a check if AppKey is bound to model while setting publication
  • Fixed the Heartbeat Publication Period Log value range

PHY

Fixed

  • Fixed memory leak in phy
  • Init phy data to default if invalid in flash partition to avoid bootloops

Wi-Fi

Added

  • Added APIs to check for BTM, RRM support of connected AP
  • Added changes for unicast key renew for TKIP mic failure
  • Added ht40 support for esp_wifi_80211_tx.
  • Connect example: Add scan mode config

Changed

  • Optimized example of wifi station
  • Updated Wi-Fi CSI docs
  • Updated Wi-Fi beacon timeout docs
  • Updated Wi-Fi multiple antennas docs
  • Updated wpa2_enterprise certificates

Fixed

  • Fixed a possible packet miss caused PTK install delay
  • Fixed a bug that if sniffer not closed wifi stop will fail
  • Fixed a bug that QoS Null updated the BA SSN which cause some packets lost
  • Fixed wrong default static TX buffer number when not configured
  • Clear old keys before going for new connection
  • Do not use pmkid caching when SSID is changed
  • Fixed a bug when ftm used with ps enabled
  • Fixed a potential issue to allocate PSRAM to wifi stack where internal RAM is required
  • Fixed crashed when esp_wifi_set_ant_gpio() called on chip esp32s2/esp32c3
  • Fixed deep sleep can't reconnect to ap when pmf enable
  • Fixed esp-now recv unencrypted packets issue
  • Fixed the wrong suggestion of method in NAK for all the methods (#7769)
  • Fixed handling of key RSC
  • Fixed issue of default ap ssid is not getting set
  • Fixed linker script issue where noflash scheme was applied to wifi_apb80m_request() and wifi_apb80m_release() even when CONFIG_PM_ENABLE was not enabled
  • Fixed not update phy according to country code.
  • Fixed possible memory leak if report level not set
  • Fixed potential fail to scan AP after receiving disassoc/deauth from AP on ESP32-S2
  • Fixed phy init failure when wifi deinit
  • Fixed smartconfig esptouch v2 found none fail issue
  • Fixed some ap will ignore auth when rx deauth for a while
  • Fixed static analysis issues
  • Fixed WAPI Key mgmt compatible issue
  • Fixed Wi-Fi and bt power domain leakage current in light sleep
  • Fixed write to null pointer if malloc failed
  • Ignore unauthenticated encrypted EAPOL-Key data
  • Multiple bugfixes in SoftAP and Station PMF
  • Reset beacon timeout timer when keep alive null works or hw drop beacon

Peripheral Drivers

Changed

  • I2C_MASTER: Output clock frequency calculation is optimized to be more accurate (#8770)
  • I2C_MASTER: Optimized the interrupt handler, and decreased the delay between transactions by a lot (#8770)

Fixed

  • esp_hw_support: Fixed wrong RC_SLOW clock frequency values on ESP32-C3
  • HAL: Forced cpu_ll_get_cycle_count to always be placed in IRAM if not inlined
  • I2C_MASTER: Fixed watchdog timeout issue in I2C master driver
  • PSRAM: Fixed the heap pool that reserved for DMA/internal use
  • PSRAM: Fixed startup crash when CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0
  • SOC: Fixed error in the rmt_reg.h for ESP32-S2 (#9100)
  • Systimer: Fixed bug with systimer_counter_value_t where a bad counter value could be returned when compiling with -O0 optimization

Core System

Added

  • efuse: Added ERR_RST_ENABLE eFuse for ESP32-C3

Changed

  • apptrace: Moved all apptrace related functions to IRAM
  • Substract rtc_iram_seg memory region size from ESP_BOOTLOADER_RESERVE_RTC

Fixed

  • app: Fixed app startup stuck when bootloader with 40Mhz and app with 80Mhz (ESPTOOLPY_FLASHFREQ)
  • esp_ipc: Fixed a case when ipc_task() can wake up blocking task early
  • efuse (esp32): Fixed burn operation when data was written directly to regs
  • Fixed eFuse fail bits
  • Fixed ESP32-C3 TLS size
  • Fixed garbled UART output on startup on ESP32-S2 (#9168)
  • heap: Fixed wrong arg passed to assert_valid_block

FreeRTOS

Fixed

  • Fixed application startup issue when ESP_MAIN_TASK_AFFINITY_CPU1 config enabled
  • Fixed bug in FreeRTOS Xtensa port where extra threadptr CPU was not being saved on solicited context switches
  • Fixed bug in event group functions where the blocked task list was being accessed without acquiring the task list spinlock

Power Management

Added

  • Added a note for deep sleep crc check

Fixed

  • esp_hw_support: Fixed time spent in light sleep when RTC is used for gettimeofday
  • Fixed cannot lightsleep again after a wakeup from ULP (#6229)
  • Fixed the issue of deep sleep wakeup failure caused by using light sleep and deep sleep at the same time
  • Fixed the issue of sleeping time error beacause external 32kHz xtal does not exist
  • Fixed Wi-Fi does not know that Bluetooth has modified the lpclk source

LWIP

Added

  • Added function for deinit lwip timers
  • Added option to route LWIP logs through ESP_LOG interface
  • Added support for TTL option in ping API

Changed

  • Examples: Updated UDP socket example to use recv_msg

Fixed

  • Fixed esp_netif_set_dns_info_api() to work with IPv6 addresses

OTA

Changed

  • Enabled option of using global_ca_store and esp_crt_bundle

HTTP Client

Added

  • Added support to enable ESP certificate bundle for the https connection.

Provisioning

Changed

  • WiFi Prov Mgr: Simplified application by not using raw adv data which remote application was not able to scan

mbedTLS

Changed

  • Updated mbedtls to release v2.28.1
  • Updated the default root certificate bundle (cacrt_all.pem)

Fixed

  • Fixed ssl server crash for rsa key exchange methods when enable mbedtls dynamic buffer function
  • Fixed ssl server memory leak when enable mbedtls dynamic buffer function
  • Fixed the behavior of esp_ds_init_data_ctx API when ds_data is provided directly from flash

Bootloader

Added

  • SPI_FLASH: QIO Flash driver implementation (bootloader version) can be overridden from the user's side

ESP-TLS

Fixed

  • Fixed integration of I2C address related menuconfig option from esp-cryptoauthlib.

ESP-MQTT

Fixed

  • Fixed read malfunction and error propagation if transport read returns negative value (indicating errors)
  • Added support to enable ESP certificate bundle for the https connection.

Storage

Fixed

  • nvs_flash: Fixed nvs_flash_init_partition_ptr() to pass correct arguments to NVSPartitionManager::init_custom()
  • VFS: Fixed a race condition in select() if both socket-fd and non-socket fd trigger simultaneously

Tools

Added

  • mkdfu.py supports setting flash parameters and partitions over 2 MiB

Changed

  • Upgraded OpenOCD version to v0.11.0-esp32-20220706

Fixed

  • Docker: Don't build docker images for linux/arm64 platform
  • idf_monitor.py: change integer comparison of ESP_MONITOR_DECODE to string
  • Fixed an issue with handling multi-line strings in NVS partition generator (#7175)

Removed

  • Removed undefined variable from install.ps1 (#9556)

Build System

Changed

  • Enable the component manager for pure CMake builds by default

Examples

Changed

  • coap_client_example: Updated the target domain URL

Documentation

Added

  • ESP-NOW: Added documents on esp-now config rate

Changed

  • Updated 404.rst page
  • Updated Wi-Fi noise floor unit
  • Updated sp_wifi_internal_set_fix_rate usage

Fixed

  • Fixed the name of the IP_EVENT_STA_LOST_IP event