Skip to content

Releases: espressif/esp-idf

ESP-IDF Release v4.3.3

13 Jun 04:51
Compare
Choose a tag to compare

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

ESP-IDF v4.3.3 is a bugfix update for ESP-IDF v4.3. At the time of writing, ESP-IDF v4.4.1 is the latest stable release.

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

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

Download an archive with submodules included

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

Major changes

This is the list of major changes since release v4.3.2:

Major Bug Fixes

  • Heap: Fixed a bug in the TLSF allocator returning a chunk of memory smaller than requested
  • efuse: Fixed eFuse time settings issue on ESP32-C3

Breaking Changes

  • http2_request/sh2lib: The sh2lib_connect API now now takes sh2lib configuration (sh2lib_config_t) as input instead of connection URI.
  • The following config options have been renamed -
    • MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLEDMBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED
    • MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLEDMBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED
  • Disabling PMF in Station configuration by menuconfig no longer possible. Station will connect in PMF Mode by default if AP advertises PMF support. API esp_wifi_disable_pmf_config is provided to disable PMF for testing purposes.

Changelog

Bluetooth

Bluetooth Low Energy

Fixed

  • Fixed BLE scannable extended adv performance issue in case of Wi-Fi coexistence
  • Fixed the BLE task watchdog timeout issue
  • Fixed BLE LLCP collision for channel map update
  • Fixed BLE controller BLE_ADV_UNDERRUN error
  • Fixed Link error of Bluetooth Kconfig
  • Fixed the issue in libphy.a that Wi-Fi gets disconnected after Bluetooth is de-initialized

Classic Bluetooth

Fixed

  • Fixed the delayed response of HCI Command Status Event for HCI_Read_Remote_Extended_Features command
  • Fixed the crash issue in handling HCI_Exit_Sniff_Mode command from Host when controller just switches to active mode

Bluedroid

Classic Bluetooth

Changed

  • Updated HFP_HF version to 1.7.2
  • Improved HFP example README document
  • Improved bt discovery document
  • Improved SPP examples and documents
  • Improved A2DP examples and documents

