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

latest releases: v5.3.1, v5.0.7, v5.3...
2 years ago

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 (#7321)
  • SDIO Slave: Fixed the issue that DMA descriptors allocated to non-DMA capable area
  • SDIO Slave: Fixed the issue that interrupt may be cleared with finished trans unhandled
  • Timer Group: Fixed the issue that timer group can't re-alarm if auto-reload is disabled (#8095)
  • Touch sensor: Fixed the issue measure times is set to wrong value during deep sleep on ESP32. (#6895)
  • UART: Ensure the driver object is in SRAM even PSRAM is malloc-able (#7044)
  • UART: Add missing critical section wrappers around rx_buffered_len (#6396)

Core System

Changed

  • Watchdog Timers: Task WDT now prints a backtrace when triggered

Fixed

  • SoC: Added dummy bytes to end of flash.text to prevent errors with CPU prefetching instructions past the end
  • Fixed longjump function to be context switch-safe
  • Fixed the internal devices/registers access corruption due to concurrent read/write by a spinlock.
  • C++: Fixed C++ exception stubs. No linkage of large unwinding code parts when building with -fno-exception anymore.
  • esp_event: Fixed and improved docs
  • newlib: Fixed FD_ISSET macro when n==-1
  • partition_table: Fixed case when a few similar to otadata partitions are in the table
  • efuse: Fixed a bug related to the non-sequential way of describing eFuses in efuse_table when such fields go together sequentially
  • Fixed power management lock bug in dual core mode

Debugging

Added

  • Gcov: Added ESP32-S2 support

Fixed

  • coredump: Fixed EPC and EPS register values printed by espcoredump.py
  • Gcov: Fixed ESP32 gcov dump issue
  • coredump: Fixed ESP-specific panic reasons handling

FreeRTOS

Fixed

  • esp_ringbuf: Fixed a bug where the Rx and Tx semaphore release sequence was incorrect in xRingbufferSend and xRingbufferSendFromISR functions.
  • esp_ringbuf: Fixed a bug where comparision between a signed and unsigned operand resulted in incorrect free size for no-split/allow-split buffers (#7344)

Power Management

Fixed

  • sleep: Fixed driver using wrong print function in a critical section (#7942)

LWIP

Added

  • Added configuration to disable DHCP client identification

Fixed

  • Added missing extern "C" directive in dhcpserver header file.
  • Fixed DNS server index to overflow to DNS_MAX_SERVERS causing LWIP_ASSERT (to enable local queries when no DNS server is set, #6878)

OTA

Fixed

  • otatool: Fixed a crash when imported as external python lib
  • otatool: Fixes read_ota_partition cmd, required output arg

HTTP Client

Changed

  • Updated the root certificate of https examples

Fixed

  • Fixed memory leak identified by cppcheck
  • Fixed header truncated when responded header length over buffer_size
  • Fixed wrong handling of an EAGAIN case
  • Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request

Provisioning

Fixed

  • Fixed wifi warning in wifi_prov_mgr application

mbedTLS

Changed

  • Upgrade to latest bugfix release v2.16.12

Bootloader

Added

  • Added anti-FI checks around secure version in anti-rollback scheme

Fixed

  • Fixed psram cache issue work-arounds also being applied to the bootloader
  • Fixed the issue that SPI Flash ROM functions are not correctly linked when CONFIG_SPI_FLASH_ROM_DRIVER_PATCH not enabled (#7508)
  • Fixed and re-enable bootloader_debug_buffer function for logging relevant Bootloader buffers

ESP-TLS

Fixed

  • Fixed esp_mbedtls_write API when 0 bytes are written

Storage

Changed

  • VFS: timeout of select function is now POSIX compliant.

Fixed

  • vfs/uart: Fixed memory leak identified by cppcheck

Tools

Added

  • IDF component manager beta support has been added. Dependencies listed in idf_component.yml manifest are downloaded automatically.

Changed

  • Upgrade OpenOCD version to v0.11.0-esp32-20211220
  • idf_tools.py: Change AppData seeder to pip seeder
  • Constrain the cryptography package version in order to avoid breaking changes
  • Constrain version of the cffi package for 3.6 or older Python versions
  • Use delay between rename attempts on Windows in the installer (https://esp32.com/viewtopic.php?f=13&t=25962)

Fixed

  • Fixed export.bat "/tools/idf.py not found" issue (#7605, #7927)

Build System

Added

  • test_utils: Added extern C decl to ccomp timer

Changed

  • Define IDF_VERSION_MAJOR, IDF_VERSION_MINOR, IDF_VERSION_PATCH variables during the early expansion phase of component CMakeLists.txt file

External Libraries

Changed

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

Documentation

Fixed

  • Fixed ADC pad number error, and MOSI error
  • Fixed OpenOCD debug level option
  • Fixed the default maximum length of SPI transaction

Examples

Added

  • esp-modem: Added access technology used by the modem.
  • esp-modem: Added get operator functionality for BG96 and SIM800L.

Fixed

  • esp-modem: Fixed PPP stack smashing protect failure in OVERALL mode

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.