ESP-IDF Release v3.2.2
Documentation for release v3.2.2 is available at https://docs.espressif.com/projects/esp-idf/en/v3.2.2/
ESP-IDF v3.2.2 is a bugfix update for ESP-IDF v3.2.
Note: ESP-IDF V3.2.1 release was skipped due to an issue deploying docs for this version. All changes from v3.2.1 are listed here for v3.2.2
This is the list of changes since release v3.2:
Wi-Fi Related
- Added CONFIG_ESP32_WIFI_IRAM_OPT to configure WiFi IRAM optimizations for performance or reduced IRAM footprint.
- Decoupled Wifi and ESP-MESH to reduce binary size: Now no Mesh code is linked if Mesh is not used.
- Refactored SoftAP power saving mode. SoftAP now supports buffering multicast and broadcast frames correctly when a connected station enables IEEE 802.11 legacy power saving mode (called "modem sleep" in ESP32).
- Added support for STA HT20/40 coexistence management
- Added WPA2 security improvements
- Now disallows HT rate when unicast/multicast cipher is TKIP/WEP
- Added support for signal test
- Fixed a bug that WPS fails when AP is encrypted
- Fixed a bug that scan fails after STA failed to connect to a nonexistent AP
- Fixed a bug which could block the scan timeout before the scan finished
- Modified WiFi default RX buffer configuration values in order to achieve better compatility and performance
- Added configuration option to set number of Wi-Fi mgmt short buffers
- Fixed a bug when PMK was too long
- Make WiFi disconnect reason code more accurate: STA reports reason code WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT instead of WIFI_REASON_NO_AP_FOUND if it connects the open AP with a valid password or if it connects the encrypted AP with an empty password; STA reports reason code WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT instead of other reasons if it connects the encrypted AP with a wrong password.
- Fixed the bug that smartconfig may hang because of deadlock
- Fixed the bug that ESP32 AP may crash when the connected STA is reboot
- Fixed the bug that ESP32 incorrectly deletes the receiving BA session
- Fixed the bug that STA incorrectly receives packets when scanning in connected status
- Fixed the bug that STA receives the unexpected packets during background scan
Smartconfig Related
- Fixed a smartconfig bug which could lead to a deadlock between WiFi task and timer task.
ESP-MESH Related
- Fixed a bug in group send
- Fixed a bug in esp_mesh_set_router() when the input argument is not initialized
- Fixed memory leak ocurred when receiving an unknown option packet
Bluetooth Related
- Fixed some memory leaks when setting txpower
- Fixed Disconnect with apple device
- Fixed case where hci_refresh_enc_key_cmd could be ignored or crash
Coexistence
- Decoupled WiFi and BT from coexistence to reduce binary size
- Fixed BT disconnecting due to too many reset BB
- Fixed the bug that no TBTT is generated after RX wrong beacon when coexistence is enabled
- Disabled BT TX in "force wifi" mode, and enabled BT TX when not using "force wifi" mode
Classic BT
- Fixed abort() when calling esp_spp_deinit() without calling esp_spp_init()
BLE
- Fixed iOS and Windows 10 compatibility error for BLE HID
- Added scan window and interval check when calling set scan params
- Added mesh beacon adv and svc uuid for duplicate scan exceptions list
- Added BLE link timeout config in menuconfig
- Disabled the background connection when calling gatts_open
Blufi
- Fixed a crash in Blufi prepare write
Ethernet related
- Added promiscuous mode control
- Fixed some minor bugs in IP101 PHY driver
Provisioning related
- Unified Provisioning: Various fixes in BLE provisioning
LWIP Related
- Fixed missing DNS crash bug when a static IP is set
Network Protocol Related
HTTP Client
- Added a
esp_http_client_set_redirectionfunction for handling 30x HTTP response codes in direct operations. - Added support for using certificates from the global CA store (#3062)
- Fixed a URL redirection issue (#2631)
- Added support for HTTP mutual authentication (#3438)
HTTP Server
- Fixed handling of LF terminated headers in requests
- Now only accept new socket connections if the server has capacity to handle more (avoids situation where socket is accepted but then closed)
Bootloader related
- Fixed pin mode setting of custom UART RXD pin for serial console (#2843)
- Now resets the UART correctly when a custom serial UART is set. Fixes missing log output when custom UART configurations are used and the ESP32 resets from software.
System Related
- spi_flash: Added vTaskDelay during long multi-sector erase operations, to avoid starving other tasks
- Fixed newlib adjtime() function when reading the time frequently via gettimeofday()
- heap: Added integer overflow checks on MALLOC_CAP_32BIT & MALLOC_CAP_EXEC
- hwcrypto: Prevent esp_sha() function from disabling interrupts for an extended period
- hwcrypto: Chunk input blocks to improve esp_sha() function performance
- hwcrypto: Remove redundant enabling of peripheral in esp_sha_lock_engine_common
Register and Low-Level System Related
- PSRAM: Improve PSRAM SPI CS timing settings
- PSRAM: Fixed bug when configured for 80MHz flash and 40MHz PSRAM
- Reduce FLASH_CRYPT_CNT efuse to a 7 bit efuse field as 8th bit is not used by hardware
- Added option CONFIG_ESP32_RTC_EXTERNAL_CRYSTAL_ADDITIONAL_CURRENT to provide additional wakeup current for an external crystal when waking from deep sleep
Peripheral Driver Related
- spi: Fixed bug when connecting SPI peripheral functions to read-only pins
- spi slave: Fix a possible concurrency issue when reading data from ISR
Storage Related
- VFS: Implemented poll() function - based on select() (#2945)
- NVS: Multi-page blobs erased using nvs_erase_key() are now cleaned properly (#3255)
NVS & Manufacturing Host Utility Related
- nvs_util & mfg_util: Fixed to support writing multiple single-page big blob data values
- nvs_util & mfg_util: Added support for creation of unique encryption keys
- mfg_util: Fixed unnecessary CSV file creation for values with REPEAT tags
Third Party Libraries
freemodbus
- freemodbus: Changed critical sections to semaphore mutexes (#3009)
Debugging Related
- Fixed freezing of the core dump process when flash write address checks are enabled
Build System Related
- idf.py now re-runs itself with winpty when running under MSYS2. This is done in order to correctly handle Ctrl-C to cancel the build.
- cmake: Fixed issue where Python files were executed directly, not via PYTHON variable
- cmake: Now sets COMPONENT_PATH during early expansion of dependencies
- cmake: Fixed issues with overriding a custom bootloader inside a project "components" directory
Examples Related
- Fixed iperf example exit error
- Added README.md for Himem example
Obtaining v3.2.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.2.2 --recursive https://github.com/espressif/esp-idf.git esp-idf-v3.2.2
cd esp-idf-v3.2.2/
This is the recommended way of obtaining v3.2.2 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v3.2.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.2.2.zip