Commit Graph

55505 Commits

Author SHA1 Message Date
Tomas Rezucha
27322efe3b Merge branch 'contrib/github_pr_18984' into 'master'
fix(usb): reset ROM CDC descriptor on app startup (GitHub PR)

Closes IDFGH-18155

See merge request espressif/esp-idf!51984
2026-09-14 09:57:18 +02:00
Island
d916979fbd Merge branch 'feat/ble_esl_persist_and_ots_speedup' into 'master'
feat(ble/nimble): add ESL persist, AP recovery, and image APIs

See merge request espressif/esp-idf!52374
2026-09-14 15:48:31 +08:00
morris
4cbd7b0e52 Merge branch 'feat/spi_master_high_freq_no_tuning' into 'master'
feat(driver_spi): master driver support higher speed limit if 'input_delay_ns' not use

See merge request espressif/esp-idf!51871
2026-09-14 14:57:00 +08:00
morris
bd0f65b73c Merge branch 'fix/spi_encryption_test_and_guide' into 'master'
fix(driver_spi): add flash encryption test and guide

Closes IDF-15060

See merge request espressif/esp-idf!51261
2026-09-14 14:45:18 +08:00
Axymorrsen
6081ffba84 fix(usb): reset ROM CDC descriptor on app startup 2026-09-14 08:40:50 +02:00
Chen Jianxing
84b35a1130 fix(phy): fix crash issue when tx power set to 21dBm in ESP32S31 2026-09-14 14:17:05 +08:00
morris
aed151a7d2 Merge branch 'fix/mcpwm_timer_resolution_test' into 'master'
fix(mcpwm): account for adjusted timer resolution in test

See merge request espressif/esp-idf!52698
2026-09-14 12:28:39 +08:00
Rahul Tank
772d2ab1d8 fix(nimble): Fix PSA related compilation issue for mesh example 2026-09-14 09:11:29 +05:30
Island
b2c566e249 Merge branch 'bugfix/fix_bluedroid_read_multi_error_rsp' into 'master'
fix(ble/bluedroid): use valid ATT error for Read Multiple assembly failure

Closes BLERP-3103

See merge request espressif/esp-idf!52749
2026-09-14 11:05:38 +08:00
morris
51fe5182bb Merge branch 'feat/add_lt9611_conponent' into 'master'
feat(lcd): add MIPI-to-HDMI example (lt9611)

Closes IDF-15419

See merge request espressif/esp-idf!52175
2026-09-14 10:57:57 +08:00
morris
6e7121003a Merge branch 'fix/i2c_rx_fifo_drain_before_event' into 'master'
fix(i2c): fixed potential multi-core race in I2C read

Closes IDFGH-18239

See merge request espressif/esp-idf!52501
2026-09-14 10:55:51 +08:00
morris
c901c76e34 Merge branch 'fix/i2s_wav_player_dout_pin' into 'master'
fix(i2s): avoid using MSPI pin in wav_player example

See merge request espressif/esp-idf!52760
2026-09-14 10:25:02 +08:00
Wan Lei
18f20981cc Merge branch 'feat/rtcio_hysterisys_filter_support' into 'master'
feat(driver_gpio): rtcio hysterisys filter support

See merge request espressif/esp-idf!52335
2026-09-14 10:23:23 +08:00
Wan Lei
675006be70 Merge branch 'refactor/spi_sct_part_soc_header_refactor' into 'master'
refactor(driver_spi): refactor header styles of spi sct part on soc and lowlevel

Closes IDF-10583, IDF-10584, IDF-10585, IDF-10586, and IDF-13725

See merge request espressif/esp-idf!51676
2026-09-14 10:22:48 +08:00
Chen Chen
b63ecdc5a0 fix(i2s): use GPIO5 as wav_player default DOUT
GPIO7 is an MSPI flash pin on ESP32-H4, so the example fails to init I2S on that target.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 09:58:12 +08:00
Wang Meng Yang
62fe690ffd Merge branch 'bugfix/fix_pbac_pm_config' into 'master'
fix(bt/bluedroid): enable sniff power management for PBAP client

Closes BT-4500

