github espressif/esp-idf v4.4.4
ESP-IDF Release v4.4.4

latest releases: v5.3-beta1, v5.1.4, v5.4-dev...
15 months ago

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

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

Obtaining v4.4.4

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

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

Using git

To get this release, use the following commands:

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

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

Download an archive with submodules included

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

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

Major changes

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

Major Bug Fixes

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

Breaking Changes

  • Power management: esp_light_sleep_start now returns two error num when sleep fails: ESP_ERR_SLEEP_REJECT and ESP_ERR_SLEEP_TOO_SHORT_SLEEP_DURATION
  • Wi-Fi: Modified maximum Softap connection number and ESP-NOW encrypted connection number.
  • esp_flash_encrypt: In API to set flash encryption to release mode, if the target supports it then enable Secure ROM DL mode instead of disabling it completely.

Changelog

Bluetooth

Controller

Changed

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

Bluetooth Low Energy

Added

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

Changed

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

Fixed

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

Classic Bluetooth

Fixed

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

Bluedroid

Classic Bluetooth

Added

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

Changed

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

Fixed

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

Removed

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

Bluetooth Low Energy

Added

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

Changed

  • Reduced the stack consumption of BTU_TASK, saving 609 bytes

Fixed

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

NimBLE

Added

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

Changed

  • Updated check for reattempt connection code

Blufi

Added

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

ESP-BLE-Mesh

Added

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

Fixed

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

Coexistence

Fixed

  • Fixed part of modem module not reset when power up

Wi-Fi

Added

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

Changed

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

Fixed

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

ESP-WIFI-MESH

Fixed

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

Security

Fixed

  • esp_flash_encrypt: In API to set flash encryption to release mode, if the target supports it then enable Secure ROM DL mode instead of disabling it completely.

Peripheral Drivers

Added

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

