Skip to content

Releases: espressif/esp-idf

ESP-IDF Release v5.0

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

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

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

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

Obtaining v5.0

For full installation instructions, see the ESP-IDF Programming Guide.

The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

Using git

To get this release, use the following commands:

git clone -b v5.0 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.0
cd esp-idf-v5.0/

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

Download an archive with submodules included

Attached to this release is an esp-idf-v5.0.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

This archive can also be downloaded from Espressif's download server:
https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.0/esp-idf-v5.0.zip

Major changes

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

Major New Features

Support of new SoC's

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

Extended support of existing SoC's

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

Other features

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

Major Bug Fixes

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

Breaking Changes

External Libraries

Bluetooth

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

Build System

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

Networking

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

ESP-IDF Pre-release v5.0-rc1

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

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

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

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

Obtaining v5.0-rc1

For full installation instructions, see the ESP-IDF Programming Guide.

The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

Using git

To get this release, use the following commands:

git clone -b v5.0-rc1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.0-rc1
cd esp-idf-v5.0-rc1/

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

Download an archive with submodules included

Attached to this release is an esp-idf-v5.0-rv1.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

This archive can also be downloaded from Espressif's download server:
https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.0-rc1/esp-idf-v5.0-rc1.zip

Major changes

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

Major New Features

Support of new SoC's

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

Extended support of existing SoC's

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

Other features

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

Major Bug Fixes

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

Breaking Changes

External Libraries

Bluetooth

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

Build System

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

Networking

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

ESP-IDF Release v4.4.3

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

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

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

Obtaining v4.4.3

For full installation instructions, see the ESP-IDF Programming Guide.

The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

Using git

To get this release, use the following commands:

git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v4.4.3
cd esp-idf-v4.4.3/

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

Download an archive with submodules included

Attached to this release is an esp-idf-v4.4.3.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

This archive can also be downloaded from Espressif's download server:
https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v4.4.3/esp-idf-v4.4.3.zip

Major changes

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

Major Bug Fixes

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

Breaking Changes

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

Changelog

Bluetooth

Controller

Added

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

Fixed

  • Fixed the issue of Bluetooth disconnection due to not backing up Bluetooth AGC related registers when light sleep is enabled and baseband power down on ESP32-C3 and ESP32-S3
  • Fixed the issue that FreeRTOS semaphores and queues used in Blueotooth ISRs can be allocated in SPIRAM which causes crash

Bluetooth Low Energy

Added

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

Changed

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

Fixed

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

Classic Bluetooth

Fixed

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

Bluedroid

Added

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

Changed

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

