Skip to content

ESP-IDF Release v3.1.4

Compare
Choose a tag to compare
@igrr igrr released this 22 Apr 03:57
· 34996 commits to master since this release

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

ESP-IDF v3.1.4 is a bugfix-only update for ESP-IDF v3.1.3. Release v3.1.4 is compatible with apps written for ESP-IDF v3.1.x.

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

Known Issues

  • Calling esp_wifi_stop() can lead to a memory leak under some rare circumstances

Major Bug Fixes

  • cmake build system: Apply PSRAM compiler workaround correctly
  • gpio driver: Fixed issue with holding GPIO levels in deep sleep
  • Added configuration option for Wi-Fi IRAM optimization, allows reducing IRAM usage
  • Decouple mesh from Wi-Fi libraries, reducing binary size if Wi-Fi is used without Mesh
  • Fixed Wi-Fi STA failing to connect to some APs (Xiaomi hotspots, some others) after reset
  • Updated some Wi-Fi configuration option ranges and defaults for better performance, especially when using PSRAM
  • Fixed iPhone failing to connect to ESP32 AP (enabling AP BAR receive)
  • Fixed BLE adv reports not returned when sleep is enabled
  • Added flow control support for BLE adv reports
  • Fixed two BLE connection params update issues:
  • Fixed iOS and Windows 10 compatibility error with BLE HID

Wi-Fi Related

  • Updated some Wi-Fi configuration option ranges and defaults for better performance, especially when using PSRAM
  • New configuration option for Wi-Fi IRAM optimization, allows reducing IRAM usage.
  • Decouple mesh from Wi-Fi libraries, reducing binary size if Wi-Fi is used without Mesh
  • Added option to configure number of Wi-Fi management short buffers
  • Fixed several Wi-Fi scan bugs
  • Fixed a crash caused by Wi-Fi static TX buffer alloc/free
  • Fixed iPhone failing to connect to ESP32 AP (enabling AP BAR receive)
  • Fixed ESP32 STA failing to connect to some APs (Xiaomi hotspots, some others) after reset
  • Fixed bug that STA incorrectly deletes BA when receiving DelBA request
  • Added additional out of memory checks in Wi-Fi library
  • Fixed the bug that STA incorrectly receives packets when scanning in connected status
  • Increased the block scan internal timeout value

Bluetooth Related

  • Fixed crash when inquiry stops
  • Added vendor HCI command functionality
  • Fixed assert(8192 0) in rwble.c 234
  • Fixed some warnings when Bluedroid logging was disabled

Coexistence

  • Fixed LC protection cause memory corrupted (Strange crash like IllegalInstruction, LoadProhibited and ...)
  • Fixed Bluetooth disconnecting due to too many reset BB
  • Fixed bug where no TBTT would be generated after receiving wrong Wi-Fi beacon (when coexistence is enabled)

BLE Related

  • Fixed iOS and Windows 10 compatibility error with BLE HID
  • Fixed uncommon crash when BE performs re-connect/re-scan/re-adv
  • Fixed two connection params update issues:
    • Connection parameters update cause link loss while data is being sent
    • BLE disconnect while connection parameters is reject by LL_REJECT_IND
  • Fixed not checking scan window and interval when setting scan parameters
  • Fixed BLE not sending or receiving packets under some conditions
  • Fixed esp_ble_gatts_get_attr_value() API error
  • Added flow control support for BLE adv reports
  • Fixed adv reports not returned when sleep is enabled

Blufi

  • Fixed a bug when preparing to write

LWIP related

  • Fixed LWIP autoip memory leak

Ethernet related

  • Increase Ethernet task stack size and make configurable

mDNS related

  • Fixed memory leak when query for services receives multiple PTR entries for one instance
  • Fixed possible crash when mdns_free called while action queue not empty
  • Fixed invalid query_txt
  • Fixed memory leak in pbuf if tcpip_adapter failed to get network interface
  • Fixed possible crash when packet queued for transmit referenced a deleted service
  • Fixed a race condition when updating packet data from a user task if allocation/queueing failed
  • Fixed a possible deadlock in mdns deinit when calling mdns_free()
  • Fixed concurrent access to mdns PCBs when starting the service thread
  • Fixed a possible crash when probing a particular interface whose network has naming conflicts
  • Fixed task synchronization to use a semaphore not a mutex

Bootloader related

  • Fixed issues when bootloader was compiled for a different CPU frequency than the app (#2731)

System Related

  • freertos: Made xPortGetCoreID() function volatile, fixing an issue where core ID may not be correctly updated when called twice in an un-pinned function. (#3093)
  • heap: Added checks for integer overflows
  • psram: Fixed issue where some files (*lock.c, *creat.c) were incorrectly linked to IRAM when PSRAM was enabled

Peripheral Driver Related

  • gpio: Added new APIs for holding GPIO levels in deep sleep
  • rmt: Added missing get function to RMT API: rmt_get_idle_level() (#2666)
  • rmt: Suppressed error message from rmt_wait_tx_done() if wait_time==0 (allows for polling) (#2666)
  • spi: Fixed bug connecting SPI peripheral to read-only pins (#2455)

Protocol Related

  • esp_tls config structure cacert_pem_bytes is now a mutable integer

Storage Related

  • nvs: Fixed out of memory issues due to lazy NVS HashListBlock cleanup (#1642)

Tooling Related

  • idf_size: Fixed sorting of libraries in idf_size.py output
  • kconfig: Fixed compatibility with very old versions of "flex"
  • build system: Fixed some situations where EXTRA_COMPONENT_DIRS finds components in the wrong directories.
  • cmake build system: Apply PSRAM compiler workaround correctly
  • cmake build system: Disable stack protector in startup code (#2990)
  • cmake: Fix some cases where python scripts were executed directly, not via PYTHON variable (
  • nvs_util: Fixed support for writing multiple single pages of big blob data (#3011)
  • nvs_util: Disable multipage blob support by default (requires configuration option to be supported in IDF v3.1 projects)

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

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

Download an archive with submodules included

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