Skip to content

ESP-IDF Release v5.3

Compare
Choose a tag to compare
@github-actions github-actions released this 25 Jul 08:06
· 4077 commits to master since this release
v5.3

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

ESP-IDF v5.3 is a minor update for ESP-IDF v5.2. Release v5.3 is mostly compatible with apps written for ESP-IDF v5.2.

Obtaining v5.3

For full installation instructions, see the ESP-IDF Programming Guide.

The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:

Using git

To get this release, use the following commands:

git clone -b v5.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3
cd esp-idf-v5.3/

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

Download an archive with submodules included

Attached to this release is an esp-idf-v5.3.zip archive. It includes .git directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.

This archive can also be downloaded from Espressif's download server: https://dl.espressif.com/github_assets/espressif/esp-idf/releases/download/v5.3/esp-idf-v5.3.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 SPI
    • Low-power Timer
    • Low-power UART
    • Low-power Watchdog Timer
  • Peripherals
    • ADC
      • ADC continuous mode driver
      • ADC oneshot mode driver
    • 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
    • H264 Encoder
    • 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
      • XIP PSRAM
    • Parallel IO
      • Parallel IO RX Driver
      • Parallel IO TX Driver
    • Pixel Processing Accelorator 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
    • Touch 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
    • Flash encryption
    • HMAC driver
    • 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)
      • SPI Flash auto suspend
    • POSIX Threads
    • Panic Handling Features
      • Core Dump
      • Debug Watchpoint
      • GDB Stub
      • Panic Handler
      • Stack Guard
    • Ram App
    • TCM
    • Watch Dog Timers
    • newlib
  • Wireless Expansion
    • Bluedroid Host
    • NimBLE Host
    • ESP8689 SDIO/SPI driver
    • Coexistence

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)

Known Issues

  • Linker issue [VFS/FatFS]: multiple definitions on directory manipulation routines when using std::filesystem namespace. The issue shall be fixed soon. For the meantime, please avoid using std::filesystem or use the patch mentioned here #13736 (comment). See also #14174
  • For ESP32-P4, the data in PSRAM will be destroyed during lightsleep.
  • For ESP32-P4, CPU frequency switching has become slightly slower when the DFS is used.

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)
  • Ignored bit8 for the frame length (6e2950d)
  • Updated to log the "buffer full" message in debug mode only (6e2950d)

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 ( b44a596)
  • 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)
  • Supported openthread ephemeral key feature (6e2950d)
  • Added a method to set instance name of meshcop(e) mdns service (6e2950d)

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)
  • Released openthread task switching lock before calling lwip API in openthread udp (6e2950d)
  • Optimized the PIO logic in multiple BRs scenario (6e2950d)

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)
  • Fixed a deadlock risk by releasing ot task lock before tcpip_callback (6e2950d)