Changed

  • esp_lcd: Added esp_lcd_panel_disp_on_off function and it's recommended to replace the esp_lcd_panel_disp_off function
  • freemodbus: Synced to upstream esp-modbus v1.0.7 via git-subrepo
  • freemodbus: Updated/removed default Kconfig options for the updated component
  • freemodbus: Updated docs to describe component usage, make links to component documentation
  • USB Host: USB Host Library transfer API now checks that users do attempt to submit an already inflight transfer, and will return an error if attempted (#8748)

Fixed

  • HAL: Fixed UART LL functions can't compile with cxx (#10106)
  • I2C: Fixed some functions that are not placed in IRAM (#10079)
  • I2C: Fixed the issue that the I2C bus reset will also affect other buses that are not stalled in error. (#7144)
  • I2S: Fixed I2S tx incomplete auto clear (#9882)
  • MCPWM: Fixed the duty cycle only gets updated on TEZ event (#9904)
  • MCPWM: Fixed MCPWM driver that will return the incorrect value if input wrong parameters
  • RMT: Fixed potential memory leak in the driver (#10173)
  • RTCIO: Fixed the issue that ESP32-S3 GPIO 19 and 20 can not be used by the RTC function
  • SPI Slave: Fixed CS signal mapping issue when other bus signals are routed via IOMUX but CS is routed via GPOIO Matrix
  • USB Host: Fixed bug where calling usb_host_device_open() would sometimes not be able open a device if the device was already opened by another client.
  • USB Host: Fixed bug where calling usb_host_interface_claim() would sometimes allocate an IN EP as an OUT EP.

Removed

  • PSRAM: Removed unused CS and CLK IO kconfig options for ESP32-S2 and ESP32-S3

Core System

Added

  • eFuse: Added major and minor versions for wafer and eFuse block

Changed

  • RTC: Improved XTAL stability when sleep (ESP32)
  • Console: Upgraded argtable3 library to version 3.2.2 (#9907, #10016)

Fixed

  • ULP-RISCV: Fixed spurious COCPU trap wakeups on S3 by always forcing COCPU clock on
  • kconfig: Fixed non-visible deprecated configs missing from sdkconfig.h
  • Fixed time jump after reboot (#9448)
  • Fixed panic handler output not being printed to USB_SERIAL_JTAG when it was selected as a secondary console (#10027)
  • Fixed calibration failure on rtc8m clock after cpu/core reset as 8md256 clock is not enabled during calibration
  • heap: Fixed excessive heap allocator overhead introduced in v4.3 release, increasing heap size by ~8KB (#7822)
  • intr_alloc: Fixed freed interrupt sources not being able to be allocated again with different flags
  • Fixed the bug that the reboot is stuck after the ESP32-S3 core1 enters the panic (#10320)
  • Suppress CPU crashes and memory issues under extreme temperatures on a small amount of ESP32C3 chips
  • Fixed the issue that the esp_rom_printf can't work if the ROM log is disabled
  • Fixed the wrong usage of esprv_intc_int_set_type function that passed in a bitmap parameter
  • Fixed the wrong baud rate of UART1 in the 2nd bootloader

FreeRTOS

Added

  • Added missing ESP_PLATFORM preprocessor directive for FreeRTOS static data structs (#9785)
  • Added missing header include for esp_chip_info.h to port.c (#10310)

Fixed

  • Fixed bug where unpinned task is automatically pinned to the current core after it's interrupted by an ISR and FPU is used during processing interrupt

Removed

  • Removed bad assert check for inheritance in xQueueSemaphoreTake() that could be falsely triggered when running with multiple cores (#10199)

Power Management

Changed

  • Allowed using touch/ULP with RTC_PERIPH domain (including EXT0 wakeup source)

Fixed

  • sleep: Fixed current leakage when hold digital GPIO during deep sleep
  • HAL/GPIO: Fixed digital GPIO can not disable hold during deep sleep (ESP32-C3/ESP32-S2/ESP32-S3)
  • HAL/GPIO: Fixed digital GPIO can not enable hold during deep sleep when force_unhold set (ESP32/ESP32-S2/ESP32-S3)
  • Fixed BT sleep flow hangs in btdm_sleep_clock_sync

LWIP

Added

  • Added TCP Fin2 timeout configuration
  • Added on demand timers for several modules to improve power efficiency (updated DNS timer, IPv4/IPv6 reassembly timer and DHCP fine timer)

Fixed

  • Fixed long time to get IP
  • Fixed ICMP ping module issues with potential ping task stack overflow

HTTP Client

Fixed

  • Fixed issue with cached data from previous connection in case of URL redirection

HTTP Server

Fixed

  • Fixed initializers missing in esp_https_server (#10306)

Provisioning

Changed

  • wifi_provisioning: Disabled by default the Forcing of BLE encryption requirement on provisioning characteristics.

Fixed

  • wifi_provisioning: Fixed provisioning manager to retry when error code is WIFI_REASON_ASSOC_EXPIRE

Bootloader

Fixed

  • User data in rtc_retain_mem is now ignored when determining whether to erase the structure or not.

ESP-TLS

Fixed

  • Fixed memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled.

ESP-MQTT

Fixed

  • Fixed MQTT Ping message timeout processing
  • Fixed transitions between start() and stop() that could cause the client to be unable to start again (espressif/esp-mqtt#239)

Tools

Changed

  • Upgraded gdb version to 11.2_20220823 - fixes dependency on libpython2.7 (#6334)
  • Upgrade OpenOCD version to v0.11.0-esp32-20221026

Fixed

  • Restrict bitstring package version which is compatible with supported Python versions
  • Fixed installation on Ubuntu 22.04 (and probably later versions) (#9931)
  • Fixed idf.py monitor read on Linux target
  • Temporary disable gdbgui on Python 3.11 because it is not support by the upstream package (#10116)

External Libraries

Changed

  • expat: Upgraded expat to release v2.5.0

Documentation

Fixed

  • Fixed broken link to the console API reference (#10087)
  • Fixed a typo in touch_sensor.h of ESP32-S2 and ESP32-S3
  • Fixed Secure DL mode documentation about flash read being unsupported

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.