github espressif/esp-idf v5.3-beta2
ESP-IDF Pre-release v5.3-beta2

latest release: v4.4.8
pre-release23 days ago

Documentation for IDF v5.3-beta2 is available at https://docs.espressif.com/projects/esp-idf/en/v5.3-beta2/

ESP-IDF v5.3-beta2 is a preview release for ESP-IDF v5.3.

Obtaining v5.3-beta2

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

This is the recommended way of obtaining v5.3-beta2 of ESP-IDF.

Download an archive with submodules included

Attached to this release is an esp-idf-v5.3-beta2.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/v5.3-beta2/esp-idf-v5.3-beta2.zip

Major changes

This is the list of changes since release v5.2:

Major New Features

Support for New SoCs

ESP32-P4
  • Low Power System
    • Low Power Core (RISC-V)
    • Low-power GPIO
    • Low-power I2C Master
    • Low-power Timer
    • Low-power UART
    • Low-power Watchdog Timer
  • Peripherals
    • DMA (Direct Memory Access)
      • 2DDMA
      • DMA channel allocator
      • GDMA
        • CRC Calculator
      • GDMA2
    • Ethernet driver
      • SPI Ethernet driver
      • internal MAC driver
    • Event Task Matrix
    • GPIO driver
      • Analog Comparator
      • GPIO ETM
      • Glitch Filter
      • RTC IO (LP IO) driver
    • GPIO sigma delta driver
    • GPSPI
      • SPI Master driver
      • SPI Slave HD driver
      • SPI Slave driver
    • GPTimer driver
    • I2C
      • I2C master driver
      • I2C slave driver
    • I2S
      • I2S driver
        • I2S PDM rx mode
        • I2S PDM tx mode
        • I2S STD mode
        • I2S TDM mode
      • I2S legacy driver
    • JPEG
      • JPEG Decoder Driver
      • JPEG Encoder Driver
    • LCD driver
      • MIPI DSI
    • LEDC driver
      • Gamma Curve Generation
    • MCPWM driver
    • MIPI CSI
    • PCNT driver
    • PSRAM
      • PSRAM Device Driver
    • Parallel IO
      • Parallel IO TX Driver
    • RMT driver
    • SD/SDIO/MMC driver
      • SDMMC Host driver
      • SDSPI Host driver
    • SPI Flash driver
    • Systimer driver
      • Esptimer implementation over systimer
      • OS tick port over systimer
    • Temperature Sensor driver
    • UART
      • Support Low Power UART instance
      • UART FIFO mode driver
    • USB OTG
      • USB Device (TinyUSB) driver
        • USB 2.0 Device Support
      • USB Host driver
        • USB 2.0 Host Support
    • memory copy by DMA
  • Power management
    • Auto Light Sleep
    • Deep Sleep
    • Dynamic Frequency Switch
    • Light Sleep
  • Security Features
    • AES accelerator
    • Digital Signature driver
    • ECC accelerator
    • ECDSA driver
    • Flash encryption
    • HMAC driver
    • HUK Generator
    • Key Manager
    • RNG
    • RSA hardware accelerator driver
    • SHA accelerator
    • Secure boot
  • System Features
    • Bootloader Support
    • Cache
      • Cache Driver
    • Console
    • Cxx Component
    • ESP Event
    • ESP ROM
    • ESP Ringbuffer
    • ESP Timer
    • Efuse controller driver
    • Floating Point Unit
    • FreeRTOS
    • MMU
    • MSPI
      • MSPI tuning (Flash & PSRAM DDR and/or over 80 MHz)
    • POSIX Threads
    • Panic Handling Features
      • Core Dump
      • Debug Watchpoint
      • Panic Handler
      • Stack Guard
    • Ram App
    • TCM
    • Watch Dog Timers
    • newlib
  • Wireless Expansion
    • Bluedroid Host

Other Features

  • Supported external Wi-Fi connections for ESP32-P4 and other espressif chips. ( 3f486c4)
  • Added support for merging hosted Wi-Fi solution in esp_wifi component. ( 2a6b3df)

Breaking Changes

  • Removed CONFIG_IEEE802154_RECEIVE_DONE_HANDLER option, now the code using the 802.15.4 driver directly must call ieee802154_receive_handle_done after receiving the frame ( b056ac7)

Changelog

802.15.4

802.15.4 MAC

Added

  • Added the pending tx while rx feature ( d499ba4)
  • Added the feature of received done handler ( f3039dd)
  • Added ieee802154 examples ( bae3c28)
  • Added packets statistic of IEEE802.15.4 ( b516012)
  • Added 802.15.4 coex break notification ( fdf5783)
  • Supported IEEE802.15.4 MAC deinit ( 45f95e3)

Fixed

  • Fixed pending tx will be delayed issue ( ac76d44)
  • Fixed the issue of not receiving packets when RSSI is positive in ESP32-H2 ( 0a1f378)
  • Fixed ieee802154 include header file issue and unused value issue ( d022682)

Removed

  • Removed CONFIG_IEEE802154_RECEIVE_DONE_HANDLER option, now the code using the 802.15.4 driver directly must call ieee802154_receive_handle_done after receiving the frame ( b056ac7)

Thread

Added

  • Added deep sleep support for SED ( a66055f)
  • Added netif check when calling udp api ( ff89cf5)
  • Added max csmabackoffs numbers for transmission via spinel ( 8edaa94)
  • Added cli support in openthread sleep example ( c97077c)
  • Added state indicator in Thread examples ( 1e01517)
  • Added configure option for openthread address query ( f9f32d4)
  • Added ESP Radio spinel for external protocol stack ( 3b44a59)
  • Added ESP OpenThread vendor commands support ( 3b44a59)
  • Supported rcp re-initialization ( 58992e2)
  • Supported the common console command in OT CLI ( 65c838b)
  • Supported openthread radio caps rx on when idle ( e358506)
  • Supported setting netif_idx of udp pcb to no_index when binding UDP PCB to netif ( d7b9a3b)
  • Enabled uart ISR in IRAM for UART RCP process ( ac76d44)
  • Actively set raw pcb ttl value to 255 for icmpv6 message of border router ( 93d68c2)

Changed

  • Updated OpenThread upstream to 41ef807 ( 58992e2)
  • Updated SRP server update response error code ( 58992e2)
  • Enabled RCP uart configuration for BR by default ( d183000)
  • Disabled the rx on when idle in coex scenario ( ac76d44)

Fixed

  • Fixed checking the lifetime value before calling sys_timeout ( 58992e2)
  • Fixed filter the zero-length prefix when adding router table ( 58992e2)
  • Moved router entry pointer in timeout handler ( 58992e2)
  • Added parsing when txt entry key pointer is NULL ( 58992e2)
  • Fixed eventfd missing issue when SPI interface is enabled ( feb62db)
  • Fixed the race condition in rx buffer count operation ( 54e7b73)
  • Fixed openthread alarm timer calculation remaining_us overflow issue ( cda92ca)
  • Fixed RCP handle timeout crashing issue ( ac76d44)
  • Fixed frequent tx timeout && RCP recover issue when using SPI radio ( f0d10c8)
  • Fixed ot netif destroy netif order issue ( eaf4fb9)

Zigbee

Changed

  • Updated Zigbee examples to align with esp-zigbee-lib v1.0.9 ( e81932d)

Bluetooth Low Energy (BLE)

Bluetooth Low Energy Controller

Added

  • Added BLE scan backoff config option in menuconfig on ESP32 ( e3839a3)
  • Added API to get low power clock source on ESP32-C3 and ESP32-S3 ( 6b453b8)
  • Added config for channel assessment and ping procedure on ESP32-C3 and ESP32-S3 ( f36a16b)
  • Added CCA related config option on ESP32C6, ESP32H2 and ESP32C2 ( 28f68a0)
  • Added support for selecting whether to use CSA#2 through the configured option on ESP32-C2, ESP32-C6 and ESP32-H2. ( 083fe84)
  • Supported enable aux packet when extend advertising data length is zero on ESP32-C3 and ESP32-S3 ( ed025da)
  • Supported ESP32-C2 light sleep using external 32.768 kHz oscillator at pin0 as slow clock source. ( 28f68a0)
  • Supported disconnection again if the disconnection procedure is on-going on ESP32 ( e3839a3)
  • Supported clear BLE legacy advertising on ESP32-C3 and ESP32-S3 ( ca33198)
  • Supported clear BLE legacy advertising on ESP32. ( dc66da9)

Changed

  • Expanded the scan period to the maximum of 0xffff on ESP32-C6, ESP32-H2, and ESP32-C2. ( 28f68a0)
  • Use embedded assembly to get access to DPORT registers on ESP32 ( 7fcac31)
  • Modify mesh proxy solic uuid to 0x18590303 on ESP32 ( dc66da9)
  • Reduced the usage of flash and RAM when only legacy adv and peripheral are enabled on ESP32-C2. ( 148aa32)