Fixed

  • Fixed the linker error of functions not defined when enable memory debuging functionality
  • Fixed deadlock due to wrong parameter when calling btc_transfer_context() after calling esp_bluedroid_disable().(#9672)
  • Fixed the build warning in using strncpy after toolchain is upgraded

Classic Bluetooth

Fixed

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

Bluetooth Low Energy

Added

  • Support BLE Micro definition in a header file

Changed

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

Fixed

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

NimBLE

Added

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

Changed

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

Fixed

  • Fixed memory corruption introduced in reconnection attempt code

ESP-BLE-Mesh

  • Added an option for LPN to subscribe all-nodes-address automatically
  • Fixed Friend not relay LPN message when relay feature is disabled
  • Fixed handling continuously received secure update in friend queue
  • Fixed using wrong range for Heartbeat Publication Period Log value
  • Fixed using wrong count_log when Heartbeat Subscription Status is sent
  • Fixed not ignoring connectable PB-ADV PDU containing a Link Open message
  • Fixed ignoring KR flag within Secure Network Beacon from non-primary subnet
  • Fixed the sequence of checking invalid Provisioning PDU type
  • Fixed not checking invalid link flag during PB-GATT provisioning
  • Fixed wrongly overwritten the expect_ack_for flag after send_pub_key
  • Fixed not checking if AppKey is bound to model during model publication set
  • Fixed the regression introduced in the btc_transfer_context changes

Wi-Fi

Added

  • Added support for SAE H2E for station

Changed

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

Fixed

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

Security

Fixed

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

Peripheral Drivers

Added

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

Fixed

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

ESP-IDF Release v4.3.4

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

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

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

Obtaining v4.3.4

For full installation instructions, see the ESP-IDF Programming Guide.

The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

Using git

To get this release, use the following commands:

git clone -b v4.3.4 --recursive https://github.com/espressif/esp-idf.git esp-idf-v4.3.4
cd esp-idf-v4.3.4/

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

Download an archive with submodules included

Attached to this release is an esp-idf-v4.3.4.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v4.3.4/esp-idf-v4.3.4.zip

Major changes

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

Major Bug Fixes

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

Breaking Changes

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

Changelog

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

Bluetooth

Controller

Added

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

Changed

  • Initialize all elements of esp_bt_controller_config_t. (#9073)

Fixed

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

Bluetooth Low Energy

Added

  • Add description for de-initialize bt controller API

Fixed

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

Classic Bluetooth

Fixed

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

Bluedroid

Added

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

Changed

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

Fixed

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

Classic Bluetooth

Added

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

Changed

  • Updated HFP_AG version to 1.7.2

Fixed

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

Bluetooth Low Energy

Changed

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

Fixed

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

NimBLE

Added

  • Added changes for mbedTLS v3.1.0

Fixed

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

Blufi

Fixed

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

ESP-BLE-Mesh

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

PHY

Fixed

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

Wi-Fi

Added

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

Changed

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

Fixed

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

Peripheral Drivers

Changed

  • I2C_MASTER: Output clock frequency calculation is optimized to be more accurate (#8770)
  • I2...
Read more

ESP-IDF Release v4.2.4

12 Sep 08:26
Compare
Choose a tag to compare

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

ESP-IDF v4.2.4 is a bugfix update for ESP-IDF v4.2.

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

  • efuse: Validate written data after burning and re-burns it if necessary. This avoids potential and rare issue with incorrect efuse programming on some modules (it was observed with failure rate 0.59% on one of the production site)

Breaking Changes

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

Changelog

Bluetooth

Controller

Fixed

  • Fixed missing in processing VHCI interrupt caused by lack of protection against race conditions in accessing VHCI environment variables
  • Make sure semphr/queue used in interrupt is in DRAM

Bluetooth Low Energy

Fixed

  • Fixed BLE ke_mem.c assert on ESP32

Classic Bluetooth

Fixed

  • Fixed the crash issue in handling HCI_Exit_Sniff_Request command from Host when controller just switches to active mode
  • Fixed the EDR mode wrongly cleared by a successful role switch which caused that the 2M/3M package type can not be selected for use
  • Fixed LMP extended features exchange handling, allow max supported feature page number that is lower than current feature page number, to support wrong LMP response from specific devices

Bluedroid

Fixed

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

Classic Bluetooth

Changed

  • HF: Updated HFP_AG version to 1.7.2
  • HF: Updated HFP_HF version to 1.7.2

Fixed

  • A2DP: Fixed AVDTP general reject format error
  • A2DP: Fixed in A2DP sink example that audio playback is clogged due to higher priority of application task in case of heavy workload from the task
  • A2DP: Fixed the A2DP source example application state machine in the processing of inquiry response, which can result in the failure of stopping device discovery
  • HID: Resolved type redefinitions in btc_spp.h and btc_hd.h/btc_hh.h
  • SPP: Fixed SPP initiator can not free resources when the connection fails
  • SPP: Fixed SPP crash after calling esp_spp_deinit
  • SPP: Fixed SPP initialization failure without free mutex
  • GAP: Added Bluetooth address field in the parameter structure of ESP_BT_GAP_READ_REMOTE_NAME_EVT callback event

Bluetooth Low Energy

Fixed

  • Fixed bluedroid host memory overflow

ESP-BLE-Mesh

  • Fixed not checking the oversized SegN during provisioning

Wi-Fi

Added

  • Always connect Station in PMF mode if possible, added a separate PMF disable API

Changed

  • Updated wpa2_enterprise certificates
  • Updated wifi CSI docs
  • Updated wifi multiple antennas docs
  • Updated wifi header file

Fixed

  • Added changes for unicast key renew for TKIP mic failure
  • Fixed the bug that wifi not stopped correctly if sniffer mode not disabled
  • Fixed the bug that QoS Null updated BA SSN
  • Fixed the bug that the wrong default static TX buffer number if it is not configured
  • Do not use pmkid caching when SSID is changed
  • Fixed Assoc comeback causing invalid state bug
  • Fixed clearing default wifi netif procedure
  • Fixed deep sleep can't reconnect to ap when pmf enable
  • Fixed handling of key RSC
  • Fixed issue reported by static analyser
  • Fixed some ap will ignore auth when rx deauth for a while
  • Fixed static analysis issues
  • Fixed the wrong suggestion of method in NAK for all the methods (#7769)
  • Fixed write to null pointer if malloc failed
  • Ignore unauthenticated encrypted EAPOL-Key data
  • Multiple bugfixes in SoftAP and Station PMF

ESP-WIFI-MESH

Added

  • Added non mesh connections access

Peripheral Drivers

Added

  • Freemodbus: Added the FMB_PORT_TASK_AFFINITY kconfig option for modbus tasks (#6700)

Changed

  • Freemodbus: Changed the default value of FMB_TIMER_PORT_ENABLED to disabled
  • SPI Flash: Decrease the IRAM usage of SPI Flash driver

Fixed

  • ADC: Fixed ADC calibration error after waking up from light sleep
  • Freemodbus: Fixed uart_set_pin() check error in modbus master serial example
  • Freemodbus: Fixed master and slave use the same timer group index (#4699)
  • Freemodbus: Fixed slave destroy bug when master and slave init simultaneously
  • GPIO: Fixed the issue that config struct is not properly initialized
  • GPIO: Fixed some gpio pin num errors on ESP32-S2
  • 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)
  • PSRAM: Fixed heap pool reservation for DMA/internal usage fail issue.
  • SDIO Slave: Fixed the issue that interrupt may be cleared with finished trans unhandled
  • SPI: Fixed crash calling spi_bus_free when not initialized (#8642)
  • SPI: Fixed master HD DMA mode cannot correctly receive data when a TX (no RX) transaction is done
  • SPI Master: Fixed the error log when using SPI_TRANS_USE_TXDATA or SPI_TRANS_USE_RXDATA with data longer than expect
  • Timer Group: Reset timer group peripheral in timer_init() function (#6466)
  • TWAI: Added detection and handling of RX FIFO overrun condition
  • TWAI: Added workarounds for hardware errata on the ESP32 (#2519)
  • UART: Fixed the incorrect channel num on ESP32-S2
  • UART: Fixed RTS mis-reset before sending caused by context switch (#4178)
  • USB: Fixed issue that swapped pins not working through HAL
  • XTAL: Fixed xtal 32k not oscillate or oscillate too slowly issue for ESP32

Core System

Fixed

  • efuse: Validate written data after burning and re-burns it if necessary
  • efuse (ESP32): Fixed burn operation when data was written directly to regs
  • Fixed peripheral clock being undesirably disabled during cpu reset for ESP32-S2
  • Fixed pm lock bug in dual core mode

FreeRTOS

Fixed

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

Power Management

Fixed

  • Fixed cannot lightsleep again after a wakeup from ULP (#6229)
  • Fixed driver using wrong print function in a critical section (#7942)
  • Fixed _rtc_slow_length being incorrectly optimized by compiler
  • pm_impl: Fixed neither enter light sleep nor enter "waiti" state in idle task

LWIP

Fixed

  • Fixed that IPv6 DNS can not work

Bootloader

Added

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

Changed

  • Enable write protection to flash at end of bootloader to increase stability
  • Improved XMC flash stabilities as main flash

Fixed

  • Avoid unnecessary WRSR operation to flash to increase stability
  • Fixed the issue custom uart gpio doesn't take effect

Removed

Storage

Fixed

  • mmap: Fixed the issue mmap cannot be called with pointers to psram
  • nvs: Fixed issues found by Coverity

Tools

Added

  • Docker: Added build arguments to reduce the image size: IDF_CLONE_SHALLOW and IDF_INSTALL_TARGETS
  • idf.py: Added IDF component manager beta version. Dependencies listed in idf_component.yml manifest are downloaded automatically.

Fixed

  • IDF Monitor should flash with the same and unmodified port it was invoked with (#8432)

Build System

Changed

  • Enable the component manager for pure CMake builds by default

Documentation

Fixed

  • FreeRTOS: Fixed broken links in queue.h

ESP-IDF Pre-release v5.0-beta1

21 Aug 22:32
v5.0-beta1
Compare
Choose a tag to compare
Pre-release

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

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

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

Obtaining v5.0-beta1

For full installation instructions, see the ESP-IDF Programming Guide.

The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

Using git

To get this release, use the following commands:

git clone -b v5.0-beta1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.0-beta1
cd esp-idf-v5.0-beta1/

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

Download an archive with submodules included

Attached to this release is an esp-idf-v5.0-beta1.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

This archive can also be downloaded from Espressif's download server:
https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.0/esp-idf-v5.0-beta1.zip

Major changes

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

Major New Features

Support of new SoCs

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

Extended support of existing SoCs

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

Other features

  • Included FreeRTOS SMP Kernel (upstream AWS version)
  • New Wi-Fi features:
    • 802.11r (Fast BSS Transition)
    • PMF support for softAP
    • WPS registrar support in softAP
    • WPA3 OWE support for station
    • WPA3 SAE H2E support for station
  • Toolchain updated to use GCC 11.2, GDB 11.2. Default language standards were upgraded from C11 to C17 and from C++11 to C++20.
  • Added a tool to generate FAT filesystem images as part of the build process.

Major Bug Fixes

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

Breaking Changes

Bluetooth

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

Build System

  • The "make" build system was deprecated in v4.0 in favor of idf.py (cmake). The remaining support is removed in v5.0.
  • driver component is not included by components/esp32* anymore. Applications using driver shall now explicitly require it in their CMakeLists.txt file
  • efuse component is not included by components/esp32* anymore. Applications using efuse shall now explicitly require it in their CMakeLists.txt file
  • Removed COMPILER_DISABLE_GCC8_WARNINGS option
  • Adding non-existent directories to COMPONENT_DIRS or EXTRA_COMPONENT_DIRS is no longer supported and will result in an error.
  • Kconfig option CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS has been removed. The size of time_t type in the toolchain is determined automatically now. See "System Time" chapter of API reference for more information on 64/32-bit time_t support.
  • Components which use esp_timer must add esp_timer to the requirements when calling idf_component_register
  • Components which use lwip, vfs, esp_wifi, esp_event, esp_netif, esp_eth must add add these dependencies to the requirements list when calling idf_component_register.
  • Removed Kconfig option SDK_TOOLPREFIX. Now the toolchain prefix can be fetched by CMake variable _CMAKE_TOOLCHAIN_PREFIX
  • Removed the target components (e.g. esp32), it is no longer necessary to require this component in any CMakeLists.txt
  • It is now necessary to specify PRIVATE, PUBLIC or INTERFACE in target_link_libraries calls to project_elf instead of leaving the default behavior
  • Using CMake versions lower than 3.16 is not supported anymore. Run "tools/idf_tools.py install cmake" to install a suitable version if your OS versions doesn't have one.
  • ESP-IDF v5.0 reorders the applying order of target-specific config files and other files listed in SDKCONFIG_DEFAULTS. Now, target-specific file will be applied right after the file bringing it in, before all latter files in SDKCONFIG_DEFAULTS. (see also ESP-IDF v5.0 migration guide)

Networking

  • esp_https_server: Now servercert variable inherits role of cacert variable
  • esp_https_server: Now cacert variable inherits role of client_verify_cert_pem variable
  • esp_https_server: The return type of the httpd_ssl_stop API has been changed to esp_err_t from void.
  • esp_http_server: http_server.h header is no longer available in esp_http_server.
  • esp-netif: Removed tcpip_adapter compatibility layer, please use esp_netif component directly.
  • esp_netif/esp_wifi: The API esp_netif_get_sta_list() from esp_netif component has been migrated to esp_wifi component and renamed to esp_wifi_ap_get_sta_list_with_ip()
  • Ethernet: esp_eth_ioctl third argument always acts as untyped pointer to memory now
  • Ethernet: esp_eth_phy_new_ksz8041 and esp_eth_phy_new_ksz8081 functions were removed, use esp_eth_phy_new_ksz80xx instead. esp_eth_phy_new_lan8720 was removed, use esp_eth_phy_new_lan87xx instead.
  • Ethernet: Removed deprecated esp_eth_set_default_handlers and esp_eth_clear_default_handlers functions
  • Ethernet: Updated internal EMAC's API esp_eth_mac_new_esp32() to pass two configuration parameters: One general driver's config of eth_mac_config_t type and the other one describes vendor specific options (eth_esp32_emac_t type), such as SMI IO, interface or clock.
  • Ethernet: SPI Ethernet modules initialization changed
  • http_parser: Create new component out of nghttp
  • lwip: DHCP server callback has additional argument with client's info
  • lwip: DHCP server API has been updated to accommodate object-oriented usage. All functions use DHCP server's handle pointer as their first parameter now.
  • lwip: DHCP server API has been updated to return err_t error code in case of failure.
  • nghttp: This component is now moved to idf-extra-components, will be used through component manager
  • OpenSSL: Component has b...
Read more

ESP-IDF Release v4.4.2

07 Aug 21:47
Compare
Choose a tag to compare

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

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

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

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

Download an archive with submodules included

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

Major changes

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

Major Bug Fixes

Breaking Changes

  • esp_crt_bundle: esp_crt_bundle_set API now has additional argument bundle_size and now returns esp_err_t (#8397)
  • Storage/VFS: 2nd parameter (absolute path) removed from the esp_vfs_semihost_register
  • FreeRTOS: vTaskGetSnapshot now returns BaseType_t to indicate status

Known Issues

  • On ESP32-S3, BLE may disconnect in extremely low temperature.

Changelog

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

Bluetooth

Controller

Added

  • Added critical protection for the operations on interrupt status of VHCI environment variables to avoid miss interrupt events.

Changed

  • Reset Bluetooth baseband and MAC to fix the task watchdog triggered during controller initialization due to invalid hardware state after system reset on ESP32-C3 and ESP32-S3

Fixed

  • Initialize all elements of esp_bt_controller_config_t
  • Fixed BLE got disconnected when when modem sleep is disabled and Bluetooth is initialized after Wi-Fi on ESP32-C3 and ESP32-S3

Bluetooth Low Energy

Fixed

  • Fixed the issue in libphy.a that Wi-Fi gets disconnected after Bluetooth is de-initialized
  • Fixed BLE duplicate scan check error for mesh advertising report on ESP32-C3 and ESP32-S3
  • Fixed BLE ke_mem.c assert on ESP32-C3 and ESP32-S3
  • Fixed BLE ke_mem.c assert on ESP32

Classic Bluetooth

Fixed

  • Fixed race condition when accessing bt_util_buf_env buffers in the context of both controller task and interrupt
  • Fixed the EDR mode wrongly cleared by a successful role switch which caused that the 2M/3M package type can not be selected for use.
  • Allow max supported feature page lower than current feature page when handle with the respond of extend features to support for some devices which generate wrongly LMP respond.
  • Safely ignore the assert_err in em_bt_clkoff1_setf when the clock overflow

Bluedroid

Classic Bluetooth

Changed

  • Updated HFP_AG version to 1.7.2
  • Added bd_addr field to read_rmt_name_param

Fixed

  • SPP: Fixed that SPP initiator can not free resources when the connection is failed
  • A2DP: Fixed the failure of being reconnected in A2DP sink example due to the issue in using i2s driver
  • HFP: Fixed the error in HFP(HF) example when performing audio disconnection (#7911)
  • SPP: Fixed SPP crash after calling esp_spp_deinit
  • SPP: Fixed SPP initialization failure without free mutex
  • A2DP: Fixed AVDTP general reject format error
  • A2DP: Fixed A2DP Sink wrong sniff parameters which caused by HID Porting
  • A2DP: Fixed in A2DP sink example that audio playback is clogged due to higher priority of application task in case of heavy workload from the task
  • Resolved type redefinitions in btc_spp.h and btc_hd.h/btc_hh.h
  • HID: Fixed wrong parameter of get_report_by_id_and_type in bt_hidd.c
  • Fixed the linker error of functions not defined when enable memory debug. The according function definitions is included by a macro but the .c file has no access to the macro. Solve the problem by including the macro definition.
  • Fixed memory leak in esp_bt_hidh_dev_report_write and esp_bt_hidh_dev_set_report in bt_hidh.c
  • Added status protection on the processing of inquiry scan result to avoid repeat discovery cancellation which may raise incorrect discovery

Bluetooth Low Energy

Added

  • Added link role parameter for GATT disconnection event
  • Added description for de-initialize bluetooth controller API

Fixed

  • Fixed bluedroid BLE extend advertising parameters detection
  • Fixed BLE extended advertising params check on bluedroid
  • Fixed bluedroid host memory overflow
  • Fixed BLE periodic advertising report will lose data
  • Fixed compilation error when BLE v5.0 is enabled

NimBLE

Added

  • Added check to free keypair if already allocated to avoid memory leak

Fixed

  • Fixed bond not saved properly after re-pairing
  • Sync sending Host Number of Completed Packets command

Blufi

Fixed

  • Fixed an issue that SoftAP mode does not assign ip
  • Fixed an issue that SoftAP current connection always shows 0

ESP-BLE-Mesh

  • Added menuconfig for filtering packets with old SeqAuth
  • Fixed not handling oversized SegN during provisioning

Wi-Fi

Added

  • Added PMF disable API
  • Added HT40 support for espnow & 80211_tx
  • Added changes for unicast key renew for TKIP mic failure
  • Added APIs to check for BTM, RRM support of connected AP

Changed

  • Optimized PHY calibration time for ESP32-C3 and ESP32-S3
  • Updated wpa2 enterprise certificates
  • Enabled GCMP, GMAC for 192 bit configuration
  • Updated wifi doc for espnow/LR/fix rate/disable 11b/multiple antennas
  • Optimized example of wifi station
  • esp_netif: Optimized the null pointer judgment of eb
  • Updated regdomain max channel according to country info from nvs and/or AP
  • Channel 14 is allowed only 11b mode
  • Updated phy mode nvs when softap channel from 14 to other
  • Updated wifi CSI docs
  • Updated wifi beacon timeout docs

Fixed

  • Added some BTM fixes
  • Fixed issue reported by static analyser
  • Fixed build warning for unused variables
  • Fixed phy tx power limit for ESP32-S2/ESP32-C3/ESP32-S3
  • Fixed scanning of AP's with mixed key management
  • Fixed clearing default wifi netif procedure
  • Fixed issue of default AP ssid not set
  • Fixed data loose when WiFi power-save is enabled with Wi-Fi API being called
  • Ignore unauthenticated encrypted EAPOL-Key data
  • Fixed handling of key RSC
  • Fixed smartconfig v2 bssid is zero issue
  • Fixed static analysis issues
  • Fixed the wrong suggestion of method in NAK for all the methods (#7769)
  • Fixed memory leak in phy
  • Fixed some issues related to SoftAP mode change and STA PMF
  • Fixed stale PMF config in NVS issue
  • Fixed linker script issue where noflash scheme was applied to wifi_apb80m_request() and wifi_apb80m_release() even when CONFIG_PM_ENABLE was not enabled
  • Bugfix for close sniffer mode when wifi stop
  • Fixed deep sleep can't reconnect to ap when pmf enable.
  • Fixed some ap will ignore auth when rx deauth for a while
  • Fixed espnow recv unencrypted packets issue
  • Fixed not update phy according to country code
  • Fixed an issue that check whether channel parameter is valid
  • Reset beacon timeout timer when keep alive null works or hw drop beacon
  • Bugfix for qos null update ba ssn
  • Bugfix for wrong configuration of static txbuf
  • Clear old keys before going for new connection
  • Fixed sta reset beacon timeout timer trigger assert issue.
  • Bugfix for optimize beacon timeout issue

Removed

  • Removed group cipher check for PMF connection
  • Remove CSA when switch channel from/to 14 channel

Security

Fixed

  • Flash Encryption: Fixed issue that 4-line flash encryption cannot work normally when 8-line psram enabled (#9244; #9287)

Peripheral Drivers

Added

  • esp_lcd: Support LSB first SPI LCD (#8790)
  • Freemodbus: Add support of freemodbus component on ESP32-S2, ESP32-S3 and ESP32-C3.
  • I80 LCD: Supports frame buffer in PSRAM (#8085)
  • RGB LCD: Support the LCD mode of I2S1 on ESP32
  • SPI_LCD: SPI LCD support trunked color data transfer (#8496)
  • SPI_FLASH: Added support for 16MB octal flash MX25UW12345G (#7996)
  • UART: Added new uart_get_tx_buffer_free_size API to get the free space size of tx ring buffer (#8932, #3078)
  • Temperature Sensor: Added support on ESP32-S3 (#8086)

Changed

  • ESP_LCD: Enabled read rx_param in esp_lcd with I2C transport

Fixed

  • Fixed bbpll calibration fail bug in high temperature on ESP32-S3
  • ADC Calibration: Fixed the assertion failure or returning wrong error code when ADC2 failed the arbitration
  • freemodbus: Fixed uart_set_pin() check error in modbus master serial example
  • GDMA: Fixed the issue that channel object was not allocated from internal memory when CONFIG_GDMA_CTRL_FUNC_IN_IRAM is true but CONFIG_GDMA_ISR_IRAM_SAFE is false
  • GDMA: Fixed thread-safety of channel operations
  • GPIO: Fixed wrong GPI...
Read more

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