Skip to content

ESP-IDF Release v4.1.4

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Dec 09:47
· 25194 commits to master since this release
9173ec9

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

ESP-IDF v4.1.4 is a bugfix update for ESP-IDF v4.1.3.

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

  • Fixed deadlock due to wrong parameter when calling btc_transfer_context() after calling esp_bluedroid_disable(). (#9672)

Breaking Changes

  • Station Always connect to AP with PMF mode if possible, added a separate PMF disable API

Changelog

Bluetooth

Controller

Fixed

  • 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 that Wi-Fi task can be blocked by Bluetooth Controller because of the use of blocking coexistence callback function on ESP32

Bluetooth Low Energy

Fixed

  • Fixed BLE ke_mem.c assert on ESP32
  • Fixed BLE ASSERT_PARAM(32 0) in rwble.c at line 384 on ESP32

Classic Bluetooth

  • 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 on ESP32
  • Fixed the EDR mode wrongly cleared by after a successful role switch, which caused that the 2M/3M packet type can not be selected for use
  • Fixed the issue during legacy pairing procedure that controller does not report link key to Host on ESP32
  • Fixed the duplicated reports of HCI_Connection_Request event from the same Bluetooth device on ESP32
  • Fixed the exhaustion of ACL buffer in case of connection-disconnection stress test

Bluedroid

Classic Bluetooth

Added

  • Added parameter field Bluetooth device address to esp_bt_gap_cb_param_t::read_rmt_name_param. (#9033)

Changed

  • Updated HFP_HF version to 1.7.2

Fixed

  • Fixed the linker error of functions not defined when memory debugging functionality is enabled
  • Resolved type redefinitions in btc_spp.h and btc_hd.h/btc_hh.h
  • A2DP: Fixed the format error of AVDTP general reject message
  • A2DP: Fixed in A2DP sink example that audio playback is clogged due to higher priority of application task in case of heavy workload from the task
  • HFP: Fixed the failure of 'connect audio' operation in HFP examples with default SDK configuration
  • SPP: Fixed SPP initiator can not free resources when the connection fails
  • SPP: Fixed SPP crash after calling esp_spp_deinit
  • SPP: Fixed SPP resource leak due to missing of deleting the mutex upon failure of initialization
  • A2DP: fixed sink device not being able to accept and decode mono channel audio stream
  • Fixed the issue Bluetooth Classic connection can not be created while this is a Bluetooth Low Energy connection is in active
  • Fixed incorrect description in macro BT_CONTROLLER_INIT_CONFIG_DEFAULT()
  • Fixed the unexpected memory free when malloc failed (#9972)
  • HFP: Fixed the issue that HFP client makes error in parsing CLCC command response
  • A2DP: Fixed A2DP failing to connect again after disconnected

Bluetooth Low Energy

Fixed

  • Allow bluedroid host to report ADV_IND separately
  • Fixed bluedroid host memory overflow
  • Fixed calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting
  • Fixed the bug that no event is reported if the same data length is set repeatedly
  • Fixed second bonding failed issue

NimBLE

Fixed

  • Corrected stack initialization dependency function checks

ESP-BLE-Mesh

Added

  • Added an option for initiating IV Index Recovery if missing one
  • Added an option for filtering packets with old SeqAuth
  • Added an option for LPN to subscribe all-nodes-address automatically

Fixed

  • Fixed not checking the oversized SegN during provisioning
  • Fixed Friend not relay LPN message when relay feature is disabled
  • Fixed handling continuously received secure update in friend queue
  • Fixed using wrong range for Heartbeat Publication Period Log value
  • Fixed using wrong count_log for Heartbeat Subscription Status
  • Fixed not ignoring connectable PB-ADV PDU containing a Link Open message
  • Fixed ignoring KR flag within Secure Network Beacon from non-primary subnet
  • Fixed the sequence of checking invalid Provisioning PDU type
  • Fixed not using fast adv interval when PB-GATT and PB-ADV are both enabled
  • Fixed not checking invalid link flag during PB-GATT provisioning
  • Fixed wrongly overwritten the expect_ack_for flag after send_pub_key
  • Fixed not checking if AppKey is bound to model during model publication set
  • Fixed the regression introduced in the btc_transfer_context changes
  • Fixed not able to get optional fields from messages with a group address as DST

Wi-Fi

Changed

  • Compile WiFi library with -Os instead of -Og to reduce code size
  • Station Always connect to AP with PMF mode if possible, added a separate PMF disable API

Fixed

  • Fixed the bug that Wi-Fi stop stuck when sniffer not disabled
  • Fixed the bug that QoS null will update BA SSN which may leader packet drop by firmware
  • Fixed clearing default wifi netif procedure
  • Fixed station can't reconnect to ap when PMF enabled after deep sleep or reset
  • Fixed ESP-NOW can receive unencrypted packets from encrypted peer devices
  • Fixed some AP will ignore authentication after receiving deauthentication for a while
  • Fixed handling of key RSC
  • Fixed issue of STA does not connect to AP in mixed mode security if PMF is enabled
  • Fixed the QoS value of reply packets to peers
  • Fixed the wrong suggestion of method in NAK for all the methods (#7769)
  • Fixed write to null pointer if malloc failed
  • Fixed static analysis issues
  • Fixed an issue that station connected to an AP already connected caused subsequent scan fail
  • Fixed the bug that sniffer FCS error packets may cause crash
  • Fixed TKIP and PMF compability issue
  • Added changes for unicast key renew for TKIP MIC failure
  • Do not use pmkid caching when SSID is changed
  • Ignore unauthenticated encrypted EAPOL-Key data
  • Multiple bugfixes in SoftAP and Station PMF
  • Fixed memory leaks in WPS operation
  • Fixed the bug that stale PMF config in NVS
  • Fixed the bug that security parameters overwritten in full scan
  • Fixed unprotected SA Query issue

Peripheral Drivers

Added

  • SPI Flash: Support unlock for ISSI chips
  • SPI Flash: Added unlock function patch in bootloader to make GD flash more stable
  • SPI Flash: Support unlock for MXIC chips

Changed

  • SPI Flash: Decrease the IRAM usage of SPI Flash driver

Fixed

  • GPIO: Fixed the issue that config struct is not properly initialized in the example
  • freemodbus: Fixed slave destroy bug when master and slave init simultaneously
  • freemodbus: Fixed master and slave use the same timer group index (#4699)
  • freemodbus: Fixed uart_set_pin() check error in modbus master serial example
  • I2S: Fixed the issue that I2S DAC has no output (#6470)
  • SDIO Slave: Fixed crash caused by incorrect return value check in host example
  • SPI Master: Fixed the error log when using SPI_TRANS_USE_TXDATA or SPI_TRANS_USE_RXDATA with data longer than expected
  • SPI Slave: Fixed an issue with placing the interrupt handler into IRAM (#3870)
  • UART: Fixed uart_set_line_inverse cannot disable inverse issue
  • UART: Fixed RTS mis-reset before sending caused by context switch (#4178)
  • UART: Fixed unreliable uart_wait_tx_done caused by the wrong handling to legacy UART_INTR_TX_DONE event
  • SPI Flash: Fixed the issue mmap cannot be called with pointers to psram

Core System

Fixed

  • Fixed calibration failure on rtc8m clock after CPU/core reset as 8md256 clock is not enabled during calibration
  • Fixed xtal 32k not oscillate or oscillate too slowly issue for ESP32

FreeRTOS

Fixed

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

Power Management

Fixed

  • Fixed problem when idle task neither enters light sleep nor "waiti" state

LWIP

Fixed

  • Fixed esp_netif_set_dns_info() API to work correctly with IPv6 addresses

Bootloader

Added

  • Enable write protection to flash at end of bootloader to increase stability

Changed

  • Improved XMC flash stabilities as main flash

Fixed

  • Avoid unnecessary WRSR operation to flash to increase stability

Storage

Fixed

  • NVS: Fixed issues found by Coverity

Tools

Added

  • Docker: Add build argument IDF_CLONE_SHALLOW in order to reduce the image size

Changed

Fixed

  • Fixed installation on Ubuntu 22.04 (and probably later versions) (#9931)

Build System

Added

  • Enable the component manager for pure CMake builds by default

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