Skip to content

Releases: espressif/esp-idf

ESP-IDF Pre-release v3.2-beta3

15 Mar 04:58
Compare
Choose a tag to compare
Pre-release

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

v3.2-beta3 is a prerelease of ESP-IDF v3.2. See below for a list of known issues in this beta release.

ESP-IDF v3.2 is a minor update for ESP-IDF v3.1.x. Release v3.2 is compatible with apps written for ESP-IDF v3.1.x, but features in v3.2 may not be available in earlier versions.

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

Known Issues

  • Bluetooth modem sleep may infrequently cause BLE scans to fail until next reset
  • Rare ASSERT or crash caused by BLE connect/scan/adv when Wi-Fi triggers lots of interrupts (for example, Wi-Fi is running a throughput test) or high priority task swtich (equal to or greater than Bluetooth controller task priority).
  • Rare ASSERT or crash caused by BLE scan/adv stop or disconnect because memory corrupted in BLE controller memory pool.
  • BLE controller will ASSERT during scan if host is not able to handle adv reports in time (for example, application is printing a lot of logs so CPU can't process adv reports).
  • If LWIP Auto IP is enabled, switching Wi-Fi mode will cause a memory leak.
  • Watchdog timeout when using an RSA 4096-bit key to connect to WPA2-Enterprise (EAP-TLS) AP.
  • SoftAP mode doesn't support Wi-Fi power save. Stations with Wi-Fi power save enabled could lose some packets sent from SoftAP.
  • Rare memory leak in Wi-Fi Mesh
  • FreeRTOS xPortGetCoreID() function may return wrong core on un-pinned tasks
  • Rare crash in mDNS
  • When system is printing to an unbuffered stream, mesh task stack overflow may occur

Major New Features

Breaking Changes

  • RMT peripheral: Removed incorrect rmt_item16_t register access type. Use existing rmt_item32_t instead.
  • ESP-MESH: When Mesh IE encryption is enabled, Mesh V3.1 devices cannot connect to Mesh V3.2 devices. Devices with unencrypted Mesh IE can connect between versions, although features added in V3.2 will not work well in a mixed-version mesh.

Changes not compatible with earlier versions

These changes do not require any action when updating to V3.2, but will require consideration if moving from V3.2 to an earlier version.

  • NVS: Support has been added for NVS blobs larger than 1984 bytes. NVS partitions created from earlier ESP-IDF versions will be automatically updated when written from ESP-IDF V3.2. NVS partitions written from ESP-IDF V3.2 are not compatible with the NVS format used by earlier versions of ESP-IDF. It is possible to support the updated NVS partition format in ESP-IDF v3.1.x via the "Enable multi-page blob support" config option.
  • Wear Levelling: Wear Levelling flash partition format has been updated to Version 2, to support flash encryption. Version 1 Wear Levelling partitions will be automatically updated to Version 2. Version 2 partitions are not compatible with ESP-IDF V3.1.x or earlier.

Wi-Fi Related

  • Added internal API to enable or disable transmitting WiFi MAC frame with fixed rate.
  • Fixed bug that ESP32 crashes because of WiFi static TX buffer alloc/free.
  • Enabled Soft-AP receiving BAR to fix the issue that iphone fails to connect to Soft-AP.
  • Fixed the issue that STA fails to connect to some APs after reset.
  • wpa_supplicant: Implemented BIGNUM and ECC crypto wrapper apis for ESP using mbedtls.
  • Fixed the index of the invalid channel state information(CSI) data.
  • Corrected a mistake of CSI sub-carrier index in Wi-Fi documentation.

Smartconfig Related

  • Added support for broadcast packets sent by newer versions of ESP-TOUCH (useful for 5GHz router compatibility). Multicast packets sent by earlier versions of ESP-TOUCH are also still supported.
  • Fixed the declaration of remote_ip in sc_ack_send_task()

ESP-MESH Related

  • Note: When Mesh IE encryption is enabled, Mesh V3.1 devices cannot connect to Mesh V3.2 devices. Devices with unencrypted Mesh IE can connect between versions, although features added in V3.2 will not work well in a mixed-version mesh.

New Functionality

  • Removed dependencies which cause mesh code to be linked even if mesh is not used
  • Dynamically malloc the routing table
  • Support for not configuring the network channel
  • Support not configuring the router BSSID even if the router is hidden
  • Added allow_channel_switch to mesh configuration
  • Added allow_router_switch to mesh router configuration
  • Support handling beacon without IE of DS Parameter Set
  • Support dynamically modify IE encrypt after mesh is started
  • Automatically detect and resolve root conflicts when router BSSID is not set
  • Modify the max routes limitation from 300 to 1000
  • Add an event MESH_EVENT_NETWORK_STATE that contains information about whether there is a root in the current network
  • Add APIs esp_mesh_disconnect() and esp_mesh_connect()
  • RAM usage reduced 3KB RAM by removing an unnecessary task

Fixes

  • Fixed STAs can not detect disconnection from AP when encrypt transmission is used
  • Fixed memory leak when esp_mesh_stop() is called, the memory occupied by the transmitting remove announcement is not released
  • esp_mesh_connect() will be ignored if mesh automatic reconnection is enabled
  • Fixed vote reason is cleared before vote is done
  • Fixed issues in the example of manual_networking when mesh network is encrypted
  • When root can not connect to the router due to NO_MORE_STAS (reason code:5), root will stop re-connection and perform MESH_NWK_LOOK_FOR_NETWORK
  • Fixed disconnection caused by receiving a deauth frame from non-parent node during scanning
  • Fixed routing table redundant issue due to remove announcing is not 100% reliable
  • Fixed when a STA has not yet completed the 4-way handshake but the max replay count is reached, AP does not deauth the STA
  • New logic: During parent selection, the AP which is found without extended associated IE will be considered it has the same router BSSID as device itself
  • When STA leaves from AP, AP will now always post SYSTEM_EVENT_AP_STADISCONNECTED to mesh layer regardless of whether the STA has passed the encrypted authentication or not
  • Fixed ap_loss that occurs when the parent turns off the mesh function and becomes a normal Wi-Fi with a different SSID
  • Fixed in the process of re-voting to select the root, the device votes for itself even though it does not meet the conditions of being a root
  • Fixed issues in esp_mesh_recv_toDS() when stopping the mesh
  • When the user specifies a parent for the device, the device will now set the authmode and password of its Soft-AP mode to the same value as the specified parent
  • Fixed failure of mesh stop caused by block-sending
  • Fixed when FIXED_ROOT is set, 2nd layer devices can not receive mesh event ESP_ERR_MESH_NO_PARENT_FOUND
  • Fixed when FIXED_ROOT is set and the root turns off mesh function, 2nd layer devices do not look for new parents
  • Now disconnects from parent/router when the DSSS channel in received beacon is different from the home channel

Bluetooth Related

Coexist

Fixes

  • Fixed LC protection cause memory corrupted (Strange crash like IllegalInstruction, LoadProhibited and ...)

Classic BT

  • Added Secure Simple Pairing
  • Added Legacy Pairing

BLE Related

New Functionality

  • Added esp_ble_gap_clear_rand_addr() function to clear random address
  • Added sequential check when add include service
  • Added “service from” param in ESP_GATTC_SEARCH_CMPL_EVT
  • Added gatts send service change indication API
  • Added peer addr type check when set adv params
  • Added auto disconnection when ACCEPT_SPECIFIED_SEC_AUTH operation is failed
  • Added set/clear static passkey option in esp_ble_gap_set_security_param()
  • Added attr_handle for ESP_GATTS_CONF_EVT
  • Added advertisement data filter in scan duplicate

Fixes

  • Optimize bluetooth memory debug
  • Fixed PASSERT_PARAM(2051 0) error generated in llc_util.c
  • Fixed wrong return call...
Read more

ESP-IDF Release v3.1.3

18 Feb 05:27
Compare
Choose a tag to compare

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

ESP-IDF Release v3.1.2

03 Jan 06:09
Compare
Choose a tag to compare

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

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

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

Wi-Fi Related

  • Fix bug that MIC verification fails on soft-AP mode
  • Modify mesh root to have same behavior as normal Wi-Fi STA in state change
  • sniffer: Fix bug where control packets were not captured
  • sniffer: Fix issue where disabling sniffer would permanently disable Wi-Fi STA mode, if both were being used together.
  • Fix crash in soft-AP mode
  • Fix ACM (Admission Control Management) bug
  • Enable RX BAR (Block ACK Request)
  • Fix issue which causes an iOS device to use 802.11g data rate when connecting to ESP32 AP, instead of 802.11n.
  • Fix issue which causes an ESP32 in station mode to disconnect from certain APs which announce two SSIDs.
  • Fix occasional failure of esp_restart() or esp_wifi_stop() in Wi-Fi/BT coexist mode.
  • Add a timer which is started by esp_wifi_stop(). Stop Wi-Fi forcibly once the timer expires.

Bluetooth Related

BLE Related

  • Add set default passkey function to set static passkey
  • Add option to only accept specified Authentication
  • Add BLE disconnect when ACCEPT_SPECIFIED_SEC_AUTH failed
  • Check peer_addr_type field of esp_ble_adv_params_t and return error if the value is invalid
  • Fix rare BLE assert(32768, 0) or assert(65536, 0) crashes in controller rwble.c
  • Fix BLE asserts when Wi-Fi coexistence is enabled

Classic BT Related

  • Allow dynamic allocation of SBC encoder/decoder buffer used in A2DP
  • SPP: Fix service_name buffer size
  • SPP: Add profile descriptor list

Controller Related

  • Fix ACL RX buffer corruption if a high priority task blocks the Bluetooth task
  • Fix a crash which may happen when BT controller is disabled while BLE is in use
  • Fix Wi-Fi issues (timeouts, buffer errors) after disabling controller
  • Fix Wi-Fi issues (RX failures, TX timeouts, lack of buffers) which occur when disabling BT controller
  • Fix interrupt watchdog timeout when Wi-Fi coexistence is enabled

Bluetooth Sniffer Mode

  • Fix miscalculation of sniff anchor point resulting in connection supervision timeout
  • Allow setting sniff attempts larger than 255

Ethernet related

  • Fix potential memory leak when L2_TO_L3_RX_BUF_MODE is not selected

LWIP related

  • Fix rare crash when closing a TCP socket, due to race between sys_arch_mbox_fetch/sys_arch_mbox_post and sys_arch_mbox_free

mDNS related

  • Fix crash on network change

System Related

  • Do not attempt to load PHY init data when NVS is not initialized
  • Allow interrupts to be allocated and freed on different cores
  • Support 64MBit PSRAM (1.8V and 3.3V)
  • Fix deadlock when accessing AES, SHA, MPI hardware accelerators (#2295)
  • freertos: use xTaskQueueMutex to protect tick count
  • mbedtls: Fix compilation errors when CONFIG_MBEDTLS_HARDWARE_AES is disabled
  • esp_timer: Add semaphore to prevent deleting timers while callbacks are dispatched

Storage Related

  • fatfs: Fix a potential deadlock caused by logging in critical sections

Peripheral Driver Related

  • i2c: enable I2C master hardware filter by default
  • spi: fix crash when ISR callbacks are not in IRAM but driver configuration enables ISRs in IRAM.

Obtaining v3.1.2

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v3.1.2.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.2.zip

ESP-IDF Release v3.0.7

14 Dec 07:35
Compare
Choose a tag to compare

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

ESP-IDF v3.0.7 is a bugfix-only update for ESP-IDF v3.0.6. Release v3.0.7 is compatible with apps written for ESP-IDF v3.0.x.

The latest stable version of ESP-IDF is v3.1.1.

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

WiFi Related

  • Fix the bug that sniffer can't catch control packets
  • Fix a crash in soft-AP mode
  • Fix ACM (Admission Control Management) bug
  • Do not attempt to load PHY init data when NVS is not initialized
  • Enable RX BAR (Block ACK Request)
  • Fix issue which causes an iOS device to use 802.11g data rate when connecting to ESP32 AP, instead of 802.11n.
  • Fix issue which causes an ESP32 in station mode to disconnect from certain APs which announce two SSIDs.

Bluetooth Related

  • Fix a bug in managing ACL RX buffer pointer
  • Fix a crash which may happen when BT controller is disabled while BLE is in use.
  • Fix Wi-Fi issues (RX failures, TX timeouts, lack of buffers) which occur when disabling BT controller.
  • Check peer_addr_type field of esp_ble_adv_params_t and return error if the value is invalid.

lwIP related

  • Fix rare crash when closing a TCP socket, due to race between sys_arch_mbox_fetch/sys_arch_mbox_post and sys_arch_mbox_free.

System Related

  • Fix deadlock when accessing AES, SHA, MPI hardware accelerators (#2295)

Obtaining v3.0.7

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v3.0.7.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.0.7.zip

ESP-IDF Release v3.1.1

01 Nov 13:43
Compare
Choose a tag to compare

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

ESP-IDF v3.1.1 is a bugfix update for ESP-IDF v3.1. Release v3.1.1 is fully compatible with apps written for ESP-IDF v3.x.x.

(If updating from apps written for ESP-IDF v3.0.x that use esp_ping, note one change in the v3.1 release notes.)

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

Security Related

Bluetooth Related

  • Controller: Bluetooth modem sleep now enabled by default in configuration
  • Controller: Fix crash under some multiple connection scenarios
  • Controller: Fix possible hung controller after waking from sleep mode
  • Classic: Support Legacy Pairing
  • Classic: SCN 1 is no longer reserved for HFP only
  • Dual Mode: Fix bug that setting BR/EDR discovery mode will stop BLE advertising
  • Dual Mode: Fix bug removing a bonded device when both BLE & BT Classic are connected
  • BLE: Update private address after private address interval
  • BLE: Fix TX power reported in advertising data. If changing BLE TX power while advertising it is currently necessary to call esp_ble_gap_config_adv_data() to update the advertised value.
  • BLE: Fix failure to get bonded device list under some circumstances.
  • BLE: Fix failure to remove bonded device.
  • A2DP: Fix bug that sink device will also incorrectly register an A2DP source endpoint
  • A2DP: Fix incorrectly initialising AVDTP connection if A2DP service discovery fails
  • A2DP: Fix incorrectly initialising AVRC connection if A2DP connection setup fails
  • HFP: Fix incorrect length of HCI SCO packet size
  • SDP: Fix finding service by UUID always returns success
  • SMP: Don't incorrectly save key data when reconnecting
  • RFCOMM: Fix a crash
  • Blufi: Fix an MTU problem seen with iPhone X
  • Fix BTU task watchdog timeout after pairing with iPhone

WiFi/BT Coexistence Related

  • Fix BT hardware coexistence problems where disabling previously active Bluetooth controller causes WiFi to not operate correctly
  • Fix occasional watchdog timeout in WiFi when software coexistence is enabled
  • Fix issue where BT may stop receiving data if software coexistence is enabled
  • Fix BLE scan performance when software coexistence is enabled

WiFi Related

  • WPA2 Enterprise fixes
  • Fix error result calling esp_wifi_disconnect() if WiFi is not started or initialized.
  • Move two global variables to DRAM
  • Fix AMPDU RX sequence compatibility issue
  • Optimize scan compatibility when scanning all channels
  • Fix some modem sleep bugs
  • Update API to set CSI channel filter and HT_LTF data generation
  • Fix missing disconnect event if disconnected in an environment with multiple matching SSIDs
  • Fix BA session setup
  • Fix WiFi memory leak
  • Fix WiFi timer inaccuracy when sleep mode enabled

LWIP Related

  • Fix bug that SYSTEM_EVENT_STA_GOT_IP event was not sent when gateway is 0.0.0.0
  • Add option (enabled by default) to send gratuitous ARP periodically
  • Fix for failing to create a non-blocking TCP or UDP socket after multiple sockets are created and closed

mDNS Related

  • Fix mdns_service_txt_set() not correctly allocating memory for TXT records

Documentation Related

  • Update Eclipse setup guide for parallel builds

Examples Related

  • Expand content of Bluetooth A2DP source and sink examples, example READMEs
  • Fix default controller mode config in some Bluetooth examples
  • Release some controller memory in some Bluetooth examples

ESP-MESH Related

  • Restructure and update the Mesh documentation
  • Support setting mesh type, mesh ID, router and IE crypt func&key at any time after mesh is initalized
  • Support modifying parent at any time after mesh is configured
  • Modify manual networking example
  • Fix issues in root conflict handling
  • Add maximum length of beacon to component configuration
  • Fix issue when receiving a beacon without DSSS

System Related

  • NVS: Add optional support for blobs larger than 1984 bytes (CONFIG_MP_BLOB_SUPPORT). If enabled, blob size is limited by NVS partition size.
  • NVS: Add support for NVS Encryption when flash encryption is enabled (see NVS documentation for details)
  • Fix esp_read_mac() function when using two universal MAC addresses
  • sleep: keep RTC_SLOW_MEM powered on if RTC_NOINIT is used (previously, RTC_NOINIT values were lost).
  • Abort when a single core ESP32 boots a dual core firmware
  • Secure Boot: Fix secure boot digest generation for bootloader image length where (len%128 < 32)
  • Secure Boot: Support signing apps without enabling hardware secure boot. Allows the same OTA signature checks as when secure boot is enabled.
  • Secure Boot & Flash Encryption: Support 3/4 Coding Scheme (see website for details).
  • OTA/app_update: Fix intermittent failure of firmware updates, more prevalent when PSRAM is in use

Driver Related

  • sdio_slave: Fix recv crash if transaction finishes and loads at the same time
  • sdio_slave: Fix ret_queue crash when device is being reset by the master
  • spi_master: Fix command and address fields when LSB_FIRST is enabled
  • spi_slave: Fix RX DMA broken if master sends an unexpected transaction

Build System

  • cmake: "main" is a component again, similar to the GNU Make build system
  • cmake: Fix "make flash" and "ninja flash" targets when using CMake

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

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

Download an archive with submodules included

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

ESP-IDF Release v3.0.6

01 Nov 11:15
Compare
Choose a tag to compare

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

ESP-IDF v3.0.6 is a bugfix-only update for ESP-IDF v3.0.5. Release v3.0.6 is compatible with apps written for ESP-IDF v3.0.x.

The latest stable version of ESP-IDF is v3.1.1.

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

Security Related

WiFi Related

  • Fix WiFi timer inaccuracy when sleep mode enabled
  • Fix WiFi memory leak

Bluetooth Related

  • Dual Mode: Correct TX power levels (esp_power_level_t)
  • BLE: Fix crash on advertising start

Obtaining v3.0.6

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v3.0.6.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.0.6.zip

ESP-IDF Release v3.0.5

19 Oct 07:18
Compare
Choose a tag to compare

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

ESP-IDF v3.0.5 is a bugfix-only update for ESP-IDF v3.0.4. Release v3.0.5 is compatible with apps written for ESP-IDF v3.0.x.

The latest stable version of ESP-IDF is v3.1.

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

Bluetooth Related

  • Dual Mode: Fix bug that setting BR/EDR discovery mode will stop BLE advertising
  • BLE: Update private address after private address interval
  • SDP: Fix finding service by UUID always returns success

LWIP Related

  • Fix bug that SYSTEM_EVENT_STA_GOT_IP event was not sent when gateway is 0.0.0.0
  • Add option (enabled by default) to send gratuitous ARP periodically
  • Fix for failing to create a non-blocking TCP or UDP socket after multiple sockets are created and closed

WiFi Related

  • Fix AMPDU RX sequence compatibility issue
  • Fix ESP-TOUCH crash when channel switching
  • Fix BA session setup
  • Fix BT coexistence problems where disabling previously active Bluetooth controller causes WiFi to not operate correctly

System Related

  • Support for 64MBit PSRAM models ESP-PSRAM64 (1.8V) and ESP-PSRAM64H (3.3V)
  • bootloader: Don't enable secure boot or flash encryption if 3/4 Coding Scheme is set
  • bootloader: Fix secure boot digest generation for image length where (bootloader length % 128 < 32)
  • espefuse.py: Don't burn efuse keys if 3/4 Coding Scheme is set
  • Fix definition of esp_derive_local_mac()

Driver Related

  • spi_master: Fix command and address fields when LSB_FIRST is enabled
  • spi_slave: Fix RX DMA broken if master sends an unexpected transaction

Obtaining v3.0.5

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v3.0.5.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.0.5.zip

ESP-IDF Release v3.0.4

13 Sep 08:16
Compare
Choose a tag to compare

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

ESP-IDF v3.0.4 is a bugfix-only update for ESP-IDF v3.0.3. Release v3.0.4 is compatible with apps written for ESP-IDF v3.0.x.

The latest stable version of ESP-IDF is v3.1.

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

Bluetooth Related

  • Fix CVE-2018-5383 for BLE ("Bluetooth implementations may not sufficiently validate elliptic curve parameters during Diffie-Hellman key exchange")
    (Note: ESP-IDF V3.1 has the fix for both BLE & Classic BT.)
  • Retrieve disconnection reason in AVDT when ACL-U link is disconnected
  • Fix uncleared LMP transaction collision state after rejecting sniff request from slave
  • BLE: Fix to correctly stop advertising when connected
  • Fix version exchange issue
  • Fix get bond list error when connection is not bonded
  • Fix SC_MITM_BOND failure in SMP for iphones
  • Fix for BT timer oneshot mode sometimes triggering twice
  • Increase max value and default for scan duplicate filter
  • Fix memory leak in security server
  • Check support of AFH in remote slave device's LM feature when determine whether to send LMP_set_AFH
  • BLE: Fix get incorrect adv packet sometimes
  • Fix incorrect computation of PCM data buffer size in A2DP sink
  • Fix a probable memory leak for BTA_GATTS_CONF_EVT event
  • Fix a bug where BT controller init/deinit/enable/disable can cause a crash

LWIP Related

  • Backport LWIP timer implementation from LWIP v2.0.3
  • Fix compilation when AutoIP feature is enabled
  • Fix assert when closing a nonblocking TCP socket
  • Example: fix the crash when http2_request example send/recv fail

WiFi Related

  • Add CCMP encryption compatibility
  • Improve 802.11n TX reliability for some APs
  • Fix next beacon and dtim time update issue when a beacon is not received for more than one beacon interval
  • Fix AP loss in some circumstances
  • Fix for scanning during connect process
  • Add check for beacon length in modem sleep
  • Fix for SoftAP sometimes deauthing wrong station when inactivity timer expires
  • Fix the system assert when receiving empty MCS in association response frame
  • Reorder MPDU as AMPDU (fixes situation where AP alternates between sending each type)

System Related

  • Support for QIO mode of XM25QU64A flash chip

ULP Related

  • Correct some instruction fetch and execute times
  • Fix calculation of ulp_run() argument
  • Add documentation for JUMPS instruction
  • Additional small fixes & documentation cleanup

Driver Related

  • spi: fix the issue that spi driver cannot be used when flash is disabled

Storage Related

  • SPIFFS: Fix stackoverflow due to recursion in vfs_spiffs_readdir_r

Documentation Related

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

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

Download an archive with submodules included

Attached to this release is an esp-idf-v3.0.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.0.4.zip

ESP-IDF Release v3.1

07 Sep 07:53
Compare
Choose a tag to compare

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

Changes Since v3.0

This is the list of changes since release v3.0. ESP-IDF v3.1 is compatible with apps written for v3.0 (apart from one breaking change in esp_ping, see below).

Known Issues

  • When modem sleep is enabled, multicast packets can be delayed - more than 80% received after more than 250ms delay. Can be an issue for mDNS/Bonjour discovery.
  • When Wi-Fi & BLE are used with software coexistence enabled, BLE scan intervals should be 200ms or less to avoid truncated BLE scan time.
  • When Wi-Fi & BLE are used with software coexistence enabled, BLE sometimes fails to send advertisements.
  • Occasional exception when BLE creates more than 3 connections as master.

Breaking Changes

  • esp_ping units are now milliseconds (in v3.0 ping units were undocumented but they were treated as seconds)

Major Changes

  • Wi-Fi and Bluetooth modem sleep support
  • Wi-Fi and Bluetooth coexistence support
  • Bluetooth Hands Free Profile (HFP)
  • Bluetooth Serial Port Profile (SPP)
  • Bluetooth A2DP source support
  • Automatic Light Sleep feature to reduce overall power consumption (including Tickless FreeRTOS). Average current in Wi-Fi Station mode, when connected to AP (DTIM=1) is 3.1mA. This is 10x lower than the average current in modem sleep mode under the same scenario (30mA).
  • Multiple antenna support (automatic using external RF antenna switch)
  • Wi-Fi mesh functionality (ESP-MESH)
    • Autonomous self-organizing Wi-Fi-based networking protocol
    • Self-healing mesh topology
    • Can connect to external IP network via a "root node" and route packets to external network
    • Supports mesh network data encryption via WPA2-PSK
    • Guide and API Reference
  • OS adapter layer for Wi-Fi functionality (allows Wi-Fi libraries to run on other RTOS implementations)
  • SDIO Slave peripheral driver
  • Bootloader refactoring, configurable factory reset and test app trigger functionality
  • Partition table can be relocated to allow a larger bootloader binary
  • esp_https_ota: New simplified HTTPS OTA client feature
  • Initial Experimental support for alternative CMake build system.

Bluetooth Low Energy

Link Layer

  • Fix the smartphone compatibility bug caused by LL Feature Exchange timing issue
  • New configuration option to deal with BLE queue congestion
  • Send an L2CAP error response if an invalid GATT request is received
  • Fix get incorrect adv packet sometimes
  • Fix crash during BLE connection and disconnection stress testing

GATT Client

  • Save GATTC cache in NVS and add an option to configure it through menuconfig
  • A new parameter incl_srvc_e_handle is added to the struct esp_gattc_incl_svc_elem_t while getting include service information
  • Fix the incorrect PID key result of the ESP_GAP_BLE_GET_BOND_DEV_COMPLETE_EVT event
  • Fix advertising stopped during connection
  • Fix error when advertising stops

GATT Server

  • Fix a probable memory leak for BTA_GATTS_CONF_EVT event

GAP

  • Fix the bug where the start/stop advertising completed events sometimes are not accurate
  • Add the duplicate scan feature and add an option to configure the duplicate scan cache size through menuconfig
  • New API esp_ble_gap_config_local_icon to set the local GAP appearance icon
  • New API esp_ble_gap_get_local_used_addr to get the local address used (e.g. current random address used)
  • Add a completed event ESP_GAP_BLE_SET_STATIC_RAND_ADDR_EVT for esp_ble_gap_set_rand_addr()

Security Manager Protocol (SMP)

  • Fix slave cannot receive long packets when using SMP
  • Fix the bug that lead to crash when deinit bluetooth with SMP disabled
  • Fix the incorrect results of the esp_ble_get_bond_device_list which is called after reboot
  • Fix Security Manager Protocol bonding failure with iPhones
  • Fix memory leak in security server

Blufi

  • New "get wifi list" command
  • New "report internal error report to phone" command
  • New "send/receive custom data" command

Examples

  • Add A2DP and BLE GATTS coex Demo
  • Add BLE Throughput Demo
  • Add HID Device Demo
  • Fix ble_spp_clientdemo error when SUPPORT_HEARTBEAT is enabled
  • Fix crash when http2_request example send/recv fails

Performance optimization

  • BLE throughput optimizations
  • Automatic registration of GATTC service change notify

Bluetooth Common Parts

  • Wi-Fi and Bluetooth coexistence support
  • Bluetooth modem sleep mode
  • Controller to Host Flow Control support
  • Fix CVE-2018-5383 ("Bluetooth implementations may not sufficiently validate elliptic curve parameters during Diffie-Hellman key exchange")
  • Fix incorrectly enabled erroneous data reporting in HCI layer
  • Fixes for removing bonded devices on BLE and Classic BT
  • Fix conflict reading RSSI in dual mode
  • Fix for BT timer oneshot mode sometimes triggering twice

Classic BT

  • HFP (Hands Free Profile) support
  • GAP device and sevice discovery
  • SPP profile (including VFS support to return a file descriptor)
  • dynamic memory allocation
  • A2DP: Source and sink functionality can be enabled/disabled at runtime (both cannot be enabled concurrently)
  • A2DP: Performance improvements
  • Allow setting BR/EDR TX power level
  • Check support of AFH in remote slave device's LM feature when determine whether to send LMP_set_AFH
  • Fix incorrect computation of PCM data buffer size in A2DP sink

Wi-Fi

New Functionality

  • Wi-Fi and Bluetooth coexistence support
  • Mesh feature
  • Throughput optimizations
  • Support for Channel State Information (CSI)
  • Support to sniffer Wi-Fi control packets
  • Add parts of WPA Supplicant source to ESP-IDF
  • Fix some memory issues in WPA2 Enterprise support
  • WPA2 Enterprise API is now thread safe
  • New event mask API
  • New esp_wifi_80211_tx function for sending 802.11 frames
  • WPS: Support WPS in APSTA mode
  • WPS: Add "set factory information" feature
  • Allow creating the Wi-Fi task pinned to either core
  • Internal refactor for Smartconfig

Bug Fixes

  • Fix issue where esp_wifi_stop never returns if start/stop is run repeatedly
  • Fix for connecting to WEP APs
  • Fix for de-authing station if Soft AP already has maximum connected
  • Thread safety fixes in Wi-Fi library
  • Fix issue that smartconfig crashes when switching channel
  • Fix smartconfig crash issue with SPI RAM
  • Fix the issue that esp_wifi_connect returns ESP_OK, but no system event posted (ap_loss) ([#1797](esp_wifi_connect returns ESP_OK, but no system event posted (ap_loss)))
  • WPA2 Enterprise PEAP connection fixes ([#1887](Enterprise PEAP connection issue))
  • Fix ESPNOW bug when add node in AP+STA mode
  • Fix for scanning during connect process
  • Fix Wi-Fi RX STBC issue, the fix improves the stability of STBC packet receiving
  • Fix Wi-Fi TX bug which improves the Wi-Fi TX stability
  • Reorder MPDU as AMPDU (fixes situation where AP alternates between sending each type)
  • Fix for receiving duplicating MPDU and AMPDU frames
  • Fix for soft-AP de-authes the wrong station when station's inactivity timer is expired
  • Fix for Wi-Fi asserts the system when receiving empty MCS in association response frame
  • Fix for Wi-Fi crashes when receiving invalid beacon in Modem sleep
  • Fix for Wi-Fi scan causes Wi-Fi re-connect not work
  • Fix for beacon information doesn't update after user scan
  • Fix for the station may connect to wrong AP in all channel scan
  • Fix for Wi-Fi ap loss ([#1797](esp_wifi_connect() returns ESP_OK, but no system event posted (ap_loss)))
  • Add country code into scan result ([#1483](Country code in scan result))
  • Add scan_method, sort_method and threshold when invoke esp_wifi_get_config ([#1723](esp_wifi_get_config not setting necessary parameters / documentation unclear about how to use))
  • Add RSSI of each station in soft-AP list ([#1095](Enhance esp_wifi_ap_get_sta_list / wifi_sta_info_t to include RSSI, protocol))
  • Add noise floor info in sniffer receiving packets
  • Fix CCMP encryption compatibility issue
  • Mark esp_wifi_set_auto_connect as deprecated
  • Fix for esp_wifi_disconnect() error when wifi is not started or initialized
  • ESPNOW: Fix for ESPNOW watchdog when modify it's configured parameters
  • Examples: Remove performance example since they are replaced by iperf example
  • Examples: Replace simple_wifi example with two new examples: the station example and soft-AP example ([#1433](Simple Wi-Fi examples))

LWIP

New Functionality

  • Add VFS file descriptors in select
  • Add event SYSTEM_EVENT_AP_STAIPASSIGNED
  • By default don't automatically trust MAC entries of received IP packets, always send an ARP request (configurable)
  • Port LWIP timer implementation from LWIP v2.0.3
  • Add source IP based route for unicast packet

Bug Fixes

  • Fix the issue that TCP connections don't abort when IP address is changed
  • Modify default value of MTU in dhcp offer to 1500
  • Fix the assertion issue caused by tcp_pcb_purge()
  • Fix assertion when closing a non-blocking socket
  • Fix compilation with AutoIP enabled

RF PHY

  • Fix for full calibration accidentally running twice
  • PHY performance improvements

Ethernet

Bug Fixes

  • Set direction of SMI MDC and MDIO pins correctly

Network Functionality

  • New esp-tls library (on top of mbedTLS) for high level TLS (SSL) functionality
  • New esp_http_client library for HTTP/S client functionality
  • mbedTLS: Update to v2.9.0
  • dhcpserver: Fix maximum number of leases (was one less than configured)
  • dhcpserver: Increase DHCP offer MTU size to 1500

Smartconfig

  • Moved to its own comp...
Read more

ESP-IDF Pre-release v3.1-rc2

06 Sep 07:59
Compare
Choose a tag to compare
Pre-release

Documentation for release v3.1-rc2 is available at http://docs.espressif.com/projects/esp-idf/en/v3.1-rc2/.

This is a pre-release release candidate version. The current release version is v3.0.3.

This is the list of changes since v3.1 Release Candidate 1:

Build System

  • Initial Experimental CMake support added (alternative to the default GNU Make build system which is the same as previous versions.)

WiFi

  • Reorder MPDU as AMPDU (fixes situation where AP alternates between sending each type)
  • Fix for scanning during connect process
  • Add check for beacon length in modem sleep
  • Fix for SoftAP sometimes deauthing wrong station when inactivity timer expires
  • Fix the system assert when receiving empty MCS in association response frame

Bluetooth

  • Fix a probable memory leak for BTA_GATTS_CONF_EVT event
  • Fix for BT timer oneshot mode sometimes triggering twice
  • Check support of AFH in remote slave device's LM feature when determine whether to send LMP_set_AFH
  • Fix memory leak in security server
  • BLE: Fix get incorrect adv packet sometimes
  • Fix incorrect computation of PCM data buffer size in A2DP sink

LWIP

  • Backport LWIP timer implementation from LWIP v2.0.3

Drivers

  • SPI driver: Fix issue that SPI cannot be used when flash is disabled.

For the list of changes since earlier releases, see v3.1 Release Candidate 1.