Fixed

  • SPP: Fixed SPP cannot malloc slot bugs
  • SPP: Fixed memory leak for SPP initiator when the connection is failed
  • SPP: Fixed SPP crash after calling esp_spp_deinit
  • SPP: Fixed SPP initialization failure without free mutex
  • SPP: Fixed SPP acceptor open with wrong remote address
  • HID: Fixed esp_hidh report map length checking function (#7586)
  • HID: Fixed output report char declaration (#5369)
  • HID: Fixed left right key confusion in comments (#4670)
  • A2DP: Fixed for congestion of source audio data packets which causes choppy audio in A2DP sink
  • A2DP: Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started
  • A2DP: Fixed A2DP sink example which fails to get re-connected due to inapproper use of I2S driver
  • HFP: Fixed error during disconnecting audio in HFP example

Bluetooth Low Energy

Added

  • Support low duty cycle directed advertising
  • Added README files for the Bluetooth Bluedroid BLE 5.0 examples
  • Added Walkthrough tutorial files for the Bluetooth Bluedroid BLE 5.0 examples
  • Support HW CCA threshold value setting

Fixed

  • Fixed high duty cycle directed advertising will not be stopped when timeout
  • Fixed issue that can not find mac address error
  • Fixed BLE data length of periodic advertising check issue
  • Fixed bluedroid compile failed if both enable BT_MULTI_CONNECTION_ENABLE and SMP_SLAVE_CON_PARAMS_UPD_ENABLE
  • Fixed the null pointer deference issue reported by BLE dos
  • Fixed crash in failure of memory allocation after erasing flash (#6170)

NimBLE

Added

  • Added BLE SPP service

Changed

  • Changed write api call in throughput demo example to write without response

Fixed

  • Fixed memory leak of timer during NimBLE Host start-stop process
  • Fixed BLE SPP build fail on Windows
  • Corrected stack initialisation dependency function checks
  • Added esp-timer guard check in porting layer.

Blufi

Fixed

  • Fixed blufi encryption interrupted unexpectedly lead to unable encryption again

ESP-BLE-Mesh

  • Added proxy server connect and disconnect events
  • Fixed the abnormal disconnection of proxy client
  • Fixed that the oversized SegN may be used during provisioning

Wi-Fi

Added

  • Added new documentation page for Wi-Fi Security, DPP
  • Added support of EAP-FAST authentication
  • Updated ESP32-S2 phy lib to support ESP32-S2 revision 1 (ECO1) chip
  • Added PMF disable API

Changed

  • Added changes for scan resumption in PBC mode
  • Allow for minimal scope of wifi_init_config_t.
  • Updated miswritten and abbreviated words and syntax errors for initializing WiFi section in esp_wifi.h header file
  • PMF: Allow keyindex in big endian format to workaround faulty APs

Fixed

  • Added WPS PIN fixes
  • Fixed verbosity of supplicant logs
  • smartconfig: Fixed smartconfig set socket option failure
  • Fixed memory leak in WPA3 connection
  • Fixed failure during data transmission and getting stuck in Wi-Fi sleep if running WiFi and BT with modem-sleep together
  • Fixed "ca md too weak" issue for certificates in wifi_enterprise example
  • Fixed memory corruption in Wi-Fi Enterprise
  • Fixed Assoc comeback causing invalid state bug and cleanup in some FTM failure cases
  • Fixed fragment loss when 2td pn compare with 1th pn
  • Fixed sniffer FCS error crash issue
  • Fixed stale FTM report issue (#7773)
  • Fixed repeated FTM failures and other minor issues (#7702, #7753)
  • Always connect Station in PMF mode if possible
  • Fixed build warning for unused variables
  • Fixed scanning of AP's with mixed key management
  • Added some BTM fixes
  • Fixed issue reported by static analyser
  • Fixed phy tx power limit for ESP32-S2/ESP32-C3
  • Fixed clearing default wifi netif procedure
  • Fixed issue of data loss when WiFi power-save is enabled with WiFi API being called
  • Remove group cipher check for PMF connection

ESP-WIFI-MESH

Fixed

  • Fixed the device can not receive IP_EVENT_STA_GOT_IP when the router restarted

Ethernet

Changed

  • Increased LAN8720 ETH-PHY reset assertion time
  • DM9051: Improved Tx throughput rate (when sending large amount of data, the TCR_TXREQ bit is not cleared in time, causing packet loss and retransmission, which greatly reduces the throughput rate)
  • Using the blocking method, when it is judged that the TCR_TXREQ bit is automatically cleared to zero before sending, the measured blocking time is up to 77us, and the iperf tx throughput rate can reach 7.3Mbps(12MHz)

Fixed

  • Fixed ESP32 EMAC stop/start sequence

Security

Added

  • secure_boot: Added missing #include "esp_flash_encrypt.h"

Fixed

  • secure_boot: Fixed warning when UART ROM DL mode is disabled.
  • AES/SHA: Fixed issue with descriptors and buffer potentially being placed in RTC ram
  • AES/SHA: Fixed cache writeback/invalidate not being applied for CONFIG_SPIRAM_USE_MEMMAP
  • ssl_ds/configure_ds.py: Fixed error regarding verification for production mode

Peripheral Drivers

Added

  • PSRAM: Added support on ESP32-D0WDR2-V3
  • SPI Flash: Added support for TH Flash chips
  • SPI Flash: Support unlock for MXIC chips
  • USB_SERIAL_JTAG: Added blocking driver for supporting VFS
  • USB_SERIAL_JTAG: Can print through USB_SERIAL_JTAG port without changing the config option from UART
  • SOC: Added support to specify the maximum descriptor length when setting up the DMA descriptor link

Changed

  • ADC: Upgraded ADC calibration algorithm on ESP32-C3
  • GPIO: Changed gpio_hal_iomux_func_sel() to be always inlined to avoid access issues when cache disabled
  • SPI flash: Changed ID_DEV_MASK() to be always inlined to avoid access issues when cache disabled
  • Timer Group: Reset timer group peripheral in timer_init() function (#6466)

Fixed

  • Fixed brownout not working issue after deepsleep
  • ADC: Fixed ADC calibration error after waking up from light sleep
  • ADC: Fixed issue where ADC digital part not disabled by RNG, and not reset by driver
  • Freemodbus: Fixed the example mb_tcp_master to resolve slave IP address correctly when address gaps exist in data dictionary
  • Freemodbus: Fixed the modbus controller and port layer to resolve slave IP addresses correctly
  • Freemodbus: Fixed the setting of UID field in MBAP frame according to a data dictionary
  • Freemodbus/tcp_slave: Fixed memory leak in port_tcp_slave.c
  • Freemodbus: Fixed crash issue when start tcp_slave after (mbs_interface_ptr!=NULL) in mbc_tcp_slav...
Read more

ESP-IDF Release v4.4.1

19 Apr 15:43
Compare
Choose a tag to compare

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

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

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

  • efuse: Fixed eFuse timing settings for ESP32-C3 and ESP32-S3 chips
  • Updated ESP32-S2 PHY library to support ESP32-S2 revision 1 (ECO1) chip

Breaking Changes

  • I2S: The value of enum 'i2s_channle_t' changed for backward compatible. The I2S_CHANNEL_MONO and I2S_CHANNEL_STEREO will still be 1 and 2 as in v4.3, meanwhile the TDM channel mask I2S_TDM_ACTIVE_CHx is now at high 16 bits of 'i2s_channel_t'. For now we are able to switch to mono mode for ESP32-C3/ESP32-S3 by calling i2s_set_clk and passing something like I2S_CHANNEL_MONO | I2S_TDM_ACTIVE_CH0 | I2S_TDM_ACTIVE_CH1 or I2S_CHANNEL_MONO into the third parameter.
  • Wi-Fi: Disabling PMF in Station configuration no longer possible, Station will always connect in PMF Mode if AP advertises support.

Known Issues

The following issues are present in v4.4.1 release and will be fixed in the next bugfix release (v4.4.2):

  • On ESP32-S3, using touch sensor together with sleep modes is not supported yet. Please avoid using this feature in v4.4.1 release, as it may cause permanent damage to the chip.
  • On ESP32-S3, DMA may fail to access RTC memory because RTC fast memory's speed is not sufficient. Setting this kind of memory's priority lower when allocating from heap may be a temporary workaround before the next bugfix release.
  • On ESP32-S3, BLE may disconnect in extreme low temperature.

Changelog

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

Bluetooth

Bluetooth Low Energy

  • Added the PLL track feature to keep the BLE connection stable
  • Fixed BLE LLCP collision for channel map update
  • Fixed BLE controller BLE_ADV_UNDERRUN error

Classic Bluetooth

Fixed

  • Fixed the issue for delay of HCI_Command_Status event for HCI_Read_Remote_Extended_Features command
  • Fixed the crash issue in handling HCI_Exit_Sniff_Mode command from Host when controller just switches to active mode

Bluedroid

  • Fixed crash in failure of memory allocation after erasing flash: (#6170)

Classic Bluetooth

Changed

  • Upgraded HFP(Hands Free Unit) to version 1.7.2

Fixed

  • HID: Fixed esp_hidh report map length checking function (#7586)
  • HID: Fixed output report char declaration (#5369)
  • Fixed left right key confusion in comments (#4670)
  • A2DP: Fixed for congestion of source audio data packets which causes choppy audio in a2dp sink
  • A2DP: Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started

Bluetooth Low Energy

  • Support hardware CCA threshold value setting
  • Support for ESP32-S3 chip in controller_hci_uart_esp32c3 and add esp32s3's README
  • Rename controller_hci_uart_esp32c3 to controller_hci_uart_esp32c3_and_esp32s3
  • Fixed BLE periodic advertising data length check issue
  • Fixed bluedroid compile fail if BT_MULTI_CONNECTION_ENABLE and SMP_SLAVE_CON_PARAMS_UPD_ENABLE are both enabled

NimBLE

Fixed

  • Fixed BLE SPP build fail on Windows
  • Corrected stack initialisation dependency function checks

ESP-BLE-Mesh

  • Added proxy server connect and disconnect events
  • Fixed the abnormal disconnection of proxy client

Wi-Fi

Added

  • Updated ESP32-S2 PHY library to support ESP32-S2 revision 1 (ECO1) chip
  • Added support of EAP-FAST authentication

Changed

  • Disabling PMF in Station configuration no longer possible, Station will always connect in PMF Mode if AP advertises support

Fixed

  • smartconfig: Fixed smartconfig set socket option failure
  • Fixed failing to transmit data or getting stuck in WiFi sleep if running WiFi and BT with modem-sleep together
  • Fixed issue "ca md too weak" for certificates in wifi_enterprise example
  • Fixed failure to transmit data or getting stuck in WiFi sleep if running WiFi and BT with modem-sleep together
  • Added WPS PIN fixes
  • Fixed memory corruption in Wi-Fi Enterprise
  • Fixed Assoc comeback causing invalid state bug and cleanup in some FTM failure cases
  • Bugfix for iperf example issue

Ethernet

Changed

  • Updated EMAC start/stop functions to prevent any unintended behavior

Security

Changed

  • ESP32-C3: Memory protection API unified for all PMS-aware chips
  • Digital Signature: Update gen_digital_signature_tests.py to handle different max key sizes

Fixed

  • ssl_ds/configure_ds.py: Fixed error regarding verification for production mode.

Peripheral Drivers

Added

  • ADC: Upgraded ADC calibration algorithm on ESP32-C3
  • PSRAM: Add support on ESP32-D0WDR2-V3
  • SPI Flash: Added support for TH Flash chips
  • SPI Flash: Support unlock for MXIC chips

Fixed

  • Fixed the unused TAG strings when CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is enabled. (#8250)
  • ADC: Fixed ADC calibration error after waking up from light sleep
  • ADC: Fixed issue where ADC digital part not disabled by RNG, and not reset by driver
  • ADC: Fixed ESP32-S3 ADC conflicts with Wi-Fi issue
  • freemodbus: Fixed the modbus controller and port layer to resolve slave IP addresses correctly
  • freemodbus: Fixed the setting of UID field in MBAP frame according to a data dictionary
  • freemodbus: Fixed crash issue when start tcp_slave after (mbs_interface_ptr!=NULL) in mbc_tcp_slave_destroy() (#8211)
  • freemodbus: Fixed memory leak in port_tcp_slave.c
  • freemodbus: Fixed the mb_tcp_master to resolve slave IP address correctly when address gaps exist in data dictionary in the examples
  • GPIO: Fixed some gpio pin num errors on ESP32-S2 and ESP32-C3
  • GPIO: Fixed issue that GPIO interrupt cannot br triggered on APP CPU on ESP32-S3 (#7885)
  • GPIO: Fixed interrupt watchdog timeout when calling gpio_uninstall_isr_service (#5571)
  • GPIO: Changed gpio_hal_iomux_func_sel() to be always inlined to avoid access issues when cache disabled.
  • I2C: Fixed typo in timing macro name
  • I2C: Fixed I2C command memory check when SPIRAM is used for heap allocation (#8173)
  • I2C: Fixed transfers crashing when not finished with a STOP condition
  • I2S: Fixed the bug that can't switch mono/stereo by 'i2s_set_clk' on ESP32-C3 and ESP32-S3.
  • I2S: Fixed adc/dac clock calculation (#8344, #8327)
  • I2S: Fixed mclk stop issue on ESP32-C3/ESP32-S3 when setting clock, now the master clock will be enabled during installation instead of start function, and they will only be disabled after uninstalling the driver
  • LEDC: Fixed ledc_set_duty failed to take effect when called frequently (#7288)
  • LEDC: Fixed incorrect fading behaviour with LEDC_FADE_NO_WAIT fade mode (#6710)
  • LEDC: Fixed ledc_cb_register not inside cplusplus guard (#8139)
  • RGB_LCD: Allocate framebuffer in alignment
  • RMT: Fixed wrong RMT register for ESP32-S2, RMT doesn't have RX wrap mode (#8354)
  • SDIO Slave: Fixed the issue that DMA descriptors allocated to non-DMA capable area
  • SPI: Fixed SPI Master driver cs_ena_posttrans wrong issue (#7758)
  • SPI Flash: Changed ID_DEV_MASK() to be always inlined to avoid access issues when cache disabled.
  • SPI Flash: Fixed behavior of esp_partition_get_sha256() in case the image is invalid.
  • UART: Fixed a bug that prevents RX interrupts to be enabled after filling the RX buffer
  • UART: Fixed the incorrect channel num on ESP32-S2, ESP32-C3, ESP32-S3
  • UART: Fixed reset logic on ESP32-S3
  • USB_SERIAL_JTAG: Fixed the issue that there is no rom log when restarting
  • USB_SERIAL_JTAG: Fixed issue that cannot print with wifi by default (#8131)
  • USB Host: Added USB Host Library example and documentation.
  • USB Host: Fixed incorrect USB PHY initialization on the ESP32-S3. Host stack now uses the USB PHY driver for PHY initialization.
  • USB Host: Fixed incorrect implementation of the USB_TRANSFER_FLAG_ZERO_PACK flag.
  • USB Host/HCD: Fixed bug where the returned actual numbe...
Read more

ESP-IDF Release v4.1.3

19 Apr 14:24
Compare
Choose a tag to compare

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

ESP-IDF v4.1.3 is a bugfix update for ESP-IDF v4.1. The latest stable release at the time of writing is v4.4.

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

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

Download an archive with submodules included

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

Major Changes

This is the list of major changes since release v4.1.2:

Breaking Changes

  • In previous versions of ESP-IDF, it was possible to omit the subtype field in the partition table CSV file. This could result in unexpected behavior, since empty subtype value was treated as 0. At the same time, 0 was the numerical value for the otadata partition subtype. This version of ESP-IDF adds new sanity checks for partition tables:

    • App partitions can not have empty subtypes.
    • Only one otadata partition can exist in the partition table, and its size must be 0x2000.

    Data partitions with a empty subtypes will now have a subtype ESP_PARTITION_SUBTYPE_DATA_UNDEFINED = 0x06. Previously when an empty subtype was encountered, the value was assumed to be 0.

    This may result in build errors for applications which relied on the previously unchecked behavior. This may also result in compatibility issues, if the application used empty partition subtypes.

Changelog

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

Bluetooth

Controller

  • Added Espressif defined HCI command to set coexistence status
  • Added change to free resources in deinit that were allocated during controller init procedure.

Bluetooth Low Energy

  • Fixed the scan timeout report
  • Fixed missing the sleep time
  • Fixed the scan failed issue
  • Fixed connection failure with LG 5.0 phone
  • Fixed crash when shutdown bluetooth
  • Fixed modem sleep hardware error

Classic Bluetooth

Fixed

  • Fixed the default sdkconfig options for controller_hci_uart example
  • Fixed crash after inquiry has finished
  • Fixed the issue for delay of HCI_Command_Status event for HCI_Read_Remote_Extended_Features command.
  • Fixed the issue HCI_Read_Clock failed read local Bluetooth Clock
  • Fixed the issue create Connection request is not properly terminated which blocks BlueZ from reconnecting
  • Check only for same X component of public key in BR/EDR
  • Fixed the issue during encryption pause and resume procedure that causes failure of SPP connection between ESP32 and Realtek Bluetooth adapter
  • Fixed the crash issue in handling HCI_Exit_Sniff_Mode command from Host when controller just switches to active mode

Bluedroid

  • Fixed crash in failure of memory allocation after erasing flash (#6170)

Classic Bluetooth

Fixed

  • A2DP: Fixed a2dp sink blocked bugs
  • A2DP: Fixed for congestion of source audio data packets which causes choppy audio in a2dp sink
  • A2DP: Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started
  • SPP: Fixed SPP acceptor deadlock
  • SPP: Fixed SPP memory leak
  • SPP: Fixed bugs for failure of SPP slot allocation
  • SPP: Fixed SPP acceptor open with wrong remote address
  • HFP: Fixed bug that acl can't disconnect when hfp_client disconnect
  • Fixed the timer collision in function bta_sys_start_timer() used by role switch
  • HFP: Fixed incorrect sine audio wave of HFP AG exmaple.
  • Fixed issues from source code analysis report

Bluetooth Low Energy

  • Add new function esp_ble_gap_clear_whitelist() to clear all white list
  • Support low duty cycle directed advertising
  • Fixed Bluedroid Host automatically update PPCP after exchange connection parameters.
  • Fixed some BLE document description error
  • Fixed data length update failed
  • Fixed the bug when BLE setting scan parameters
  • Fixed the the code analysis report error reported by customer.
  • Fixed high duty cycle directed advertising will not be stopped when timeout
  • Fixed BLE LLCP collision for channel map update
  • Fixed BLE controller BLE_ADV_UNDERRUN error

NimBLE

Fixed

  • Check stack initialization status before executing stack commands.
  • Modified ble_gap_wl_set function to clear complete whitelist.
  • NimBLE NVS: Fix bug in deletion of peer_dev_record.

Blufi

  • Fixed an issue that when blufi encryption is interrupted unexpectedly, subsequent encryption operation fails.

ESP-BLE-Mesh

  • Updated the SIG recommendations for BLE Mesh CVE issues
  • Applied the errata E16350 of BLE Mesh from Bluetooth SIG
  • Fixed filtering error when Provisioner receives heartbeat messages

Wi-Fi

Added

  • Added SHA384/SHA512 support for internal client
  • Added beacon timeout event
  • Added WPS strict config option
  • Added WPS PIN fixes

Changed

  • PMF: Allow keyindex in big endian format to workaround faulty APs
  • Updated miswritten and abbreviated words and syntax errors for initializing WiFi section in esp_wifi.h header file
  • Allow for minimal scope of wifi_init_config_t.
  • Refactored PHY access

Fixed

  • Fixed Enterprise connection issue with windows server
  • Fixed interoperability issue with Windows 2008.
  • Fixed airkiss and esptouch find channel crash issue
  • Fixed issue of softAP not initating 4-way handshake if max length passphrase is set
  • Fixed issue of hidden AP failure in case of esptouch
  • Clear hostpot bss when auth timeout happens
  • Fixed open AP connection failure after WPA3 auth fails
  • Fixed issue related to hidden AP scan after connecting to an AP
  • Fixed the watchdog issue when receiving an action frame
  • Fixed set_config return value error
  • Fixed the issue of reason code change from 15 to 204 when wrong password is provided
  • Fixed AMPDU age timer memory leak
  • Fixed issue of esp_wifi_80211_tx
  • Fixed crash issue in presence of WEP AP
  • Fixed the MIC comparison logic AES-128-CMAC decryption
  • Fixed issue of setting incorrect log_length of NVS misc log
  • Fixed SoftAP crash by handling public action frames
  • Fixed a bug that Wi-Fi stack may crash when receive AMSDU length bigger then 3200
  • Fixed compilation error in wpa_supplicant logging
  • Fixed fragment plt loss when 2nd pn is compared with 1st pn
  • smartconfig: Fixed smartconfig set socket option failure
  • Fixed the issue that no TBTT is generated in station+softap mode when maximum modem sleep is enabled
  • Fixed the issue of restart in espnow example blocking system
  • Fixed esp-now channel config range
  • Fixed memory leak in WPA3 connection
  • Fixed issue "ca md too weak" for certificates in wifi_enterprise example
  • Fixed memory corruption in WiFi Enterprise
  • Fixed miss-overwrite of some PHY registers when Wi-Fi modem sleep is enabled
  • Fixed issues with bcast deauth in PMF connection

ESP-WIFI-MESH

Added

  • Add esp_mesh_send_block_time to set blocking time of esp_mesh_send

Fixed

  • Fixed the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared

Ethernet

Changed

  • Only warn about negotiation timeout when link is up
  • Configure EMAC data interface before resetting PHY chip

Fixed

  • Fixed eth2ap example crash issue

Peripheral Drivers

Added

  • freemodbus: Added the FMB_PORT_TASK_AFFINITY kconfig option for modbus tasks (#6700)
  • GPIO: Enable GPIO20 for ESP32-PICO-V3 chip package (#6918)
  • PSRAM: Added support for ESP32-D0WDR2-V3
  • PSRAM: Added support for esp32-pico-v3-02
  • SPI Flash: Added support for TH Flash chips

Changed

  • freemodbus: Added processing of events in one poll cycle
  • freemodbus: Changed the default value of FMB_TIMER_PORT_ENABLED to disabled

Fixed

  • freemodbus: Fixed error handling in mbc_master_get(set)_parameter() for duplicate parameter key in parameter descriptor list (#7362)
  • freemodbus: Fixed rs485 rts de-assert fail when tx delayed (#6728)
  • I2S: Fixed the write failure issue in 32bit slave mode
  • LEDC: Fixed ledc_set_duty failed to take effect when called frequently (#7288)
  • LEDC: Fixed incorrect fading behaviour with LEDC_FADE_NO_WAIT fade mode (#6710)
  • MCPWM: Fixed wrong deadtime preset modes ([https://github.com//issues/7321](https://github.com/espressif/es...
Read more

ESP-IDF Release v4.2.3

11 Mar 17:06
Compare
Choose a tag to compare

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

ESP-IDF v4.2.3 is a bugfix update for ESP-IDF v4.2. At the time of writing, ESP-IDF v4.4 is the latest stable release.

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

Breaking Changes

  • In previous versions of ESP-IDF, it was possible to omit the subtype field in the partition table CSV file. This could result in unexpected behavior, since empty subtype value was treated as 0. At the same time, 0 was the numerical value for the otadata partition subtype. This version of ESP-IDF adds new sanity checks for partition tables:

    • App partitions can not have empty subtypes.
    • Only one otadata partition can exist in the partition table, and its size must be 0x2000.

    Data partitions with a empty subtypes will now have a subtype ESP_PARTITION_SUBTYPE_DATA_UNDEFINED = 0x06. Previously when an empty subtype was encountered, the value was assumed to be 0.

    This may result in build errors for applications which relied on the previously unchecked behavior. This may also result in compatibility issues, if the application used empty partition subtypes.

Changelog

Bluetooth

Controller

  • No changes

Bluetooth Low Energy

  • Added change to free resources in deinit that were allocated during controller init procedure
  • Fixed BLE ACL tx flush issue during Reset/Reboot
  • Fixed the scan timeout report
  • Fixed missing the sleep time
  • Fixed BLE scan failed issue
  • Fixed connection failed with LG 5.0 phone
  • Fixed crash when shutdown Bluetooth
  • Fixed modem sleep hardware error

Classic Bluetooth

Added

  • Added README.md for demo controller_hci_uart_demo

Fixed

  • Fixed crash when lmp flooding
  • Fixed the start scan crash issue
  • Removed duplicate events in r_lld_evt_end
  • Fixed unable to initiate SCO connection when peer device not accept sniff mode.
  • Fixed the default sdkconfig options for controller_hci_uart example
  • Fixed crash after inquiry has finished
  • Fixed the issue create Connection request is not properly terminated which blocks BlueZ from reconnecting
  • Fixed the issue bt_spp_acceptor example fails when SPP is initiated on a windows machine using Realtek Bluetooth adapter
  • Fixed the issue HCI_Read_Clock failed read local Bluetooth Clock
  • Fixed cs event for rd_rem_ext_feats delayed issue.
  • Check only for same X component of public key in BR/EDR

Bluedroid

Fixed

  • Fixed some code logic errors

Classic Bluetooth

Added

  • SPP: Added some common FAQs in SPP Demo README
  • Added hci command to set coexistence status

Fixed

  • A2DP: Fixed a2dp sink blocked bugs.
  • SPP: Fixed SPP acceptor deadlock
  • A2DP: Fixed a2dp deinit crash
  • A2DP: Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink
  • A2DP: Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started
  • SPP: Fixed SPP memory leak
  • SPP: Fixed SPP cannot malloc slot bugs
  • SPP: Fixed SPP acceptor open with wrong remote address
  • Fixed a bug that ACL can't disconnect when hfp_client disconnect.
  • Fixed the timer collision in function bta_sys_start_timer() used by role switch
  • Fixed hfp_ag demo not create sine audio
  • Fixed output report char declaration (#5369)
  • Fixed left right key confusion in comments (#4670)
  • Fixed crash in failure of memory allocation after erasing flash (#6170)

Bluetooth Low Energy

  • Added new function esp_ble_gap_clear_whitelist() to clear all white list.
  • Support low duty cycle directed advertising
  • Fixed the bug when BLE setting scan parameters
  • Fixed data length update failed
  • Fixed no data length update callback when the value being used is the same as the value to be set
  • Fixed Bluedroid Host auto update PPCP after exchange connection parameters
  • Fixed some BLE document description error
  • Fixed the the code analysis report error reported by customer
  • Fixed high duty cycle directed advertising will not be stopped when timeout

NimBLE

Added

  • Check stack initialization status before executing stack commands

Changed

  • Modified ble_gap_wl_set function to clear complete whitelist

Fixed

  • Include NimBLE upstream fix to remove build error when NIMBLE_ROLE_BROADCASTER is disabled.
  • Added fix while deleting peer_dev_records entry in NVS

Blufi

  • Fixed blufi encryption interrupted unexpectedly lead to unable encryption again

ESP-BLE-Mesh

  • Check Provisioning Random & Confirmation sent and received by Provisioner(CVE-2020-26556 & CVE-2020-26560)
  • Apply the errata E16350 of BLE Mesh from Bluetooth SIG
  • Recommend to use OOB mechanism to exchange Public Key (CVE-2020-26559)
  • Recommend to use randomly generated AuthValue for Static OOB (CVE-2020-26557)
  • Make Unprovisioned Device Beacon interval configurable
  • Updated the SIG recommendations for BLE Mesh CVE issues
  • Fixed filtering error when Provisioner receives heartbeat messages

Wi-Fi

Added

  • Added support for EAP-FAST authentication
  • Added config option for WPS strict
  • Added SHA384/SHA512 support for internal client
  • Added beacon timeout event
  • Allow for minimal scope of wifi_init_config_t
  • Added support of SHA256 AKM without PMF enabled
  • Added station based check for auth frame formation
  • Modified connect example to add scan mode config
  • Store PHY digital registers before disabling PHY and load them after enabling PHY
  • Added WPS PIN fixes

Changed

  • Refactored PHY access
  • Updated ESP32-S2 phy lib to support ESP32-S2 eco1 chip

Fixed

  • Fixed amsdu and fragment vulnerabilities
  • wpa_supplicant: Fixed supplicant logs crashing
  • Fixed Enterprise connection issue with windows server
  • Fixed interoperability issue with Windows 2008
  • Fixed airkiss and esptouch find channel crash issue
  • Fixed RF signal test without 9M rate issue
  • Fixed issue of setting invalid size to nvs misc log even after erasing it
  • Fixed WEP connection and crash issue
  • Fixed verbosity of supplicant logs
  • Fixed fragment plt loss when 2nd pn is compared with 1st pn
  • PMF: Allow keyindex in big endian format to workaround faulty APs
  • Updated miswritten and abbreviated words and syntax errors for "initialize WiFi section" in esp_wifi.h header file
  • Fixed memory leak in WPA3 connection
  • Fixed smartconfig set socket option fail
  • Fixed sniffer fcs error crash issue
  • Fixed the issue of restart in espnow blocking system
  • Init phy data to default if invalid in flash partition to avoid bootloops
  • Fixed the issue that no tbtt is generated in station+softap mode when maximum modem sleep is enabled
  • Fixed issue "ca md too weak" for certificates in wifi_enterprise example
  • Fixed memory corruption in WiFi Enterprise

ESP-WIFI-MESH

Fixed

  • esp_mesh_send is blocked in nodes(layer>=3), when a FIXED-ROOT root is duty master
  • Fixed the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared
  • Fixed the device can not receive IP_EVENT_STA_GOT_IP when the router restarted

Ethernet

Changed

  • Increased LAN8720 ETH-PHY reset assertion time

Fixed

  • Fixed eth2ap example crash issue (#7260)
  • Fixed driver to only warn about negotiation timeout when link is up
  • Fixed driver to configure EMAC data interface before resetting PHY chip (#7227)

Security

Added

  • Added fault injection protection for secure version check in anti-rollback scheme
  • local_ctrl: Added support for protocomm security1 and custom security

Fixed

  • AES: Removed potential unaligned access to buffers in AES HAL/LL which could be a problem for certain cache mappings to external PSRAM on ESP32-S2 and later chips.
  • Secure boot/ESP32-S2: Disabled the ability to read protect efuses containing public key digest
  • Secure boot: Fixed warning when UART ROM DL mode is disabled
  • Fixed esp_ota_revoke_secure_boot_public_key API documentation not appearing correctly in the docs
  • esp_ds: Fixed memory leak identified by cppcheck

Peripheral Drivers

Added

  • GPIO: Enable GPIO20 for ESP32-PICO-V3 chip package (#6918)
  • PSRAM: Add support on ESP32-D0WDR2-V3
  • SPI Flash: Added support for TH Flash chips TH25Q

Changed

  • freemodbus: Increased the maximum modbus tasks priori...
Read more

ESP-IDF Release v4.4

26 Jan 14:30
Compare
Choose a tag to compare

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

ESP-IDF v4.4 is a minor update for ESP-IDF v4.3.

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

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

Download an archive with submodules included

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

Changelog

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

(1): Some of the bug fixes listed here have also been backported to release/v4.3 branch and are available either in v4.3.1 or in the v4.3.2 release. Such bug fixes are marked with (1).

Major New Features

  • Support for ESP32-S3 SoC
    • Wi-Fi
      • 802.11 bgn mode
      • 802.11 LR mode
      • Station, SoftAP, sniffer mode
      • ESP-NOW
      • CSI support
      • TX/RX A-MPDU, TX/RX A-MSDU
      • TX Fragment, TXOP
      • WEP/TKIP/CCMP
      • WPA/WPA2-PSK/WPA2-ENT/WPA3-PSK/WPA3-ENT
      • WAPI-PSK
      • ESP-Touch v1/v2
      • Fine Time Measurement (FTM)
      • Device Provisioning Protocol (DPP)
      • Network-assisted roaming using 802.11k (Radio Measurements) and 802.11v (BTM) specifications
      • Wi-Fi Mesh support
      • Wi-Fi GCMP
      • Wi-Fi modem sleep and light sleep
    • Bluetooth
      • BLE 5.0 Controller support
      • HCI support
      • Bluedroid host support with BLE 5.0
      • NimBLE host support with BLE 5.0
      • BLE-Mesh support
    • Wi-Fi & BLE coexistence
      • Hardware arbiter based coexistence mechanism
      • Application scenarios based scheme coexistence mechanism
    • Security
      • Secure boot
      • Flash & PSRAM encryption
      • RSA accelerator
      • AES accelerator
      • SHA accelerator
      • HMAC peripheral
      • Digital Signature
    • Peripherals
      • UART
      • Timer group
      • GPIO
      • Dedicated GPIO (custom CPU instructions)
      • SPI Master
      • SPI Slave
      • I2C
      • I2S
      • LEDC
      • PCNT
      • RMT
      • USB Device
      • ADC
      • Camera interface
      • LCD interface
      • MCPWM
      • Touch sensor
    • System features
      • SPI Flash
      • OTA
      • Task, interrupt watchdogs
      • CPU instruction extensions for DSP/AI
      • Efuse API and espefuse.py
      • esp_timer
      • DFU flashing
    • Build system and tools
      • Building the project using CMake (build, flash, monitor, menuconfig)
      • "idf.py size"
    • Sleep modes
      • Light sleep
      • Deep Sleep
      • DFS
      • Automatic light sleep and esp_pm power management
    • Debugging
      • OpenOCD
      • Core Dump
      • GDB Stub
    • Protocols
      • Provisioning
      • Other protocols on top of TCP/IP
  • Preview of ESP32-H2
    • Add ESP32H2 build target
    • IEEE 802.15.4: Add IEEE 802.15.4 component, support IEEE 802.15.4 driver with pre-build library
    • IEEE 802.15.4: Add zigbee pending mode and config coordinator API
    • IEEE 802.15.4: Set ieee80154 default PTI to 6
    • Add clk root select in rtc_clk on ESP32-H2
    • Delete RC8M enable in rtc_clk on ESP32-H2
    • Add RC32K CLK in rtc_clk on ESP32-H2
    • RC32K replaced 8MD256 in rtc_clk_cal on ESP32-H2
    • Enable blink example.
    • ESP32-H2 PHY refactor
  • More support for ESP32-C3 SoC
    • Support phy calibration data save to nvs for ESP32-S2, ESP32-C3 & ESP32-S3
    • secure_boot_v2: Supported SB_V2 for ESP32-C3 ECO3 (1)
    • secure_boot: Secure Boot V2 verify app signature on update
    • HMAC: Added Downstream JTAG enable mode for ESP32-C3
    • Support I2S on ESP32-C3
    • GPIO: Fast GPIO (CPU instruction driven) driver support on ESP32-C3
    • ADC: Added an ADC single read and calibration example for all chips
    • efuse: Added support custom MAC address stored in the eFuse for ESP32-C3, ESP32-S2, and ESP32-S3
    • XTWDT: Added basic support for xtal32k watchdog timer for ESP32-S2/ESP32-S3/ESP32-C3
    • coredump: Add ESP32-C3 support
    • apptrace: ESP32-C3 support
  • More support for ESP32-S2 SoC
    • ESP-BLE-MESH: Add support for external memory policy for ESP32-S2 (1)
    • Support phy calibration data save to nvs for ESP32-S2, ESP32-C3 & ESP32-S3
    • secure_boot: Secure Boot V2 verify app signature on update
    • LCD: Added parallel LCD driver for ESP32 and ESP32-S2
    • USB: Add preliminary USB Host Library support for ESP32-S2 and ESP32-S3
    • ADC: Added an ADC single read and calibration example for all chips
    • efuse: Added support custom MAC address stored in the eFuse for ESP32-C3, ESP32-S2, and ESP32-S3
    • XTWDT: Added basic support for xtal32k watchdog timer for ESP32-S2/ESP32-S3/ESP32-C3
    • Gcov: Add ESP32-S2 support
  • More support for ESP32 SoC
    • secure_boot: Secure Boot V2 verify app signature on update
    • LCD: Added parallel LCD driver for ESP32 and ESP32-S2
    • ADC: Added an ADC single read and calibration example for all chips

Breaking Changes

  • Bootloader: The default app configuration is only compatible with bootloader and partition table generated from ESP-IDF V3.1 or newer. Apps that need to support OTA update on bootloaders and/or partition tables from older ESP-IDF must enable the new configuration option "App compatible with bootloader and partition table before ESP-IDF v3.1". Additionally, in ESP-IDF v3.3, CMake build system failed to append MD5 checksum to the partition table even when the option was enabled. This bug was fixed before v4.0 release. If the bootloader and partition table were initially built with CMake and IDF v3.3.x, then the compatibility option should also be enabled.
  • FreeRTOS: upgrade to 10.4.3 - rename xTaskRemoveFromUnorderedEventList
  • Flash Encryption: Abort if flash encryption is not enabled in hardware but app is built with relevant config
  • Build System: In previous versions of CMake build system, components found in EXTRA_COMPONENT_DIRS were applied after the project's default components directory (meaning if both contained a component with same name, the EXTRA_COMPONENT_DIRS component was built). In this version, the priority is reversed and a component in the project components directory has priority.
  • http2_request/sh2lib: The "sh2lib_connect" API now now take sh2lib configurations as input instead of connection uri.
  • tools: Users with Python 3.5 or older will have to install a recent Python version
  • Always compile with -fno-jump-tables -fno-tree-switch-conversion by default. This could results in performance regression for code that relies heavily on this optimization. See api-guides/memory-types.rst for how to enable it for specific source files if necessary.
  • partition_table: App partitions can not have empty sybtypes (need to define them).
  • partition_table: Data partitions with a empty sybtypes will be ESP_PARTITION_SUBTYPE_DATA_UNDEFINED = 0x06 instead of 0.
  • partition_table: otadata partition can be only with size 0x2000 and be only one in the partition table.
  • FreeRTOS: xSemaphoreAltTake and xSemaphoreAltGive APIs have been deprecated.
  • ESP_HID: Now BT HID APIs event will go through BTC->BTU->HCI.
  • soc: Registers APB_CTRL are renamed to SYSCON

Known Issues in v4.4

  • Useable stack size on ESP32-S3 is smaller than on other chips which may lead to IPC stack overflow on ESP32-S3.
  • On ESP32-S3, DMA may fail to access to RTC memory because RTC fast memory's speed is slow. Try to set this kind of memory's priority lower when allocating from heap may be a temporary workaround before next bugfix version.
  • On ESP32-S3, enabling Wi-Fi conflicts with USB functionality (#8241).

Known issues are planned to be fixed in the next bugfix release, v4.4.1.

IEEE 802.15.4

  • Added IEEE 802.15.4 component, support IEEE 802.15.4 driver with pre-build library
  • Added Zigbee pending mode and config coordinator API
  • Set IEEE 802.15.4 default PTI to 6

OpenThread

  • Added OpenThread submodule
  • Added OpenThread porting for ESP32
  • Added OpenThread cli example
  • Added otPlatRadioSetMacKey and otPlatRadioSetMacFrameCounter implementation.
  • Support microsecond timer
  • Added esp_openthread_netif_init() api for initializing the OpenThread lwIP interface.
  • Added OpenThread lwIP interface to the ot_cli example.
  • Updated OpenThread submodule to contain TCP message leak fix.
  • Added esp_cli_custom_command
  • Added TCP/UDP socket example
  • Fixed wrong uart read return value handling
  • Added esp_openthread_init esp_openthread_launch_mainloop and esp_openthread_deinit for simplified OpenThread initialization and launch logic.
  • Updated the OpenThread cli example with the simplified implementation.
  • Added the OPENTHREAD_BORDER_ROUTER Kconfig option
  • Added platform UDP and task queue port for the border agent feature
  • Added esp_openthread_border_router_* api
  • Added the esp_otbr example.
  • Porting and border routing features are now provided by prebuilt libraries
  • esp_openthread_netif_glue_init now requires platform config as its parameter
  • Enable ot_cli on ESP32H2-Beta chip
  • Enable multicast ping in OpenThread examples by default
  • Introduced a config option to enable/disable extended features in ot_cli example
  • Support ICMPv6 auto config
  • Support SRP service delegation
  • Publish _meshcop._mdns service
  • Added ftd.cmake for build FTD and radio.cmake for build RCP
  • Remove openthread-core-esp32x-config.h, added openthread...
Read more

ESP-IDF Release v3.3.6

25 Jan 21:21
Compare
Choose a tag to compare

Documentation for v3.3.6 is available at https://docs.espressif.com/projects/esp-idf/en/v3.3.6/

ESP-IDF v3.3.6 is the last bugfix update for ESP-IDF v3.3. After this release, release/v3.3 branch of ESP-IDF will not receive any more bug fixes, including fixes for security issues. Users of ESP-IDF v3.3.x are advised to upgrade to the latest stable ESP-IDF release. Please refer to the explanation of ESP-IDF support periods for more information.

At the time of writing, v4.3.2 is the latest stable release. The new v4.4 release will follow shortly.

Obtaining v3.3.6

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

This is the recommended way of obtaining v3.3.6 of ESP-IDF.

Download an archive with submodules included

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

Changelog

This is the list of changes since release v3.3.5:

Major Bug Fixes

  • Fixed arithmetic overflow issue in FreeRTOS queue API (CVE-2021-31571)
  • ESP-BLE-Mesh: Add check the value of Provisioning Random & Confirmation sent and received by Provisioner (CVE-2020-26556 & CVE-2020-26560)
  • ESP-BLE-Mesh: Recommend to use OOB mechanism to exchange Public Key (CVE-2020-26559)
  • ESP-BLE-Mesh: Recommend to use randomly generated AuthValue for Static OOB (CVE-2020-26557)
  • Flash Encryption: Fixed potential physical access TOCTOU attack to remove encrypted partition flag in partition table (CVE-2021-27926)

Breaking Changes

  • Bootloader: The default app configuration is now only compatible with bootloader and partition table generated from ESP-IDF v3.1 or newer. Apps that need to support OTA update on bootloaders and/or partition tables from ESP-IDF older than v3.1 must enable the new configuration option "App compatible with bootloader and partition table before ESP-IDF v3.1" (CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS).

    Additionally, in previous v3.3.x releases the option to add MD5 hash to the partition table (CONFIG_PARTITION_TABLE_MD5) did not take effect. Because of this, projects based on CMake build system upgrading to this release over OTA also need to enable the above mentioned compatibility option. (Note, CMake based build system was first added as preview in v3.3 release.)

    This breaking change was introduced as a fix for CVE-2021-27926.

Bluetooth

Controller

  • Fixed crash in Bluetooth when calling esp_restart()
  • Fixed modem sleep hardware error

Bluetooth Low Energy

  • Fixed controller do not report disconnection event to host
  • Remove the wrong called to lld_evt_end_isr()
  • Fixed hci timeout due to sleep
  • Deleted the Kconfig option: BLE ADV priority high
  • Fixed BLE ACL TX flush issue during reset/reboot
  • Removed duplicate events in r_lld_evt_end()
  • Fixed start scan crash caused by setting specific scan interval and Window
  • Fixed the scanning may stop after a period of time
  • Fixed connection failed with LG 5.0 phone

Classic Bluetooth

  • Suppressed some warning messages such as "E8192", "ELx200", "ELx40" etc, to prevent the influences of printing logs from causing the same issue
  • Fixed handling of invalid feature page response
  • Fix unable to initiate SCO connection when peer device not accept sniff mode
  • Fixed crash after inquiry has finished
  • Fixed the issue bt_spp_acceptor example fails when SPP is initiated on a windows machine using Realtek Bluetooth adapter
  • Fixed the issue HCI_Read_Clock failed read local Bluetooth Clock
  • Fixed the issue create Connection request is not properly terminated which blocks BlueZ from reconnecting

Bluedroid

Classic Bluetooth

  • SPP: Added API esp_spp_stop_srv_scn to stop a specific server
  • SPP: Added parameter service_name with event ESP_SPP_DISCOVERY_COMP_EVT
  • SPP: Added parameter scn with event ESP_SPP_START_EVT
  • SPP: Added parameter scn with event ESP_SPP_SRV_STOP_EVT
  • A2DP: Fixed A2DP underrun issue
  • A2DP: Added A2DP Init and Deinit Complete Evt
  • A2DP: Fixed A2DP deint crash
  • SPP: Fixed spp acceptor deadlock
  • SPP: Fixed spp memory leak
  • HFP: Fixed an issue that acl can't disconnect when hfp_client disconnect
  • Fixed the timer collision in function bta_sys_start_timer() used by role switch

Bluetooth Low Energy

  • Added connection parameter check
  • Fixed BLE connection maximum latency is 499
  • Disable bluedroid congest error log print
  • Fixed scan response length error in ADV report
  • Fixed BLE read multi-characteristic error when the number of handles is more than 10
  • Fixed bluedroid repair failed if the two most significant bits of public address is '01'
  • Fixed setting scan parameters error with policy is 2 or 3 if address resolution is not enabled
  • Fixed the the code analysis report error reported by customer
  • Fixed some code logic errors
  • Add new API to get connection parameters
  • Add new connection parameters information in GATTC connection event

NimBLE

  • Added change to use new API of os_mbuf_pack_chains for better memory utilizations
  • Added upstream change to fix flow control
  • Fix MITM vulnerability during public key exchange in secure connection
  • Add SC unit test to flag error on same public key
  • Added change to free the AES context after use by calling mbetls_aes_free
  • Fixed the bug in deletion of peer_dev_record.
  • Fixed bug in peer_dev_record and and broadcaster role build

ESP-BLE-Mesh

  • Support using multiple NVS namespaces to store information by Provisioner
  • Fixed deinit server models with no matching model id
  • Fixed number endianness error for Provisioner when using input/output authentication
  • Fixed provisioning input/output count number should be at least 1
  • Replace the Zephyr integer types with C99 types
  • Add check the value of Provisioning Random & Confirmation sent and received by Provisioner(CVE-2020-26556 & CVE-2020-26560)
  • Recommend to use OOB mechanism to exchange Public Key (CVE-2020-26559)
  • Recommend to use randomly generated AuthValue for Static OOB (CVE-2020-26557)
  • Make Unprovisioned Device Beacon interval configurable
  • Updated the SIG recommendations for BLE Mesh CVE issues
  • Use a separate callback for BLE coexistence operations
  • Support scanning normal BLE advertising packets
  • Apply the errata E16350 of BLE Mesh from Bluetooth SIG
  • Fixed filter error when Provisioner receiving Heartbeat messages
  • Enable updating Lighting HSL state
  • Fixed an issue that Proxy Client may fail to resend messages
  • Use different random values for each provisioning procedure

Wi-Fi Coexistence

  • Fixed assert without SW coexist enabled
  • Fixed BT controller task watchdog in Wi-Fi test

Wi-Fi

  • Updated exception handling for iperf example's scan when no ap was found
  • Fixed smartconfig issue when router reply arp late
  • Fixed setting channel error after Wi-Fi stop
  • Fixed ESP-NOW channel config range
  • Fixed AMSDU and fragment vulnerabilities
  • Fixed resources leaks detected in static analysis
  • Fixed airkiss and esptouch find channel crash issue
  • Fixed softAP crash by adding NULL pointer check for handling public action frame
  • Ignore dirtyBuf check when buffer size is larger than 4092
  • Fixed rf signal test without 9M rate issue
  • Fixed issue with hidden AP scans after connecting AP
  • Fixed the watchdog issue when receiving action frame
  • Clear hotspot bss when auth timeout happens
  • Fixed the bug for esptouch find hidden AP fail
  • Fixed issue of reason code change from 15 to 204 when provide wrong password
  • Fixed set config return value error
  • Fixed ampdu age timer memory leak
  • Fixed PMK not saved in NVS for SoftAP for PSK mode

ESP-WIFI-Mesh

  • Add esp_mesh_send_block_time to set blocking time of esp_mesh_send
  • Fixed the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared

Ethernet

  • Fixed incorrect initialization sequence (#6821)

Security

  • Secure Boot v1: Added anti fault injection resistance
  • Fixed invalid secure boot signing command generated in build system (#6831)
  • Flash Encryption: Fixed potential physical access TOCTOU attack to remove encrypted partition flag in partition table (CVE-2021-27926)

Peripheral Drivers

  • ADC: Fixed missing ranges of ADC codes on ESP32 (https://esp32.com/viewtopic.php?f=12&t=17214)
  • DAC: Fixed DAC header doesn't contain GPIO header issue
  • Freemodbus: Fixed rs485 rts de-assert fail when tx delayed (#6728)
  • Freemodbus: Added the MB_PORT_TASK_AFFINITY kconfig option for modbus tasks (#6700)
  • GPIO: Enable GPIO20 for ESP32-PICO-V3 chip package (#6918)
  • MCPWM: Fixed wrong deadtime preset modes (#7321)
  • PSRAM: Add support for ESP32-PICO-V3-02
  • UART: Fixed uart module reset issue (#1202)
  • UART: Added config to support placing UA...
Read more

ESP-IDF Pre-release v4.4-rc1

17 Jan 09:34
Compare
Choose a tag to compare
Pre-release

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

ESP-IDF v4.4-rc1 is the release candidate for the upcoming v4.4 release. v4.4 release will be a minor update for ESP-IDF v4.3.

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

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

Download an archive with submodules included

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

Changelog

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

(1): Some of the bug fixes listed here have also been backported to release/v4.3 branch and are available either in v4.3.1 or in the v4.3.2 release. Such bug fixes are marked with (1).

Major New Features

  • Support for ESP32-S3 SoC
    • Wi-Fi
      • 802.11 bgn mode
      • 802.11 LR mode
      • Station, SoftAP, sniffer mode
      • ESP-NOW
      • CSI support
      • TX/RX A-MPDU, TX/RX A-MSDU
      • TX Fragment, TXOP
      • WEP/TKIP/CCMP
      • WPA/WPA2-PSK/WPA2-ENT/WPA3-PSK/WPA3-ENT
      • WAPI-PSK
      • ESP-Touch v1/v2
      • Fine Time Measurement (FTM)
      • Device Provisioning Protocol (DPP)
      • Network-assisted roaming using 802.11k (Radio Measurements) and 802.11v (BTM) specifications
      • Wi-Fi Mesh support
      • Wi-Fi GCMP
      • Wi-Fi modem sleep and light sleep
    • Bluetooth
      • BLE 5.0 Controller support
      • HCI support
      • Bluedroid host support with BLE 5.0
      • NimBLE host support with BLE 5.0
      • BLE-Mesh support
    • Wi-Fi & BLE coexistence
      • Hardware arbiter based coexistence mechanism
      • Application scenarios based scheme coexistence mechanism
    • Security
      • Secure boot
      • Flash & PSRAM encryption
      • RSA accelerator
      • AES accelerator
      • SHA accelerator
      • HMAC peripheral
      • Digital Signature
    • Peripherals
      • UART
      • Timer group
      • GPIO
      • Dedicated GPIO (custom CPU instructions)
      • SPI Master
      • SPI Slave
      • I2C
      • I2S
      • LEDC
      • PCNT
      • RMT
      • USB Device
      • ADC
      • Camera interface
      • LCD interface
      • MCPWM
      • Touch sensor
    • System features
      • SPI Flash
      • OTA
      • Task, interrupt watchdogs
      • CPU instruction extensions for DSP/AI
      • Efuse API and espefuse.py
      • esp_timer
      • DFU flashing
    • Build system and tools
      • Building the project using CMake (build, flash, monitor, menuconfig)
      • "idf.py size"
    • Sleep modes
      • Light sleep
      • Deep Sleep
      • DFS
      • Automatic light sleep and esp_pm power management
    • Debugging
      • OpenOCD
      • Core Dump
      • GDB Stub
    • Protocols
      • Provisioning
      • Other protocols on top of TCP/IP
  • Preview of ESP32-H2
    • Add ESP32H2 build target
    • IEEE 802.15.4: Add IEEE 802.15.4 component, support IEEE 802.15.4 driver with pre-build library
    • IEEE 802.15.4: Add zigbee pending mode and config coordinator API
    • IEEE 802.15.4: Set ieee80154 default PTI to 6
    • Add clk root select in rtc_clk on ESP32-H2
    • Delete RC8M enable in rtc_clk on ESP32-H2
    • Add RC32K CLK in rtc_clk on ESP32-H2
    • RC32K replaced 8MD256 in rtc_clk_cal on ESP32-H2
    • Enable blink example.
    • ESP32-H2 PHY refactor
  • More support for ESP32-C3 SoC
    • Support phy calibration data save to nvs for ESP32-S2, ESP32-C3 & ESP32-S3
    • secure_boot_v2: Supported SB_V2 for ESP32-C3 ECO3 (1)
    • secure_boot: Secure Boot V2 verify app signature on update
    • HMAC: Added Downstream JTAG enable mode for ESP32-C3
    • Support I2S on ESP32-C3
    • GPIO: Fast GPIO (CPU instruction driven) driver support on ESP32-C3
    • ADC: Added an ADC single read and calibration example for all chips
    • efuse: Added support custom MAC address stored in the eFuse for ESP32-C3, ESP32-S2, and ESP32-S3
    • XTWDT: Added basic support for xtal32k watchdog timer for ESP32-S2/ESP32-S3/ESP32-C3
    • coredump: Add ESP32-C3 support
    • apptrace: ESP32-C3 support
  • More support for ESP32-S2 SoC
    • ESP-BLE-MESH: Add support for external memory policy for ESP32-S2 (1)
    • Support phy calibration data save to nvs for ESP32-S2, ESP32-C3 & ESP32-S3
    • secure_boot: Secure Boot V2 verify app signature on update
    • LCD: Added parallel LCD driver for ESP32 and ESP32-S2
    • USB: Add preliminary USB Host Library support for ESP32-S2 and ESP32-S3
    • ADC: Added an ADC single read and calibration example for all chips
    • efuse: Added support custom MAC address stored in the eFuse for ESP32-C3, ESP32-S2, and ESP32-S3
    • XTWDT: Added basic support for xtal32k watchdog timer for ESP32-S2/ESP32-S3/ESP32-C3
    • Gcov: Add ESP32-S2 support
  • More support for ESP32 SoC
    • secure_boot: Secure Boot V2 verify app signature on update
    • LCD: Added parallel LCD driver for ESP32 and ESP32-S2
    • ADC: Added an ADC single read and calibration example for all chips

Breaking Changes

  • Bootloader: The default app configuration is only compatible with bootloader and partition table generated from ESP-IDF V3.1 or newer. Apps that need to support OTA update on bootloaders and/or partition tables from older ESP-IDF must enable the new configuration option "App compatible with bootloader and partition table before ESP-IDF v3.1". Additionally, in ESP-IDF v3.3, CMake build system failed to append MD5 checksum to the partition table even when the option was enabled. This bug was fixed before v4.0 release. If the bootloader and partition table were initially built with CMake and IDF v3.3.x, then the compatibility option should also be enabled.
  • FreeRTOS: upgrade to 10.4.3 - rename xTaskRemoveFromUnorderedEventList
  • Flash Encryption: Abort if flash encryption is not enabled in hardware but app is built with relevant config
  • Build System: In previous versions of CMake build system, components found in EXTRA_COMPONENT_DIRS were applied after the project's default components directory (meaning if both contained a component with same name, the EXTRA_COMPONENT_DIRS component was built). In this version, the priority is reversed and a component in the project components directory has priority.
  • http2_request/sh2lib: The "sh2lib_connect" API now now take sh2lib configurations as input instead of connection uri.
  • tools: Users with Python 3.5 or older will have to install a recent Python version
  • Always compile with -fno-jump-tables -fno-tree-switch-conversion by default. This could results in performance regression for code that relies heavily on this optimization. See api-guides/memory-types.rst for how to enable it for specific source files if necessary.
  • partition_table: App partitions can not have empty sybtypes (need to define them).
  • partition_table: Data partitions with a empty sybtypes will be ESP_PARTITION_SUBTYPE_DATA_UNDEFINED = 0x06 instead of 0.
  • partition_table: otadata partition can be only with size 0x2000 and be only one in the partition table.
  • FreeRTOS: xSemaphoreAltTake and xSemaphoreAltGive APIs have been deprecated.
  • ESP_HID: Now BT HID APIs event will go through BTC->BTU->HCI.
  • soc: Registers APB_CTRL are renamed to SYSCON

Known Issues in v4.4-rc1

  • I2S: Wrong return codes for partial data transfers to/from DMA memory.
  • Useable stack size on ESP32-S3 is smaller than on other chips which may lead to IPC stack overflow on ESP32-S3.
  • On ESP32-S3, DMA may fail to access to RTC memory because RTC fast memory's speed is slow. Try to set this kind of memory's priority lower when allocating from heap may be a temporary workaround before next bugfix version.
  • On ESP32-S3, enabling Wi-Fi conflicts with USB functionality (#8241).

Known issues are planned to be fixed in the next bugfix release, v4.4.1.

IEEE 802.15.4

  • Added IEEE 802.15.4 component, support IEEE 802.15.4 driver with pre-build library
  • Added Zigbee pending mode and config coordinator API
  • Set IEEE 802.15.4 default PTI to 6

OpenThread

  • Added OpenThread submodule
  • Added OpenThread porting for ESP32
  • Added OpenThread cli example
  • Added otPlatRadioSetMacKey and otPlatRadioSetMacFrameCounter implementation.
  • Support microsecond timer
  • Added esp_openthread_netif_init() api for initializing the OpenThread lwIP interface.
  • Added OpenThread lwIP interface to the ot_cli example.
  • Updated OpenThread submodule to contain TCP message leak fix.
  • Added esp_cli_custom_command
  • Added TCP/UDP socket example
  • Fixed wrong uart read return value handling
  • Added esp_openthread_init esp_openthread_launch_mainloop and esp_openthread_deinit for simplified OpenThread initialization and launch logic.
  • Updated the OpenThread cli example with the simplified implementation.
  • Added the OPENTHREAD_BORDER_ROUTER Kconfig option
  • Added platform UDP and task queue port for the border agent feature
  • Added esp_openthread_border_router_* api
  • Added the esp_otbr example.
  • Porting and border routing features are now provided by prebuilt libraries
  • esp_openthread_netif_glue_init now requires platform config as its parameter
  • Enable ot_cli on ESP32H2-Beta chip
  • Enable multicast ping in OpenThread examples by default
  • Introduced a config option to enable/disable extended features in ot_cli example
  • Support ICMPv...
Read more

ESP-IDF Release v4.3.2

21 Dec 08:56
Compare
Choose a tag to compare

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

ESP-IDF v4.3.2 is a minor update for ESP-IDF v4.3.1.

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

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

Download an archive with submodules included

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

Changelog

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

Major New Features

  • Added support for console output via USB_SERIAL_JTAG port on ESP32-C3
  • SPI Flash: Added support for 32-bit address (>= 16MB) GD flash.
  • The toolchain was upgraded to esp-2021r2 version. This version includes the following changes:
    • Backtraces with Xtensa GDB are no longer interrupted on abort() and other noreturn functions (#6124).
    • rv32imc multilib configuration was added for the RISC-V target. Previously rv32im was silently used as the closest compatible configuration to rv32imc. This resulted in increased code size for ESP32-C3. The new toolchain reduces the code size by at least 10kB for most applications which rely on libc.
    • Added fnmatch, iconv functions (#3264, #2484).
    • The toolchain is now available for aarch64 hosts (part of #6432).
  • Added support for placing .bss segment into SPI RAM for ESP32-S2 (CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY)
  • Added an option for installing tools only for selected chip targets (#5113)

Breaking Changes

  • In previous versions of ESP-IDF, it was possible to omit the subtype field in the partition table CSV file. This could result in unexpected behavior, since empty subtype value was treated as 0. At the same time, 0 was the numerical value for the otadata partition subtype. This version of ESP-IDF adds new sanity checks for partition tables:

    • App partitions can not have empty subtypes.
    • Only one otadata partition can exist in the partition table, and its size must be 0x2000.

    Data partitions with a empty subtypes will now have a subtype ESP_PARTITION_SUBTYPE_DATA_UNDEFINED = 0x06. Previously when an empty subtype was encountered, the value was assumed to be 0.

    This may result in build errors for applications which relied on the previously unchecked behavior. This may also result in compatibility issues, if the application used empty partition subtypes.

Known Issues

  • Infrequent crash happens on ESP32-C3 during BLE remove bond list stress test.

Bluetooth

Controller

  • Added change to free resources in deinit that were allocated during controller init procedure.

Bluetooth Low Energy

  • Fixed BLE connection will crash during erasing flash
  • Fixed controller default LE event mask error for ESP32-C3
  • Fixed no ADV report after scan for a while
  • Fixed connection failed with LG 5.0 phone
  • Fixed modem sleep HW deep sleep state error
  • Added hci command to set coexistence status
  • Fixed crash sometimes when shutdown bluetooth

Classic Bluetooth

  • Fixed the use of deprecated sdkconfig options in the example and rename the example
  • Check only for same X component of public key in BR/EDR
  • Fixed issue in handling of HCI_Create_Connection_Cancel command that no HCI_Connection_Complete_Event is generated
  • Fixed failure of reading Bluetooth local clock using HCI_Read_Clock command
  • Fixed crash after inquiry is finished

Bluedroid

Classic Bluetooth

  • A2DP: Fixed A2DP deinit crash
  • A2DP: Fixed wrong clock_id in function time_now_us
  • SPP: Added some common FAQs in SPP Demo README
  • SPP: Fixed SPP memory leak
  • Fixed the timer collision in function bta_sys_start_timer() used by role switch
  • Fixed the crash when using legacy pairing with wrong pin code
  • HFP: Fixed bug that acl link is not disconnected when hfp_client disconnect
  • HFP: Fixed hfp_ag example not create sine audio (#7792)
  • Added README.md for controller_hci_uart example

Bluetooth Low Energy

  • Fixed Bluedroid Host automatically update PPCP after connection parameters are updated.
  • Fixed some BLE document description error
  • Updated simple_ble_start for ESP32-C3
  • Modify the bluetooth device name length limits
  • Fixed set extend ADV parameters failed when stop extend ADV
  • Fixed data length update failed
  • Check if the BLE extend connection parameter is valid
  • Fixed some code logic errors
  • Fixed the code analysis report error reported by customer

NimBLE

  • Make LE data length set API public
  • Fixed logging level mismatch
  • Sync packet length API and whitelist API changes with upstream NimBLE
  • Check stack initialization status before executing stack commands
  • Compare only X component of public key to avoid impersonation attack
  • Updated timer related prints to make them more readable.
  • Fixed issue of wifi_prov_mgr crash after provisioning
  • Added change to clear timer handle during deinitialization

Blufi

  • Blufi on Nimble: Added fix for crash issue on ESP32-C3 during application init.

ESP-BLE-Mesh

  • Fixed filtering error when Provisioner receives heartbeat messages
  • Apply the errata E16350 of BLE Mesh from Bluetooth SIG

Wi-Fi

  • Fixed Enterprise connection issue with windows server
  • Added support for embedding multiple phy init data bin to app bin
  • Fixed Tx issue for 9M rate
  • Fixed interoperability issue with Windows 2008
  • Added SHA384/SHA512 support for internal client
  • Fixed ESP32-C3 phy issue related to no USB log
  • Fixed ESP32-C3 RSSI change with bandwidth issue
  • Removed scan done event for internal scans
  • Modify Mexico channel range refer to FCC
  • Fixed wrong allocation for coex funcs

ESP-WiFi-MESH

  • Fixed the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared

Ethernet

  • Fixed driver to only warn about negotiation timeout when link is up
  • Fixed driver to configure EMAC data interface before resetting PHY chip (#7227)
  • Fixed KSZ8041 driver send link event at wrong time (Closes #7570)
  • DM9051: Fixed potential missing Rx interrupts causing the Ethernet interface not responding (#6414)

Security

  • Secure boot/ESP32 (ESP32-S2, ESP32-C3): - Disabled the ability to read protect efuses containing public key digest
  • AES/SHA: Fixed driver resetting the wrong DMA channel
  • HMAC: Added Downstream JTAG enable mode for ESP32-C3
  • Secure Boot V2: Confirm if the running app is signed by a valid non-revoked key before revocation
  • Memprot: Fixed voltage glitching detection logic
  • Fixed the Memprot feature check in esp_restart()/panic_restart()
  • AES: Removed potential unaligned access to buffers in AES HAL/LL which could be a problem for certain cache mappings to external PSRAM on S2 and later chips (#7236)

Peripheral Drivers

  • Fixed all direct 8/16 bit-width access to peripherals on ESP32-S2, ESP32-C3
  • freemodbus: Fixed incorrect reading of register outside of defined area descriptor
  • freemodbus: Increased the maximum modbus tasks priority
  • freemodbus: Added the FMB_PORT_TASK_AFFINITY kconfig option for modbus tasks (#6700)
  • freemodbus: Changed the default value of FMB_TIMER_PORT_ENABLED to disabled
  • freemodbus: Fixed TCP master, slave examples reinitialization sequence
  • freemodbus: Fixed modbus TCP master, slave stack start - destroy issue
  • 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 compilation error when FMB_COMM_MODE_TCP_EN is disabled
  • freemodbus: Fixed error handling in mbc_master_get(set)_parameter() for duplicate parameter key in parameter descriptor list (#7362)
  • GPIO: Fixed issue that gpio cannot hold during deep-sleep on ESP32-C3 (#7455)
  • GPIO: Enable GPIO20 for ESP32-PICO-V3 chip package (#6918)
  • I2S: Fixed the write failure issue in 32bit slave mode
  • I2S: Fixed the wrong value of I2S_COMM_FORMAT_STAND_MSB
  • MCPWM: Fixed wrong deadtime preset modes (#7321)
  • SPI: Fixed wrong target register for interrupt disable on ESP32-C3 and ESP32-S3
  • SPI Master: Fixed the crash when using interrupt mode when cache is disabled (#6529, #6781, #7368)
  • SPI Slave: Restrict MOSI/MISO enable on transaction preparation only for ESP32
  • SPI Slave: Fixed TX/RX maximum bit length HW register configuration for ESP32
  • SPI Slave: Re...
Read more

ESP-IDF Pre-release v4.4-beta1

08 Dec 21:22
Compare
Choose a tag to compare
Pre-release

Documentation for pre-release v4.4-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v4.4-beta1/

ESP-IDF v4.4 is a minor update for ESP-IDF v4.3.

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

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

Download an archive with submodules included

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

Changelog

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

(1): Some of the bug fixes listed here have also been backported to release/v4.3 branch and are available either in v4.3.1 or in the upcoming v4.3.2 release. Such bug fixes are marked with (1).

Major New Features

  • Support for ESP32-S3 SoC
    • Wi-Fi
      • 802.11 bgn mode
      • 802.11 LR mode
      • Station, SoftAP, sniffer mode
      • ESP-NOW
      • CSI support
      • TX/RX A-MPDU, TX/RX A-MSDU
      • TX Fragment, TXOP
      • WEP/TKIP/CCMP
      • WPA/WPA2-PSK/WPA2-ENT/WPA3-PSK/WPA3-ENT
      • WAPI-PSK
      • ESP-Touch v1/v2
      • Fine Time Measurement (FTM)
      • Device Provisioning Protocol(DPP)
      • Network-assisted roaming using 802.11k (Radio Measurements) and 802.11v (BTM) specifications
      • Wi-Fi Mesh support
      • Wi-Fi GCMP
      • Wi-Fi modem sleep and light sleep
    • Bluetooth
      • BLE 5.0 Controller support
      • HCI support
      • Bluedroid host support with BLE 5.0
      • NimBLE host support with BLE 5.0
      • BLE-Mesh support
    • Wi-Fi & BLE coexistence
      • Hardware arbiter based coexistence mechanism
      • Application scenarios based scheme coexistence mechanism
    • Security
      • Secure boot
      • Flash & PSRAM encryption
      • RSA accelerator
      • AES accelerator
      • SHA accelerator
      • HMAC peripheral
      • Digital Signature
    • Peripherals
      • UART
      • Timer group
      • GPIO
      • Dedicated GPIO (custom CPU instructions)
      • SPI Master
      • SPI Slave
      • I2C
      • I2S
      • LEDC
      • PCNT
      • RMT
      • USB Device (TinyUSB)
      • USB Host
      • ADC (single read and calibration)
      • Camera interface
      • LCD interface
      • MCPWM
      • Touch sensor
    • System features
      • Cache configuration and mmap
      • PSRAM
      • SPI Flash
        * More frequency and modes for Flash and PSRAM: OPI, DTR, 120MHz.
      • OTA
      • Task, interrupt watchdogs
      • CPU instruction extensions for DSP/AI
      • Efuse API and espefuse.py
      • esp_timer
      • DFU flashing
    • Build system and tools
      • Building the project using CMake (build, flash, monitor, menuconfig)
      • "idf.py size"
    • Sleep modes
      • Light sleep
      • Deep Sleep
      • DFS
      • Automatic light sleep and esp_pm power management
    • Debugging
      • OpenOCD
      • Core Dump
      • GDB Stub
      • Flashing with OpenOCD
    • Protocols
      • Modbus
      • Provisioning
      • Other protocols on the top of TCP/IP
  • Preview of ESP32-H2
    • Added ESP32H2 build target
    • Added IEEE 802.15.4 support
    • Added OpenThread support
    • Added clk root select in rtc_clk on ESP32-H2
    • Delete RC8M enable in rtc_clk on ESP32-H2
    • Added RC32K CLK in rtc_clk on ESP32-H2
    • RC32K replaced 8MD256 in rtc_clk_cal on ESP32-H2
    • Enable blink example.
    • ESP32-H2 PHY refactor
  • More support for ESP32-C3 SoC
    • Support phy calibration data save to nvs for ESP32-S2, ESP32-C3 & ESP32-S3
    • secure_boot_v2: Supported SB_V2 for ESP32-C3 ECO3
    • secure_boot: Secure Boot V2 verify app signature on update
    • HMAC: Added Downstream JTAG enable mode for ESP32-C3
    • Support I2S on ESP32-C3
    • GPIO: Fast GPIO (CPU instruction driven) driver support on ESP32-C3
    • ADC: Added an ADC single read and calibration example for all chips
    • efuse: Added support custom MAC address stored in the eFuse for ESP32-C3, ESP32-S2, and ESP32-S3
    • XTWDT: Added basic support for xtal32k watchdog timer for ESP32-S2/ESP32-S3/ESP32-C3
    • coredump: Added ESP32-C3 support
    • apptrace: ESP32-C3 support
  • More support for ESP32-S2 SoC
    • ESP-BLE-MESH: * Added support for external memory policy for ESP32-S2
    • Support phy calibration data save to nvs for ESP32-S2, ESP32-C3 & ESP32-S3
    • secure_boot: Secure Boot V2 verify app signature on update
    • LCD: Added parallel LCD driver
    • USB: Added preliminary USB Host Library support
    • ADC: Added an ADC single read and calibration example for all chips
    • efuse: Added support custom MAC address stored in the eFuse for ESP32-C3, ESP32-S2, and ESP32-S3
    • XTWDT: Added basic support for xtal32k watchdog timer for ESP32-S2/ESP32-S3/ESP32-C3
    • Gcov: Added ESP32-S2 support
  • More support for ESP32 SoC
    • secure_boot: Secure Boot V2 verify app signature on update
    • LCD: Added parallel LCD driver
    • ADC: Added an ADC single read and calibration example for all chips

Breaking Changes

  • Bootloader: The default app configuration is only compatible with bootloader and partition table generated from ESP-IDF V3.1 or newer. Apps that need to support OTA update on bootloaders and/or partition tables from older ESP-IDF must enable the new configuration option "App compatible with bootloader and partition table before ESP-IDF v3.1". Additionally, in ESP-IDF v3.3, CMake build system failed to append MD5 checksum to the partition table even when the option was enabled. This bug was fixed before v4.0 release. If the bootloader and partition table were initially built with CMake and IDF v3.3.x, then the compatibility option should also be enabled.
  • Freertos: upgrade to 10.4.3 - rename xTaskRemoveFromUnorderedEventList
  • Flash Encryption: Abort if flash encryption is not enabled in hardware but app is built with relevant config
  • Build System: In previous versions of CMake build system, components found in EXTRA_COMPONENT_DIRS were applied after the project's default components directory (meaning if both contained a component with same name, the EXTRA_COMPONENT_DIRS component was built). In this version, the priority is reversed and a component in the project components directory has priority.
  • http2_request/sh2lib: The "sh2lib_connect" API now now take sh2lib configurations as input instead of connection uri.
  • tools: Users with Python 3.5 or older will have to install a recent Python version
  • Always compile with -fno-jump-tables -fno-tree-switch-conversion by default. This could results in performance regression for code that relies heavily on this optimization. See api-guides/memory-types.rst for how to enable it for specific source files if necessary.
  • partition_table: App partitions can not have empty sybtypes (need to define them).
  • partition_table: Data partitions with a empty sybtypes will be ESP_PARTITION_SUBTYPE_DATA_UNDEFINED = 0x06 instead of 0.
  • partition_table: otadata partition can be only with size 0x2000 and be only one in the partition table.
  • FREERTOS: xSemaphoreAltTake and xSemaphoreAltGive APIs have been deprecated.
  • ESP_HID: Now BT HID APIs event will go through BTC->BTU->HCI.
  • soc: Registers APB_CTRL are renamed to SYSCON

Known Issues in v4.4-beta1

  • On ESP32-S3, task watchdog might be triggered when doing OTA process.

Known issues are planned to be fixed before the final v4.4 release.

IEEE 802.15.4

  • Added IEEE 802.15.4 component, support IEEE 802.15.4 driver with pre-build library
  • Added Zigbee pending mode and config coordinator API
  • Set IEEE 802.15.4 default PTI to 6

OpenThread

  • Added OpenThread submodule
  • Added OpenThread porting for ESP32
  • Added OpenThread cli example
  • Added otPlatRadioSetMacKey and otPlatRadioSetMacFrameCounter implementation.
  • Support microsecond timer
  • Added esp_openthread_netif_init() api for initializing the OpenThread lwIP interface.
  • Added OpenThread lwIP interface to the ot_cli example.
  • Updated OpenThread submodule to contain TCP message leak fix.
  • Added esp_cli_custom_command
  • Added TCP/UDP socket example
  • Fixed wrong uart read return value handling
  • Added esp_openthread_init esp_openthread_launch_mainloop and esp_openthread_deinit for simplified OpenThread initialization and launch logic.
  • Updated the OpenThread cli example with the simplified implementation.
  • Added the OPENTHREAD_BORDER_ROUTER Kconfig option
  • Added platform UDP and task queue port for the border agent feature
  • Added esp_openthread_border_router_* api
  • Added the esp_otbr example.
  • Porting and border routing features are now provided by prebuilt libraries
  • esp_openthread_netif_glue_init now requires platform config as its parameter
  • Enable ot_cli on ESP32H2-Beta chip
  • Enable multicast ping in OpenThread examples by default
  • Introduced a config option to enable/disable extended features in ot_cli example
  • Support ICMPv6 auto config
  • Support SRP service delegation
  • Publish _meshcop._mdns service
  • Added ftd.cmake for build FTD and radio.cmake for build RCP
  • Remove openthread-core-esp32x-config.h, added openthread-core-esp32x-cli-config.h and openthread-core-esp32x-rcp-config.h
  • Openthread enable ping sender module
  • Support discovery delegate in border router
  • Added iperf example
  • iperf: Support IPV6 address
  • iperf: Added new field len_send_buf, now iperf can set the length of sending buffer
  • iperf: Merge socket send/recv logic
  • OpenThread: Added menuconfig o...
Read more

ESP-IDF Release v4.0.4

04 Nov 16:55
Compare
Choose a tag to compare

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

ESP-IDF v4.0.4 is the last bugfix update for ESP-IDF v4.0. ESP-IDF v4.3.1 is the latest stable release at time of writing.

As previously announced, Espressif will stop supporting v4.0 release after October 2021. For more information please see the ESP-IDF Support Policy. Customers who are using v4.0 release series are encouraged to migrate to more recent releases.

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

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

Download an archive with submodules included

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

Changelog

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

Major Bug Fixes

  • Fixed the flash_encrypted_write/read issue under 40M psram and 80M spiflash on ESP32 (#6322, #6254)
  • Update the SIG recommendations for BLE Mesh CVE issues
  • Fixed CVE-2021-37577: check for only X component of public key to avoid impersonation in passkey attack for BR/EDR

Breaking Changes

  • No breaking changes

Bluetooth

Controller

Bluetooth Low Energy

  • Fixed RX interrupt flooding during BLE scanning in the case that no RX buffer is available
  • Fixed the crash issue when starting scan
  • Removed duplicate events in r_lld_evt_end() function
  • Fixed BLE ACL Tx Flush issue during Reset/Reboot
  • Force to restart connection timer when RX buffers run out of space
  • Fixed the scan failed issue

Classic Bluetooth

  • Fixed handling of invalid feature page response
  • Fixed unable to initiate SCO connection when peer device does not accept sniff mode
  • Fixed the default sdkconfig options for controller_hci_uart example
  • Fixed CVE-2021-37577: check for only X component of public key to avoid impersonation in passkey attack for BR/EDR

Bluedroid

Classic Bluetooth

  • SPP: Fixed spp acceptor deadlock
  • A2DP: Fixed a2dp deint crash
  • SPP: Added some common FAQs in SPP Demo README
  • SPP: Fixed spp memory leak (#7238)
  • A2DP: Fixed A2DP sink blocked issues (#6712, #7100)
  • HFP: Fixed issue that acl can't disconnect using hfp_client disconnect API
  • Fixed the timer collision in function bta_sys_start_timer() used by role switch (#7203)

Bluetooth Low Energy

  • Fixed data length update failed
  • Fixed no data length update callback when the data length of value being used is the same as the value to be set
  • Fixed some BLE document description error
  • Fixed the issue when BLE scan parameters setting

NimBLE

  • Include NimBLE upstream fix to remove build error when NIMBLE_BLE_ADVERTISE is not set
  • Added fix while deleting peer_dev_records entry in NVS
  • Added change to check for stack status before executing stack commands.

ESP-BLE-Mesh

  • Make Unprovisioned Device Beacon interval configurable (#6722)
  • Update the SIG recommendations for BLE Mesh CVE issues

Wi-Fi Coexistence

  • Deleted the Bluetooth Kconfig option: BLE ADV priority high

Wi-Fi

  • Fixed amsdu and fragment vulnerabilities
  • Fixed issues with bcast deauth in PMF connection
  • Added WPS strict config option
  • Fixed Enterprise connection issue with windows server
  • Fixed airkiss and esp-touch find channel crash issue

Ethernet

  • Speed up Ethernet start up process
  • Fixed eth2ap example crash issue (#7260)

Security

  • Add (configurable) feature to disable UART Download mode for ESP32 ECO3 silicon
  • flash_encryption: Fixed the flash_encrypted_write/read issue under 40M psram and 80M spiflash on ESP32 (#6322, #6254)

Peripheral Drivers

  • UART: Added missing critical section wrappers around rx_buffered_len (#6396)
  • MCPWM: Fixed wrong deadtime preset modes (#7321)

Core System

  • SoC: Added dummy bytes to end of flash.text to prevent errors with CPU prefetching instructions past the end
  • Increased timeouts when using the portMUX debugging feature
  • Fixed the internal devices/registers access corruption due to concurrent read/write by a spinlock
  • Fixed possible deadlock when using pthread_join() and log level set to Debug or higher
  • Fixed C++ exception stubs. No linkage of large unwinding code parts when building with -fno-exception anymore
  • esp_event: Fixed and improved docs (#6761)
  • Bootloader: Improved XMC flash stabilities as main flash
  • Bootloader: Added unlock function patch in bootloader to make GD flash more stable

newlib libc

  • Fix for FD_ISSET macro when n==-1

HTTP Client

  • Fixed memory leak identified by cppcheck
  • Fix header truncated when responded header length over buffer_size (#6370)
  • Fixed handling of EAGAIN return to address HTTPS connection abort issue

mbedTLS

  • Upgrade to release v2.16.11

ESP-MQTT

  • Added a new API to enqueue publish messages with qos>0

Storage

  • vfs/uart: Fixed memory leak identified by cppcheck

FreeModbus

  • Increased the maximum modbus tasks priority
  • Fixed error handling in mbc_master_get(set)_parameter() for duplicate parameter key in parameter descriptor list (#7362)
  • Fixed slave destroy bug when master and slave init simultaneously
  • Fixed master and slave use the same timer group index (#4699)
  • Fixed RS485 rts de-assert fail when tx delayed (#6728)
  • Added the FMB_PORT_TASK_AFFINITY kconfig option for modbus tasks (#6700)

Tools

  • Catch the correct exception raised when the external tool is not available (#7140)
  • Added support for installation on arm64 macOS
  • Added possibility of setting a mirror for all GitHub asset URLs downloaded as part of IDF Tools install process
  • Fixed a bug in ldgen where an object file name gets truncated with mapping symbols
  • gcov: Fixed the on-the-fly (non-hardcoded) gcov dumping
  • Upgrade OpenOCD version to v0.10.0-esp32-20210902

Build System

  • Fixed overriding Python path with -DPYTHON when building IDF as CMake library (#6285)
  • Improved error message if the Python dependency check completely fails to run due to an issue with the Python interpreter
  • Define IDF_VERSION_MAJOR, IDF_VERSION_MINOR, IDF_VERSION_PATCH variables during the early expansion phase of component CMakeLists.txt files

External Libraries

  • cJSON: Updated cJSON submodule to v1.7.15
  • expat: Update library from 2.2.9 to 2.4.1
  • nghttp2: Upgraded to v1.41.0

Examples

  • esp-modem: Fixed PPP stack smashing protect failure in OVERALL mode
  • esp-modem: Added access technology used by the modem
  • esp-modem: Added get operator functionality for BG96 and SIM800L

Documentation

  • SPI: Fixed the default maximum transaction length