Skip to content

Releases: espressif/esp-idf

ESP-IDF Release v5.0.2

11 May 01:55
v5.0.2
Compare
Choose a tag to compare

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

ESP-IDF v5.0.2 is a bugfix update for ESP-IDF v5.0.

Obtaining v5.0.2

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

This is the recommended way of obtaining v5.0.2 of ESP-IDF.

Download an archive with submodules included

Attached to this release is an esp-idf-v5.0.2.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.2/esp-idf-v5.0.2.zip

Major changes

Breaking Changes

  • NimBLE: Updated return type for nimble_port_init / nimble_port_deinit functions. (358ed1a)
  • cxx: experimental components moved to a separate repository (834ca54)

Changelog

This is the list of changes since release v5.0.1:

Bluetooth

Controller

Fixed

  • Fixed that functions "coex_enable" and "coex_disable" are not used in pairs on ESP32-C3, ESP32-S3 and ESP32-C2 (f39c3b2)

Bluetooth Low Energy

Changed

  • Modified the default ACL buffer count to decrease the usage of mbuf used by the bluedroid on ESP32-C2. (7c20c37)
  • Used esp timer to implement npl callout by default on ESP32-C2. (7c20c37)

Fixed

  • Fixed BLE disconnect due to channel map update instant passed on ESP32 (4cc0364)
  • Fixed the issue that adv stops abnormally when the same device initiates two connections on ESP32-C2. (564b94f)
  • Fixed the issue of abnormal reporting of connection update complete event on ESP32-C2. (564b94f)
  • Fixed the occasional assertion when the controller is disabled on ESP32-C2. (564b94f)
  • Fixed flow control count error on ESP32-C2. (564b94f)
  • Fixed hci uart flow ctrl error on ESP32-C2, ESP32-H4 (2ab97d5)
  • Fixed task watchdog timeout issue when the hci uart is closed on ESP32-C2, ESP32-H4 (2ab97d5)

Bluedroid

Fixed

  • Fixed Bluedroid compile errors after setting CONFIG_ESP_SYSTEM_USE_EH_FRAME=y on RISC-V SoCs (9718c91)

Removed

  • Removed -Wno-format compile option for bluedroid classic bluetooth examples (15b160a)

Classic Bluetooth

Added

  • Added status parameter for AVRCP passthrough command response event to make user notified of the response code from AVRCP target. (fe743a0)

