Skip to content

ESP-IDF Release v3.1.3

Compare
Choose a tag to compare
@projectgus projectgus released this 18 Feb 05:27
· 35295 commits to master since this release

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

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

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

Major Bug Fixes

  • Fixed an issue where wrong number of cache pages would be mapped if the address was less than 0x20 bytes more than a 64KB page boundary. This bug is also fixed in esptool v2.6, so images generated by the newer esptool will boot correctly even on older bootloaders.
  • Fixed simultaneous use of Bluetooth modem sleep and Dynamic Frequency Scaling
  • Fixed crash during simultaneous use of Wi-Fi, Bluetooth and modem sleep
  • I2C driver: Fixed I2C bus reset issues

Wi-Fi Related

  • Fixed WPS thread safety bug
  • Fixed bug that STA can scan for a channel outside the country regdomain range
  • Fixed issue that Wi-Fi cannot receive packets after waking from light sleep (BBPLL reset issue)
  • Reduced time spent awake to receive more data following either beacons with no buffered data or broadcast data
  • Defragmentation now only applied to data and management frames (other frame types will not be fragmentated)
  • Fixed a bug in APSTA mode where the BA index was incorrectly removed
  • Fixed a bug with incomplete TX state
  • Correctly documented a limitation of CSI data on ESP32 hardware

Bluetooth Related

  • Fixed some bugs where PHY/RTC functions in flash were incorrectly called from ISRs
  • Added PM lock to disable light sleep when Bluetooth is enabled (until underlying issue is fixed)
  • Fixed simultaneous use of Bluetooth modem sleep and Dynamic Frequency Scaling
  • Fixed accept specified SEC auth error
  • Forced some controller variables to always be linked into DRAM
  • Fixed auth_mode error when reconnecting with SMP
  • Fixed crash when checking controller congestion after disconnect

BLE Related

  • Fixed a bug that some advertisements will be lost when scan duplicate filter is enabled
  • Fixed incorrectly saving keys when BLE auth mode is not bonded
  • When scan duplicate filter is enabled, receiving of very similar advertisements is now limited

Classic BT Related

  • Fixed Legacy Pairing failed if remote device name unset
  • Fixed discovery failing to find device after disabling SSP

LWIP related

  • Fixed a mbox thread-safe issue which could lead to a crash in sys_arch_mbox_fetch()

mDNS related

  • Fixed issue where sending search packets after search completed could lead to a crash.
  • Fixed locking in timer task
  • Resolved memory leak when TXT record received multiple times
  • Fixed some error handling cases if malloc() failed
  • Fixed memory leak when mDNS service was stopped
  • Fixed some cases where mDNS queries were not correctly sent depending on order of events
  • Fixed a thread safety issue when sending UDP packets via LWIP

Bootloader related

  • Fixed IROM and DROM swapped in log messages
  • Fixed an issue where wrong number of cache pages would be mapped if the address was less than 0x20 bytes more than a 64KB page boundary. This bug is also fixed in esptool v2.6, so images generated by the newer esptool will boot correctly even on older bootloaders

System Related

  • Debugging: Backtraces starting from inside an ISR now continue out of the ISR
  • Added workaround for Tensilica Erratum 572 (IllegalInstruction exception when zero overhead loop buffer is enabled)
  • The panic handler now dumps a sample of instruction memory following an IllegalInstructionException
  • OTA: Fixed an invalid image error when flash encryption is enabled and an OTA update passes the image in multiple chunks
  • bootloader_support: Fixed a linking bug where bootloader version of __assert_func() could be incorrectly linked to the app
  • VFS: select() on UART now returns immediately when data is buffered
  • VFS: Fixed a bug where esp_vfs_unregister() would remove a parent VFS entry instead of the correct one
  • SHA: When SHA hardware acceleration is enabled, SHA contexts are now aable to be shared between tasks (ie digest finished by a different task to the initiating task).
  • SHA: Replaced semaphores with spinlocks to improve hardware SHA performance

Tooling Related

  • idf_monitor: Now prints a useful error message if the toolchain isn't available
  • idf_monitor: Fixed some Python exceptions when running under MSYS2

Peripheral Driver Related

  • UART: Fixed uart read error bug when using driver with both cores
  • i2c: Slow down I2C bus during bus reset (PR2493 PR2496
  • i2c: Correctly handle an I2C slave device still sending data during bus reset PR2496

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

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

Download an archive with submodules included

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