Fixed

  • Example: Fixed UART HCI when flow control is off on ESP32C3 and ESP32S3. ( 4c190c5)
  • Fixed BLE coex assert on ESP32 ( 30fce03)
  • Fixed BLE DTM status error and TX count error on ESP32 ( 30fce03)
  • Fixed an occasional assertion issue during slave connection in coexistence scenarios on ESP32C2. ( 2cdd56e)
  • Fixed the compilation issue when use nimble host only on ESP32-H2,ESP32-C6 and ESP32-C2. ( 8ea943e)
  • Fixed BLE scan assert on ESP32(#8532) ( e3839a3)
  • Fixed BLE assert when receiving packet on ESP32 ( e3839a3)
  • Fixed the issue that BLE light sleep may randomly cause task watchdog upon power up on ESP32-H2. ( ca71f77)
  • Fixed extended uncoded and coded scan scheduling on ESP32-C3 and ESP32-S3. ( f36a16b)
  • Clear random address for extended advertising on ESP32-C3 and ESP32-S3. ( f36a16b)
  • Fixed periodic advertising data setting with zero length on ESP32-C3 and ESP32-S3. ( f36a16b)
  • Fixed an issue of occasional ACL data loss under multiple BLE connections on ESP32-C2. ( 28f68a0)
  • Fixed occasional assert issue in modem sleep mode on ESP32-C6 and ESP32-H2. ( 3dc9d66)
  • Fixed issue of slave latency applied when not receiving valid PDU on ESP32-C6 and ESP32-H2 ( 3dc9d66)
  • Fixed HCI command status event sending for disconnect command on ESP32. ( 9c075b9)
  • Fixed BLE transmitter test command parameters check error on ESP32. ( 9c075b9)
  • Fixed HCI command status event send error when LLCP is busy on ESP32. ( e99abdd)
  • Fixed an occasional assertion issue when enabling multiple periodic adv on ESP32-C2. ( 28b4ad2)
  • Fixed adv interval range limit error issue on ESP32-C2,ESP32-C6 and ESP32-H2. ( 28b4ad2)
  • Fixed an occasional assertion issue when disable controller on ESP32-C2. ( 28b4ad2)
  • Fixed the occasional assertion of rxbuffer_free_all on ESP32-C6 and ESP32-H2. ( 41ee4ad)
  • Fixed the assertion in memory check when the host processing is too slow on ESP32-C6 and ESP32-H2. ( 10f14d5)
  • Fixed BLE TX count error in direct test mode on ESP32-C3 and ESP32-S3 ( 37f0447)
  • Fixed BLE modem sleep enter failed sometimes on ESP32-C3 and ESP32-S3 ( 37f0447)
  • Fixed scheduling when modem sleep wakeup delayed on ESP32-C3 and ESP32-S3. ( adc49df)
  • Fixed BLE IRQ FIFO overflow when enter critical on ESP32-C3 and ESP32-S3. ( adc49df)
  • Fixed clock sync timeout when exit modem sleep on ESP32-C3 and ESP32-S3. ( adc49df)
  • Fixed directed advertising with RPA when privacy disabled on ESP32-C3 and ESP32-S3. ( adc49df)
  • Fixed instant passed when connection updating or PHY updating on ESP32-C3 and ESP32-S3. ( adc49df)
  • Resolved the problem of packet loss occurring during the 1M DTM Rx process on ESP32-H2 ( ec807d9)
  • Fixed the occasional cache error issue when sleep is enabled on ESP32-C6 and ESP32-H2. ( ec807d9)
  • Fixed Bluetooth not waking up due to internal 136k oscillator clock drift on ESP32-C3 and ESP32-S3 ( 6aa6403)
  • Fixed BLE scan request IFS time error in coexistence scenarios on ESP32 ( 54bcaae)
  • Fixed the issue of releasing memory improperly when the controller is de-initialized after scanning on ESP32-C6 and ESP32-H2. ( b667d20)
  • Fixed the assertion of get_rxed_buffer() when the host task is blocked for a long time on ESP32-C6 and ESP32-H2. ( b667d20)
  • Fixed interrupt timeout issue after enabling CONFIG_MAC_BB_PD on ESP32-C3 and ESP32-S3. ( f40ebbf)
  • Fixed an assertion issue when stopping periodic adv if the extended adv data is longer than 228 bytes and the periodic adv is enabled after extended adv on ESP32-C6 and ESP32-H2. ( ee3a46d)
  • Fixed the crash issue of deinitializing controller when controller is busy on ESP32-C2. ( 083fe84)
  • Fixed occasional enter sleep failure during scan and connection on ESP32-C2. ( 083fe84)
  • Fixed occasional MIC error during multiple concurrent connection on ESP32-C6 and ESP32-H2. ( 083fe84)
  • Fixed the issue of slave waiting for response timeout in indication procedure when the device is in multi-connection on ESP32-C6 and ESP32-H2. ( 083fe84)
  • Fixed BLE recorrect enable bug on ESP32-C3 and ESP32-S3 ( 6720610)
  • Fixed BLE bb isr is enabled by default on ESP32-C3 and ESP32-S3 ( 6720610)
  • Fixed memory leak in BLE controller after enabling CONFIG_MAC_BB_PD on ESP32-C3 and ESP32-S3. ( 0340043)
  • Fixed the issue that fail to establish synchronization when coexists with connection on ESP32-C2. ( e5b77d7)
  • Fixed add(remove) RPA to(from) white list on ESP32-C3 and ESP32-S3. ( c9c147f)
  • Fixed assert when BLE disconnection due to instant passed on ESP32. ( 6086647)
  • Fixed scan event timeout on ESP32. ( 6086647)
  • Fixed random address setting when scanning on ESP32. ( 6086647)
  • Fixed assert when BLE disconnection due to instant passed on ESP32-C3 and ESP32-S3. ( 345013f)
  • Fixed adding RPA to white list on ESP32-C3 and ESP32-S3. ( 345013f)
  • Fixed AES encryption for RPA resolution on ESP32-C3 and ESP32-S3. ( 345013f)
  • Fixed the occasional issue of being unable to receive packets on ESP32C2. ( 676968a)
  • Fixed extended adv tx issue when connection and adv coexist on ESP32C2. ( 676968a)
  • Fixed BLE occasional connection timeout after connection params update process on ESP32C6, ESP32H2 and ESP32C2. ( 676968a)
  • Fixed BLE occasional wakeup failure from lightsleep when restarting scan and updating connection params on ESP32C6 and ESP32H2. ( 676968a)
  • Fixed power state setting error when entering modem sleep on ESP32-C3 and ESP32-S3. ( dd5b091)
  • Fixed adv chain pdu tx stopping issue on ESP32C6 and ESP32H2. ( 44f0bb1)
  • Fixed scan not stopping after scan window expires on ESP32C2. ( 44f0bb1)
  • Fixed the issue of peripheral latency without ACL data to send on ESP32C6, ESP32H2 and ESP32-C2. ( 44f0bb1)
  • Newly Added
  • Fixed an occasional interrupt wdt issue when creating sync on ESP32C6 and ESP32H2. ( 8805685)
  • Fixed a crash issue during controller initialization when memory is insufficient on ESP32C6 and ESP32H2. ( 8805685)
  • Fixed an occasional disconnect issue due to timeout after updating connection parameters on ESP32C6 and ESP32H2. ( 8805685)
  • Fixed an issue of repeated memory deallocation during controller deinitialization after sending an AUX_CHAIN_IND packet on ESP32C6 and ESP32H2. ( 8805685)
  • Fixed BLE scan backoff setting error on ESP32 ( 464f4c9)

ESP Bluedroid Host

Added

  • Supported BLE GATTC notify registration number ( a436eaf)
  • Supported control point in BLE HID example ( 9327274)
  • Supported BLE add device to resolving list ( 46e0760)
  • Supported set resolvable private address timeout by api ( 4726afa)
  • Supported BLE create sync report disable and filter duplicate ( e3ab9f0)
  • Added API to send vendor hci command ( 76c4cfc)
  • Added API to clear BLE legacy advertising. ( ce7bb6b)
  • Added getter for BLE GATTC, GATTS and GAP calllback ( f8a12ad)

Changed

  • Optimized compatibility with IOS and MACOS devices ( 9327274)
  • Optimized BLE SPP example for improved compatibility ( 636f900)
  • Optimized BLE documentation comments to comply with Doxygen syntax ( 3cc70e8)
  • Optimized documentation for BLE duplicate scan ( f8a12ad)
  • Optimized BLE heap allocation to fix malloc fail in malloc_internal_wrapper (#12574) ( 4071984)
  • Modified the configuration to increase the maximum number of BLE connection attempts ( 5e658f5)
  • Optimized BLE remove all bonded devices function ( 562b579)
  • Optimized the BT_GATTS_ROBUST_CACHING_ENABLED configuration option by disabling the GATT robust caching feature to avoid compatibility issues with the Windows operating system (#12656) ( fecd858)
  • Updated BLE ibeacon example document ( 562b579)
  • Updated BLE gattc and gatts coex example ( 562b579)
  • Updated BLE gatt_server_service_table example document ( 94d7ec7)

Fixed

  • Fixed BLE appearance category ranges (#13626) ( fc4e48d)
  • Fixed BLE GATT max length of an attribute value ( 0545816)
  • Fixed ADV do not restart due to disconnection reason 0x3e ( b9ea883)
  • Fixed BLE periodic advertising create sync parameters check error ( 56756a7)
  • Fixed BLE crash when repeatedly iniitialize and deinitialize host ( e7d8850)
  • Fixed crash when calculating GATTS database hash. ( d76ac45)
  • Fixed "reprot" typo in esp_ble_gap_ext_adv_reprot_t. ( be29217)
  • Fixed xQueueSemaphoreTask assert when deinit host during scan ( 289de9d)
  • Fixed BLE dangling pointer issue in deletion of bonded devices ( a4268b8)
  • Fixed background connection status log level when a background connection is initiated or terminated ( a4268b8)
  • Fixed BLE memory leak when GATTC config off ( 4486286)
  • Fixed BLE advertising data check error to avoid memory overflow (#12886) ( 0b8e6c6)
  • Fixed BLE Prepare write request timeout on Client Characteristic Configuration and Client Supported Features characteristic ( 011d8a3)
  • Fixed Prepare Write out-of-bound memory write BLE for example ( 011d8a3)
  • Fixed the connection cannot be established after several stop/start cycles of the host ( 4519898)
  • Fixed the BLE advertising and scan status error after stop/start cycles of the host ( 9bdcfa6)
  • Fixed adding RPA to white list. ( 345013f)
  • Fixed bluedroid menuconfig dependents ( 94d7ec7)
  • Fixed BLE scan failed after deinit and init BLE( 221122e)
  • Fixed BLE advertising report event type error ( 294c2bd)
  • Fixed BLE keysize check error ( 294c2bd)
  • Fixed BLE remove bond list status error ( f1e8cfb)
  • Deleted one HID service to optimize compatibility with Android 10 and later devices ( 9327274)
  • Fixed encryption key size check error in BLE SMP ( 9327274)
  • Corrected typo from disbale to disable in numerous placeser ( 72fc360)
  • Example: Use correct struct type in discover service complete event. ( be29217)
  • Clean up BLE examples sdkconfig ( 227f531)

Removed

  • Remove BLE functions discard declaration ( 713e36e)

ESP NimBLE Host

Added

  • Added check for return value of hex2val ( d80a4e0)
  • Added support for data length change event ( 8a061af)
  • Added blecsc (Cycling Speed and Cadence) profile support for nimble examples (#11497) ( 23bae90)
  • Added support for deleting the oldest bonded device across reboot ( 22ee3e8)
  • Added ble_host_rpa_enabled flag for address resoultion for ESP32 ( aa6e49e)
  • Added support to send and receive read multiple variable length characteristic request and response. ( a93a6ef)
  • Added usage of esp_timer_get_expiry_time to get current remaining ticks ( b6e0ef0)
  • Added the check to prevent address resolution in case of identity addr for ESP32 ( 06dc388)
  • Added menuconfig options for bleprph_host_only example ( 2e2b828)
  • Added test API to show stack operations status ( c769dfa)
  • Added check to validate adv interval min /max range ( 444c76c)
  • Added nimble-host only support over UART. ( b2b84f9)
  • Added APIs to support BLE DTE functions. ( 4e5e8a7)
  • Added check to validate allowed random address ( 3d946fa)
  • Added observer role flag. ( c8220ad)
  • Added support for user to authorize GATT read or write operations. ( c8220ad)
  • Added support for more advertisement data AD Types. ( c8220ad)
  • Added support for Characteristic Presentation Format Descriptors. ( c8220ad)
  • Added support for Characteristic Aggregate Format Descriptor. ( c8220ad)
  • Added support for sending and receiving signed write commands using CSRK and Sign Counter. ( c8220ad)
  • Added Gatt Caching support ( ed0ba2e)
  • Added connection reattempt in case of Ext connect ( b3f7e2c)
  • Added Protocomm BLE Event Structure and Event Handling. ( e689cc5)
  • Added periodic_adv_enh SOC capabilities for c2, h2 ( 48ad3a5)
  • Added VSC to set the chan select algorithm to be used ( f4c74d8)
  • Added Support for HID service. ( 84ccc37)
  • Added support for VSC to clear legacy adv memory. ( 427f734)
  • Added NULL peer address check during connection initiation ( 5ec9f49)
  • Added change to return success for API execution in "ble_sm_inject_io" ( 6b361bd)
  • Added support for Current Time Service support. ( 6ab25d7)
  • Added observer role flag. ( c8220ad)
  • Added support for user to authorize GATT read or write operations. ( c8220ad)
  • Added support for more advertisement data AD Types. ( c8220ad)
  • Added support for Characteristic Presentation Format Descriptors. ( c8220ad)
  • Added support for Characteristic Aggregate Format Descriptor. ( c8220ad)
  • Added support for sending and receiving signed write commands using CSRK and Sign Counter. ( c8220ad)

Changed

  • Simplify reconnection code ( 9c84691)
  • Migrated to nimble-1.6.0 version ( 6e4eeec)
  • Improved documentation for bleprph_host_only example. ( d8ab10c)
  • Updated help sections for BLE_RPA_TIMEOUT config. ( 9921d5b)
  • Increased range of reattempt connection count ( f723b18)
  • Updated variable name to remove keyword. ( 2bec5d7)
  • Added change to return success for API execution in "ble_sm_inject_io" ( bcb8d17)
  • Added change to initiate pairing when enc fails with key missing reason ( f9d334b)

Fixed

  • Deselect MBEDTLS_ECP_RESTARTABLE when mbedTLS is used [ #13645 ] ( bf415f5)
  • Exposed API to set RPA timeout in stack. ( 14315bb)
  • Fixed aggressive termination in signed write procedure ( ba8976a)
  • Fixed unpair API ignoring devices bonded with CSRK ( ba8976a)
  • Fixed compilation issues when CCCD is set to 0 ( c8e454b)
  • Fixed for CVE-2024-24746 vulnerability ( 052e884)
  • Fixed the size of number packets in dtm event ( f44f065)
  • Set correct peer_addr during reattempt connection ( 60156a4)
  • Handle missing free in ble spp example ( 2666391)
  • Handle auto connection flag in extended connect ( 004b037)
  • Fixed call to ble_hid_task_startup and compilation issues due to incorrect prototypes ( dd737f9)
  • Fixed compilation issue occurring after disabling security. ( 1a9f9d6)
  • Fixed type in blehr/README (#13034) ( 11c03bc)
  • Fixed compilation error for strict-prototype enabled ( 7636c1d)
  • Exposed baud rate in the menuconfig. ( c460e1c)
  • Handle memory leak in callout deinit ( 8e863fa)
  • Changed 'move_count' to uint8_t type to fix compilation issue in nimble for -O2 flag. ( c5e92ac)
  • Fixed wrong #if guard in porting layer and UART configuration support. ( 9c0714f)
  • Fixed signed write procedure using correct CSRK and message. ( 01bc97a)
  • Authorized or deauthorize a BLE device for a connection ( 045884a)
  • Fixed out of order message causing DOS during SMP procedure. ( 1741705)
  • Fixed general and limited scanning to check relevent Flags AD Type. ( c8220ad)
  • Fixed allowing selective and auto connection establishment. ( c8220ad)
  • Fixed address resolution during inquiry for host based privacy. ( 6e860a8)
  • Fixed issue of enabling address resolution across reboot ( 0c007e1)
  • Handled race condition for conn elements being set to NULL ( 41f862d)
  • Handled all 0s address of controller during IRK generation. ( 204c194)
  • Fixed authcomplete failure due to mismatch in the c1 value. ( c256bed)
  • Handled the deletion of RPA mapping. ( 2cd09e8)
  • Fixed invalid year value write on current time char in CTS service. ( 7ab6788)
  • Fixed the parameters in duplicate exception list vsc command ( 8253274)
  • Fixed dangling pointer error during compilation (#12491) ( 356fe48)
  • Fixed incorrect handling of bonded devices. ( ff967f8)
  • Fixed issue of incorrect IRK being set during stack init. ( 3ccadd0)
  • Used Unique local IRK for each chip. ( 677faec)
  • Handled deletion of IRK/LTK on basis of key availability. ( 9d49241)
  • Fixed incorrect handling of bonded devices. ( 895ba56)
  • Handled the Load access fault crash caused due to an invalid setting of index-variable 'reattempt_idx'. ( c8cae65)
  • Fixed general and limited scanning to check relevent Flags AD Type. ( c8220ad)
  • Fixed allowing selective and auto connection establishment. ( c8220ad)
  • Free controller memory if stack init fails. (espressif/esp-nimble#68) ( dbf7571)

Removed

  • Removed double free of l2cap packet in example ( be2ccdc)
  • Removed occurance of IRAM_ATTR from internal files. ( 8414400)
  • Removed duplicate hci_common.h file. ( 20171bf)
  • Remove unwanted assert. ( e084a8f)
  • Removed non effective nimble example sdkconfig options. ( 229d275)

ESP-BLE-Mesh

Added

  • Supported Bluetooth Mesh SAR enhancement ( 9aeca25)

Changed

  • Put Bluetooth Mesh 1.1 lib files in submodule ( 9879615)

Fixed

  • Clean up Bluetooth Mesh example default configurations ( aad5ee5)
  • Fixed compiling error when PB-ADV is disabled for node ( 6790a5f)
  • Fixed the struct initialization to meet C++ requirements for Bluetooth Mesh stack ( 9746de9)
  • Fixed the struct initialization to meet C++ requirements for Bluetooth Mesh examples ( 9746de9)
  • Fixed using wrong type value for ADV_NONCONN_IND in NimBLE Host adapter ( 1ad354b)
  • Reject node reset when provisioning link is active ( 7537c4f)

Removed

  • Removed Bluetooth Mesh coex_test example ( cb4e3e6)

BluFi

Fixed

  • Fixed BluFi module link error(C++ hybrid compilation). ( be29217)

Classic Bluetooth

Classic Bluetooth Bluedroid Host

Added

  • Added support for using the BlueDroid Host only without the embedded Bluetooth controller ( 6e0a843)
  • Added an example on how to use the BlueDroid-Only mode ( 6e0a843)
  • Added support for build different roles in corresponding profile HID and HFP into a single binary ( 52085b0)
  • Added an API to set local minimum encryption key size and it provides two internal implementations, vendor-specific or standard HCI command. ( 10d4843)
  • Added field link key type to the parameter structure of callback event ESP_BT_GAP_AUTH_CMPL_EVT ( 28ff8e3)
  • Added callback event ESP_BT_GAP_ENC_CHG_EVT to notify the change of encryption mode to applicaiton layer ( 28ff8e3)
  • Added description of use limitations of security masks in SPP API document ( 8a76b2e)
  • Added new API functions that can add 32 and 128-bit UUID to the EIR data when these UUIDs are set in SDP(#11529) ( a7fbf45)
  • Added argument check in some APIs of HFP AG ( 0107fe2)
  • Added an API to set packet types for ACL-U traffic ( 907a7d9)

Changed

  • Moved the memory allocation of HF AG control blocks to BTC module when option dynamic memory is enabled ( 63db118)
  • Updated migration docs for new version of API for Bluedroid host stack initialization ( a047d5d)
  • Increased default stack size of BTU task by 256 bytes. ( ee7794c)

Fixed

  • Fixed the default air mode to invalid value ( 7a45809)
  • Fixed memory allocation for HFP AG when HF_DYNAMIC_MEMORY is enabled ( 7a45809)
  • Fixed build error when both of the HFP roles are enabled and also BT_BLE_DYNAMIC_ENV_MEMORY is set to true ( 735b9cd)
  • Fixed the HID Device inner error state caused by the failed connection ( 55a8a18)
  • Fixed the HID Host inner error state caused by repeat connection of the same device ( 14bf30d)
  • Fixed inconsistency of connection initiator state for HID Host open event ( 14bf30d)
  • Fixed SPP crash due to the connection not being disconnected before esp_spp_deinit was called ( d423430)
  • Fixed the crash caused by using illegal pointers during SDP deinit ( 7915aee)
  • Fixed no event when removing an invalid SDP record ( 7915aee)
  • Fixed the dangling pointer in processing the list of bonded bluetooth device ( 4fb2310)
  • Fixed SPP connection failure due to out-of-sync status of application layer and BTU layer ( 4997c81)
  • Fixed the panic when the mutex created is enclosed by macro SMP_INCLUDE, but locked by functions beyond that macro ( dcd9891)
  • Fixed crash of LoadProhibited during HFP AG deinitialization by releasing the control block in the event of BTA_AG_DISABLE_EVT ( 7a45809)
  • Corrected the definitions of HF Client callback events ( 7a45809)
  • Disabled Sniff Subrating temporarily as it did not work well ( 7a45809)
  • Fixed compilation error in the L2CAP and HF_AG module when compiler optimization level is optimize for performance ( e1a5122)
  • Fixed bug with zero handler return in btc_sdp.c sdp_create_record ( a7fbf45)
  • Corrected the API documents of HFP AG ( 0107fe2)
  • Fixed the crash of invalid access to released resources, which is caused by the delayed timer which is alarmed after esp_spp_deinit as all the control blocks have been already released ( 1eff15b)
  • Increased the stack size of write_read task in bt_spp_vfs_acceptor to fix the LoadProhibited error ( 144ee32)

Removed

  • Removed redundant operation of SCO clean up ( 7a45809)
  • Removed example sdkconfigs that are not in effect ( 02e6dc7)

Classic Bluetooth Controller

Fixed

  • Register coexist functions into Bluetooth controler on ESP32-C3/ESP32-S3 ( d954057)
  • Fixed the issue that fail to establish two SCO connections on ESP32. ( 9393cca)
  • Fixed parameter check for HCI_Setup_Synchronous_Connection on ESP32. ( 76923a7)
  • Fixed parameter check for HCI_Set_Connectionless_Peripheral_Broadcast on ESP32. ( 76923a7)
  • Fixed the incorrect timing in reporting HCI_Link_Key_Type_Changed event on ESP32 ( ef30e40)
  • Fixed the incorrect initializatio vector during resuming encryption on ESP32 ( ef30e40)
  • Fixed incorrect link key returned from HCI command HCI_READ_STORED_LINK_KEY on ESP32 ( ef30e40)
  • Fixed crash issue when doing Bluetooth deinit in coexistence scenario on ESP32. ( 36e4ba1)
  • Fixed invalid transmission of LMP_MAX_POWER PDU in case that peer device is expected peer to increase TX power to maximum on ESP32. ( 36e4ba1)
  • Fixed the loss of coexistence request event during sniff transition process due to insufficent of message queue length, which causes Bluetooth link disconnection in case of wireless coexistence on ESP32 ( 09c5046)
  • Clear sniff state in coexistence scheme when no connections exist on ESP32 ( 09c5046)
  • Fixed assert 1024 issue when Classic Blueooth TX and Wifi coexist on ESP32 ( 464f4c9)
  • Fixed the error in parsing packet_type argument for HCI_Enhanced_Setup_Synchronous_Connection, which causes acception of eSCO EDR packet types when they are configured not to be used on ESP32 ( 464f4c9)

Bluetooth Common

Added

  • Added an option to make alarm number configurable ( 8ae1d99)

Fixed

  • Fixed error in CMakeLists on ESP32C2 (#13451) ( 969a43c)
  • Fixed missing linker generated symbols in using esp_bt_mem_release when ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY is enabled (#10427, #11377) ( d4552c6)

Bluedroid

Added

  • Added an API to get local device name ( 4c8f6c5)

Changed

  • Make the maximum number of bond devices to be configurable. ( e8ff551)

Fixed

  • Fixed controller using null pointer after bluedroid deinit ( d8ddc10)
  • Avoided memory leak in BT Device module ( 20f2207)

Controller

Added

  • Added two compile options -ffunction-sections and -fdata-sections when building libbtdm_app.a, to allow to reduce code and data from executable on ESP32 ( e265484)

Fixed

  • Apply only necessary patches for Bluetooth controller ROM code according to Bluetooth mode on ESP32 in order to reduce IRAM consumption and binary size ( e265484)

Coexistence

Fixed

  • Fixed circular dependency issue on esp32 (#13113) ( 6c9f503)
  • Fixed ESP32-C6 coexist registers reset issue ( a5bd6a5)

PHY

Changed

  • Updated ESP32-C3 PHY version to 1170, f4aea9b, Apr 30 2024 ( 53c4c08)
  • Updated ESP32-S3 PHY version to 670, b7bc9b9, Apr 30 2024 ( 53c4c08)
  • Updated ESP32-C6 PHY version to 290, 81efd96, May 8 2024 ( 53c4c08)
  • Refactored multiple antenna, support for WIFI/BT/BLE/15.4 ( 7347042)

Fixed

  • Fixed BLE coded PHY s8 packet TX issue in coexistence scenarios on ESP32-C3, ESP32-S3, ESP32-C2 and ESP32-C6. ( 4e79288)
  • Fixed PLL track when enabling and disabling PHY frequently. ( 0e5e2ff)
  • Fixed BLE 2M PHY TX problem causing by phy_wifi_enable_set() on ESP32-C3 and ESP32-S3 ( 946fdfc)
  • Fixed BLE CCA bug on ESP32-C2 ( 946fdfc)
  • Fixed wifi boot bug at low temp on ESP32-C6 ( 946fdfc)
  • Fixed BLE and Wi-Fi could not receive packets after entering light sleep for a long time on ESP32-C3, ESP32-S3, ESP32-C2 and ESP32-C6 ( 946fdfc)
  • Fixed ESP32-H2 wakeup I2C fail ( 9a6b094)
  • Fixed ESP32-H2 PHY sleep wakeup issue ( 8d85c08)
  • Fixed ESP32-C6 RX Wi-Fi packets issue in light sleep mode. ( c2cf88c)
  • Fixed BLE TX IFS time for ESP32 ( da4b3d5)
  • Fixed Bluetooth coexist bug on ESP32 ( 31ede5b)

Wi-Fi

Added

  • Supported external Wi-Fi connections for ESP32-P4 and other espressif chips. ( 3f486c4)
  • Added support for merging hosted Wi-Fi solution in esp_wifi component. ( 2a6b3df)
  • Added channel change event for ESP-NOW (#12538) ( 45c5962)
  • Added a new API to get only one scan AP record ( 41400d8)
  • Added support of Network Introduction protocol in DPP. ( 2a6b3df)

Changed

  • Updated the LMK description in ESP-NOW documentation (#12976) ( a98e252)
  • Updated scan ap number when clear scan ap records ( 90035d3)

Fixed

  • Fixed rate check error in fragment ( e4d70e9)
  • Fixed crash occurred due to concurrency in WPA3 soft-AP ( 3cd174a)
  • Fixed the old_snd filed error in WIFI_EVENT_HOME_CHANNEL_CHANGE event (#13051) ( 90035d3)
  • Fixed the issue that Wi-Fi may not work due to BB PLL not locked or not stable when open_rf & SW_RESET on ESP32-C2/ESP32-S3/ESP32-C6/ESP32-H2 ( cc83c1e)
  • Fixed the crash issue when clearing the scan AP list ( 41400d8)
  • Fixed DPP example init error by setting STA mode before DPP init (#12769)
  • Fixed sniffer dump FCS error packets fail (#10777) ( c7f146b)
  • Fixed ESP-NOW get private parameter error (#13693) ( c7f146b)
  • Fixed the issue that Wi-Fi TBTT interrupt missed after BLE deinit on ESP32C6 ECO1 chip, which may cause Wi-Fi difficult to receive packets ( 1aaae85)
  • Fixed wrong reason code in some cases for WIFI_EVENT_AP_STADISCONNECTED event when PMF (Protected Management Frame ) enabled ( c7f146b)

Removed

  • Smart Config: Removed rogue semicolon in SMARTCONFIG_START_CONFIG_DEFAULT() which was causing some build errors when used in C++ (#12867) ( fe2a5ad)

Wi-Fi MAC

Added

  • Added new APIs esp_wifi_set_scan_parameters and esp_wifi_get_scan_parameters to set default scan configurations ( 617130a)
  • Added support for advanced Wi-Fi Roaming through configurable Wi-Fi app. Supports 802.11Kv based networks as well as legacy roaming. ( d885808)
  • Added improvements in scan/connect path as per specifications along with bug fixes (#12517) ( 2eacbbe)
  • Added the ability to decide specific channels to be scanned by setting corresponding bits in a bitmap.(added to wifi_scan_config_t) ( d885808)
  • Merged SAE Extended Key auth modes into WIFI_AUTH_WPA3_PSK as per WPA3 Specification v3.3, do not suggest to use WIFI_AUTH_WPA3_EXT_PSK and WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE anymore ( 8a06233)
  • Supported dump 802.11 ACK frame for CSI ( 64a9cd5)
  • Added more descriptive reason codes upon station disconnect due to no AP found(#5957) ( 4f47c40)
  • Supported fragment for LR mode ( 7ae8e1c)
  • Added support for iTWT teardown status ( c7f146b)
  • Added soft-AP CSA count and DTIM count config ( 1a7c782)
  • Added station set wait broadcast data time API ( 1a7c782)
  • Supported Wi-Fi power save at coexist mode. ( !30994)

Changed

  • Refactored FTM code and add calibration for FTM in 40MHz Bandwidth ( be73c44)
  • Updated FTM PHY Compensation values ( ec50cd7)
  • Improved Wi-Fi connecting success rate at coexist scenario. ( be7fe58)
  • Optimized bin size for STA only mode ( 7ae8e1c)
  • Changed fragment threshold to 256 ( 7ae8e1c)

Fixed

  • Fixed issues with NAN service discovery and data path ( 469dda1)
  • Fixed crash while cancelling NAN service ( f4c7dfd)
  • Fixed GCMP encryption for management packets. ( 0f5aca1)
  • Fixed decryption of deauth/diassoc packets when Management Frame Protection enabled ( 0f5aca1)
  • Fixed bug in esp_wifi_deauthenticate_internal() and other improvements ( b7c2e63)
  • Fixed the bug that deinitilize and initilize Wi-Fi gain may cause scan fail issue ( 221122e)
  • Fixed the issue that STA with PMF disabled try to connect with AP with PMF required ( 92c4714)
  • Fixed esp32c6 rxctrl info is not correct. ( 2943850)
  • Fixed individual TWT information frame format is incorrect. ( 2943850)
  • Fixed key installation issue in EAP Re-authentication ( 2e0afe5)
  • Enabled PMF when connecting to mixed mode AP ( 2e0afe5)
  • Fixed sporadic crash arising out of concurrency issues in functioning of DPP module ( 5f969c7)
  • Fixed issue that task watchdog got triggered on ESP32C6 ( 03d6b09)
  • Fixed issue that esp_wifi_set_mode() not returning error for invalid argument ( 03d6b09)
  • Fixed beacon timeout after restart ( 170b46e)
  • Fixed Wi-Fi stop cost too much time at coexist scenario ( 170b46e)
  • Sent the bug that WPA3 soft-AP sending deauth when the soft-AP is busy processing SAE confirm and it receives assoc req from the same station. ( 15f62f8)
  • Fixed the issue that station disconnect immediately after scanning if RSSI is zero ( 7ade26c)
  • Fixed AMPDU compatibility issue for some AP ( ec50cd7)
  • Fixed task watchdog got triggered by esp_wifi_stop issue. ( 9aa1bc6)
  • Fixed multicast address QoS frames issue. ( 277bec6)
  • Fixed task watchdog issue when soft-AP starts at coexist status. ( be06a6f)
  • Limited the number of sub frames in an AMSDU TX ( b25cd52)
  • Fixed crash issue during W-iFi connect when AMSDU TX enabled ( b25cd52)
  • Fixed ESP32C2 disconnect reason code wrong issue ( 83f4038)
  • Used low rate to send DHCP offer and DHCP ack to avoid get IP fail ( 8e06aed)
  • Fixed QoS encapsulated EAPOL issue ( 8e06aed)
  • Fixed potential memory issue in Wi-Fi stop(may increase binary image by 2KB) ( 8e06aed)
  • Fixed esp_wifi_scan_start meomry leakage issue (#10693) ( b4fe434)
  • Fixed PMK invalid cause WPA connect fail after disconnected from a WPA2 AP with same SSID ( 984418d)
  • Fixed when AP recv auth in SA query process will memset PS queue cause memory leakage ( 48b3f8a)
  • Fixed AMPDU duration issue ( 7ae8e1c)
  • Fixed RX fragment fail in Open mode ( 7ae8e1c)
  • Fixed PSRAM enabled but failed initialization issue (#11971) ( 6da710d)
  • Allow some special invalid IGTK key index to workaround faulty APs ( 59ba806)
  • Fixed issue of wrong Rx control information for ESP-NOW packets on ESP32 and ESP32-S2 ( 68a9c09)
  • Fixed FTM failures with external AP while connected in 40MHz ( c7f146b)
  • Fixed NAN discovery beacon interval to 100 TU's ( c7f146b)
  • Polished the description of API esp_wifi_get_mode and esp_wifi_scan_get_ap_record(#12331) ( 1a7c782)
  • Fixed ESP32 wrong period for ESP_WIFI_SLP_BEACON_LOST_OPT feature. ( 1a7c782)
  • Fixed ESP32-C3/ESP32-C2/ESP32-S2 inaccurate period for ESP_WIFI_SLP_BEACON_LOST_OPT feature. ( 1a7c782)
  • Fixed HE encryption management frames ( c7f146b)
  • Fixed scan get AP number issue ( c7f146b)
  • Fixed ESP32 unrecoverable "m f" issue ( c7f146b)

Removed

ESP-WIFI-MESH

Changed

  • Updated comments in esp_mesh.h and esp_mesh_internal.h ( 2051a9f)
  • Mesh: Updated the documentation for the use of mesh APIs ( c7f146b)

Fixed

  • Wait for child disconnect event when mesh deinit ( 88317ed)
  • Fixed the crash issue when mesh deinit ( 48b3f8a)
  • Fixed the bug that station can't found AP when the auth mode is WPA (#12646) ( 077067b)
  • Fixed Wi-Fi mode error when mesh start after station has connected to router ( 077067b)
  • Fixed the IE crypto disable error in manual_networking example ( 2051a9f)
  • Fixed the SPIRAM malloc issue in Wi-Fi mesh (Closes #13285) ( c97fc4c)
  • Mesh: Fixed the TX issue when mesh time remain equal to zero ( c7f146b)

Wi-Fi Supplicant

Added

  • Added API support to disable PMK caching. ( 1bcd5bc)
  • Added TLS v1.3 support for Wi-Fi Enterprise Authentication ( 9971413)
  • Added a 1s timeout for DPP authentication process and runs DPP callback with reason code ESP_ERR_DPP_AUTH_TIMEOUT upon timeout ( ac72355)
  • Added parameter to configure reason code of deauth frame ( b7c2e63)
  • Added low heap Kconfig option for EAP enterprise ( 2dc6783)
  • Added support to move supplicant BSS to external memory ( 685fcf4)
  • Added support for SAE-PK, WPA3-Enterprise and OWE transition disable indication ( b05b19a)

Changed

  • Optimized scanning and connecting times in Wi-Fi Roaming when using BSS Transition Management mechanisms. ( d885808)
  • CVE-2023-52160: Updated phase2 requirement for Wi-Fi PEAP authentication to required when client cert/private key is not used . ( 00dd326)
  • Added change to allow calling esp_mbo_* APIs only when MBO config flag is enabled. ( 3a2e0dc)
  • Memzeroed Wi-Fi config before sending DPP config event. ( 8768c92)

Fixed

  • Fixed a crash when esp_wifi_wps_disable is attempted when WPS process is ongoing ( 9f2578a)
  • Fixed memory leak in DPP deinit path ( ac72355)
  • Fixed cipher issue in WPA2 enterprise internal TLS agent ( b10580f)
  • Fixed compile error when CONFIG_SAE is disabled(#13553) ( 127873b)
  • Fixed crash when associate req is processed before processing of SAE confirm is completed ( ce63630)
  • Fixed dereferencing a dangling function pointer in WPS ( 3fd985e)
  • Fixed WDT when esp_supp_dpp_start_listen is called multiple times. ( e6a490c)

Removed

  • Deprecate the use of esp_rrm_send_neighbor_rep_request() in favor of esp_rrm_send_neighbor_report_request() which replaces the callback structure of the former with instead posting an event when a neighbor report is received.(i.e WIFI_EVENT_STA_NEIGHBOUR_REP) ( d885808)

ESP Vendor Feature

Changed

  • Changed the magic variable from int to uint32_t on the receiving side (#10912) ( b18a039)
  • Updated the documentation for the use of sniffer APIs (#10740) ( b18a039)
  • Updated the CSI RX callback function and CSI related doc ( 1b46e14)

Fixed

  • Fixed smart config BSSID set issue. ( 7f76239)
  • esp_now_send() will return ESP_ERR_ESPNOW_CHAN if current channel doesn't match ESP-NOW channel ( 45c5962)

Ethernet

Added

  • Added support for ESP32P4 EMAC ( 0766bb5)
  • Added option to use SPI Ethernet modules in poll mode without interrupt. #12682 ( 5df5f0c)
  • Added a timeout in Rx task when waiting for interrupt for KSZ8851. ( 5df5f0c)
  • Added option to read/write PHY registers via ioctl API ( 1844a66)
  • Added extra delay after setting PHY speed for LAN87xx ( 1844a66)
  • Added option to configure interrupt priority ( 9d0b8d6)
  • Added functions to access PHY using MDIO ( 3ad41ae)

Changed

  • Refactored internal EMAC DMA access. ( 0766bb5)

Fixed

  • Fixed access to PHY registers for DM9051 ( d3e45fa)
  • Fixed issue when Ethernet MAC didn't start after the second start/stop sequence when auto-negotiation disabled. ( 4ddc947)
  • Fixed SPI Ethernet _alloc_recv_buf error handling ( dee34c2)
  • Fixed W5500 flush received frame function ( dee34c2)
  • Fixed reset timing of IP101 to align with datasheet. ( 91630fa)
  • Fixed link detection for DP83848 to use BMSR (#13560) ( cf4cf23)

Security

Added

  • Protocomm: Added salt-verifier generation API in SRP6a implementation and make its interface public ( 810133a)

Changed

  • Mbedtls: Updated the default root certificate bundle (cacrt_all.pem) ( 6dd040a)
  • The function esp_secure_boot_verify_sbv2_signature_block() has been made publicly available. (#12717)) ( 1b82257)

Fixed

  • Fixed incorrect results for GCM operations that used non-AES ciphers using software fallback ( 603bc05)
  • Allow to OTA update secure boot enabled app on secure boot disabled chip (#13139) ( 07980db)
  • Additional protection for secure version check in anti-rollback case to avoid security bypass with physical access to flash ( 34723ad)
  • Fixed build failure and incorrect GCM hardware usage when CONFIG_MBEDTLS_HARDWARE_GCM is disabled ( 1220c36)
  • Fix llperi_rng_data field discrepancy in ESP32C6 and ESP32H2 ( 9fb38d8)
  • Unconditionally program efuse ESP_EFUSE_ECDSA_FORCE_USE_HARDWARE_K bit for ECDSA peripheral (as a security measure) ( 7505667)

Peripheral Drivers

Added

  • ADC: Added a configuration for ADC driver debug log (#12409) ( 85484ff)
  • ADC: Added a note in programming guide about calibration efuse error (#12372) ( 100ba9f)
  • DMA: Added advanced esp_dma_m\calloc helper API to achieve customized memory allocation. ( db3e439)
  • DMA: Added esp_dma_is_buffer_alignment_satisfied helper function to check if the buffer is DMA alignment satisfied. ( db3e439)
  • Esp Lcd: SSD1306 driver supports 128x32 resolution (#12450) ( 3d01150)
  • Spi Lcd: Added flags to control the DC level in cmd/param/data phase separately (#12908) ( a532a64)
  • Gpio ETM: Allow one GPIO to take more than one GPIO ETM actions ( e56f92a)
  • I2C: Supported LP_I2C in i2c master driver ( 6224fca)
  • I2C: Added a parameter to configure SCL await value ( 333e8aa)
  • I2C: Added more docs for using i2c_master_probe (#12929) ( 5e47ed7)
  • I2C: Added I2C sleep retention support on esp32c6 and esp32h2 ( 2302dd5)
  • I2C: Added check for scl frequency on new i2c driver (#12598) ( 10f4b04)
  • I2S: Added a check to ensure the I2S TX direction GPIOs are not in use by other modules. ( 71ceedc)
  • I2S: Supported asynchronous read write via callback. ( 2a121e9)
  • I2S: Supported more mclk_multiple ( 9d381c2)
  • I2S: Supported to get total DMA buffer size ( e87f799)
  • Parlio: Supported non-blocking transaction queue ( 3a9d082)
  • Parlio Rx: Supported Parallel IO RX driver on ESP32C6 and ESP32H2 ( 83d5797)
  • RMT: Added simple callback-based encoder to RMT driver ( c5389ac)
  • RMT: Added a check to the RMT TX channel to ensure the GPIO is not in use by others ( 60a2bf6)
  • RMT: Added help function to allocate the memory used by the encoder (#13032) ( 5074cc6)
  • RMT: Supported update bytes encoder configurations at runtime (https://github.com/espressif/esp-idf/issues/12775) ( ead6f7c)
  • RMT: Supported partial receive feature, which is useful for receiving a long packet in a ping-pong manner. ( 106baac)
  • RMT: Supported uses rmt_receive in the ISR context. Add CONFIG_RMT_RECV_FUNC_IN_IRAM to control the placement of the rmt_receive function. ( 5cc965e)
  • SPI Flash: Added check for safe write address in encrypted flash write API ( 98373a3)
  • Temperature Sensor: Added Temperature sensor ETM support. ( 0f03434)
  • Usb Host: allows user to filter enumerated devices and set the device configuration during the enumeration ( 5524b69)
  • Usb Serial Jtag: Give an example for how to use usb_serial_jtag API (#12620) ( 2d4a924)

Changed

  • ADC: Moved dma_ll functions in ADC hal layer to ADC driver layer ( b50a52f)
  • I2C Lcd: Updated the OLED example with the new I2C master driver (#13201) ( 47c575d)
  • Mcpwm: reset the generator GPIO after deleting (#12980) ( fdb597c)
  • Spi Flash: Reorganized the documentation of optional features ( 3551665)
  • Spi Flash: Make Tsus value in flash suspend more flexible as a config option. ( 647f0d2)
  • Temperature Sensor: Updated temp_sensor.rst documentation to match example (#13090) ( 831c354)
  • UART: Enlarged LP_UART_EMPTY_THRESH_DEFAULT value to 4, so that it is much likely to be able to fill the next data into TX FIFO before FIFO becomes fully empty when the baud rate is high on the LP UART controller. ( 2a585f5)
  • Usb Host: Loosened requirements on bInterval for INTR and ISOC endpoints. Large bInterval values will now be internally rounded down to 32. ( 1d7132c)
  • Usb Host: USB Host Lib example now allows device reconnections and GPIO button press app quit ( 5c89fa3)
  • Usb Serial Jtag: Increased stack size for usb_serial_jtag example usage (#13245) ( bd7f870)
  • Usb-Serial-Jtag: Auto-flush buffers in most cases if MPS size packet is sent. ( 7830b01)

Fixed

  • ADC: Fixed clock missing cause stuck in startup adc calibration ( 859d9a8)
  • ADC: Fixed wrong results after ADC continuous mode stops and starts again on ESP32-C3 ( a0532e1)
  • ADC: Fixed disable adc will make temperature sensor crash (#12921) ( 53fff31)
  • ADC: Fixed wrong results after ADC continuous mode stops and starts again on ESP32-C6/ESP32-H2/ESP32-S3/ESP32-S2/ESP32-C2 ( 4e843a1)
  • ADC: Fixed ADC calibration error after waking up from light sleep on H2 ( b9a3dd1)
  • ADC: Fixed ADC read zero caused by the dalay of ADC read signal delay on ESP32-H2 ( 8d9e297)
  • ADC: Fixed wrong ADC reading results caused by ADC and WiFi power conflict on ESP32-H2 ( 573d06f)
  • ADC: Fixed ADC oneshot mod do not once divide and twice divide the clock ( 8b95355)
  • Dedicated Gpio: Fixed the software UART driver to stop sending the dummy byte from the emulate_uart_send routine. ( 0db3268)
  • GPIO: Fixed mismatching real drive capability with the configured value for some IOs on ESP32C3 and ESP32S3 ( 49a3bba)
  • I2C: Fixed Shorted SDA/SCL lines cause a watchdog timeout (#13587) ( 4a94f9b)
  • I2C: Fixed probe fail after sending generic command (#13547) ( 4a94f9b)
  • I2C: Fixed issue that i2c speed incorrect after error (#13397) ( eeb9aa9)
  • I2C Master: Fixed i2c_master_new_bus fails on ESP32 (#12929) ( 5e47ed7)
  • I2C: The i2c functions will return error if nack detected (#13142) (#13398) ( 5e47ed7)
  • I2C: Fixed timeout being overwritten when starting an I2C transfer (#4999) ( 1db1750)
  • I2C: Fixed receive data is less than sent error will cause core panic (#13354) ( 812d197)
  • I2C Slave: Fixed i2c_new_slave_device does not use slave_config->intr_priority (#13374) ( 812d197)
  • I2C: Fixed potential deadlock on i2c_transaction_start (#13388) ( db857c3)
  • I2C: Fixed I2C occupy too much cpu source when waiting transaction finishes (#13137) (#13322) ( 7d59160)
  • I2C Master: Fixed i2c_master on ESP32 read one byte failed. ( c967dac)
  • I2C: Fixed memory leak issue that use callback/async transaction (#12878) ( 251239d)
  • I2S: Allow users to decide the sequence of auto_clear and on_sent callback. ( 2a121e9)
  • I2S: Fixed incorrect reg base name on C3 (#12643) ( 4f506a3)
  • RMT: Fixed the issue that RX filter can't work properly when using REF_TICK as the clock source on ESP32/S2(#13510) ( 15f356b)
  • RMT: Reenable DMA owner check (#12564) ( 7690888)
  • RMT: Fixed the issue that a stopped RMT TX channel can still pick up a pending transaction ( dbc1c06)
  • Rgb Lcd: Flush the PSRAM frame buffer after allocation (#13294) ( 19a4d3b)
  • Rgb Lcd: Fixed the issue that the restart transmission can't work with RGB332 pixel format(#13020) ( 9bdd431)
  • SPI: Corrected macro REG_SPI_BASE(i) for all targets (#12559) (#12562) ( 72e4141)
  • Sdmmc: Fixed initialization process for certain cards in SPI mode (#6686, #10542) ( 293f529)
  • Spi Flash: Fixed document issue of Auto suspend enabled by default ( a30375f)
  • Spi Flash: Fixed stuck during spi_flash operation when a task was not pinned to a certain CPU. ( 3df89eb)
  • Spi Flash: Fixed wrong detected mxic flash size (#12222) ( ff976c3)
  • Spi Flash: Fixed issue that flash encryption failed while ROM_IMPL config is enabled, increases around 1.2KB IRAM usage. ( 0b9b928)
  • Spi Flash: Fixed esp_flash_encryption_write slow (#12553) ( 067ee29)
  • Spi Flash: Enable quad flash suspend when flash works under 120M ( 9e70bda)
  • Spi Master: Restricted some timing descriptions to only ESP32 ( 2103c3b)
  • Spi Master: LCD example correct init command data in struct (#12666) ( b058a7e)
  • TWAI: Set the controller_id in the TWAI default initializer (#12998) ( 2bd7e67)
  • Temperature Sensor: Fixed issue that temperature sensor cannot change range smoothly on esp32h2 ( 6c53739)
  • Temperature Sensor: Fixed value is incorrect after disable and enable (#12864) ( 39882c3)
  • UART: Fixed issue that TX be blocked by auto-lightsleep ( 1ca9a46)
  • UART: Fixed the maximum baud rate value (UART_BITRATE_MAX) on ESP32C2 that ensures the data sampling correctness. ( 6f9a866)
  • UART: Fixed inconsistent number of UART wakeup rising edges required with the threshold value configured on ESP32S2 and later chips (#12586) ( 6b9c2fc)
  • UART: Added missing include for esp32/rom/uart.h (#13025) ( e1ec760)
  • Usb Host: Fixed a bug in the USBH layer where multiple concurrent events on the same device would result in some of those events being dropped. ( f5b08b2)
  • Usb Host: Fixed string descriptor fetching for non-compliant USB devices ( 9b233ac)
  • Usb Serial Jtag: Fixed boot failed from usb_serial_jtag (#12958) ( 2989315)
  • Usb Serial Jtag: Fixed not flush when TX buffer is full (#12628) ( 2d4a924)

Removed

  • ADC: Deprecated wrong name ADC_ATTEN_DB_11, now it's updated to ADC_ATTEN_DB_12. ( 0c81f41)
  • DAC: removed redundant config in i2s_ll_enable_builtin_dac (#12741) ( 692c1fc)
  • I2S: The secondary pointer i2s_event_data_t::data is deprecated, please use the first-level pointer i2s_event_data_t::dma_buf instead. ( f6f7145)
  • Rgb Lcd: Removed the validation of pins for RGB_LCD output (#13103) ( 4472422)

System Hardware

Added

  • Increased the maximum supported version of ESP32-C3 to v1.99 ( 234e5e8)
  • Cache: Added unaligned check to esp_cache_msync API for ESP_CACHE_MSYNC_FLAG_DIR_M2C direction ( f886bbc)
  • Efuse: Added new efuses for ESP32H2 and ESP32C6 ( 261651f)
  • Efuse: Added config for using custom MAC as base MAC. ( 636092d)

Changed

  • Updated method for disabling HMAC to avoid unnecessary reset during disabling. ( acb7338)
  • Improved voltage convergence of C6 chips for better stability ( c7a02cb)
  • Improved voltage convergence of H2 chips for better stability ( 6dbb305)
  • MSPI: Improved timing tuning stability on ESP32-S3 ( cc83c1e)

Fixed

  • Solved CLK calibration timeout problem caused by the wrong range of RTC_CLK_CAL_CYCLES. ( 6a879bf)
  • Fixed bbpll calibration fail bug for s3 to avoid TG0WDT_SYS_RESET. ( 7b86fe5)
  • Fixed mmap can't run on ram load app issue ( bf86aeb)
  • BOD: Fixed wrong threshold on esp32h2, the previous behavior is the triggered value is higher or lower than you set. ( 980780c)
  • BOD: Fixed RF cannot be enabled again after brownout triggered on C6/H2. ( 96f49c2)
  • Cache: Fixed wrong configuration for DCache 0 size condition which leads to startup crash on ESP32S2 ( f8674e6)
  • Memory: Fixed bootloader build with configuration (Verbose logging + secure boot + flash encryption) for S3/S2 targets. This fix reduced static memory space for esp32s2/s3 by 4KB. ( e3d4b90)
  • Memory: Fixed DROM_HIGH_ADDR for esp32s3 used in memory utils APIs. ( 0df6afa)
  • DMA: Fixed MALLOC_CAP_SPIRAM doesn't match with MALLOC_CAP_DMA for esp_dma_m/calloc issue ( f5a00d7)

Core System

Added

  • Partition Table: Added support for configuring absolute path for custom partition csv files. (#12264) ( 40db628)
  • Added helper macros that check the condition and return from void function (#13536) ( 0b5a6e3)
  • Implemented LL layers for the CLIC, PLIC and INTC interrupt controllers ( cdde053)
  • Linux Target: Added fls() ( c3aaebd)
  • Newlib: Added definition of aligned_alloc declared in stdlib.h ( e6218d6)
  • Newlib: Added scandir and alphasort ( a68013c)
  • Console: Added command context pointer (#12436) ( 1c60694)
  • Console: Added kconfig option to print commands in alphabetical order (#12525) ( e6e1cf4, 112e7f1)
  • Log: Added PRIuSIZE printf formatter macro ( 25400ca)
  • Console: Added config option for configuring console repl task core affinity ( 4f1570e)
  • Console: Added Linux target support for console component ( 6ea18dc)
  • Heap: Added heap walker API to esp_heap_caps.h ( 573bd1b)
  • Head: Added feature to start / stop tracking the minimum free size for given capabilities over a given timeframe. ( 7f64b42)
  • Heap: Added memory poisoning checks of used blocks when calling heap_caps_check_integrity_xx functions (#12231) in the ROM implementation of the heap component. ( 4cdb2f3)
  • IPC: Added non blocking IPC call ( 3df89eb)
  • Debug Helpers: Added the esp_backtrace_print_all_tasks() debug function to print backtrace of all tasks (#11575, special thanks to @chipweinberger for this contribution). ( 142218c)

Changed

  • Refactored interrupts, including crosscore interrupts, on RISC-V targets ( cdde053)
  • Console: Changed the hints implementation to not depend on open_memstream (#12507) ( ac01077)
  • Linux Target: Unified handling of libbsd headers cdefs.h and string.h on Linux ( f482a91)
  • Heap: Changed behavior of memalign&posix_memalign, so it checks malloc_alwaysinternal_limit and picks one of: always MALLOC_CAP_INTERNAL, MALLOC_CAP_INTERNAL first with fallback, MALLOC_CAP_SPIRAM first with fallback. (#12375) ( c13e41a)
  • Replaced occurences of CONFIG_FREERTOS_UNICORE macro by CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE in components not directly related to FreeRTOS (#12481) ( cc34c4f)
  • Upgraded Unity test framework to 2.6.0-RC1 ( e39d1ae)

Fixed

  • Updated the Kconfig option CONFIG_ESP_SYSTEM_PANIC_GDBSTUB to be available only if esp_gdbstub is included in the build. (#13218) ( ** 0de2912**)
  • Updated and added missing reset reasons for C6, H2 and P4 ( c3ecd6d)
  • Fixed the incorrect flash I/DROM region PMP entries for C6/H2 ( 2bfef64)
  • Fixed the flash I/DROM region PMP entries for ESP32-C6/ESP32-H2 ( e18fd01)
  • Console: Fixed missing fsync propagation to secondary output when CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is enabled (see #13162) ( 3554fd5)
  • Console: Fixed backspaces erasing prompt and cursor positioning in dumb mode (Thanks to @michaelpontillas for pointing it out to us) ( 1b45248)
  • Console: Fixed ESP32-C2/ESP32-C3 failing to boot when using CONFIG_ESP_CONSOLE_NONE ( 1c73c65)
  • Console: Fixed issue where not all log input/output would be correctly redirected when using CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG. This resulted in e.g. unity not working correctly with this config. ( 1c73c65)
  • Console: Fixed a bug in linenoise console where a negative prompt length can lock up the console, making it unresponsive and leading to a task watchdog timeout. (#4924) ( d599358)
  • Console: Fixed CONFIG_ESP_CONSOLE_USB_CDC option not being functional on ESP32-S3 unless PHY_SEL Efuse was burned (#12437) ( cbb6fa0)
  • Heap: Fixed heap trace wrapper to trace calls to all API functions. ( 3cca8ff)
  • Heap: Fixed missing block owner information in memory allocated in heap_caps_init() (see #13467) ( 7639933)
  • Heap: Fixed size propagated to allocation failed hook in heap_caps_calloc() ( 6b14510)
  • Heap: Fixed double traversal of SLIST in map_find_and_remove() when heap trace standalone is enabled (#12820) ( 0d6b84c)
  • Interrupts: Fixed the reserved interrupts list leading to more interrupts being available: 2 interrupts freed on the ESP32-C2, ESP32-H2, and the ESP32-C6, 7 interrupts freed on the ESP32 and the ESP32-S2, and 10 interrupts freed on the ESP32-S3. ( 1683e9a)
  • Interrupts: Fixed esp_intr_free when task has no core affinity (#12608) ( 0d90a91)
  • Log: Fixed wrap-around of cache generation counter (#6516) ( 557ad14)
  • Log: Fixed incorrect argument type in hexdump log functions (#13347) ( a88dd2b)
  • Linux Target: esp_random() and esp_fill_random() now return true random numbers ( ee6ec3d)
  • Linux Target: Fixed build-failure when using esp_err_to_name linux target ( 501628e)
  • Panic: Fixed cache error being reported as illegal instruction for riscv targets ( 9f1d001)
  • Pthread: Allow SPI RAM as stack (#8662, #10623) ( c6a570f)
  • ROM: Fixed ROM version of systimer HAL functions always being used even when CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=n was selected. ( efc3f9f)
  • Esp Timer: esp_timer interrupt is freed up if the esp_timer library is not used. ( 1253ab6)
  • Heap: Fixed missing include in esp_heap_task_info.h ( 4b5b064)
  • Linux Target: Added missing include file when CONFIG_Heap_ABORT_WHEN_ALLOCATION_FAILS ( a8d39ab)
  • Efuse: Fixed the burning issue when RS coding data is left at zero. (#12489) ( 25f729c)
  • Fixed the problem that when the external 32k clock source is selected as the slow clock source on the 26MHz version ESP32-C2, the RTC_WDT will be triggered during the startup when the clock source is missing. ( 8bd2287)
  • Fixed esp_restart trigger RTC_WDT if uart driver is deleted in usercode. ( 24a000d)
  • Partition Table: Fixed partition table generation tool to ensure that the size of partition of type app have flash sector aligned size. ( 8ef201b)
  • Fixed risky PMU initialization sequence at startup ( 9081d54)
  • Fixed ulp examples to work with spaces in the the path on Win ( 324dcbc)
  • Fixed ESP32/ESP32-S3 atomic operations on PSRAM (#4635) ( 994b4ed)
  • CPU: Fixed a bug in esp_cpu_set_watchpoint() where a watchpoint on a range of addresses was improperly set on RISC-V targets. ( a2f0198)
  • Fixed brownout isr crashing if cache disabled ( 41ff5a2)
  • FreeRTOS/IDF Kernel: Fixed a bug where vTaskSuspendAll() could suspend the wrong core ( a726640)
  • Reduced binary size of image in case c++ exceptions or eh_frame usage is disabled ( 285ba1f)

Removed

  • Console: Setting command context is now done by esp_console_cmd_register(), removed esp_console_cmd_set_context() ( db33f5a)
  • Heap: Removed Heap_TLSF_CHECK_PATCH from menuconfig when Heap_TLSF_USE_ROM_IMPL is disabled ( 3fa2450)

Debugging

Added

  • Coredump: Added task watchdog panic output to the core dump ELF file. ( 8923152)
  • Coredump: Added info whether the crash happened in an interrupt context or not. ( 4b0da52)
  • Coredump: Added an option to prevent overwriting existing coredump in flash (#12105) ( 342535f)

Changed

  • Coredump: Moved the log strings from RAM to flash ( ff2a492)

Fixed

  • Coredump: Fixed a bug preventing the usage of stack guard alongside a custom stack for coredump ( 67a2d48)
  • Coredump: Enable SHA256 coredump flash integrity verification for all targets ( ef655cb)
  • Coredump: Improved the probability of accessing healthy TCBs ( 1227409)
  • Gcov: Fixed unhandled exceptions when GCOV enabled ( 11eeca6)
  • Gcov: Avoid multiple tick hook registration ( b71dabf)

Toolchain

Changed

FreeRTOS

Added

  • Freertos: Added config option to set the core affinity for the FreeRTOS Timer Service task. #10315. ( 3334ec5)
  • Freertos: Added support for application task tag feature (enabled via the CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG option) ( eeb71ca)

Changed

  • Freertos: Upgrade Amazon SMP kernel to upstream v11.0.1 ( dc86c17)
  • Freertos: Exposed configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES option via menuconfig ( bf237a2)
  • Freertos: Updated ESP-IDF components to use CONFIG_FREERTOS_NUMBER_OF_CORES macro instead of portNUM_PROCESSORS and configNUM_CORES macro. (#12800) ( 9605f9b)

Fixed

  • Fixed size of the runtime counter (#13120) ( 40684a0)
  • Fixed broken FreeRTOS port macro portTRY_ENTER_CRITICAL_SAFE() (#13022) ( 5f19a87)
  • Fixed a bug where CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER was enabled by having esp_gdbstub component in the build even without enabling GDBStub features. ( b15cfab)
  • Fixed an issue where core 1 could suffer an unnecessary context switch during the tick interrupt. ( 5a5869a)
  • Fixed CPU core no affinity value to -1 when rendered via vTaskList (#12858) ( 227c5d2)
  • Fixed the ordering of the parameters printed by vTaskList() (#13675) ( ea010f8)
  • Fixed xPendedTicksTemp build error when the CONFIG_FREERTOS_USE_TICK_HOOK option is enabled (#13297). ( b7428bc)
  • Idf Additions: Fixed a potential issue where FreeRTOS could access illegal memory when fetching tasks data using the xTaskGetNext additional function. ( 4f3cd0d)

Low Power Features

Power Management

Added

  • Supported esp_sleep_enable_ext1_wakeup_io and esp_sleep_clear_ext1_wakeup_io, it can configure or clear EXT1 IO without reseting previous EXT1 configurations, and it supports for all chips which support EXT1 ( cde1224)
  • Added feature of sleep retention multiple modules initialization and dependency management ( 0c68b9b)
  • Supported GDMA channel configuration retention in peripheral power down lightsleep ( 5454d37)
  • Supported PMU trigger regDMA when PU TOP in ESP32-H2 ( b74cc46)
  • Added ESP_PM_LOCK_MAX to esp_pm_lock_type_t (#12577) ( cde1224)

Changed

  • Optimized the power consumption of esp32c6 & esp32h2 in active state ( 5a682c3)
  • Moved the modem_clock-related code outside SOC_PM_SUPPORT_PMU_MODEM_STATE ( 5fa57d1)

Fixed

  • Fixed Fast Memory and Slow Memory may lost in sleep modes on C3/S3 ( 4ee5402)
  • Deep sleep current may decrease about 0.2uA on ESP32-H2 ( 6dbb305)
  • Fixed the problem that CPU frequency is not updated immediately after pm_config updated. (#13492) ( a759bc0)
  • Fixed a small probability of getting stuck when entering deep sleep without deinit Wi-Fi/BT on esp32c6. ( 601a086)
  • Fixed the issue of modem hang caused by incorrect configuration of power and isolate signals in modem domain ( 5971683)
  • Deep sleep current may decrease about 0.2uA on ESP32-C6 ( c7a02cb)
  • Light sleep current may decrease about 3uA when top_on and cpu_on on ESP32-C6 ( c7a02cb)
  • Fixed a frequency switching issue on the ESP32 where the next system tick timeout can be set too late, leading to a interrupt watchdog timeout. ( d3df424)
  • Fixed the problem of triggering LP_WDT when light sleep wakes up after enable ESP_SLEEP_POWER_DOWN_FLASH on some esp32c6 ( 73de93d)
  • Fixed the error of watch dog triggered when running Bluetooth/IEEE80215.4 with flash power down enabled ( 80c2bd3)
  • Fixed the problem of abnormal CPU frequency in esp32h2 after pd_top light sleep ( e60bc50)
  • Fixed the potential problem of esp32c6/esp32h2 deep sleep not being able to wake up. ( 8eee652)
  • Fixed lp_aon_ll_ext1_set_wakeup_pins function for ESP32-C6 and ESP32-H2 because it should not use '|=' to configure hardware ( cde1224)
  • Fixed PSRAM access failed after CPU powered down light sleep wakeup if VFS console uses UART driver ( bb95f9b)
  • Fixed current leakage on usb pad during light sleep on ESP32-S2, ESP32-C3, ESP32-S3, ESP32-C6, ESP32-H2 ( 97e33fb)
  • Fixed the bug that not able to go to sleep again after waking up light sleep from ULP RISCV ( a9ea49c)
  • Fixed ESP32-C6 ADC CH1 sample issue caused by ext32k XTAL ( b839a70)
  • Added mac/bb power down/up prepare callback to fix esp32c6 BT/IEEE802154 PLL issue. ( 275a7ec)
  • Fixed a bug where using XTAL as the clock source for the watch dog timers would trigger a watchdog timeout immediately after waking up from light sleep. ( 85048f3)
  • Fixed core1 ipc_isr error when access flash while core1 closed cache during sleep ( 07669b8)

Removed

  • esp_sleep_enable_ext1_wakeup_with_level_mask has been deprecated because it can be replaced by esp_sleep_enable_ext1_wakeup_io and esp_sleep_clear_ext1_wakeup_io ( cde1224)

ULP

Added

  • Added delay to start of ULP examples to avoid users using usb-jtag-serial missing prints ( 202bcad)
  • LP-Core: Added a public function to get the cycle count of LP timer (#13101) ( 6d04593)
  • LP-Core: Fixed ESP32-C6's LP_CPU not being able to go to sleep after halt and resulting in high power consumption problem. (#12651) ( 8d165aa)
  • ULP-RISC-V: Added interrupt handling on the ULP RISC-V co-processor. #11188 ( 82f2294)
  • ULP-RISC-V: Added support for software interrupt for the ULP RISC-V co-processor. ( 82f2294)
  • ULP-RISC-V: Added support for RTC IO interrupt for the ULP RISC-V coprocessor. ( 82f2294)
  • ULP-RISC-V: Added a new example to demonstrate ULP RISC-V interrupt handling. ( 82f2294)
  • ULP-RISC-V: Added a convenience API for printing different width hexadecimal numbers from the ULP RISC-V. (#13180) ( ca07ef3)
  • ULP-RISC-V: Added API for de-initing the ULP-RISCV ADC (#12785) ( 13dd2c9)
  • ULP-RISC-V: Added a new Kconfig option CONFIG_ULP_RISCV_INTERRUPT_ENABLE to enable or disable ULP RISC-V interrupts. ( f65a559)

Fixed

  • LP-Core: Fixed LP UART bus clock initialization flow. ( ba4b493)
  • ULP: Fixed an issue where the RTC I2C SDA and SCL lines were not initialized in open-drain mode. ( 7acc152)
  • ULP: Fixed an issue where the LP I2C SDA and SCL lines were not initialized in open-drain mode. #12969 ( df00205)

newlib libc

Added

  • Added possibility for time functions customization if Newlib doesn't implement them (#11873) ( f7fceb5)

LWIP

Added

  • Added support for adjusting SNTP startup delay ( fde8c8d)
  • Added fall back DNS settings in component configuration menu (#12530) ( 307c53d)
  • ESP Netif: Added code to expose adding and removing static ipv6 address. ( 515ca77)
  • Added macro configuration option for TCP accept mailbox size, which is the TCP backlog limit (#12510) ( 0c99a58)
  • Added support to enforce NA router forwarding ( 195d401)
  • Added configuration options for TCP out-of-order sequence buffers ( 0eae131)
  • PPP: Added support for PPPoS server ( bc7e87b)
  • PPP: Added configuration option to disable/enable IP header compression ( bc7e87b)
  • Added official support for NAPT: removed 'experimental' from configuration, updated lwIP documentation ( a6e2c52)

Changed

  • Changed IP TTL value from 255 to 64. ( 83241ca)

Fixed

  • DHCP Server: Fixed esp_netif_dhcps_option() API to fail when setting incorrect subnet mask (if the subnet mask is different from the interface ip_info). ( 8ecee62)
  • Esp Netif: Fixed esp_netif_set_ip_info() API to post IP_EVENT also if the netmask or gateway are 0.0.0.0 (#12927) ( 295f908)
  • Esp Netif: Fixed omitted SNTP API for getting reachablitiy of NTP servers ( 9e0ad65)
  • Esp Netif: Fixed esp_netif_get_netif_impl() to return implementation handle for PPP interfaces ( bc7e87b)
  • Fixed DHCP client's vendor specific options (VCI/VSI) to work correctly with any data (#11828) ( 0d12732)
  • Fixed DNS initialization to work correctly with FALLBACK_DNS_SERVER_ADDRESS() in IPv4 only mode (espressif/esp-lwip#62) ( 9614300)
  • Fixed compilation error in lwIP debug print formatting. (#12982) (#12502) ( c6405bd) ( 9614300)

TCP Transport

Fixed

App Update

Fixed

App Utilities

Changed

  • Migrate atecc608_ecdsa example to esp-cryptoauthlib repository ( 341a8f2)
  • Updated cJSON version to v1.7.17 ( e0fdae2)

Fixed

  • Fixed adding custom headers in async request (#13462) ( d444ff5)
  • Fixed incorrect processing of HTTP header (#13497) ( b02a2ea)
  • Fixed esp_http_client to reset redirect_counter after completion of a request (#13633) ( 1d3d63c)
  • Added check for LWIP_NETIF_LOOPBACK in the HTTP server control socket API (#13659) ( 1d3d63c)
  • Fixed memory leaks in HTTPS Server initialization ( 5c9392d)

OTA

Added

  • Added a member in esp_https_ota_config_t structure to configure memory capability for OTA buffer ( 43d934f)

Fixed

  • Fixed return code of esp_https_ota_finish API ( 3e0700b)

HTTP Client

Added

  • Added support of SHA265 algorithm in digest authentication ( 56241f0)
  • Added support for TLS session ticket ( 096d1ce)
  • Added support for using custom transport ( 096d1ce)

Fixed

  • Fixed reset errno value to 0 before call esp_transport_read ( dd49da5)
  • Fixed issue while reading in async mode ( 9cf90d8)
  • Fixed esp_http_client_example build failure for ESP32-C6 ( a5b261f)
  • Fixed esp_http_client digest auth without qop ( 0e79083)

HTTP Server

Added

  • Added support for HTTP_ANY method in esp_http_server ( 3278317)
  • Added API to send custom HTTP status ( e691c8b)
  • Added feature to configure heap caps in server configuration (#12500) ( 760e929)
  • Added some error logs in esp_https_server ( f460cc7)

Provisioning

Added

  • Wifi Provisioning: Add API for checking whether the provisioning state machine is idle (#12570) ( c93bce2)

mbedTLS

Added

  • Esp Crt Bundle: Added new deprecated cert list (cacrt_deprecated.pem) and relevant config option to add the list to default bundle ( 7441cdb)

Changed

  • Updated mbedTLS to v3.6.0 ( 8503709)

Fixed

  • Fixed heap curruption when server support TLS renegotiation and dynamic mbedtls is enabled ( 7c004fd)
  • Allocate AES interrupt during AES operation initialization regardless of input buffer size ( 4a02987)

Bootloader

Added

  • Added bootloader_flash_update_size() API for all chips (#13179). ( b8e2342)
  • Added legacy retained memory CRC calculation as an option (#12849) ( e1a5633)

Fixed

  • Fixed spelling mistakes in components/bootloader/Kconfig.projbuild ( 0301125)
  • Fixed ESP32-C6/ESP32-H2 not being able to compile with -O0 due to iram segment being to small ( f762d81)
  • When flash encryption is enabled, encrypt only the app image instead of the whole partition (#12576)) ( e4aa566)
  • Fixed the value of the image_length field of the image metadata populated by esp_image_verfiy() to include the size of the signature sector when Secure Boot V1 is enabled. ( e4aa566)

ESP-TLS

Fixed

  • Fixed time value overflow for timeout calculation (#13593) ( 901f937)
  • Fixed missing header files in esp_tls_errors.h header file ( 1e8261e)
  • Initialize mbedtls RNG context prior to setting client config in ESP-TLS, this fixes ECC key parsing issue for specific cases ( a02b096)

ESP-MQTT

Fixed

Storage

Added

  • FatFS: Added parameter --verbose to the fatfsparse utility showing filesystem settings of fatfs image ( 12011d2)
  • Storage: Added better IO speed benchmark for different mediums and file systems ( f5d4957)
  • Examples: Marked storage-related examples as supported on ESP32-C2 ( 2beef95)
  • FatFS: Added Kconfig option for dynamic allocation of FATFS buffers, decreasing required memory ( 22d3473)
  • FatFS: Added support for expanding files via truncate and ftruncate functions. Expanded space is FatFS. ( b76123a)
  • FatFS: Added esp_vfs_fat_create_contiguous_file function which attempts to create a file in contiguous space. ( b76123a)
  • FatFS: Added esp_vfs_fat_test_contiguous_file function which tests if a file is contiguous. ( b76123a)
  • FatFS: Added esp_vfs_fat_sdcard_format_cfg and esp_vfs_fat_spiflash_format_cfg_rw_wl functions with a config struct parameter to override previously set or default config during formatting. ( 71c6304)
  • FatFS: Added Kconfig option to disable atomicity of link on FATFS. Disabling it might have some performance benefits for specific applications at the cost of possibly more fragmented files ( 38ee8c6)
  • FatFS: Added an option to enable FATFS labels to Kconfig (idf.py menuconfig) (#12567) ( bd91c7b)
  • NVS: Added function nvs_find_key and related host test case (#12155) ( cb66d6f)
  • SDMMC: Added built-in checks for debugging connections to the sd card and pullups ( 0f6d5a4)
  • VFS: Add esp_vfs_fat_register_cfg function which uses a config struct and deprecate esp_vfs_fat_register ( b13f414)
  • VFS: Added VFS UART select callback in IRAM when UART ISR is placed in IRAM ( c824346)
  • VFS: Added function to dump VFS file descriptors ( abf2d13)
  • VFS: Added new component esp_vfs_console to separate vfs_console related init steps from vfs component ( a7d1da9)

Changed

  • NVS: Improved NVS initialisation by extending consistency check of multi page BLOBs ( 4cb3a75)
  • Partition Table: Exposed esp_partition_unload_all() function which unloads partitions at runtime (#12625) ( 65cdca7)
  • FatFS: Make write, link and seekdir on FATFS atomic ( 38ee8c6)

Fixed

  • FatFS: Fixed fatfsparse utility to accept fatfs image files containing varying values in boot sector fields non vital for filesystem ( 12011d2)
  • FatFS: Fixed esp_vfs_fat_spiflash_format_rw_wl function always formatting the first partition (number 0) (#12542) ( aee0ed7)
  • NVS: Fixed nvs::Page::findItem performance degradation caused by wrong condition preventing hash map use ( 68fe7d6)
  • NVS: Fixed race condition during Lock class initialisation ( 4cb3a75)
  • NVS: Fixed buffer overrun in nvs_get_blob when reading from NVS partition containing inconsistent multi page BLOBs ( 4cb3a75)
  • FatFS Tools: fatfsparse.py: Fixed compatibility with construct==2.10.70 by handling StringError when Unicode decoding error happens ( b61ea3b)
  • VFS: Fixed select of eventfd: Add the judgment coditions of event_start_select to avoid relating the semaphore to unmonitored eventfd. ( 8f85035)
  • VFS: Fixed some build errors when CONFIG_ESP_CONSOLE_NONE was enabled (#12984) ( 6817e9f)
  • FatFS: Fixed wrong Wear Levelling mode for FatFS generation (wl_fatfsgen.py) ( f8054b1)
  • FatFS: Format FATFS partitions with 2 FATs (file allocation tables) as a default instead of one - should help with redundancy but increases FAT region size times 2 (number of FATs * sectors per FAT). To disable this feature set bool use_one_fat field in esp_vfs_fat_mount_config_t struct to true. ( 3da19a6)
  • FatFS: Generate FATFS image with 2 FATs (file allocation tables) from host as default instead of one - to disable this use ONE_FAT argument in fatfs_create_rawflash_image and fatfs_create_spiflash_image CMake functions. ( 3da19a6)
  • FatFS: Fixed issue where FatFs tried to trim on sd cards that did not support it ( 81c235c)
  • UART: Fixed uart malloc when locates ISR context in IRAM ( 76011fc)

Tools

Added

  • Added hint for LIBUSB_ERROR_NOT_FOUND common for Windows platform when using openocd ( c5e52f3)
  • merge-bin build target was added for producing a one all-in-one image (#13546) ( af302c0)
  • Added a note about the usage of esp-coredump as a standalone tool (#13433) ( 9b8e2c7)
  • Added a note about reading core dump from an encrypted partition (espressif/esp-coredump#8) ( 9b8e2c7)
  • Added SHA256 digest protection for images with flash size detection enabled (esptool>=4.8 can recalculate the digest during flashing) ( 4be11ad)
  • Added additional Python environment checks (#13196) ( dc987da)
  • Docker: Added get_idf alias to .bashrc (#13266) ( b079552)
  • Introduced unsupported platforms by ESP-IDF while installing (#12959, #12865) ( ceff956)
  • ninja monitor: Added support for toolchain prefix, coredump decoding and print filters ( 2e207db)
  • idf.py: Added --graphics option to idf.py qemu command to enable graphics emulation ( 3a340b3)
  • Added dependency on the new esp-idf-nvs-partition-gen package implementing nvs_partition_gen.py ( c0ea992)
  • IDF Monitor: Added support for USB JTAG and custom reset into bootloader ( b486466)
  • Docker: Added IDF_CLONE_SHALLOW_DEPTH docker image build argument (#12637) ( 45430d2)
  • Added new esp-idf-size implementation into idf.py size subcommands ( 8e61964)
  • idf.py: Added qemu command to run ESP32/ESP32-C3 applications in QEMU emulator ( b203325)

Changed

  • Updated documentation with details about setting IDF_TOOLS_PATH environment variable (#12539) ( 539425f)
  • Updated documentation with idf.py @file argument parsing option ( 539425f)

Fixed

  • Print the accurate help message in idf_size.py for both the legacy and refactored versions ( 8f091de)
  • idf_tools.py install/check stops with an error if a tool cannot be executed, export/list commands print a warning ( ef36e84)
  • Exit gracefully without traceback when running proccess via asyncio (#13418) ( 34f1076)
  • Fixed mixed path on Windows occurring during coverage computation ( 19700a5)
  • Described the option to configure flashing with --extra-args (#6337) ( 54fd736)
  • The ESP-IDF version is acquired only from the version or header file (git tag is not considered anymore) (#13385) ( 22b5f69)
  • Fixed a typo in the kconfig documentation (#13339) ( 0bbee51)
  • Fixed return codes in BAT scripts ( b3f35cf)
  • Fixed support of gdbgui on Unix with Python 3.11 (#12764) ( 0e46d40)
  • Fixed Python path case sensitive error on Windows (#12780, #12779) ( 03827df)
  • Fixed detection of raw coredump files by idf.py coredump-debug command (#10852) ( a4c80b5)
  • Opt for the recommended tool listed in tools.json rather than the supported one ( 239fb0f)
  • Docker: Allowed to set git's safe.directory with IDF_GIT_SAFE_DIR environment variable (#12636) ( abf3e8e)
  • Coredump-info: Don't use port when core file is specified (#12673) ( 4797d74)
  • Fixed path delimiter in gdbinit for Windows (#12683) ( 3ac3185)
  • Fixed build failure if CMAKE_EXECUTABLE_SUFFIX is set (#12558) ( f39a620)
  • Fixed print filter environment variable for IDF monitor ( 82a110c)
  • Docker: Allowed access to ESP-IDF repository to non-root users (#12389) ( b0d5985)
  • idf.py coredump-info: Increase default GDB timeout to avoid synchronization issues with gdbmi ( 06b6df3)
  • Set GDB timeout as 10 seconds to wait for the remote target response ( e7ba614)

Removed

  • Removed extra new lines in saved command's output (stdout/stderr) on Windows, which may break hint processing ( 4c4d547)

Build & Config

Fixed

  • ldgen: Taken into account files matching .*.o as well (#13039) ( b7184cc)
  • Fixed build issues when HAL assertion is disabled (#13256) ( 3f76aca)
  • Fixed incorrect parameter annotation of idf_build_set_property (#12852) ( f27d65c)
  • Enabled VERSION argument for the project() function in cmake (#12461) ( 356b77c)
  • Component manager: Load all component dirs independently on the value of COMPONENTS ( 1f3160c)

Removed

  • Removed non-existent directories from chip-specific CMakeLists.txt in esp_hw_support (#12700) ( ffedd74)
  • Removed support for using ROM functions compiled for 32-bit time_t ( a51942a)

Examples

Changed

  • Moved iperf/iperf-cmd to IDF component registry. ( 38733a7)

Fixed

  • Fixed wifi iperf example build errors when enabled CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS ( c119fa0)
  • Modbus: Fixed possible incorrect event processing in modbus slave examples ( 81aec7b)
  • Fixed encoding issue in esp_local_ctrl's proto script ( 62a0b52)

Documentation

Added

  • Added link to Light-sleep example in the Sleep Modes page ( ad1e48f)
  • Added missing semi-colons in the code blocks presented in the esp_event documentation. (#13156) ( ce4b49a)
  • Added CN translation for bootloader_image_format, log, random, and internal-unstable.rst ( bba48f1)
  • Added note on how to incorporate a Docker container user into the group ID assigned to the host device upon its addition to the container (#13373) ( 5da7c6e)
  • Added CN translation for security/secure-boot-v1.rst ( 818ba42)
  • Added CN translation for api-reference/peripherals/ds.rst ( 0e69fcb)
  • Added CN translation for api-reference/peripherals/usb_device.rst ( f3686dc)
  • Added CN translation for api-reference/system/ulp_instruction_set.rst ( 23d1cd5)

Changed

  • Updated dedicated GPIO doc with esp32h2 specific content ( 5b189fe)
  • Improved example README template ( ddb6db4)
  • Rewrote the ESP Timer API reference and ESP Timer example readme ( a55a035)
  • Updated hw-reference with link to latest ESP32- WROOM-32E datasheet (#11524) ( 87757f0)

Fixed

  • Fixed example code block in Ringbuffer docs (#13730) ( c19e762)
  • Fixed mistake (<= vs. <) in the heap allocator docs (#13353) ( bc46f3a)
  • Fixed mistake in ESP Event API docs (#13346) ( 99e20e8)
  • Fixed documentation to correctly state NAN support on ESP32 and ESP32-S2 ( ccc6a57)
  • Made minor fixes to .readthedocs.yml and light_sleep example README.md (#13191) ( e80cf6f)

Removed

  • Removed mentions of ULP in deep sleep example readme (#13340) ( 02f2f36)

Don't miss a new esp-idf release

NewReleases is sending notifications on new releases.