Removed

  • Removed the range for some configurations (6e2950d)
  • Removed the empty task for openthread tasklets (6e2950d)

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 ESP32-C6, ESP32-H2 and ESP32-C2 (28f68a0)
  • Added support for selecting whether to use CSA#2 through the configured option on ESP32-C2, ESP32-C6 and ESP32-H2 (083fe84)
  • Supported enabling AUX packet when extended advertising data length is zero on ESP32-C3 and ESP32-S3 (ed025da)
  • Supported ESP32-C2 light sleep using the external 32.768 kHz oscillator at pin0 as a slow clock source. (28f68a0)
  • Supported initiating a disconnection again if the disconnection procedure is already ongoing on ESP32 (e3839a3)
  • Supported clearing BLE legacy advertising on ESP32-C3 and ESP32-S3 (ca33198)
  • Supported clearing 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)
  • Optimized BLE notify and write throughput performance on ESP32 (9ddf014)

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 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 being applied when not receiving a 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 on ESP32-C2,ESP32-C6 and ESP32-H2. (28b4ad2)
  • Fixed an occasional assertion issue when disabling 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 occasional BLE modem sleep entry failure on ESP32-C3 and ESP32-S3. (37f0447)
  • Fixed scheduling when modem sleep wakeup is delayed on ESP32-C3 and ESP32-S3. (adc49df)
  • Fixed BLE IRQ FIFO overflow when entering critical section on ESP32-C3 and ESP32-S3. (adc49df)
  • Fixed clock sync timeout when exiting modem sleep on ESP32-C3 and ESP32-S3. (adc49df)
  • Fixed an issue with directed advertising using RPA when privacy is disabled on ESP32-C3 and ESP32-S3. (adc49df)
  • Fixed issue with instant passing during connection or PHY updates on ESP32-C3 and ESP32-S3. (adc49df)
  • Resolved the packet loss issue during the 1M DTM RX process on ESP32-H2 (ec807d9)
  • Fixed occasional cache errors when sleep is enabled on ESP32-C6 and ESP32-H2. (ec807d9)
  • Fixed issue with 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 failure to enter sleep mode during scan and connection operations on ESP32-C2. (083fe84)
  • Fixed occasional MIC error during multiple concurrent connections on ESP32-C6 and ESP32-H2. (083fe84)
  • Fixed issue of slave waiting for response timeout in indication procedure during multi-connection scenarios on ESP32-C6 and ESP32-H2. (083fe84)
  • Disabled BLE BB ISR 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 of failing to establish synchronization when coexisting with a connection on ESP32-C2. (e5b77d7)
  • Fixed assertion issue when BLE disconnection occurred due to instant passing on ESP32. (6086647)
  • Fixed assertion issue when BLE disconnection occurred due to instant passing on ESP32-C3 and ESP32-S3. (345013f)
  • Fixed scan event timeout on ESP32. (6086647)
  • Fixed random address setting when scanning on ESP32. (6086647)
  • Fixed the failure of 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 occasional issue where packets could not be received on ESP32C2. (676968a)
  • Fixed extended ADV TX issue when connection and advertising coexist on ESP32C2. (676968a)
  • Fixed occasional BLE connection timeout after connection parameter update process on ESP32-C6, ESP32-H2 and ESP32-C2. (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 ESP32-C6 and ESP32-H2. (44f0bb1)
  • Fixed issue where scanning did not stop after the scan window expired on ESP32-C2. (44f0bb1)
  • Fixed the issue of peripheral latency without ACL data to send on ESP32-C6, ESP32-H2 and ESP32-C2. (44f0bb1)
  • Fixed occasional interrupt WDT issue when creating synchronization on ESP32-C6 and ESP32-H2. (8805685)
  • Fixed a crash issue during controller initialization when memory is insufficient on ESP32C6 and ESP32H2. (8805685)
  • Fixed an occasional disconnection 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)
  • Fixed occasional assertion issues during scan process on ESP32-H2. (4cfea9e)
  • Fixed memory leak issue when BLE SCAN and other BLE events coexist on ESP32. (#13747) (9ddf014)
  • Fixed BLE connection timeout issue after using DTM on ESP32. (9ddf014)
  • Fixed assert issue caused by DPORT access on ESP32. (9ddf014)
  • Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP pdu on ESP32-C6 and ESP32-H2. (3ffea37)
  • Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32-C6 and ESP32-H2. (3ffea37)
  • Fixed a disconnection issue due to timeout in multi-slave connection scenarios on ESP32-C6 and ESP32-H2. (3ffea37)
  • Fixed event_type parameter error in LE Extended Advertising Report event when using Extended scan to receive SCAN_RSP PDU on ESP32-C2. (3ffea37)
  • Fixed the issue where the HCI_LE_Set_Extended_Scan_Parameters command returned an invalid parameter error status when setting the scan interval and scan window parameters to values that are greater than 0x4000 or less than 0xFFFF on ESP32-C2. (3ffea37)
  • Fixed assert when starting advertising due to preemption on ESP32-C3 and ESP32-S3. (eac00e8)
  • Fixed RPA generation after each reboot on ESP32-C3 and ESP32-S3. (eac00e8)
  • Fixed issue with RPA renew timer starting and stopping on ESP32-C3 and ESP32-S3. (eac00e8)

ESP Bluedroid Host

Added

  • Supported BLE GATTC notify registration number (a436eaf)
  • Supported control point in BLE HID example (9327274)
  • Supported adding a device to the resolving list. (46e0760)
  • Added API to set resolvable private address timeout (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 callbacks (f8a12ad)
  • Added support for setting BLE privacy mode for peer devices. (5634a32)

Changed

  • Optimized compatibility with IOS and MACOS devices (9327274)
  • Optimized BLE SPP example for improved compatibility (636f900)
  • 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 the function to remove all bonded devices. (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 GATTX coexistence 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 issue where advertising did not restart due to disconnection reason 0x3e (b9ea883)
  • Fixed BLE periodic advertising create sync parameters check error (56756a7)
  • Fixed BLE crash when repeatedly initializing and deinitializing 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 deinitializing 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 gets 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 memory overflow in BLE examples during prepare write (011d8a3)
  • Fixed issue where the connection could not 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 failure after deinitializing and initializing. (221122e)
  • Fixed BLE advertising report event type error (294c2bd)
  • Fixed BLE keysize check error (294c2bd)
  • Fixed error in BLE bond list removal status (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)
  • Fixed the struct type in the discover service complete event in gatt_client example. (be29217)
  • Clean up BLE examples sdkconfig (227f531)
  • Fixed the issue where the BLE data length change event was not triggered when the packet length was modified on the other connected device. (4667755)

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)
  • 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)
  • Added chips informatoin in ble_enc_adv example README file (bee6044)
  • Added return code in ble_gap_unpair error logs (84660a8)
  • Created a separate API to only extract cb info (84660a8)
  • Added API to get the local used address. (84660a8)
  • Added API to get resolve ADV data (84660a8)
  • Added change to start readvertising for disconnect with 0x3E code in slave mode (84660a8)

Changed

  • Migrated to nimble-1.6.0 version (6e4eeec)
  • Simplify reconnection code (9c84691)
  • 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)
  • Changed 'move_count' to uint8_t type to fix compilation issue in nimble for -O2 flag. (c5e92ac)

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)
  • 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)
  • Fixed memory leak during reattempt adv data usage (84660a8)
  • Copy data correctly into reattempt buffer (84660a8)
  • Explicitly NULL assign adv data pointer after free. (84660a8)
  • Fixed stack overflow in esp_hid_device example for nimble (#13951) (32c12e5)
  • Clear resources before re-starting advertising (8bcedab)
  • Reserve space for one extra ext adv packet (b4dc51b)

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)
  • Fixed issue where the mesh deinit complete event may not be reported when using the NimBLE Host (bde502e)
  • Fixed potential deadlock that could occur when using SAR enhancement (67f0bfa)
  • Fixed issue where allocated buffers may not be dereferenced when using SAR enhancement (67f0bfa)
  • Fixed potential deadlock may happened during initialization when using Bluedroid Host (421c94d)

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)
  • Controller: Fixed returning incorrect link key with hci command rd_stored_link_key on ESP32 (da43ec0)
  • Controller: Fixed the assert triggered during APB TX on ESP32 (da43ec0)
  • Controller: Fixed role switch LMP collision bug on ESP32 (da43ec0)

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)
  • Fixed the issue that BLE do not update SCAN status correctly for coexistence module on ESP32-C3 and ESP32-S3. (eac00e8)