See merge request espressif/esp-idf!52417
2026-09-14 08:16:50 +08:00
Wang Meng Yang
3d5e088811 Merge branch 'bugfix/msbc_oob_read' into 'master'
fix(bt/bluedroid): fixed OOB read dring mSBC sync word check

Closes BT-4505

See merge request espressif/esp-idf!52499
2026-09-14 08:07:07 +08:00
Mahavir Jain
0d1b945b16 Merge branch 'fix/fix_clk_tree_abba_deadlock' into 'master'
fix(esp32s31): break clk_tree and deadlock with PERIPH_RCC

Closes PM-871

See merge request espressif/esp-idf!52621
2026-09-13 16:40:51 +05:30
Mahavir Jain
4ce95a0296 Merge branch 'fix/esp_tls_cert_flags_on_handshake_failure' into 'master'
fix(esp-tls): report certificate flags when the handshake fails

Closes IDF-16151

See merge request espressif/esp-idf!52627
2026-09-13 16:22:44 +05:30
Rahul Tank
a1b76d3f45 Merge branch 'bugfix/nimble_gattc_write_long_zero_len' into 'master'
fix(nimble): Send Prepare Write Request before Execute Write in write long with zero-length data

Closes BLERP-2813

See merge request espressif/esp-idf!48832
2026-09-13 11:39:30 +05:30
Shreeyash Bhakare
8fd86fecde fix(nimble): Send Prepare Write Request before Execute Write with zero-length data 2026-09-13 09:12:59 +05:30
Roland Dobai
e3e95642e9 Merge branch 'feat/mcp_server_monitor' into 'master'
feat(tools): mcp-server added monitor-device tool

Closes IDFGH-17421 and IDFGH-17857

See merge request espressif/esp-idf!51734
2026-09-11 16:05:13 +02:00
Steven Yang
f49e27bfe8 fix(mcpwm): account for adjusted timer resolution in test 2026-09-11 21:37:12 +08:00
Marek Fiala
d648b858bb feat(tools): adopt esp-pylib for mcp-server logging and ports
Migrate the MCP server extension to the shared esp-pylib library:
- replace raw stderr prints with esp_pylib.logger.log (note/err)
- route informational logs to stderr via set_info_stream so stdout
  stays reserved for the MCP JSON-RPC transport
- enumerate connected devices via esp_pylib.serial_ports.get_port_names
- stub the new imports in the mcp_ext unit tests

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 15:20:45 +02:00
Marek Fiala
3f005c8a4d feat(tools): mcp-server added monitor-device tool
Add a `monitor_device` MCP tool that lets an AI agent run a scripted,
non-interactive `esp-idf-monitor` session against a flashed device and
get back a short status plus a log file path, instead of raw serial
output inline.

Under the hood:

- The agent supplies a plain-text command body (expect/send/sleep/reset/
  exit/comments). `assemble_monitor_script_from_agent_commands()` frames
  it into a script the monitor's non-interactive command mode can
  consume via stdin: it appends `exit` if the agent didn't already end
  with one, and rewrites every bare `expect <regex>` into `expect
  --timeout <timeout_sec> <regex>` via `_monitor_normalize_expect_line()`
  (an already-bounded `expect --timeout ...` line is left untouched so
  the monitor itself reports a bad value). A leading `reset` is not
  prepended - the monitor already resets the chip when it opens the
  port - and any `reset` the agent wrote is left in place.
  `_monitor_parse_sleep_duration()` extracts each `sleep <n>` duration.
  The effective timeout is the sum of every bounded expect duration
  plus every sleep duration. Scripts whose sum exceeds
  `MONITOR_MAX_SCRIPT_SEC` are rejected. If the script has neither
  expect nor sleep (for example only `send`), `timeout_sec` is used so
  the process still has a kill bound.

- `monitor_device()` runs `python -m esp_idf_monitor` via
  `subprocess.run(..., input=script, timeout=2 * effective_timeout)`.
  `no_reset` is forwarded as `--no-reset` so the connection reset can be
  skipped; an explicit `-p` is forwarded when a port is given. Extra
  arguments match `idf.py monitor` where a build exists: baud (`baud`
  tool arg, else `monitor_baud` from `project_description.json`),
  toolchain prefix, `--target`/`--revision`, coredump/panic decode, and
  ELF files with the app ELF first. The 2x hard timeout is a safety net
  independent of the script's own `expect --timeout`/`exit` logic; on
  `TimeoutExpired` the process is killed but any output already captured
  is preserved and logged. `decode_stream()` normalizes that captured
  output, which can be `bytes` on the timeout path even though the
  process otherwise runs in text mode.

