Documentation for IDF v4.4.6 is available at https://docs.espressif.com/projects/esp-idf/en/v4.4.6/
ESP-IDF v4.4.6 is a bugfix update for ESP-IDF v4.4.
Obtaining v4.4.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 v4.4.6 --recursive https://github.com/espressif/esp-idf.git esp-idf-v4.4.6
cd esp-idf-v4.4.6/
This is the recommended way of obtaining v4.4.6 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v4.4.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/github_assets/espressif/esp-idf/releases/download/v4.4.6/esp-idf-v4.4.6.zip
This is the list of changes since release v4.4.5:
Major Bug Fixes
- Spi Flash: Fixed concurrency issue when concurrently calling esp_flash APIs under XIP_PSRAM or Auto-suspend condition (48e848c)
- Fixed dangerous power parameters in sleep modes on ESP32-S2 (e055097)
Changelog
Bluetooth Low Energy (BLE)
Bluetooth Low Energy Controller
Added
- Add comments to the header files for ESP32-C3 and ESP32-S3 to support CI (8c1e87e)
Fixed
- Fixed PHY enable and disable for BLE controller on ESP32-C3 and ESP32-S3 (1cb288e)
- Fixed advertising random delay when advertising interval is less than 20ms on ESP32-C3 and ESP32-S3 (1cb288e)
- Fixed advertising random address setting when owner address type is public on ESP32-C3 and ESP32-S3 (1cb288e)
- Fixed instant setting for BLE LLC procedures with instants on ESP32 (1cb288e)
- Fixed advertising random delay when advertising interval is less than 20ms on ESP32 (1cb288e)
- Fixed BLE disconnection delay on peripheral when slave latency is not zero on ESP32 (efdd085)
- Fixed BLE LLCP initialization for central and peripheral on ESP32 (efdd085)
- Fixed sent command status event twice for disconnect command on ESP32 (efdd085)
- Fixed BLE disconnection failure on ESP32 (efdd085)
- Fixed disconnection due to consecutive CRC errors in first 6 intervals on ESP32 (efdd085)
- Fixed crash when controller initialization fails due to insufficient memory on ESP32-C3 and ESP32-S3 (b4c06ed)
- Fixed memory leak when setting adv data on ESP32. (62387d8)
ESP Bluedroid Host
Added
- Bluedroid: Support LE GATT service database hash calculate (ec205a7)
- Bluedroid: Support LE GATT robust caching feature (ec205a7)
- Bluedroid: Support LE periodic advertising sync transfer (ec205a7)
- Bluedroid: Support LE L2CAP credit based connection (ec205a7)
- Bluedroid: Support SMP OOB pairing for LE secure connection (ec205a7)
- Bluedroid: Added internal GATT API for BLE PTS (ec205a7)
- Bluedroid: Added characteristics for LE GAP and GATT service (ec205a7)
- Bluedroid: Added BLE GATTS local database print API (ec205a7)
- Bluedroid: Added BLE periodic advertising sync transfer API and EVT (ec205a7)
- Bluedroid: Added GATTC read multiple variable length characteristic API and EVT (ec205a7)
- Bluedroid: Support periodic ADI feature (1cb288e)
- Bluedroid: Added a log statement to print the Bluetooth MAC address (922af41)
- Bluedroid: Support high duty advertising interval setting (1cb288e)
Changed
- Bluedroid: Update comments in BLE (1cb288e)
- Bluedroid: Report BLE disconnect event after BLE link closed (1cb288e)
Fixed
- Bluedroid: Fixed an issue where memory resources were not properly released when devices disconnected (e9d442d)
- Bluedroid: Fixed GATT multiple notifications and robust caching (ec205a7)
- Bluedroid: Fixed address check when using NRPA as random device address (1cb288e)
- Bluedroid: Fixed BLE GATTC cache address saving when the cache list is full (1cb288e)
- Bluedroid: Fixed bug while calculating block cipher using aes-128 (1cb288e)
- Bluedroid: Fixed timeout error when updating connection params (1cb288e)
- Bluedroid: Fixed connection parameter validation error (1cb288e)
- Bluedroid: Prohibiting the enablement of privacy uring non-connected activities to comply with the protocol specifications (8c1e87e)
- Bluedroid: Fixed issues about data length is 0 when setting extend advertising data, extend scan response data and periodic advertising data (8c1e87e)
- Bluedroid: Fixed GATT control block free when disconnecting (2dd51c1)
- Bluedroid: Fixed GATTC database cache free when disconnecting (2dd51c1)
- Bluedroid: Fixed compile warning when optimize for performance (2dd51c1)
- Bluedroid: Fixed the issue of setting BLE advertising data incorrectly when the data length is 0 (922af41)
- Bluedroid: Fixed BLE default extended connection parameters (efdd085)
ESP NimBLE Host
Added
- Nimble: Added checks before accessing event pointers (48e28cf)
- Nimble: Added an example of Bluetooth LE using auto light sleep (7053e48)
- Nimble: Added ble_gap_ext_adv_active() to check if extended advertising instance is active or not. (58544cf)
- feat(nimble): Added support for high duty adv interval (d89b1e4)
Changed
- Nimble: Added change to expose addr resolution API outside stack (1caaee9)
Fixed
- fix(nimble): add flag to indicate 5.0 feature support (1f00708)
- Nimble: Removes global min/max definition causing problems with other libraries (bd5f10b)
- fix(nimble): Added check to set length only if data is valid in periodic adv (1282ae0)
- fix(nimble): Updated connection type in reattempt connection code (8d35a47)
- fix(nimble): Added debug code to print HCI events information (99279e7)
- fix(nimble): Fixed assert due to controller event while stack deinit (e57938a)
Removed
- Nimble: Removed indicate flag from gatt db and added subscription case in spp_server example (4c17059)
BluFi
Fixed
- Fixed compilation issue in blufi for nimble (aca729a)
Other Profile
Fixed
- HID: Fixed BLE HID battery level setting (efdd085)
Classic Bluetooth
Classic Bluetooth Bluedroid Host
Fixed
- Bluedroid: Fixed crash resulting from access of NULL pointer after A2DP disconnection (62387d8)
- Bluedroid: Fixed the unexpected use of 3-EV3 packet type in HFP when Wide-Band Speech is disabled, by revising the (e)SCO configuration parameter sets according to HFP_v1.8. (a7c4610)
- Bluedroid: Fixed the alarm leak which is caused by not releasing the timer during A2DP and HF-AG deinitialization. (ddae361)
- Bluedroid: Fixed the problem of memory access out-of-bounds in HFP caused by the variable-length array introduced in 3268075. (#11264) (4a4fea5)
- Bluedroid: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator. (#6486) (ff4ae8d)
- Bluedroid: Fixed the issue in A2DP source example that the a2dp source would not send the media start command due to the connection initiated by the peer device.(#11170) (01cc59c)
- Bluedroid: Fixed the crash of A2DP source when it connects to Bose speaker. This is caused by the crossed incoming- and outcoming-AVDT procedures and solved by separating the processing of the different directions. (4462c00)
- Bluedroid: Fixed incorrect handling of A2DP set configuration command when response with error code INVALID_CODEC_TYPE is expected (c2ddb5b)
- Bluedroid: Modified the number of SDP maximum connections from 2 to 4 to avoid connection exhaustion. (37cf841)
Removed
- Bluedroid: Removed the incorrectly defined HCI error code ESP_BT_STATUS_HCI_PENDING. (d1f9377)
Classic Bluetooth Controller
Fixed
- Fixed failure of re-connection after ACL link is disconnected but host continues to send ACL data to controller on ESP32 (62387d8)
- Fixed memory exhaustion resulted from repetitive unhandled event LC_AFH_UPDATE_IND on ESP32 (62387d8)
- Fixed link disconnection during sniff negotiation due to invalid D_sniff value on ESP32 (62387d8)
- Fixed Central not being able to handle the procedure collision between remote Peripheral's role switch request and local initiated encryption mode request on ESP32. (9e987ea)
- Fixed error in HCI_Change_Connection_Packet_Type Command parameter check on ESP32 (1cb288e)
- Fixed error in HCI_Accept_Synchronous_Connection_Request Command parameter check on ESP32 (1cb288e)
- Fixed error in HCI_Set_Connectionless_Peripheral_Broadcast_Data Command parameter check on ESP32 (1cb288e)
PHY
Changed
- Optimized WIFI RX performance under multipath interference environment(0fc94b1)
- Optimized BLE TX sideband interference for ESP32-C3/ESP32-S3(0fc94b1)
- Optimized Wi-Fi HT40 TX sideband interference(0fc94b1)
Fixed
- Fixed WiFi not working with temperature sensor on ESP32-S2(0fc94b1)
Wi-Fi
Added
- Added new API to get RSSI info after station connected to AP.(c739cdf)
Changed
- Updated SoftAP pairwise cipher(cc71308)
Fixed
- Fixed association refused temporarily comeback time set to zero issue.(c739cdf)
- Fixed crash in use of
esp_wifi_action_tx_req()
(c739cdf) - Fixed SoftAP mode NVS <ssid,password,pmk> not matching issue. (ad08d94)
ESP-WIFI-MESH
Fixed
- ESP-WIFI-MESH: Fixed the layer2 node scan issue when fixed root (8756d95)
Supplicant
Fixed
- Supplicant: Fixed crash in sending neighbor report request(d8484f0)
- Supplicant: Fixed infrequent issue with the de-initialization and btm task deletion.(558398f)
- Supplicant: Fixed abstraction violation where use
esp_rom_delay_us()
(77a8a3f) - Supplicant: Fixed EAPOL Key TxDone callback implementation (e6bd433)
ESP Vendor Feature
Changed
- Vendor: the callback of
esp_wifi_set_vendor_ie_cb()
can be set to NULL now (c739cdf)
Fixed
- Vendor: Fixed set LR rate fail for ESP-NOW and
esp_wifi_80211_tx()
(closes #11751) - Vendor: Fixed the RX error when softAP/station and ESP-NOW both encrypted, and the ESP-NOW peer address is equal to the connection peer address.(0cadcd1)
Wi-Fi MAC
Changed
- MAC: Updated FTM calibration way and other FTM bug fixes(ec07e2e)
Fixed
- MAC: Fixed the issue that SoftAP will not verify SSID of association request.(cc71308)
- MAC: Fixed the issue that STA receive CSA indication not belongs to it in scan which leads to connection issue(cc71308)
- MAC: Fixed a bug that when STA connected with 11g AP and TXOP enabled, Tx buffer leak happened. (cc71308)
- MAC: Fixed error propagation while initiating FTM (ba29708)
- MAC: Fixed the issue that the wifi mac parse beacon bug of ie length equal to zero (c739cdf)
- MAC: Fixed the issue that the wifi can not go to sleep caused by MAC waiting for RX/TXING (c739cdf)
Coexistence
Fixed
- Fixed the issue on ESP32-C3/ESP32-S3 when BLE scan when ADV_EXT_IND is received but no AUX_ADV_IND followed, which caused Wi-Fi unable to work normally (9983bc0)
Ethernet
Fixed
- Fixed the issue that ESP32-S3 chip fails to initialize Eth Module Dm9051 (#11083) (b1480d9)
- Fixed issue when ESP32 EMAC could hang when stopped/started multiple times at 10Mbps speed mode (b96c98a)
- Fixed issue when Ethernet attempted to transmit even if Link was Down (#10851) (b96c98a)
Security
Fixed
- Hardware Aes: Fixed DMA descriptor calculation for the specific aligned data length case causing memory corruption (#11310) (6afa8e4)
Peripheral Drivers
Added
- Spi Master: Added transaction length check to refuse longer than hardware supported transactions (d9d5327)
- Spi Master: Added an API to know the max transaction length (d9d5327)
Changed
- ADC: Improved ADC continuous driver realtime performance by using circular dma descriptor link (#11500) (69fbe51)
- I80 Lcd: Reset the CS GPIO when deleting the i80 IO driver (1efa786)
Fixed
- ADC: Fixed ADC continuous driver stuck issue when
conv_frame_size
bigger than 4092 (#11385) (69fbe51) - ADC: Fixed wrong ADC oneshot mode clock divider on ESP32, ESP32S2, ESP32S3 (703e116)
- GDMA: Fixed crash from logging when using newlib nano (#9631, #10366) (92549f5)
- GPIO: Fixed potential crash in ISR when CONFIG_SPIRAM_USE_MALLOC is enabled (#11876) (cc484c5)
- Mcpwm: Fixed a typo in the name
MCPWM_SELECT_SYNCx
(2dfabd0) - Sdmmc: Fixed the issue that card clock is disabled before ACMD41 is completed, which prevented certain cards from initializing properly. (7588771)
- Spi Flash: Fixed concurrency issue when concurrently calling esp_flash APIs under XIP_PSRAM or Auto-suspend condition (48e848c)
- Temperature Sensor: Fixed the conflict between wifi and peripheral. (df5df38)
- Usb Device: Fixed a bug in the USB device stack where the device could not be resumed after being suspended (#11281) (ea9d916)
- Usb Host: Restrict ESP32-S2 USB OTG AHB errata workaround to only ESP32-S2 ECO0 chips. Other chips and ECOs will no longer be affected by USB OTG DMA usage. (5f0ac58)
- Usb Host: Added better debugging/error logging information when attempting to claim an interface containing endpoints that exceed the USB Host controller's hardware capabilities (e.g.,
bInterval
orwMaxPacketSize
exceeds the limits supported by the hardware). (e6df665) - Usb Host: Fixed bug in enumeration where a device would always be configured to
bConfigurationValue = 1
instead of thebConfigurationValue
of the first configuration descriptor found (#11113). (3f0ccda) - Usb Serial Jtag: Fixed usb_serial_jtag vfs lose data randomly (#12119, #11344, #9318, #11192) (d152a5b)
System Hardware
Added
- MSPI: Added timing tuning start, success log (abb204f)
Fixed
- Fixed POWER ON reset when using RTC IO as input in deepsleep on ESP32-S2/ESP32-C3 (e055097)
- Fixed RTC memory lost in high temperature in deepsleep on ESP32-S2/ESP32-C3 (e055097)
- support 8MD256 as RTC slow clock work properly ESP32-S2/ESP32-C3/ESP32 (e055097)
- Fixed dangerous power parameters in sleep modes on ESP32-S2 (e055097)
- Fixed ESP32 chip info not listing ESP32 pico v3-02 as having embedded spiram (#11233) (63dfda0)
- Cache: Fixed cache hit errors caused by accessing cachelines that are being writebacked. (2985657)
- MSPI: Fixed Octal PSRAM timing tuning failure under low temperature, on ESP32-S3 (f1ba6ce)
- PSRAM: Fixed wrong start virtual address and max virtual address size in the programming guide (4b46cc0)
Core System
Fixed
- Fixed a race condition in esp_timer which resulted in linked list corruption (#11215) (3cba50e)
- Interrupts: Fixed the issue that a CPU interrupt of priority
N
was actually set asN+1
on RISC-V targets (9f11e6f) - Newlib: Updated docs to reflect that tzset() needs to be called before localtime/mktime (#11455) (b0729b5)
Debugging
Added
- Espcoredump: Added
CONFIG_ESP_COREDUMP_LOGS
option to disable core dump related logs, reducing RAM usage (962621e)
Fixed
- Espcoredump: Fix build warning when dumping to flash with log disabled (#11869) (08ae96d)
- Gcov: Fixed on-the-fly (non-hardcoded) gcov dumping when
esp_gcov_dump
is not used (41b695a)
Power Management
Added
- Deepsleep: Added wake stub example to show how to implement a deep-sleep wake stub(#8208). (7200764)
Fixed
- Fixed potential illegal instruction exception after waking up from light sleep ( (6b27c05)
- Fixed output formatting issue in esp_pm_dump_locks function (#11704) (6209a2c)
- PSRAM: Fixed the problem that the PSRAM program crashed due to wrong MSPI timing after frequency switching when using high-speed PSRAM and enabling DFS (ebcb29b)
- Current increase 2 ~ 3uA when in deep sleep by default config (e055097)
- Current will increase when 8MD256 used as RTC slow clock in sleep (e055097)
- Fixed potential lightsleep wakeup failure with
ESP_SLEEP_POWER_DOWN_FLASH
enabled (5fb50f6) - Fixed deepsleep abnormal base current when goto deepsleep from SoftAP mode on esp32s2 (2771f0c)
- Fixed sleep current issue caused by SAR ADC. (4daeccc, 564e20d)
LWIP
Changed
- Lower the dhcp discover and request retry backoff time. (d3dcc50)
Fixed
- Fixed DHCP server bug ensuring pool range doesn't exceed subnet mask; verified server IP and subnet match. (d3dcc50)
- Fixed an issue where the getaddrinfo() was returning NULL when using an IPv4 mapped address (#9693) (d3dcc50)
- Fixed on-demand fine timers bug, that allowed only one DHCP client to run at a time without issue. (61a0c12)
- Iperf: Fixed the issue that UDP TS performance shows 0 in iperf, update default buffer sizes(e7b1716, 29c6b54)
OTA
Fixed
- Fixed a typo in api-reference/system/ota (8bf7c74)
Provisioning
Fixed
- Wifi_Prov_Mgr: Fixed memory leak after bluetooth stack was stopping. (208c0fe)
mbedTLS
Changed
- Updated to v2.28.4 (a49e018)
Fixed
- Fixed incorrect transmission of esp-aes APIs' return values and zeroising the output buffer in case of an error condition (esp-aes-gcm). (25437ef)
Bootloader
Fixed
- Fixed super watchdog not being automatically enabled at startup on C3, S3 (f1d3f04)
ESP-TLS
Fixed
Storage
Fixed
- VFS: Fixed an issue that might lead to a crash when opening a UART port that doesn't exist (4aee265)
- VFS: Added NULL checks when calling
console_start_select
,console_end_select
andesp_vfs_select
functions to prevent system crash in a certain situation (da823ed)
Tools
Fixed
- esptool: Fixed potential text/rodata overlap mapping issue on I/DBUS shared MMU entry chips (550e7db)
- Fixed inconsistency between export paths in Powershell and Command Prompt on Windows (#9849) (681f55b)
- Coredump: Fixed bugs which prevented espcoredump.py from detecting ELF file mismatch (espressif/esp-coredump#3) (76122fb)
Documentation
Changed
- Iperf: Update documentation with console interface details (937b82e)
- Synchronised contribution agreement to match the one in CLA Assistant (b04cd38)
Fixed
- Spelling correction in documentation (#9721) (c739cdf)
- Fixed typo in getting started docs for linux/mac (#11394) (1a7d855)
Removed