PHY

Added

  • Added PHY calibration data check when mode is not none calibration (e7b6fb7)

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 v0.1 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)
  • Fixed the issue of Wi-Fi PWR module losing its clock during sleep on the ESP32-C6 v0.1 chip, which may cause Wi-Fi beacon timeout. (c56b21b)
  • Fixed the issue of TBTT interrupt miss caused by beacon monitor (7d47aec)
  • Fixed crash due to dangling pointer in WPA3 softAP (34e5669)
  • Fixed Wi-Fi connect issue after software CPU reset with BLE scan. (ffe0de9)

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)
  • Fixed issue in decryption of ESP-NOW packets for ESP32 and ESP32-S2 when station disconnects from PMF AP (1b8bae3)
  • Fixed beacon timeout issue on STA connected to AP do a scan (02b60f5)
  • Fixed the issue in changing operation mode when WPS is enabled. (02b60f5)
  • Fixed the issue that chips with SOC_WIFI_GCMP_SUPPORT but configured with GCMP disabled failed to connect AP with both CCMP and GCMP enabled (02b60f5)

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)
  • Fixed the TX issue when mesh time remain equal to zero (c7f146b)
  • Do not send NULL data when scan start/done for mesh (#13786) (02b60f5)

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)
  • Fixed a memory leak that occurs when the WPA3-SAE connection is interrupted. (1b8bae3)

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)
  • Added reservation of GPIO (943dd72)

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)
  • I2C 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 perform more than one ETM actions (e56f92a)
  • I2C: Added LP_I2C instance support in the i2c master driver (6224fca)
  • I2C: Added a parameter to configure SCL await value (333e8aa)
  • I2C: Added I2C sleep retention support on ESP32-C6 and ESP32-H2 (2302dd5)
  • I2C: Added check for SCL frequency in the driver (#12598) (10f4b04)
  • I2S: Added a check to ensure the I2S TX direction GPIOs are not in use by other modules (71ceedc)
  • I2S: Added asynchronous read write support (2a121e9)
  • I2S: Added more mclk_multiple choices (9d381c2)
  • I2S: Added support to get total DMA buffer size (e87f799)
  • Parlio TX: Supported non-blocking transaction queue (3a9d082)
  • Parlio RX: Supported Parallel IO RX driver on ESP32-C6/H2/P4 (83d5797) (41515a9)
  • RMT: Added simple callback-based encoder to RMT driver (c5389ac)
  • RMT: Added a check in the driver to ensure the RMT TX channel won't use a GPIO that is occupied by others (60a2bf6)
  • RMT: Added a help function to allocate the encoder memory (#13032) (5074cc6)
  • RMT: Added support to update bytes encoder configurations at runtime (https://github.com/espressif/esp-idf/issues/12775) (ead6f7c)
  • RMT: Added support of partial receive, which is useful for receiving a long packet in a ping-pong style (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 driver (0f03434)
  • USB Host: Added support to filter enumerated devices and set the device configuration during the enumeration (5524b69)
  • USB Serial JTAG: Provided an example for how to use usb_serial_jtag API (#12620) (2d4a924)
  • DVP: Added LCD_CAM DVP controller driver on ESP32-P4 (f750f4c)
  • ISP: Added ISP DVP controller driver on ESP32-P4 (ffbb1ab)
  • RGB_LCD: Added new configuration of setting burst size during driver initialization (dafc3b3)
  • ISP: Added ISP BF (Bayer Denoise) driver and example (4787e92)
  • PPA: Added Pixel-Processing Accelerator (PPA) driver on ESP32-P4 (12d4804)
  • I80 LCD: Added a help function to allocate draw buffer with proper alignment (1c6a8b4)
  • Support sending CMD53 with fixed address (ed7dd46)

Changed

  • 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: 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, reduce the risk of TX FIFO empty when LP_UART uses high baud rate (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: Auto-flush buffers in most cases if MPS size packet is sent (7830b01)
  • RGB LCD: Removed the validation of pins for RGB_LCD output (#13103) (4472422)

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-C6/ESP32-H2/ESP32-S3/ESP32-S2/ESP32-C2/ESP32-C3 (a0532e1) (4e843a1)
  • ADC: Fixed disable adc will make temperature sensor crash (#12921) (53fff31)
  • ADC: Fixed ADC calibration error after waking up from light sleep on ESP32-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 mode do not once divide and twice divide the clock (8b95355)
  • Dedicated GPIO: Fixed the software UART example 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 ESP32-C3 and ESP32-S3 (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: 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: Fixed i2c_new_slave_device does not respect the 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: 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 ESp32-C3 (#12643) (4f506a3)
  • RMT: Fixed the issue that RX filter can't work properly when using REF_TICK as the clock source on ESP32 and ESP32-S2(#13510) (15f356b)
  • 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 ESP32-C2 that ensures the data sampling correctness. (6f9a866)
  • UART: Fixed inconsistent number of UART wakeup rising edges required with the threshold value configured on ESP32-S2 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)
  • GPIO: Fixed IO 21-27 IO_MUX registers not being backed up on ESP32-H2 (65d9300)

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)

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 on ESP32-H2 and ESP32-C6 (261651f)
  • Efuse: Added config for using custom MAC as base MAC. (636092d)
  • PSRAM: Supported XiP PSRAM feature on ESP32-P4 by enabling CONFIG_SPIRAM_XIP_FROM_PSRAM (dbf8726)
  • PSRAM: Added a helper option CONFIG_SPIRAM_XIP_FROM_PSRAM to select both CONFIG_SPIRAM_FETCH_INSTRUCTIONS and CONFIG_SPIRAM_RODATA for easy usage, on ESP32-S2/S3 (dbf8726)

Changed

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

Fixed

  • Fixed clock calibration timeout issue caused by the wrong range of RTC_CLK_CAL_CYCLES. (6a879bf)
  • Fixed bbpll calibration fail bug on ESP32-S3 to avoid TG0WDT_SYS_RESET. (7b86fe5)
  • Fixed mmap can't run on ram load app issue (bf86aeb)
  • BOD: Fixed wrong threshold on ESP32-H2, 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 ESP32-C6/H2. (96f49c2)
  • Cache: Fixed wrong configuration for DCache 0 size condition which leads to startup crash on ESP32-S2 (f8674e6)
  • Memory: Fixed bootloader build with configuration (Verbose logging + secure boot + flash encryption) for ESP32-S3/S2 targets. This fix reduced static memory usage on ESP32-S2/S3 by 4KB. (e3d4b90)
  • Memory: Fixed DROM_HIGH_ADDR for ESP32-S3 used in memory utils APIs. (0df6afa)
  • Fixed ESP32-P4 90MHz->360MHz and 180MHz->360MHz CPU frequency switching failure issue (c2cf3d7)

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)
  • Console: Added sbom for argtable3 (4641392)
  • 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)
  • Heap: Make heap allocator return aligned memory if caps indicate a need for it (45c7eb4)
  • 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

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

Changed

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

Fixed

  • Core Dump: Fixed a bug preventing the usage of stack guard alongside a custom stack for coredump (67a2d48)
  • Core Dump: Enable SHA256 coredump flash integrity verification for all targets (ef655cb)
  • Core Dump: 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)
  • Freertos: Added support for ESP32-P4's PIE/AI coprocessor and Hardware Loop feature, which can now be used in FreeRTOS Tasks (88c0ea4)

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)
  • added RC FAST XPD support for ESP32-C6/ESP32-H2, and then the current increase 0.9mA in ESP32-C6 and increase 70uA in ESP32-H2. (a31806d)

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)
  • Fixed light sleep gpio_wakeup_enable API cause rtc_io wakeup failure for ESP32-C6 (832337b)
  • Fixed the issue of TG0 watchdog reset caused by WiFi module retention (5feffad)

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)
  • LP-Core: Added pulse counter example using LP-IO interrupts for LP-Core (a71f265)
  • LP-Core: Added interrupt handling support and example for LP Core on C6 and P4 (#13059) (a71f265)
  • LP-Core: Added panic handler for ESP32-C6/ESP32-P4 LP core (a71f265)
  • 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)
  • Fixed DHCP server address pool handling to clear the old record (0a1dc07)
  • ESP Netif: Fixed memory leak caused by MLDv6 report timer creation (726ed08)
  • ESP Netif: Fixed wrong event post when IPv6 address state changes between two valid states (726ed08)

TCP Transport

Fixed

App Update

Fixed

App Utilities

Changed

  • Migrate atecc608_ecdsa example to esp-cryptoauthlib repository (341a8f2)
  • Updated cJSON version to v1.7.18 (30ea848)

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)
  • idf.py: Avoid crashing when trying to use Git to acquire the ESP-IDF version (#13345) (e282468)
  • Fixed GDGBUI version detection by invoking the tool instead of checking the Python version (#13665) (c48f84e)

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

Added

  • Ethernet: Added Ethernet simple de-initialization example (943dd72)
  • Added support for targets without WiFi capabilities (ESP32-P4 and ESP32-H2) to run and connect using esp_wifi_remote in common protocol examples (1727847)

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)
  • Added a note in the ADC programming guide about calibration efuse error (#12372) (100ba9f)
  • Added more docs for i2c_master_probe usage in the I2C programming guide (#12929) (5e47ed7)
  • Reorganized the optional features in the SPI Flash programming guide (3551665)

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)
  • Changed RNG page to reflect that ESP32-P4 does not have wireless communication (e722672)
  • Update Section Get-Started to support ESP32-P4 (0a3d59a)

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)