- The monitor's exit code drives the reported status via
  `_monitor_status()`, using `EXIT_EXPECT_TIMEOUT` and
  `EXIT_SCRIPT_ERROR` from `esp_idf_monitor.base.constants`: 0 is
  success, 110 means an `expect` pattern never showed up before its
  `--timeout` elapsed, 2 means the monitor rejected the script (bad
  syntax/timeout/regex), anything else is reported generically.

- Serial output and the monitor's own messages share one pipe
  (`stderr=STDOUT`) so decoded panic backtraces stay next to the lines
  that triggered them. `_save_monitor_output()` writes the full merge to
  `<tempdir>/esp_idf_mcp_log/action_monitor/monitor_<timestamp>.log` and
  reports a dedicated `Log file:` line. On non-zero exit or process
  kill, a short tail of that same merge is also returned inline so the
  agent has some failure context without a second file read. If the log
  file can't be written, it falls back to inlining a truncated tail.

Closes https://github.com/espressif/esp-idf/issues/18757
Closes https://github.com/espressif/esp-idf/pull/18385

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 15:20:45 +02:00
Island
5621e186dc Merge branch 'refactor/ble-log-lbm-overhaul' into 'master'
refactor: BLE Log LBM Overhaul

See merge request espressif/esp-idf!52299
2026-09-11 20:09:53 +08:00
jiminxiang
6c9c9979d3 feat(ble_esl): speed up OTS by lengthening ACL events
A 15 ms link with max_ce_len=0 sent one DLE PDU per event and capped
badge frames at ~17 KB/s. Request 7.5–15 ms and a long CE, and refill
the single CoC TX slot instead of treating EBUSY as a hard failure.
2026-09-11 19:58:02 +08:00
jiminxiang
b17865bfa4 fix(ble_esl): apply persist review follow-ups
Let the app supply Absolute Time, keep the AP Sync Key global,
roll back a failed restore, and drop the dead SYNC_LOST generation.
2026-09-11 19:42:04 +08:00
Ivan Grokhotkov
3a20f7595f Merge branch 'feat/esp32s31_support_sta2eth' into 'master'
feat(examples): Add ESP32-S31 support to network/sta2eth example

See merge request espressif/esp-idf!49047
2026-09-11 13:05:02 +02:00
Ivan Grokhotkov
32cdd1d999 Merge branch 'refactor/usb_console_hal' into 'master'
refactor(console): Use esp_hal_usb APIs in USB console

Closes IDF-15755 and IDFGH-11591

See merge request espressif/esp-idf!51843
2026-09-11 13:04:53 +02:00
Ivan Grokhotkov
704fa1d8e2 Merge branch 'contrib/github_pr_18985' into 'master'
fix(usb): keep CDC ISR callbacks in IRAM (GitHub PR)

Closes IDFGH-18154 and IDFGH-17979

See merge request espressif/esp-idf!51990
2026-09-11 13:04:42 +02:00
Ivan Grokhotkov
b171649d67 Merge branch 'fix/usb_bbpll_light_sleep' into 'master'
fix(usb_phy): Fixed USB PHY clock during low-power modes

Closes IDFGH-14711

See merge request espressif/esp-idf!51822
2026-09-11 13:04:30 +02:00
Ivan Grokhotkov
10708d6ecd Merge branch 'feat/usb_fsls_only' into 'master'
feat(esp_hal_usb): Add option to run FS/LS only host on HS target

See merge request espressif/esp-idf!52184
2026-09-11 13:04:17 +02:00
morris
9e2cd97330 refactor(cache): move cache profile counter support to hal
Move the cache profile counter type definitions to hal/cache_types.h so
that
esp_cache_cnt.h can use them without depending on the public soc header
soc/cache_periph.h (which CI rejects as non-public).

The remaining cache_periph.h header and its per-target cache_periph.c
sources
are moved from the soc component into the hal component, with the
sources
organized per target directory as usual for the hal component.

