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

latest releases: v4.4.8, v5.3-beta2, v5.2.2...
2 years ago

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 number of bytes transferred was incorrect.
  • USB Host/Hub: Fixed enumeration flow. Descriptor lengths are now pre-fetched during enumeration to workaround some non-compliant devices.
  • USB Host/Hub: Fixed handling of sudden disconnects and port recovery.
  • USB Host/Hub: Enumeration will now fetch Manufacturer, Product, and Serial Number string descriptors.
  • USB Host/Hub: Fixed bug where the size of wTotalLength was incorrect.
  • USB Host/MSC: Fixed bug where MSC Host driver would issue MSC resets after enumeration.

Removed

  • I2S: I2S deprecated dma_buf_count and dma_buf_len, use dma_desc_num and dma_frame_num instead
  • LCD: Removed check for hsync vsync GPIO unnecessary for DE mode

Core System

Added

  • trax: Added ESP32-S3 Support

Changed

  • heap: Made multi heap memory regions' priority more reasonable
  • esp_ipc: ipc_isr does not use its own initialization task, it is done from ipc_task()

Fixed

  • console: Fixed LF ('\r') causing console to get stuck if received less than 30ms after the previous character.
  • efuse: Fixed eFuse timing settings issue on ESP32-C3 and ESP32-S3
  • spi_flash: Fixed behavior of esp_partition_get_sha256() in case the image is invalid
  • esp_system: Fixed RTC_WDT protection in esp_restart_noos. This fixes incompatibility with ESP-IDF v3.1 and older bootloaders.
  • Fixed system unable to start up when a toolchain with 64-bit time_t is used (CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS)

Removed

  • eFuse: Free some unused eFuse fields (ESP32-C3/ESP32-H2)

Debugging

Added

  • apptrace: Added ESP32-S3 Support
  • sysview: Add ESP32-C3 into the supported target list
  • debug_stubs: Refactored and added support for RISC-V

Changed

  • gcov: Do not use shrunk ROM's fake stdout and stderr FILE struct

Fixed

  • sysview: Fixed sysview examples build error for ESP32-C3
  • gcov: Fixed interference of gcov dump with normal IPC calls
  • espcoredump: Fixed a bug preventing variables marked as COREDUMP_DRAM_ATTR to be dumped in core file

FreeRTOS

Added

  • Added pm_trace header include that fixed compile error when CONFIG_PM_TRACE was enabled

Changed

  • Changed freertos xtensa port to always inline xPortSetInterruptMaskFromISR and vPortClearInterruptMaskFromISR (#8301)

Power Management

Fixed

  • Fixed ext1 cannot wakeup via RTCIO >= 18 issue

TCP Transport

Fixed

  • Fixed incorrect return value when closing SSL connection

mDNS

Added

  • Added support for zero-size values in TXT records

OTA

Fixed

  • esp_https_ota: Fixed esp_https_ota_begin may return ESP_OK when HTTP status code is not 200.
  • esp_https_ota: Fixed esp_https_ota_begin may exist memory leak.
  • esp_https_ota: Fixed the component to check chip id at start of ota

HTTP Client

Fixed

  • Added caching mechanism to fix data corruption due to body received during fetch header state
  • Fixed that parsing invalid url (with empty hostname) causes crash
  • Fixed memory leak in esp_http_client_example

HTTP Server

Added

  • WebSocket CLOSE frame can support callback function

Provisioning

Fixed

  • wifi_provisioning: Fixed provisioning not stopping in release mode
  • Added check for passphrase length in softAP scheme to fix issue reported in #8063

mbedTLS

Changed

  • Upgrade to release v2.28.0 from v2.28 LTS series.

Bootloader

Fixed

  • Fixed the issue custom uart gpio doesn't take effect

Storage

Fixed

  • NVS: Fixed OOM check wrong pointer issue
  • VFS: Fixed errno value reported by open function (#8036)

Tools

Added

  • idf_size.py: Support .noinit section names (#8428)

Changed

  • idf_tools.py: Diagnostics have been improved in install scripts when creating virtualenv
  • idf-component-manager version has been updated and maximum compatible version set

Fixed

  • Use delay between rename attempts on Windows in the installer (https://esp32.com/viewtopic.php?f=13&t=25962)
  • idf_size: Fixed bug with wrong memory calculation for ESP32-C3, ESP32-H2, ESP32-S3 and ESP32
  • idf_size.py: Identify objects without extensions (*.{o,obj}) in MAP files
  • Fixed stepping and tracing in GDB
  • Fixed core dump decoding failure in IDF Monitor (#8099)

Build System

Added

  • CMake build can now be called from another project, regardless on previously defined CMAKE_*_FLAGS (#7507).

External Libraries

Changed

  • expat: upgrade to release version v2.4.3

Documentation

Added

  • Added user-friendly guide about how to use ws_server_example_test.py
  • Added an example list for ESP-WROVER-KIT
  • Added a note to mck_io_num, to specify that only GPIO0/GPIO1/GPIO3 can be set as MCK signal for ESP32.

Changed

  • Updated document of demo Bluetooth discovery
  • Updated SPP related demos and documents
  • Updated HFP demo README
  • Updated A2DP demo documents
  • README files updated and minor fixes on Bluetooth examples
  • README updated to explain how to use UUID128 for GATT server and client examples
  • Updated copyright date for docs automatically at build time
  • Updated high-level interrupts and interrupt allocation documentation
  • Updated a statement, specifying the heap_caps_malloc usage regarding PSRAM and DMA

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.