Skip to content

ESP-IDF Pre-release v4.1-beta1

Pre-release
Pre-release
Compare
Choose a tag to compare
@projectgus projectgus released this 27 Mar 08:24
· 34190 commits to master since this release

Documentation for pre-release v4.1-beta1 is available at https://docs.espressif.com/projects/esp-idf/en/v4.1-beta1/

ESP-IDF v4.1 is a minor update for ESP-IDF v4.0.

This is the list of changes since release v4.0:

Major New Features

  • Preview support for ESP32-S2 Beta SoC. This support will be replaced with ESP32-S2 SoC support in ESP-IDF v4.2. ESP32-S2 Beta firmware is not compatible with the ESP32-S2 production SoC.
  • New Python-based menuconfig tool
  • Networking: Added new esp_netif API to manage network interfaces, replaces tcpip_adapter which is now deprecated.
  • Classic Bluetooth: Added support for Hands Free Profile (HFP) Audio Gateway (AG)
  • DTLS support in libcoap using mbedTLS (#3977)

Bluetooth

Controller

  • Improved handling of calloc() failure
  • Fixed HCI timeout issues when using multiple cores and sleep is enabled
  • Fixed BLE crash issue triggered by BLE event interrupt missed
  • Fixed bugs related to role switch
  • Fall back to main XTAL as Bluetooth sleep clock source if the External 32kHz crystal is configured but not detected
  • Fixed a division by zero error in BT sleep clock cycle calculation
  • Fixed software assertion of invalid state when using HCI_Create_Connection_Cancel command

Bluedroid

  • Fixed bug with fixed_queue semaphore pointer dereference
  • Fixed potential memcpy buffer overflow problem
  • Fixed wrong complete Identity Address (Public Address) of the Privacy-enabled Bonded Device got after bonding
  • Fixed the issue with pointer type conversion in gattc
  • Added missing GATT descriptors 0x2909 (Number of Digitals) through 0x290E (Time Trigger Setting) (#4082, #4470)

NimBLE

Classic Bluetooth

  • Added new esp_bt_gap_read_remote_name() function to get remote device's Bluetooth name at any time
  • Fixed error on EIR type in Config EIR event
  • Added support to enable Peripheral Preferred Parameters in GAP service
  • HFP: Added Audio Gateway (AG) support
  • HFP: Added AT+NREC=0 command for disabling AG echo cancellation (#3665)
  • HFP: Fixed crash on incoming audio
  • HFP: Fixed connection fail and crash when receiving unknown AT command

Blufi

  • Fixed the wrong type from BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_MAX_CONN_NUM to BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_CHANNEL

BLE Mesh

  • Synchronized Zephyr v2.0 BLE Mesh updates
  • Updated mesh examples and added example description
  • Fixed getting wrong timer remaining time
  • Added advertising buffers for relay packets
  • Modified Health Server model callbacks
  • Added Heartbeat message receive callback
  • Added low power node APIs and events
  • Added friend node events
  • Added proxy client functionality
  • Added sig-defined server models
  • Added Configuration Server model events
  • Checked mesh queue and task init status
  • Fixed client model invalid address access
  • Fixed not restoring mesh node cfg value
  • Now uses bt device name in mesh proxy adv
  • Fixed mesh device with wrong name on iOS
  • Checked client model timer remaining time
  • Fixed memory leak when node is reset
  • Fied adv buf unref and link_id in exceptional list

Wi-Fi Coexistence

  • Fixed A2DP disconnect when Wi-Fi switches channels
  • Fixed A2DP stuck after creating another connection

Wi-Fi

  • Added PMK caching feature for WPA2 Enterprise stations
  • Added support for Protected Management Frames (PMF)
  • Added SAE authentication support for WPA3 Personal
  • Wi-Fi now uses new esp_event library added in ESP-IDF v4.0
  • Fixed wpa_supplicant EAP re-authentication issue
  • Fixed wpa_supplicant assoc_ie_len setting based on generated RSN/WPA IE
  • Fixed EAPOL key used during reauthentication
  • Fixed wpa_supplicant memory leak on Wi-Fi stop
  • Fixed ESP-NOW unicast packet TX failure
  • Fixed bug for setting channel when in NULL mode.
  • Added check for Wi-Fi stop when calling esp_wifi_deinit
  • Now places the Vendor Specific element at the end according to the protocol
  • Fixed crash during WEP shared auth
  • Fixed WiFi buffer reload that WiFi receiving no longer works because internal buffer reloading fails
  • Fixed WiFi receiving that WiFi receiving no longer works because it writes the MAC registers when WiFi/BT common clock is disabled
  • Fixed WiFi performance, including AMPDU parameter negotiations, WiFi TX optimization etc
  • Fixed AMSDU decrypt that ESP32 can't decrypt the AMSDU if it's encrypted
  • Reduced Wi-Fi compiled binary size
  • Added TX packet length checking, Wi-Fi driver will drop a packet which is too long
  • Improved RSSI scan accuracy
  • Now returns an error if the setting AP's channel is out of range
  • Fixed sniffer during WiFi mode switching

Ethernet

  • Fixed Ethernet interrupt crash when cache is disabled
  • Ensure that eth_driver handle is allocated in internal RAM (#4635)

Peripheral Drivers

  • Most drivers have been refactored internally, however public behaviour of existing APIs should be the same as in ESP-IDF V4.0
  • Added option to place UART ISR in IRAM
  • Added new ESP Serial Slave Link library to communicate with serial slave devices via SDIO or similar interfaces
  • CAN: Fixed can_reconfigure_alerts() function taking semaphore in a critical section
  • CAN: Fixed possible logging in critical sections
  • CAN: Added bitfields to can_message_t as an alternate way to set CAN message flags.
  • I2S: Fixed compile error if FreeRTOS header not included before I2S header (#4251)
  • LEDC: Added missing ledc_set_pin() function declaration
  • SDSPI & SDMMC: Fixed gpio_pin_bit_mask truncation to max GPIO value 31
  • UART: Added simplified API to set threshold values for RX FIFO full and TX FIFO empty
  • SPI_SLAVE: Fixed assertion failure when spi_slave_initialize failed with DMA channel equals zero (#2740)

Core System

  • Fixed DPORT ECO workaround register operation to improve workaround reliability. (Details of workaround in ECO document item 3.10 "When each CPU reads certain different address spaces simultaneously, a read error can occur")
  • Added a macro to call a function with a user-allocated stack
  • Added likely & unlikely macros to help compiler produce optimized instruction sequences
  • bootloader_random: Added protected for shared CLK_EN & RST_EN registers when calling bootloader_random_enable()/_disable() in the app
  • esp_attr: Fixed multiple definition linker errors when using section attributes in C++ builds (#4021 )
  • esp_event: Fix a possible null pointer dereference (#4373)
  • esp_timer: Add parameter NULL checks to public API Return ESP_ERR_INVALID_ARG if the handle is NULL, instead of crashing.
  • heap: Added dedicated "aligned alloc" and "aligned free" functions functions (some restrictions apply, see linked documentation).
  • heap: Added new heap_caps_get_allocated_size() functionv
  • ipc: IPC now runs at priority of the caller's task, preventing priority inversion issue where one core commandeers the other core
  • log: Added option to log system time rather than RTOS time (#3958)
  • mac: Calling esp_base_mac_addr_set() now fails if MAC is not a unicast MAC (#4263)
  • panic handler: Moved some panic handler code into flash to reduce IRAM usage, cache will be re-enabled in panic handler if necessary
  • pthread: Fixed pthread_once() possible race condition (#4561)
  • single core: Don't compile in unnecessary ipc code in single core configurations
  • startup: Clear RF PHY peripheral status during early startup
  • time: Added optional support for 64-bit time_t, depends on toolchain support which is not part of the default toolchain yet, this is planned for ESP-IDF v5.0.
  • toolchain: add new compiler optimization levels for "Performance" (-O2) and "None" (-O0)

FreeRTOS

  • Reduced interrupt cycle overhead by using window overflow and underflow exceptions to speed up Xtensa register spills to the stack
  • Added support for including FreeRTOS headers using the traditional header paths, instead of requiring freertos/ prefix

newlib libc

  • Fixed linking of newlib nano from ROM only if PSRAM cache workaround is disabled

LWIP

  • Added option to automatically resolve mDNS queries when looking up .local addresses
  • Added IPV6 stateless address autoconfiguration support
  • Cleaned up the TCP/IP stack port layer
  • Fixed crash when a netconn is marked as closed
  • Fix select_waiting() assert caused by UDP socket closing
  • Fix the crash caused by socket lock not initialized
  • Fixed issue with IPV6 TCP sending OK when STA disconnects
  • MLD6: Fixed error when attempting to join a non-multicast IPV6 address
  • Now includes hostname in DHCP discover packet, if set
  • PPPoS: Fixed power_down DCE immediately after getting IP
  • sntp: Added API to set the SNTP update interval (#4437)

mDNS

  • Added configuration values for mDNS task priority, affinity, internal service timeouts
  • Fixed missing "bye" packet if services removed with mdns_service_remove_all() or mdns_free() (#3660)

Provisioning

  • NimBLE: Fix bug in protocomm_nimble chararcteristic access callback
  • Unified Provisioning: Fixed BLE characteristics read response issue when read response length is a multiple of () length
  • Wifi_provisioning_softap: Allow applications to start webserver externally
  • Wifi_prov_manager: Fix to ensure that provisioning status is reliably conveyed to remote host

OTA

  • esp_https_ota: Added error checking functionalities. A few additional error checking mechanisms have been added which returns the control in case an invalid header is received, and a wrapper to the esp_http_client_is_complete_data_received() function of esp_http_client has been added.

HTTP Client

  • Added esp_http_client_set_authtype() function (#4444)
  • Fixed HTTP client issue regarding message_complete callback invocation (fixes some issues with OTA failing with unexpected errors if the connection closes early)
  • Fixed memory leak in esp_http_client_set_username/password (#4444)

mbedTLS

  • Added new fast Montgomery exponentiation implementation for RSA accelerator. Significantly improves ESP32 RSA performance (especially public key operations)
  • Don't allow disabling ECDSA support in mbedTLS config if app image signature checking is enabled

ULP

  • Added some missing ULP macro functionality: stage counters, branch on stage counter, I2C operations. (#3580)
  • Added ULP macro MOVE <label> construct which helps when writing larger programs. (#3580)
  • Added a union member to allow getting the encoded ULP instruction from a macro result (#3759)

Bootloader

  • Added option to skip image validation when waking from deep sleep (incompatible with Secure Boot) (#3304)
  • Restructured bootloader initialization, moving target-specific initialization into separate source files

ESP-TLS

TCP Transport

  • Added API to use password protected client keys
  • Added functionality to use ALPN with SSL

Websocket

  • Added User-Agent and additional headers to websocket client (#4345)

Storage

  • FATFS: handle the internal FR_INT_ERR error as "filesystem corrupted"
  • NVS: Add support to expose a NVS entry via a C++ smart pointer handle
  • SPIFFS: Fixed bugs when CONFIG_SPIFFS_USE_MTIME is not defined
  • SPIFFS: Now follows symlinks in spiffsgen (#3778)
  • spi_flash: Added new SPI flash driver using new hardware abstraction layer (backwards compatible API, legacy implementation can be re-enabled)

VFS

  • VFS: Check in select() if the UART driver is installed or not

Modbus

  • Added support for Modbus ASCII master mode
  • Fixed issue re-initializing Modbus controller after call to mbc_master_destroy()

External Libraries

Tools

  • c++: Allow enabling RTTI
  • core dump: Default Core Dump data format is now ELF (configurable)
  • idf_monitor: Work around a Windows driver bug when using a USB-CDC device
  • idf_monitor: fix the bug that idf_monitor not blocked when no log printed (#3884)
  • idf_size: Added support to write size data to a JSON file
  • idf_size: Significantly improved performance (#4518)
  • openocd: Documented support for ARM architecture

Build System

  • Added PowerShell versions of "install.bat" and "export.bat" for Windows PowerShell users
  • Added idf.py --cache option and support for setting config variable IDF_ENABLE_CCACHE to permanently enable CCache
  • Added minor fixes for convert_to_cmake.py
  • Added new idf.py --version command
  • Allow idf.py and CMake build system to work on FreeBSD (not officially supported) (#2029)
  • Fix IDF_PATH case mismatches on case insensitive filesystems
  • Fixed execution order for dependent tasks
  • Updated kconfiglib to the upstream version, switch to a Python-based menuconfig tool

Examples

  • http_request: Fixed some non-compliant parts of the HTTP request, amde example configurable
  • Improved the example behaviour when esp_restart() is called and Wi-Fi is initialized
  • ping: Added new example
  • restful server: Added NetBIOS support for discovery
  • tcp_server: Fixed unnnecessary reopening of listening socket
  • efuse: Added example demonstrating efuse API for writing efuses
  • ble throughput: Fixed intermittent crash when running the BLE throughput client
  • ble hid device: Fixed the wrong mask value based on the HID protocol
  • ble hid device: Fixed issue with security info restore when a paired BLE HID device disconnects and then reconnects after a BT Classic HID device has connected
  • blufi: Changed the Wi-Fi storage mode to default WIFI_STORAGE_FLASH
  • bluetooth: Added HFP Audio Gateway example
  • ota: Fixed bug with failing OTA if the connection closed prematurely

Documentation

  • Translated more ESP-IDF Programming Guide pages into Chinese
  • Added basic C++ style guide
  • Encourage Python 3 rather than Python 2 for new users
  • Added Getting Started Guide for Ethernet Kit V1.1

Obtaining v4.1-beta1

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

This is the recommended way of obtaining v4.1-beta1 of ESP-IDF.

Download an archive with submodules included

Attached to this release is an esp-idf-v4.1-beta1.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-v4.1-beta1.zip

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy