Commit Graph

8607 Commits

Author SHA1 Message Date
Ivan Grokhotkov
f1abda1535 Merge branch 'feature/cache_access_counters' into 'master'
feat(esp_hw_support): add cache access counter API

See merge request espressif/esp-idf!50600
2026-09-14 17:21:49 +02: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
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
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
Ivan Grokhotkov (bot)
16078650c8 feat(esp_hw_support): add cache access counter API 2026-09-11 11:30:28 +02:00
Chen Jichang
d4603212f8 feat(lcd): add MIPI-to-HDMI example (lt9611) 2026-09-11 14:17:40 +08:00
Marius Vikhammer
af1361497f Merge branch 'docs/api_ref_system_updates' into 'master'
docs(system): update API references for H4 and S31

See merge request espressif/esp-idf!52561
2026-09-11 09:53:01 +08:00
Roland Dobai
2e6d41c2e9 Merge branch 'task/buildv2_gdbinit_multi_exec' into 'master'
feat(cmakev2): parameterize gdbinit for multi-executable builds

Closes IDF-15860

See merge request espressif/esp-idf!51239
2026-09-10 10:59:42 +02:00
Marius Vikhammer
fec0755681 docs(system): update API references for H4 and S31
Add target-specific power-management frequencies and capability
conditions so later chips do not need chip-by-chip list updates.
2026-09-10 15:41:03 +08:00
Armando (Dou Yiwen)
496c0b6377 Merge branch 'refactor/flash_refactor' into 'master'
spi_flash: split driver and os driver into `spi_flash` and `esp_mspi` components

Closes IDF-15210

See merge request espressif/esp-idf!45409
2026-09-10 07:29:01 +00:00
Mo Fei Fei
bb2c545085 docs(uart): clarify example pins need a USB-to-UART bridge 2026-09-10 14:50:43 +08:00
morris
0f977dfc9c Merge branch 'feat/spi_add_data_output_inversion' into 'master'
feat(spi): support data output inversion

Closes IDF-15546

See merge request espressif/esp-idf!52529
2026-09-10 10:48:40 +08:00
Steven (Yang Minghui)
782574ee7d feat(spi): support data output inversion 2026-09-09 22:35:03 +08:00
Roland Dobai
f20a9211af Merge branch 'docs/idf-monitor-fast-reflash' into 'master'
docs: Update idf-monitor fast reflash shortcut documentation

See merge request espressif/esp-idf!51445
2026-09-09 10:17:46 +02:00
morris
fd163d917c Merge branch 'refactor/i2s_pcm_player' into 'master'
refactor(i2s): replace i2s_es8311 example with wav_player

See merge request espressif/esp-idf!52486
2026-09-09 16:10:51 +08:00
Island
4cf9d611e6 Merge branch 'idf/ble_audio_broadcast_assistant' into 'master'
feat(ble_audio): Add BAP Broadcast Assistant example

See merge request espressif/esp-idf!52480
2026-09-09 14:56:03 +08:00
armando
2cacb0bd56 change(flash): deprecate bootloader_flash_priv.h 2026-09-09 14:17:00 +08:00
morris
8284596d78 Merge branch 'feat/gdma_burst_size_fallback' into 'master'
fix(gdma): treat burst size 0 and 1 as burst disabled

See merge request espressif/esp-idf!52209
2026-09-09 11:05:33 +08:00
Liu Linyan
19b8637502 feat(ble_audio): Add BAP Broadcast Assistant example 2026-09-09 09:51:40 +08:00
Marius Vikhammer
3c633f037d Merge branch 'feat/sys_event_in_freertos' into 'master'
feat(system_init): Introduce pre-scheduler and pre-app main handler registrations

Closes IDF-16133

See merge request espressif/esp-idf!52296
2026-09-09 09:28:52 +08:00
morris
f5afb99e3b fix(gdma): treat burst size 0 and 1 as burst disabled
The GDMA layer used `max_data_burst_size == 0` as the only way to disable the
data burst. That conflicts with the upstream drivers' convention where a zeroed
config struct means "unset", so users had no way to ask for the driver default
burst size.