Removes the soc/cache_periph.h dependency from esp_cache_cnt.h and
hal/cache_ll.h by using hal/cache_periph.h instead.
2026-09-11 11:30:29 +02:00
Ivan Grokhotkov (bot)
744f11fd63 feat(examples): add cache access counters example 2026-09-11 11:30:29 +02:00
Ivan Grokhotkov (bot)
16078650c8 feat(esp_hw_support): add cache access counter API 2026-09-11 11:30:28 +02:00
Chen Jichang
c0fb05b37e fix(rgb_lcd): resync bounce buffer index when restarting DMA
Closes https://github.com/espressif/esp-idf/issues/19070
2026-09-11 17:06:03 +08:00
zhanghaipeng
11949c27e6 fix(ble/bluedroid): use valid ATT error for Read Multiple assembly failure
Return GATT_INVALID_HANDLE instead of GATT_NOT_FOUND when Read Multiple
(Variable) response assembly fails, since 0x0A is not a valid ATT error
for these PDUs per Core Spec Vol 3 Part F.
2026-09-11 16:53:21 +08:00
Rahul Tank
7e5235a7a7 Merge branch 'bugfix/nimble_issues_08092026' into 'master'
fix(nimble): fix few nimble issues 08092026

Closes BLERP-3063

See merge request espressif/esp-idf!52593
2026-09-11 14:15:15 +05:30
Island
e871592435 Merge branch 'change/ble_update_lib_esp32h2_20260910' into 'master'
fix(bt): supported allocate memroy from spiram for ESP32-S31 and ESP32-H4

See merge request espressif/esp-idf!52707
2026-09-11 15:20:34 +08:00
wanckl
2d811702f3 feat(driver_spi): support master driver internal sct api on later chips 2026-09-11 15:05:20 +08:00
wanckl
3c89c34847 refactor(driver_spi): refactor spi sct parts lowlevel header styles 2026-09-11 15:05:20 +08:00
Tomas Rezucha
e8032f6ff6 feat(esp_hal_usb): Add option to run FS/LS only host on HS target
Add function usb_dwc_hal_init_with_config() that takes a bitmap
of configuration flags.
Currently only FS/LS only flag is implemented, but the design
allows extension in the future.
2026-09-11 14:22:44 +08:00
Chen Jichang
d4603212f8 feat(lcd): add MIPI-to-HDMI example (lt9611) 2026-09-11 14:17:40 +08:00
Marius Vikhammer
deb69a8dfe Merge branch 'fix/adjtime-offset-truncation' into 'master'
fix(esp_libc): reject out-of-range adjtime() deltas instead of overflowing

Closes IDFGH-18241

See merge request espressif/esp-idf!52498
2026-09-11 14:13:42 +08:00
Ashish Sharma
8fbfc7fc5f fix(esp-tls): report certificate flags when the handshake fails 2026-09-11 13:46:42 +08:00
Astha Verma
56f1ae2947 fix(nimble): Fix nimble HID service discovery 2026-09-11 11:16:03 +05:30
Rahul Tank
25c114e07a Merge branch 'bugfix/fix_compilation_issue' into 'master'
fix(nimble): Fixed compilation issues due to missing BLE_GATTS

See merge request espressif/esp-idf!52719
2026-09-11 10:37:49 +05:30
Harshal Patil
f386b718e1 fix(spi_flash): size the ROM mmap page table to the region the ROM searches
spi_flash_mmap_page_num_init() passed a literal 128 while the ROM searches
Cache_Get_DROM_MMU_End() / 4 entries -- 256 on esp32c5, c6, h2 and s3 -- so
its free-page scan ran off the array and judged entries from stale heap bytes.

The refcount bump on the commit path indexes the same way, so a mapping placed
above entry 127 also writes past the array and corrupts the heap behind it.

esp32c61 and esp32h21 have the ROM mmap but never program the size and have no
soc/mmu.h to read it from, so they keep 128.
2026-09-11 10:04:46 +05:30
Mahavir Jain
957618d083 Merge branch 'fix/buildv2_fault_assert_opt_check' into 'master'
fix(esp_security): use EXECUTABLE in fault_assert_opt_check

See merge request espressif/esp-idf!52640
2026-09-11 09:53:36 +05:30