Fixed

  • Fixed memory leak in AVDT delay report. (f944418)
  • Fixed the error the module HFP-AG used an out-of-bounds array index. (cf7a01c)
  • Fixed HID Host bug when handling the two consecutive connection request (41e52fc)
  • Fixed status parameter for SDP_CREATE_RECORD_USER_EVT get overridden due to use of union.(#10607) (3d80d4b)
  • Fixed build errors when sniff subrating is enabled. (8439e61)
  • Fixed crash caused by accessing nullptr in btm_acl_disconnected (11c6594)

Bluetooth Low Energy

Added

  • Examples: Support BLE notify and write throughput test at the same time (e9092c2)
  • Support BLE privacy by controller (4cc0364)
  • Added parameters for GATT connect event (4cc0364)

Fixed

  • Examples: Fixed BLE address type of advertising and scan parameters (4cc0364)

NimBLE

Added

  • Added custom GATT server functionality and encryption(c35de0c)
  • Added ble_gap_ext_adv_active() to check if extended advertising instance is active or not. (273b1b3)
  • Added debug related code under debug flag to improve throughput (b837e91)
  • Added code to retry for memory allocation if previous allocation attempt fails for a Rx packet handling. (#10849, 10010b1)
  • Added pcl demo in blecent app (0c1e80f)
  • Added return value (success / failure ) to nimble_port_init (358ed1a)

Changed

  • Updated functions related to adding and clearing peer_dec_rec table. (008a4dc)
  • Updated example configuration setting for BLE ext advertising. (df0ec3f)
  • Changed the component path to relative in IDF examples ( #10797, 8ebb509)
  • Updated bleprph example to re-enable ext adv after adv is completed (8644754)
  • Update ble_l2cap_coc example to handle memory double free issue(d4eebd5)

Fixed

  • Fixed clearing of connection_handle array in spp_server example (8a83241)
  • Fixed advertising instance check api in bleprph example (63983fb)
  • Fixed README of SPP server (1ea59bd)
  • Fixed compilation issues for ESP32-C6 / ESP32-H4 chips ( a9af208 )
  • Fixed runtime assertion in bleprph due to two disconnect events ( b29c869)

Removed

  • Removed global min/max definition (5ca38da)

Blufi

Fixed

  • Fixed vulnerability attacks that could cause heap overflow in fragmented Blufi packet processing (e9092c2)
  • Fixed hdr getting freed twice while using blufi (b94db7a)

ESP-BLE-Mesh

Fixed

  • Transmit Transaction ACK before closing provisioning link by Provisioner (c86f48a)
  • Send Link Close message before resetting provisioning link by Provisioner (c86f48a)

Wi-Fi

Changed

  • Changed the log level of abnormal beacons to debug (6dc6b57)
  • Improved the handling of station SA query procedures (63994a2)

Fixed

  • Added fixes for potential null pointer dereference in wpa_supplicant (89bb920)(122dd1e)
  • Added validations for Suite B Enterprise connections (e3778fa)
  • Fixed the initialization of EAP methods during reassociation (e3778fa)
  • Stored some station config parameters in NVS (7cf3f99)
  • Fixed the default WPA2 cacheing PMK recalculation (faad05c)
  • Improved connection management in STA and SoftAP (89bb920)
  • Buffered deauth, disassoc, and action frames for stations in sleep mode (89bb920)
  • Fixed an issue with espnow unexpectedly entering modem sleep on ESP32-C2 (7d5c6b9)
  • Fixed a typo in the wifi_enterprise example README (#10042 3d3df29)
  • Fixed a bug where sending two M1 WPS EAP messages with different enrollee nonces in response to an expanded WPS request (1f73b5e)
  • Fixed processing of association response in OWE mode (04f04d6)

Removed

ESP-WIFI-MESH

Changed

  • Updated the discard context condition and the process disconnect condition (2048d1e)
  • Updated the mesh documentation (2048d1e)

Fixed

  • Fixed the bug where esp_mesh_is_root() returned an error when setting the root type (2048d1e)
  • Fixed the bug where users couldn't set inactive time on mesh root (2048d1e)
  • Fixed the bug in setting idle type (2048d1e)

Security

Added

  • Added new APIs to confirm that all eFuse security features are enabled correctly in bootloader. (8a6fb6d)

Changed

  • Updated documentation regarding input endianness required by esp_ds API (#10391)
  • examples: Enabled security/flash_encryption example for ESP32-C2 (30058e3)

Peripheral Drivers

Added

  • ADC: Supported calibration on ESP32-C2 (f58f811)
  • esp_hw_support: Reduced power consumption of some ESP32-S3 chips (763e369)
  • MCPWM: Support keeping the GPIO configuration when deleting the MCPWM capture channel ( #10327)
  • MCPWM: Support configure MCPWM generator actions one by one, without using variable length argument lists (#10449) (3f68b61)
  • USB Host: Added SetAddress() recovery time. Added possibility to configure Root Hub Configuration (delay values) via menuconfig. (5919c3f)

Changed

  • GDMA: Changed the UHCI GDMA trigger ID from SOC_GDMA_TRIG_PERIPH_UART0 to SOC_GDMA_TRIG_PERIPH_UHCI0 (27ca654)
  • LEDC: Moved the callback in ledc_fade example to IRAM (#10402 2b14b7d)
  • LCD: Changed RGB endian in LCD SPI example, when used with ILI9341 controller (#10242, d3b1ae1)
  • TinyUSB: Use latest compatible version of TinyUSB from IDF component manager (8ae1ed5)

Fixed

  • ADC: Fixed continuous mode PM lock release fail issue (#10853) (21b42ce)
  • ADC: Fixed ADCx_GPIOxx_CHANNEL macros not aligned with new ADC driver issue (#10508) (1990335)
  • GDMA: Fixed SPI2 DMA can't work with async memory copy (#10575) (27ca654)
  • GPIO: Fixed the issue that IOs, which are used for deep sleep wakeup, keep staying in holding state after waking up. These IOs can now be re-configured. (#10921) (55e040b)
  • GPTimer: Fixed potential race condition between timer start and stop (b7ca432)
  • GPTimer: Acquire ESP_PM_NO_LIGHT_SLEEP pm lock for XTAL clock source. (92b1f4f)
  • I2S: Fixed wrong interrupt allocation flag (#10997) (ef4b1b7)
  • I2S: Fixed PDM TX frequency 48kHz limitation (#10420) (3050ea6)
  • I2S: Fixed i2s tx/rx update failed issue (f603aa7)
  • I80_LCD: Fixed the issue that PLL240M clock source is not allowed to use by ESP32-S3 i80 LCD (4ec2823)
  • SPI: Fixed micro SPI_HOST_MAX error on target ...
Read more

ESP-IDF Pre-release v5.1-beta1

25 May 13:54
v5.1-beta1
Compare
Choose a tag to compare
Pre-release

Documentation for IDF v5.1-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.1-beta1/

ESP-IDF v5.1-beta1 pre-release version is a minor update for ESP-IDF v5.0. Release v5.1 is expected to be mostly compatible with apps written for ESP-IDF v5.0.

Obtaining v5.1-beta1

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

This is the recommended way of obtaining v5.1-beta1 of ESP-IDF.

Download an archive with submodules included

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

Major changes

This is the list of changes since release v5.0:

Major Features

  • ESP32-C6 support status
  • ESP32-H2 support status
  • Bluetooth: Bluetooth support use main XTAL in light sleep mode on ESP32-C3/ESP32-S3 (33f1747)
  • Bluetooth: Support Bluetooth to release .bss and .data segment memory on ESP32-C3 and ESP32-S3 (d530630)
  • Bluetooth: Support Bluetooth to release .bss and .data segment memory on ESP32-C2 (8ea3865)
  • NimBLE: Added stack support for LE Power Control (8facf6f)
  • NimBLE: Migrated to nimble-1.5 (07d8862)
  • Wi-Fi: Added WPS registrar support in SoftAP mode. (f27a95c)
  • Wi-Fi: Added support for SAE-PK (Public Key) authentication for station. (e44c7fb)
  • Wi-Fi: Added support of WPA3 Personal (SAE) in SoftAP. (146a5c4)
  • Wi-Fi: Added Wi-Fi Aware (NAN) support(currently only ESP32/ESP32S2 support)(d5f53fb)
  • Wi-Fi: Added support for WPA2/WPA3, mixed mode for SoftAP. (146a5c4)
  • OpenThread: Added support of Ethernet interface for Openthread br (6ca5db1)
  • OpenThread: Supported CSL feature (bb9200a)
  • OpenThread: Supported Link Metrics feature (bb9200a)
  • OpenThread: Added SPI support in Radio Co-Processor (c0097c1)
  • Coexistence: Added external coexistence(leader mode) support on ESP32-S3 and ESP32-C2 (895d97d)
  • Coexistence: Added external coexistence(follower mode) support on ESP32-C2 (895d97d)
  • Coexistence: Added force RX mode in external coexistence on ESP32-C2 (895d97d)
  • ULP: Added support for RTC I2C to ULP RISC-V on ESP32-S2 and ESP32-S3. (867745a)
  • WDT: Support Interrupt WDT and Task WDT on ESP32-C2 (4f1a9e4)
  • GDB Stub: Added support for GDB Stub on ESP32-C2 (6020bb0)
  • pthreads: Added POSIX semaphore implementation (6382fc3)
  • espcoredump: Added ESP32-C2 target support (47fa643)
  • espcoredump: Added support for stacks in external RAM for all targets. (5eb8def)
  • USB Host: Added support for UVC Host Class (see the UVC Host Class Driver component for more details) and accompanying example (#6493, f161184)
  • I2S: Supported 4-line PDM RX on ESP32-S3. (48b23b7)
  • esp_etm: Support allocating ETM channels dynamically (fefe6f3)
  • GPTimer: GPTimer supports ETM events and tasks (fefe6f3)
  • GPIO: Support GPIO ETM extension (fefe6f3)
  • USB: Added Mass Storage Device example (a9e40f6)
  • all: Added a new chip version logic (major * 100 + minor) (c546de8)

Breaking Changes

  • bootloader_support: The API bootloader_common_get_partition_description has now been made private, the alternative function esp_ota_get_partition_description should be used. (a2f028a)
  • SDMMC/SDSPI: SD cards accept custom frequencies, not only fixed values 20 MHz or 40 MHz. See Storage migration guide for details (7d28aba)
  • ESSL: The esp_serial_slave_link is removed from the esp-idf components. Now user should use the component manager to pull it in. See example examples/peripherals/sdio/host/main/idf_component.yml for more details (03d8059)
  • 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 (f191b2f)
  • Storage: All the partition handling APIs and data-type definitions have been moved from the 'spi_flash' to the new component 'esp_partition'. See Storage 5.x migration guide for more details (b14116f)
  • esp_chip_info() returns the chip version in the format = 100 * major eFuse version + minor eFuse version. (c546de8)
  • Wi-Fi: Modified maximum SoftAP connection number and ESPNOW encrypted connection number. (d89a512)
  • Wi-Fi: Changed ESP-NOW receive callback function type (esp_now_recv_cb_t). This change is made to fix potential security issues mentioned in #8574. (8223a59)
  • 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 (6569be4)
  • 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 (6569be4)
  • NimBLE: Updated return type for nimble_port_init / nimble_port_deinit functions. (9916eb6)
  • IDF: All dynamic memory allocated by FreeRTOS now defaults to internal memory. To allocate FreeRTOS objects in special memory (e.g., external memory), please use one of the CreateWithCaps() functions in #include "freertos/idf_additions.h. (daf4150)

Known Issues

  • In ESP32-H2, the active voltage of some chips is lower than the chip needed, these chips may misbehave when using BLE.
  • In ESP32-C6, Low Power BROWNOUT restart will be triggered when using Wi-Fi and Bluetooth.
  • In ESP32-C6, frequent start-stop wifi will make wifi unable to use.

Changelog

802.15.4

Added

  • Added support for ESP32-H2 MP chip (63d0494)
  • esp_phy: Added API esp_btbb_disable to be used by 802.15.4 and Bluetooth (e797a06)

OpenThread

Added

  • Support NAT64 ICMP (5573d13)
  • Added some flash optimization options (45fb699)
  • Added support of Ethernet interface for Openthread br. (6ca5db1)
  • Added 802.15.4 and Thread support for ESP32-C6 (2ce330b)
  • Added support for ESP32-C2 BR and ESP32-C6 BR (radio spinel uart). (46a1165)
  • Supported CSL feature (bb9200a)
  • Supported Link Metrics feature (bb9200a)
  • Added SPI support in Radio Co-Processor (c0097c1)

Zigbee

Added

  • Added Zigbee support for ESP32-C6 (83d1bed)
  • Supported esp32c6 single chip zigbee solution (d6767c2)
  • Added wifi example_connect for zigbee gateway (d6767c2)
  • Supported ESP32-H2 MP chip (cc3e709)

Changed

  • Updated Zigbee example based on new zboss library and esp-zigbee-sdk library (dc09f30)
  • Updated the example use ZDO API function. (a63a73a)

Bluetooth

Controller

Added

  • ESP32-C3/ESP32-S3: bluetooth support use main XTAL in light sleep mode (33f1747)

Changed

  • Updated phy lib for ESP32C2, ESP32C3 and ESP32S3 (cea6614)
  • Changed default TX power to 9 dBm on ESP32 (cd5ce86)
  • Set default instance value to 6 on ESP32-C3 and ESP32-S3 (b6fda97)
  • Optimized the coexist under sniff and iscan/pscan on ESP32 (51c682c)
  • Optimized the coexist under BLE initiation on ESP32 (51c682c)

Fixed

  • 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 (6f677de)
  • Fixed BR/EDR connection fail in coexistence on ESP32 (51c682c)

Bluetooth Low Energy

Added

  • Added Periodic Advertising ADI Feature on ESP32-C2 (74abb42)
  • Added APIs to set and get the ble tx power on ESP32-C2 (8d9c51f)
  • Support Bluetooth to release .bss and .data segment memory on ESP32-C3 and ESP32-S3 (d530630)
  • Support Bluetooth to release .bss and .data segment memory on ESP32-C2 (8ea3865)
  • Added config to disable scan backoff on ESP32-C3 and ESP32-S3 (4a3319d)
  • Enabled BLE PLL track to fix bluetooth disconnection caused by temperature rise or fall on ESP32C3 and ESP32-S3 (cea6614)
  • Support bluedroid host maximum number of connections to 9 on ESP32-C3 and ESP32-S3 (18e0cd6)
  • Added config to set duplicate scan list refresh period on ESP32 (af9dcc4)
  • Supported BLE for ESP32-C6 (bdf3001)
  • Supported BLE for ESP32-H2 (3ab20c1)
  • Support ESP32-C3 and ESP32-S3 new BLE lib (ad1999f)

Changed

  • Updated BLE TX power level mapping on ESP32-C3 and ESP32-S3 (4f4edef)
  • Updated coexist module for ESP32-C2 (8d9c51f)
  • Reduced the RAM size of npl_os_freertos.c file on ESP32-C2 (afeb7db)
  • Modified ESP32-C2's default BLE TX power (afeb7db)
  • Changed BLE default TX power from 3dBm to 9dBm on ESP32-C3 and ESP32-S3 (4a3319d)
  • Unified the controller internal error code on ESP32-C2 (f0fd0b7)
  • Merge ESP32-C3 and ESP32-S3 BLE bt.c, esp_bt.h and kconfig files to one (fe979e6)
  • Disabled controller 5.0 feature bits if host 5.0 feature is not enabled on ESP32-C3 and ESP32-S3 (ad1999f)

Fixed

  • Fixed the issue that the output power level wasn't correct on ESP32-C2 (74abb42)
  • Fixed the occasional issue that adv pdu won't tx at the secondary channel when multiple adv instances are enabled on ESP32-C2 (74abb42)
  • Fixed the occasional assert error when...
Read more

ESP-IDF Release v4.3.5

27 Mar 09:15
v4.3.5
Compare
Choose a tag to compare

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...
Read more

ESP-IDF Release v5.0.1

17 Feb 10:33
v5.0.1
Compare
Choose a tag to compare

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)
  • ...
Read more

ESP-IDF Release v4.4.4

03 Feb 04:46
v4.4.4
Compare
Choose a tag to compare

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

ESP-IDF v4.4.4 is a bugfix update for ESP-IDF v4.4.

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

  • Wi-Fi: Fixed multicast pkts drop issue for some AP when DTIM period > 1

Breaking Changes

  • Power management: esp_light_sleep_start now returns two error num when sleep fails: ESP_ERR_SLEEP_REJECT and ESP_ERR_SLEEP_TOO_SHORT_SLEEP_DURATION
  • Wi-Fi: Modified maximum Softap connection number and ESP-NOW encrypted connection number.
  • 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.

Changelog

Bluetooth

Controller

Changed

  • Updated phy lib for ESP32-C2, ESP32-C3 and ESP32-S3

Bluetooth Low Energy

Added

  • Added config to disable scan backoff
  • Support Bluetooth to release .bss and .data segment memory on ESP32-C3 and ESP32-S3

Changed

  • Changed BLE default TX power from 3dBm to 9dBm on ESP32-C3 and ESP32-S3
  • Enabled BLE PLL track to fix bluetooth disconnection caused by temperature rise or fall on ESP32-C3 and ESP32-S3

Fixed

  • Fixed BLE lld_per_adv.c line 401 assert on ESP32-C3 and ESP32-S3
  • Fixed BLE ASSERT_PARAM(32 0) in rwble.c at line 384 on ESP32
  • Fixed llm_scan.c assert at line 1485 during controller deinit if extend duplicate scan is not stopped on ESP32-C3 and ESP32-S3
  • Fixed BLE array access out of bounds on ESP32-C3 and ESP32-S3
  • Fixed lld_con.c line 3048 assert on ESP32-C3 and ESP32-S3
  • Fixed crash sometimes when connected as a slave by 8th device on ESP32-C3 and ESP32-S3

Classic Bluetooth

Fixed

  • Fixed the issue that Wi-Fi task can be blocked by Bluetooth Controller because of the use of blocking coexistence callback function on ESP32

Bluedroid

Classic Bluetooth

Added

  • Added API esp_spp_vfs_unregister() to free memory allocated by esp_spp_vfs_register()

Changed

  • Changed pin_type of Legacy Paring from FIXED to VARIABLE to avoid authentication failure (#10005)
  • Changed the SR_mode selection when the pager knows nothing about the paged device's SR mode

Fixed

  • Fixed the unexpected memory free when malloc failed.
  • Fixed incorrect description in macro BT_CONTROLLER_INIT_CONFIG_DEFAULT()
  • SPP: Fixed esp_spp_write() crash when len is 0
  • Fixed the issue Bluetooth Classic connection can not be created while this is a Bluetooth Low Energy connection is in active
  • HFP: Fixed HFP client parce CLCC command response bug
  • HID: Fixed HID Host improper handle of freeing resource in esp_hid component
  • A2DP: Fixed a2dp failing to connect again after disconnected
  • HID: Fixed HID Device can not remove virtually cabled device without a connection
  • Fixed memory leak due to not freeing memory if posting a message to a thread fails
  • SPP: Fixed memory leak when SPP initialization failed
  • Fixed build errors for HID examples in the condition that Secure Simple Paring is disabled (#10069)

Removed

  • Removed audio cache in BTC layer of Bluedroid and added flow control for audio data in application layer.

Bluetooth Low Energy

Added

  • Support bluedroid host maximum number of connections to 9 on ESP32-C3 and ESP32-S3

Changed

  • Reduced the stack consumption of BTU_TASK, saving 609 bytes

Fixed

  • Allow bluedroid host to report ADV_IND separately
  • Configurable max GATTC cache characteristic count
  • Configurable option to modify max GATT service attributes count
  • Fixed BLE advertising TX power map
  • Fix BLE resolvable private address generate and update
  • Fixed BLE generate RPA for ESP32
  • Fixed ESP HID crash when authentication failed
  • Fixed a bug in the linker fragment file that made BSS part, marked by bt_bss_start and bt_bss_end, empty
  • Fixed ble_compatibility_test example NVS flash init error
  • Clean up BLE examples sdkconfig.defaults
  • Fixed sometimes BTU task overflow when doing read and write performance test

NimBLE

Added

  • Added init deinit of nimble stack in a loop
  • Support Nimble host maximum number of connections to 9 on ESP32-C3 and ESP32-S3

Changed

  • Updated check for reattempt connection code

Blufi

Added

  • Added data subtype for more WiFi information
  • Example: support to query disconnected information, connecting information
  • Example: return errcode if fail to scan

ESP-BLE-Mesh

Added

  • Added an option for initiating IV Index Recovery if missing one

Fixed

  • Fixed not able to get optional fields from messages with a group address as DST
  • Fixed not using fast adv interval when PB-GATT and PB-ADV are both enabled

Coexistence

Fixed

  • Fixed part of modem module not reset when power up

Wi-Fi

Added

  • Added check for ies in match security.
  • Added station connect retry count to make it easier to connect to the except AP
  • Provided RSSI info in disconnected event
  • Supported WiFi TX fragment in the crypto mode of GCMP.
  • Added clear ap list interface
  • Added configuration options for maximum number of ESP-NOW encrypted connections.
  • Added config option to mandate station authmode threshold to WPA3 if AP sends transition_disable bit.

Changed

  • Changed wifi scan return value.
  • Changed the log level of some logs to avoid misunderstanding.
  • Modified maximum Softap connection number.
  • Changed the max connection num on ESP32-C3 and ESP32-S3

Fixed

  • Added security fixes from upstream wpa_supplicant (CVE-2019-9496, CVE-2022-23304, CVE-2022-23303, CVE-2019-9494)
  • Fixed Wi-Fi getting stuck in Wi-Fi start when working with BT on ESP32-C3 and ESP32-S3
  • Fixed issue that sniffer mode can not capture control packet
  • 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.
  • Fixed WPA2 Enterprise Re-authentication issue
  • Added changes to prevent security parameters overwritten in full scan
  • Fixed the bug that station connected to an AP already connected caused subsequent scan fail.
  • Prevented using WPA3 PMK caching for WPA2 connection.
  • Fixed high current issue after reconnected
  • Fixed potential Wi-Fi disconnection when BT deinit.
  • Cleared scan result info when wifi stop
  • Fixed connect fail return wrong error code issue.
  • Fixed WAPI issue on GTK compability and reference to broadcast ARP pkts.
  • Fixed TX fragment issue that PN code is less than MSDU after PN code add two for TX fragment.
  • Fixed some issues on Soft-AP power save.
  • Fixed SoftAP memory leak after wifi init and deinit
  • Fixed station get AP info does not return connected SSID issue.
  • Fixed SoftAP disconnection happened even when receive PS-Poll
  • Fixed SSID copy length during WPS scan
  • Prevented PMK caching if AP security has changed
  • Fixed multicast pkts drop issue for some AP when DTIM period > 1.
  • Added a check to avoid FTM initiator mode in SoftAP interface
  • Fixed home channel issue in FTM for STA+SoftAP mode
  • Fixed integer overflow in FTM which caused some invalid test
  • Clear current pmksa to fix WPA3 connect loop
  • Added a check to avoid initiator mode in ftm softap
  • Fixed home channel issue in ftm for apsta mode
  • Fixed int overflow for T1-T4 counter variable

ESP-WIFI-MESH

Fixed

  • Fixed memory leak issue when esp_mesh_start/stop
  • Fixed invalid child issue(#9773)
  • Fixed WIFI_EVENT_AP_STADISCONNECTED event error

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.

Peripheral Drivers

Added

  • ESP_LCD: Support register color-transfer-done callback at runtime
  • I2C_LCD: Added support of rotation for OLED SSD1306 screen
  • SPI_LCD: Support transmit color buffer without specifying a command (#10302)
  • MCPWM: BDC control example now supports USB serial jtag console
  • SPI Flash: Added flash high-performance mode (> 80MHz) support for ESP32-S3
  • SPI Flash: Added docs for optional features

Changed

  • esp_lcd: Added esp_lcd_panel_disp_on_off function and it's recommended to replace the esp_lcd_panel_disp_off function
  • freemodbus: Synced to upstream esp-modbus v1.0.7 via git-subrepo
  • freemodbus: Updated/removed default Kconfig options for the updated component
  • freemodbus: Updated docs to describe component usage, make links to component docume...
Read more

ESP-IDF Release v4.1.4

12 Dec 09:47
9173ec9
Compare
Choose a tag to compare

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 s...
Read more

ESP-IDF Release v5.0

02 Dec 10:50
v5.0
Compare
Choose a tag to compare

Documentation for release IDF v5.0 is available at https://docs.espressif.com/projects/esp-idf/en/v5.0/

ESP-IDF v5.0 is a major update for ESP-IDF v4.x. Release v5.0 is mostly compatible with apps written for ESP-IDF v4.x, but there are some breaking changes (please consult the list below) and removal of deprecated functionality which will require code changes when updating projects. Release v5.0 is the latest stable release at the time of writing.

We highly recommend referring to our migration guide while moving your apps from ESP-IDF v4.4 to v5.0 release.

Obtaining v5.0

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

This is the recommended way of obtaining v5.0 of ESP-IDF.

Download an archive with submodules included

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

Major changes

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

Major New Features

Support of new SoC's

ESP32-C2 SoC
  • Wi-Fi
    • 802.11 bgn mode
    • Station, SoftAP, sniffer mode
    • ESP-NOW
    • TX/RX AMPDU, TX/RX AMSDU
    • TX Fragment, TXOP
    • WEP/TKIP/CCMP
    • WPA/WPA2-PSK/WPA2-ENT/WPA3-PSK/WPA3-ENT
    • ESP-Touch v1/v2
    • Device Provisioning Protocol(DPP)
    • Network-assisted roaming using 802.11k (Radio Measurements), 802.11v (BTM) specifications and 802.11r (Fast BSS Transition)
    • Wi-Fi modem sleep and light sleep
  • Bluetooth
    • BLE 5.0 Controller
    • HCI
    • NimBLE host with BLE 5.0
    • BLE modem sleep and light sleep
  • Wi-Fi & BLE coexistence
    • Hardware arbiter based coexistence mechanism
    • Application scenarios based scheme coexistence mechanism
  • Security
    • Secure boot
    • Flash encryption
    • ECC accelerator
    • RNG
  • Peripherals
    • LCD driver
    • GDMA
    • GPIO driver
    • I2C
    • LEDC driver
    • memory copy by DMA
    • Dedicated GPIO driver
    • GPTimer driver
    • SPI Flash driver
    • GPSPI
    • UART
    • Temperature Sensor driver
  • Power management
    • Dynamic Frequency Scaling
    • Light Sleep
    • Deep Sleep
    • Auto Light Sleep
  • Security Features
    • Secure boot
    • Flash encryption
    • ECC accelerator
    • SHA accelerator
    • RNG
  • System features
    • MMU
    • Efuse controller driver
    • Cache
    • Brownout Detector
    • OTA
  • Tools
    • idf.py
    • esptool.py
  • Debugging
    • JTAG debugging with OpenOCD
  • Protocols
    • Provisioning
ESP32-H2 SoC
  • Added support for ESP32-H2-beta2

Extended support of existing SoC's

ESP32-S3 SoC
  • Added PMS bus-based memory access protection for ESP32-S3
  • Added temperature sensor support on ESP32-S3
  • PSRAM: Supported .bss on PSRAM on ESP32-S3
  • Added support for ULP FSM for ESP32-S3
  • trax: Added ESP32-S3 Support
  • apptrace: Added ESP32-S3 Support
  • Added support for using touch sensor in sleep modes on ESP32-S3
ESP32-C3 SoC
  • Added support for ESP32-C3 ECO4
  • Added support for semihosting on ESP32-C3
ESP32-S2 SoC
  • PHY: Added support for ESP32-S2-ECO1 silicon
ESP32 SoC
  • PSRAM: Added support on ESP32-D0WDR2-V3

Other features

  • Pre-encrypted firmware distribution during OTA upgrades
  • More robust security2 scheme (based on SRP6a+AES-GCM) in the WiFi provisioning component
  • Integration of mbedTLS-3.x (3.2.1) stack
  • Support for ECDSA based secure boot v2 scheme for ESP32-C2
  • Included FreeRTOS SMP Kernel (upstream AWS version)
  • More Wi-Fi features:
    • 802.11r (Fast BSS Transition)
    • PMF support for softAP
    • WPS registrar support in softAP
    • WPA3 OWE support for station
    • WPA3 SAE H2E support for station

Major Bug Fixes

  • USB_SERIAL_JTAG: Can print through USB_SERIAL_JTAG port without change the config option from UART.
  • Heap: Fixed a bug in the TLSF allocator returning a chunk of memory smaller than requested
  • tcp-transport: Fixed potential null dereference if esp_transport_tcp_init is used separately.
  • efuse: Fixed eFuse time settings issue on ESP32-C3
  • efuse: Fixed eFuse time settings for ESP32-S3 chip
  • I2C Master: Fixed watchdog timeout issue (#8543, #8120, #7281)
  • Fixed POWER ON reset when using RTC IO as input in deepsleep on ESP32-S3.
  • Fixed RTC memory lost in high temperature in deepsleep on ESP32-S3.
  • Reduce power consumption in lightsleep when using 8MD256 as RTC slow clock, but not using LEDC clock source on ESP32-S3.
  • Decreased power consumption in different use cases on ESP32-S3.
  • Fixed dangerous power parameters in sleep modes on ESP32-S3.
  • Updated chip revision print format in compliance with AR2022-005

Breaking Changes

External Libraries

Bluetooth

  • Bluedroid: Changed API parameter for esp_bt_hf_init & esp_bt_hf_deinit
  • Bluedroid: Renamed some macros/types/functions typos (see Bluetooth migration notes)
  • NimBLE: Now esp_nimble_hci_and_controller_init is not accepted any more, just use nimble_port_init is ok, consistent with native nimble operations.

Build System

  • driver component is not included by target components anymore. Applications using driver shall now explicitly require it in their CMakeLists.txt file
  • efuse component is not included by target components anymore. Applications using efuse shall now explicitly require it in their CMakeLists.txt file
  • Removed COMPILER_DISABLE_GCC8_WARNINGS option
  • The "make" build system was deprecated in v4.0 in favor of idf.py (cmake). The remaining support is removed in v5.0.
  • Adding non-existent directories to COMPONENT_DIRS or EXTRA_COMPONENT_DIRS is no longer supported and will result in an error.
  • Kconfig option CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS has been removed. The size of time_t type in the toolchain is determined automatically now. See "System Time" chapter of API reference for more information on 64/32-bit time_t support.
  • Components which use esp_timer must add esp_timer to the requirements when calling idf_component_register
  • Components which use lwip, vfs, esp_wifi, esp_event, esp_netif, esp_eth must add add these dependencies to the requirements list when calling idf_component_register.
  • Removed Kconfig option SDK_TOOLPREFIX. Now the toolchain prefix can be fetched by CMake variable _CMAKE_TOOLCHAIN_PREFIX
  • Removed the target components (e.g. esp32), it is no longer necessary to require this component in any CMakeLists.txt
  • It is now necessary to specify PRIVATE, PUBLIC or INTERFACE in target_link_libraries calls to project_elf instead of leaving the default behavior
  • Using CMake versions lower than 3.16 is not supported anymore. Run "tools/idf_tools.py install cmake" to install a suitable version if your OS versions doesn't have one.
  • Format string warnings (-Wformat) are now enabled for Xtensa and RISC-V targets. This will result in warnings whenever uint32_t values are formatted using %u or %d format specifiers. The reason is that int32_t type is defined as long which was int in a past. The same is for uint32_t. To fix the warnings, do either one of the following: 1) Use PRIx32 specifier from inttypes.h instead of d or u. 2) Cast the values being formatted to unsigned int. 3) (Not recommended) add -Wno-format compiler flag to the files where this warning occurs using set_source_files_properties CMake function.

Networking

  • esp_https_server: Now servercert variable inherits role of cacert variable
  • esp_https_server: Now cacert variable inherits role of client_verify_cert_pem variable
  • esp_https_server: The return type of the httpd_ssl_stop API has been changed to esp_err_t from void.
  • esp_http_server: http_server.h header is no longer available in esp_http_server.
  • esp-netif: Removed tcpip_adapter compatibility layer, please use esp_netif component directly.
  • esp_netif/esp_wifi: The API esp_netif_get_sta_list() from esp_netif component has been migrated to esp_wifi component and renamed to esp_wifi_ap_get_sta_list_with_ip()
  • Ethernet: esp_eth_ioctl third argument always acts as untyped pointer to memory now
  • Ethernet: esp_eth_phy_new_ksz8041 and esp_eth_phy_new_ksz8081 functions were removed, use esp_eth_phy_new_ksz80xx instead. esp_eth_phy_new_lan8720 was removed, use esp_eth_phy_new_lan87xx instead.
  • Ethernet: Removed deprecated esp_eth_set_default_handlers and esp_eth_clear_default_handlers functions
  • Ethernet: Updated internal EMAC's API esp_eth_mac_new_esp32() to pass two configuration paramete...
Read more

ESP-IDF Pre-release v5.0-rc1

21 Nov 11:10
v5.0-rc1
Compare
Choose a tag to compare
Pre-release

Documentation for pre-release IDF v5.0-rc1 is available at https://docs.espressif.com/projects/esp-idf/en/v5.0-rc1/

ESP-IDF v5.0 is a major update for ESP-IDF v4.x. Release v5.0 is mostly compatible with apps written for ESP-IDF v4.x, but there are some breaking changes (please consult the list below) and removal of deprecated functionality which will require code changes when updating projects. v5.0-rc1 is the release candidate. We will release v5.0 final release shortly after the release candidate.

We highly recommend referring to our migration guide while moving your apps from ESP-IDF v4.4 to v5.0-rc1 release.

Obtaining v5.0-rc1

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

This is the recommended way of obtaining v5.0-rc1 of ESP-IDF.

Download an archive with submodules included

Attached to this release is an esp-idf-v5.0-rv1.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-rc1/esp-idf-v5.0-rc1.zip

Major changes

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

Major New Features

Support of new SoC's

ESP32-C2 SoC
  • Wi-Fi
    • 802.11 bgn mode
    • Station, SoftAP, sniffer mode
    • ESP-NOW
    • TX/RX AMPDU, TX/RX AMSDU
    • TX Fragment, TXOP
    • WEP/TKIP/CCMP
    • WPA/WPA2-PSK/WPA2-ENT/WPA3-PSK/WPA3-ENT
    • ESP-Touch v1/v2
    • Device Provisioning Protocol(DPP)
    • Network-assisted roaming using 802.11k (Radio Measurements), 802.11v (BTM) specifications and 802.11r (Fast BSS Transition)
    • Wi-Fi modem sleep and light sleep
  • Bluetooth
    • BLE 5.0 Controller
    • HCI
    • NimBLE host with BLE 5.0
    • BLE modem sleep and light sleep
  • Wi-Fi & BLE coexistence
    • Hardware arbiter based coexistence mechanism
    • Application scenarios based scheme coexistence mechanism
  • Security
    • Secure boot
    • Flash encryption
    • ECC accelerator
    • RNG
  • Peripherals
    • LCD driver
    • GDMA
    • GPIO driver
    • I2C
    • LEDC driver
    • memory copy by DMA
    • Dedicated GPIO driver
    • GPTimer driver
    • SPI Flash driver
    • GPSPI
    • UART
    • Temperature Sensor driver
  • Power management
    • Dynamic Frequency Scaling
    • Light Sleep
    • Deep Sleep
    • Auto Light Sleep
  • Security Features
    • Secure boot
    • Flash encryption
    • ECC accelerator
    • SHA accelerator
    • RNG
  • System features
    • MMU
    • Efuse controller driver
    • Cache
    • Brownout Detector
    • OTA
  • Tools
    • idf.py
    • esptool.py
  • Debugging
    • JTAG debugging with OpenOCD
  • Protocols
    • Provisioning
ESP32-H2 SoC
  • Added support for ESP32-H2-beta2

Extended support of existing SoC's

ESP32-S3 SoC
  • Added PMS bus-based memory access protection for ESP32-S3
  • Added temperature sensor support on ESP32-S3
  • PSRAM: Supported .bss on PSRAM on ESP32-S3
  • Added support for ULP FSM for ESP32-S3
  • trax: Added ESP32-S3 Support
  • apptrace: Added ESP32-S3 Support
  • Added support for using touch sensor in sleep modes on ESP32-S3
ESP32-C3 SoC
  • Added support for ESP32-C3 ECO4
  • Added support for semihosting on ESP32-C3
ESP32-S2 SoC
  • PHY: Added support for ESP32-S2-ECO1 silicon
ESP32 SoC
  • PSRAM: Added support on ESP32-D0WDR2-V3

Other features

  • Pre-encrypted firmware distribution during OTA upgrades
  • More robust security2 scheme (based on SRP6a+AES-GCM) in the WiFi provisioning component
  • Integration of mbedTLS-3.x (3.2.1) stack
  • Support for ECDSA based secure boot v2 scheme for ESP32-C2
  • Included FreeRTOS SMP Kernel (upstream AWS version)
  • More Wi-Fi features:
    • 802.11r (Fast BSS Transition)
    • PMF support for softAP
    • WPS registrar support in softAP
    • WPA3 OWE support for station
    • WPA3 SAE H2E support for station

Major Bug Fixes

  • USB_SERIAL_JTAG: Can print through USB_SER_JTAG port without change the config option from UART.
  • Heap: Fixed a bug in the TLSF allocator returning a chunk of memory smaller than requested
  • tcp-transport: Fixed potential null dereference if esp_transport_tcp_init is used separately.
  • efuse: Fixed eFuse time settings issue on ESP32-C3
  • efuse: Fixed eFuse time settings for ESP32-S3 chip
  • I2C Master: Fixed watchdog timeout issue (#8543, #8120, #7281)
  • Fixed POWER ON reset when using RTC IO as input in deepsleep on ESP32-S3.
  • Fixed RTC memory lost in high temperature in deepsleep on ESP32-S3.
  • Reduce power consumption in lightsleep when using 8MD256 as RTC slow clock, but not using LEDC clock source on ESP32-S3.
  • Decreased power consumption in different use cases on ESP32-S3.
  • Fixed dangerous power parameters in sleep modes on ESP32-S3.

Breaking Changes

External Libraries

Bluetooth

  • Bluedroid: Changed API parameter for esp_bt_hf_init & esp_bt_hf_deinit
  • Bluedroid: Renamed some macros/types/functions typos (see Bluetooth migration notes)
  • NimBLE: Now esp_nimble_hci_and_controller_init is not accepted any more, just use nimble_port_init is ok, consistent with native nimble operations.

Build System

  • driver component is not included by target components anymore. Applications using driver shall now explicitly require it in their CMakeLists.txt file
  • efuse component is not included by target components anymore. Applications using efuse shall now explicitly require it in their CMakeLists.txt file
  • Removed COMPILER_DISABLE_GCC8_WARNINGS option
  • The "make" build system was deprecated in v4.0 in favor of idf.py (cmake). The remaining support is removed in v5.0.
  • Adding non-existent directories to COMPONENT_DIRS or EXTRA_COMPONENT_DIRS is no longer supported and will result in an error.
  • Kconfig option CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS has been removed. The size of time_t type in the toolchain is determined automatically now. See "System Time" chapter of API reference for more information on 64/32-bit time_t support.
  • Components which use esp_timer must add esp_timer to the requirements when calling idf_component_register
  • Components which use lwip, vfs, esp_wifi, esp_event, esp_netif, esp_eth must add add these dependencies to the requirements list when calling idf_component_register.
  • Removed Kconfig option SDK_TOOLPREFIX. Now the toolchain prefix can be fetched by CMake variable _CMAKE_TOOLCHAIN_PREFIX
  • Removed the target components (e.g. esp32), it is no longer necessary to require this component in any CMakeLists.txt
  • It is now necessary to specify PRIVATE, PUBLIC or INTERFACE in target_link_libraries calls to project_elf instead of leaving the default behavior
  • Using CMake versions lower than 3.16 is not supported anymore. Run "tools/idf_tools.py install cmake" to install a suitable version if your OS versions doesn't have one.
  • Format string warnings (-Wformat) are now enabled for Xtensa and RISC-V targets. This will result in warnings whenever uint32_t values are formatted using %u or %d format specifiers. The reason is that int32_t type is defined as long which was int in a past. The same is for uint32_t. To fix the warnings, do either one of the following: 1) Use PRIx32 specifier from inttypes.h instead of d or u. 2) Cast the values being formatted to unsigned int. 3) (Not recommended) add -Wno-format compiler flag to the files where this warning occurs using set_source_files_properties CMake function.

Networking

  • esp_https_server: Now servercert variable inherits role of cacert variable
  • esp_https_server: Now cacert variable inherits role of client_verify_cert_pem variable
  • esp_https_server: The return type of the httpd_ssl_stop API has been changed to esp_err_t from void.
  • esp_http_server: http_server.h header is no longer available in esp_http_server.
  • esp-netif: Removed tcpip_adapter compatibility layer, please use esp_netif component directly.
  • esp_netif/esp_wifi: The API esp_netif_get_sta_list() from esp_netif component has been migrated to esp_wifi component and renamed to esp_wifi_ap_get_sta_list_with_ip()
  • Ethernet: esp_eth_ioctl third argument always acts as untyped pointer to memory now
  • Ethernet: esp_eth_phy_new_ksz8041 and esp_eth_phy_new_ksz8081 functions were removed, use esp_eth_phy_new_ksz80xx instead. esp_eth_phy_new_lan8720 was removed, use esp_eth_phy_new_lan87xx instead.
  • Ethernet: Removed deprecated esp_eth_set_default_handlers and esp_eth_clear_default_handlers functions
  • Ethernet: Updated internal EMAC's API esp_eth_mac_new_esp32() to pass two configuration parameters: One general driver's config of eth_mac_config_t type and the other one describes vendor specific options (eth_esp32_emac_t type), ...
Read more

ESP-IDF Release v4.4.3

09 Nov 09:28
v4.4.3
Compare
Choose a tag to compare

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

ESP-IDF v4.4.3 is a bugfix update for ESP-IDF v4.4.

Obtaining v4.4.3

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

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

Breaking Changes

  • FreeRTOS: esp_ringbuf function placement in flash is no longer controlled by CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH. New options have been introduced to control esp_ringbuf placement: CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH, CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH.

Changelog

Bluetooth

Controller

Added

  • Added support to use main crystal as Bluetooth lowe power clock in light sleep bluetooth support on ESP32-C3 and ESP32-S3

Fixed

  • 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
  • Fixed the issue that FreeRTOS semaphores and queues used in Blueotooth ISRs can be allocated in SPIRAM which causes crash

Bluetooth Low Energy

Added

  • Added ADV mode error check in ADV RX interrupt handler function on ESP32-C3 and ESP32-S3

Changed

  • Updated BLE TX power level mapping on ESP32-C3 and ESP32-S3

Fixed

  • Fixed BLE sch_arb assert on ESP32-C3 and ESP32-S3
  • Fixed the performance issue of BLE sync scan in coexistence scenario when PLL track is enabled on ESP32-C3 and ESP32-S3
  • Fixed BLE connection failed due to sync found was triggered incorrectly
  • Fixed BLE disconnect failed due to LL_TERMINATE_IND have sent but no ACK is received
  • Fixed BLE RAL_UNDERRUN and TX_CRYPT_ERR assert
  • Fixed BLE disconnection issue when channel map instant passed due to bad channels on ESP32-C3 and ESP32-S3

Classic Bluetooth

Fixed

  • Fixed that link key is not sent to host after re-pairing in legacy pairing mode on ESP32
  • Fixed the exhaustion of ACL buffer in case of connection-disconnection stress test
  • Fixed the duplicated reports of HCI_Connection_Request event from the same Bluetooth device

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 enable memory debuging functionality
  • Fixed deadlock due to wrong parameter when calling btc_transfer_context() after calling esp_bluedroid_disable().(#9672)
  • Fixed the build warning in using strncpy after toolchain is upgraded

Classic Bluetooth

Fixed

  • HFP: fixed the failure of 'connect audio' operation in HFP examples with default SDK configuration
  • A2DP: fixed sink device not being able to accept and decode mono channel audio stream

Bluetooth Low Energy

Added

  • Support BLE Micro definition in a header file

Changed

  • Optimized BLE legacy advertising report datapath and advertising report flow control mechanism, make it more robust in case of heap exahustion.
  • Modified the bluetooth device name length limits
  • Updated BLE enum with the long form of value IR and ER

Fixed

  • Fixed bluedroid host memory overflow
  • Fixed set extend advertising parameters failed when stop extend advertising
  • Fixed extend advertising set remove failed
  • Fixed calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting
  • Fixed extend ADV TX power range error
  • Fixed repeatedly data length set error
  • Fixed second bonding fail issue

NimBLE

Added

  • Added check to deregister stack callback with controller during stack deinit

Changed

  • Enable ANS service by default in nimble peripheral example
  • Updated debug level for a print to avoid unwanted console log

Fixed

  • Fixed memory corruption introduced in reconnection attempt code

ESP-BLE-Mesh

  • Added an option for LPN to subscribe all-nodes-address automatically
  • 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 when Heartbeat Subscription Status is sent
  • 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 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

Wi-Fi

Added

  • Added support for SAE H2E for station

Changed

  • Optimized station power save when beacon loss happens
  • Optimized noise check timer process, align it to TBTT time
  • Updated wifi country code docs

Fixed

  • Fixed crash by calling API esp_wifi_set_ant_gpio on esp32s2/esp32c3/esp32c3.
  • Fixed write to null pointer if malloc failed
  • Fixed possible memory leak if log level not set
  • Fixed pairwise cipher tkip pmf compability issue
  • Installed gtk before send group key handshake message 2
  • Fixed disconnection when set country
  • Fixed set country code before wifi start issue
  • Fixed repeated scans causing bss overwrite in connect process
  • Fixed fail to scan after recv disassoc/deauth for ESP32-S2.
  • Fixed deinit return wrong value.
  • Fixed get wrong channel value when use esp_wifi_get_config.
  • Fixed bug of missing unlock when wifi stop in fail case.
  • Fixed annotation error of api esp_wifi_connect.

Security

Fixed

  • esp_rsa_sign_alt: Fixed the behaviour of esp_ds_init_data_ctx API when ds_data is provided directly from the flash.

Peripheral Drivers

Added

  • ESP_LCD: Added SPI read support into the esp_lcd component
  • ESP_LCD: Write I2C can send without param (when it is -1)
  • RGB_LCD: Support PCLK fractional divisor for RGB LCD

Fixed

  • ADC: Fixed wrong ADC continuous mode sampling frequency issue on ESP32
  • ADC: Fixed wrong ADC bytes per conversion on ESP32-S2
  • ADC: Fixed wrong ADC output resolution issue on ESP32-S3
  • I2C: Reduced the delay between transactions
  • I2C: Correct I2C clock frequency on ESP32-C3, ESP32-S3
  • I2S: Fixed the bugs in only_right format and left_right format on ESP32.
  • I2S: Fixed PDM RX sample rate doubled issue (#8660)
  • I2S: Fixed the i2s event queue Q_OVF event condition
  • I2S: Fixed the gap in the i2s_adc_dac example (#9389)
  • RTC I2C: Corrected the register base addr reference for RTC I2C on esp32s3
  • PSRAM: Fixed 40MHz PSRAM CS signal glitch issue on ESP32
  • PSRAM: Fixed heap pool reservation for DMA/internal usage fail issue
  • esp_hw_support: Fixed wrong RC_FAST and RC_SLOW clock frequency values on ESP32-C3 and ESP32-S3
  • esp_hw_support: Auto-adjust LDO voltage to reduce the power consumption of ESP32S3 chips
  • GPIO: Fixed the issue on ESP32 that GPIO can't hold on after deep sleep
  • GPIO: Fixed the bug that ESP32-S3 GPIO48 does not support hold function
  • GPIO: Fixed the issue that USB DP pullup can't be disabled when it's used as a normal GPIO (#9495)
  • Timer: Propagate interrupt service allocation error (#9651)
  • MCPWM: Fixed multiplication overflow in mcpwm_set_duty_in_us (#9648)
  • Temperature Sensor: Fixed the issue that the value is not accurate on ESP32-S3
  • ESP LCD: Fixed incorrect bpp size of RGB666 color format (#9729)
  • SPI Master: Fixed an issue on ESP32-S2, ESP32-S3, ESP32-C3 that more than 3 devices can't be added to the SPI2 Host(#8876)
  • SPI Bus: Fixed a concurrency issue leading to spi_device_polling_end assertion fail (https://github.com/espressif/esp-idf/issues/...
Read more

ESP-IDF Release v4.3.4

12 Sep 15:38
v4.3.4
Compare
Choose a tag to compare

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)
  • I2...
Read more