GDMA now treats both 0 and 1 as "no data burst": a single-beat burst has no
benefit over the non-burst mode. The MSPI alignment constraint under Flash
Encryption / PSRAM ECC still takes precedence and is reported with a warning.

The upstream drivers using GDMA now apply their own default burst size (16
bytes) when the user leaves `dma_burst_size` as 0, following the UHCI driver:

- esp_async_crc (AHB / AXI GDMA backend)
- esp_async_memcpy (AHB / AXI / LP-AHB / DW_GDMA backend)

Callers that really want no burst can now set `dma_burst_size` to 1.
2026-09-08 23:29:14 +08:00
Martin Vychodil
c17ec317ef Merge branch 'feat/generic_partition_bdl_example' into 'master'
feat(storage): Add generic partition BDL example

Closes IDF-15980

See merge request espressif/esp-idf!50305
2026-09-08 21:02:54 +08:00
Adam Múdry
98fee5a68a feat(storage): Add generic partition BDL example
Add an example under examples/storage/generic_partition_bdl that
partitions a raw block device at run time using only the Block Device
Layer (BDL) interface.

The example obtains a whole-disk BDL (SPI flash data partition by
default, or an SD/eMMC card via menuconfig), writes an MBR partition
table onto it with the esp_ext_part_tables managed component (fetched
via idf_component.yml), then creates a generic-partition BDL for each
MBR entry with esp_blockdev_generic_partition_get() and mounts FATFS on
the FAT slice and LittleFS on the LittleFS slice.
2026-09-08 14:38:16 +02:00
morris
85680029d2 refactor(i2s): replace es8311 example with pcm_player
Drop echo/recording now that mic_recorder covers capture. The new
example is TX-only and plays embedded PCM on ES8311 or ES8389.
2026-09-08 13:59:35 +08:00
Mahavir Jain
84a6967aa1 Merge branch 'feat/add_sm3_hash_support_and_testcases' into 'master'
add SM3 hash support and testcases

See merge request espressif/esp-idf!44830
2026-09-08 09:02:41 +05:30
Peter Dragun
ae4396b5ed docs: Update idf-monitor fast reflash shortcut documentation 2026-09-07 08:42:38 +02:00
wuzhenghui
f0f91578cd fix(doc): fix uart output handling doc format 2026-09-07 10:56:27 +08:00
Marius Vikhammer
b38c8a0625 Merge branch 'feat/llvm-opt-integration' into 'master'
feat(compiler): add ESP-IDF LLVM optimization enablement framework

See merge request espressif/esp-idf!51154
2026-09-07 10:11:37 +08:00
Ashish Sharma
8a01f77647 fix(esp_http_server): let the WS control handler own the protocol reply 2026-09-04 16:24:38 +08:00
Ashish Sharma
d0e35277dd fix(ws): validate CLOSE frame semantics, echo payload, validate UTF-8 text 2026-09-04 16:24:38 +08:00
Ashish Sharma
dd5d10b616 docs(sha): add the SM3 API programming guide 2026-09-04 14:26:23 +08:00
Mahavir Jain
8952de37bb Merge branch 'fix/add_cve_items' into 'master'
docs: update vulnerabilities guide to mention CVE-2026-81507 & CVE-2026-81508

See merge request espressif/esp-idf!52229
2026-09-04 10:42:16 +05:30
Roland Dobai
aa03e678f5 Merge branch 'fix/serial_port_target_mismatch' into 'master'
fix(tools): Detect serial port matching the project target

Closes IDF-15356

See merge request espressif/esp-idf!51466
2026-09-04 07:01:30 +02:00
Sudeep Mohanty
0ca0b8da52 feat(cmakev2): parameterize gdbinit for multi-executable builds
__generate_gdbinit wrote into a single shared directory and derived the
application ELF from a global property, so a project building multiple
executables had their gdbinit files overwrite each other. Take the ELF
path and output directory as arguments, and derive them per executable in
idf_build_generate_metadata.
2026-09-04 13:00:09 +08:00
morris
320f344cd6 Merge branch 'docs/mcpwm_deadtime_descrption' into 'master'
docs(mcpwm): add note for deadtime config

Closes IDFGH-17717

See merge request espressif/esp-idf!49090
2026-09-04 11:21:37 +08:00
Chen Chen
ac6238eefc docs(mcpwm): add note for deadtime config
Closes https://github.com/espressif/esp-idf/issues/18654
2026-09-04 10:52:29 +08:00
morris
8b0f252f11 Merge branch 'fix/mcpwm_cap_prescale' into 'master'
fix(mcpwm): correct the wrong capture prescale

Closes IDFGH-18010

See merge request espressif/esp-idf!51691
2026-09-03 23:28:31 +08:00
wanckl
98f429ab37 feat(driver_spi): master driver support higher speed limit if 'input_delay_ns' not use 2026-09-03 17:45:25 +08:00
renpeiying
88c040a5c5 docs: add CN translation 2026-09-03 17:24:51 +08:00
Xu Si Yu
09ab883583 feat(openthread): support multipan feature for host device 2026-09-03 16:52:18 +08:00
morris
66d1b5f641 Merge branch 'feat/i2s_edma' into 'master'
feat(i2s): supports DMA buffer in PSRAM

Closes IDF-15256, IDF-11059, and IDF-4471

See merge request espressif/esp-idf!51877
2026-09-03 16:14:03 +08:00
Chen Jichang
05d6e7665f fix(mcpwm): correct the wrong capture prescale 2026-09-03 15:56:13 +08:00
Wang Meng Yang
7f1b8d002e Merge branch 'feature/hfp_lc3' into 'master'
Feature/hfp lc3

See merge request espressif/esp-idf!50037
2026-09-03 14:44:47 +08:00
chenqian
25046e7959 feat(compiler): add ESP-IDF LLVM optimization enablement framework
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 13:02:58 +08:00
hejiaxin
9f6cf1ac3c feat(bluedroid): Update LC3-SWB support in bluedroid
- Update LC3 in btc and bta, update AT
- Update LC3 in SCO frame transfer and examples
- improve lc3 transfer speed
- Fix some encoding and decoding bugs
- Rename the functions and macros to fit both msbc and lc3
- Add config dependency
- Add migration guides for bluetooth-classic
- change the statement of "Wide Band Speech" to "Wideband Speech" to fit HFPv1.10
2026-09-03 11:02:50 +08:00
Konstantin Kondrashov
754ac1dd45 feat(system_init): introduce pre-scheduler and pre-app main handler registrations
- Added macros for registering handlers to run before the scheduler and app main.
- Updated various components to utilize the new registration system for initialization.
- Refactored app startup logic to streamline initialization sequence.
2026-09-02 16:58:44 +03:00
morris
0f42b6c4f3 Merge branch 'refactor/dac_examples' into 'master'
refactor(dac): remove adc read back in dac example, prepare for s31

See merge request espressif/esp-idf!52030
2026-09-02 20:04:22 +08:00
Island
26c58e6c46 Merge branch 'idf/ble_audio_cap_handover' into 'master'
feat(ble_audio): Add CAP Handover (U2B & B2U) example

See merge request espressif/esp-idf!52061
2026-09-02 19:35:13 +08:00
Vojtech Piroch
19676ffa46 fix(tools): Detect serial port matching the project target
Auto-detect used to pick the first Espressif device, even when it did
not match IDF_TARGET. With several boards attached, flash/monitor could
talk to the wrong chip.

Pass the project target into esptool so unmatched ports are skipped.
Resolve the port after ensure_build_directory() so the target is known.
For monitor on an unconfigured project, probe the connected chip and
pass it directly to idf_monitor without configuring the project.
2026-09-02 17:18:57 +08:00