Commit Graph
1211 Commits
Author SHA1 Message Date
luweike 99a4eb75fb docs: Clarify ESP32-C5 5 GHz Wi-Fi coexistence 2026-09-17 16:32:56 +08:00
Marek FialaandCursor 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
Mo Fei Fei bb2c545085 docs(uart): clarify example pins need a USB-to-UART bridge 2026-09-10 14:50:43 +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
Peter Dragun ae4396b5ed docs: Update idf-monitor fast reflash shortcut documentation 2026-09-07 08:42:38 +02: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
renpeiying 88c040a5c5 docs: add CN translation 2026-09-03 17:24:51 +08:00
chenqianandCursor 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
yinqingzhao 164190b8c8 feat(wifi): support disable dfs channels in apsta example 2026-08-24 10:33:10 +08:00
Wei Yu Han 55afb36110 Merge branch 'feat/update_ble_feature_support_status_0813' into 'master'
feat(docs): update BLE feature support status for ISO and Core 6.1-6.3

See merge request espressif/esp-idf!51719
2026-08-17 08:30:58 +08:00
Wei Yuhan 7891e0d65a feat(docs): fix PAST and randomized adv channel indexing status
Gate PAST on SOC_ESP_NIMBLE_CONTROLLER, mark randomized advertising
channel indexing host columns as NA, and limit controller experimental
status to NimBLE controllers except ESP32-C2.
2026-08-13 17:26:03 +08:00
Wei Yuhan bacdf4ba93 feat(docs): update BLE feature support status for ISO and Core 6.1-6.3
Mark ISOAL/ISO features as experimental when SOC_BLE_ISO_SUPPORTED,
add unsupported Core Spec 6.1-6.3 features, and move NimBLE LL Extended
Feature Set target to 2026/12.
2026-08-13 14:14:09 +08:00
Wei Yuhan cfd47ad13a feat(docs): Updated BLE support features status 2026-08-13 09:18:55 +08:00
luweike 7fbedd2b61 docs: Update Get Started for ESP32-S31 2026-08-12 15:00:06 +08:00
Marius Vikhammer 4d332f710e docs(kconfig): update kconfig ref links to use menuitem 2026-08-11 11:19:45 +02:00
Alexey Gerenkov 72732994ef Merge branch 'feature/enable_atomic_lock_policy_on_riscv' into 'master'
feat(build): add CONFIG_COMPILER_CXX_ATOMIC_LOCK_POLICY option

See merge request espressif/esp-idf!49913
2026-08-04 20:05:40 +08:00
Roland Dobai b1d066dbd4 Merge branch 'contrib/github_pr_18871' into 'master'
feat(tools): add -j/--jobs option to idf.py (GitHub PR)

Closes IDFGH-18013

See merge request espressif/esp-idf!51409
2026-08-03 11:25:52 +02:00
Erhan Kurubas 11e6799f80 Merge branch 'stub_bins_for_more_targets' into 'master'
Increase OCD stub memory reservation from 8K to 12K and extend this feature to more targets

See merge request espressif/esp-idf!51231
2026-07-28 16:58:05 +02:00
Erhan Kurubas 6e5b4febf8 change(system): increase OCD stub memory reservation from 8K to 12K 2026-07-28 07:45:39 +03:00
Erhan Kurubas 19a27980a5 refactor(examples): group trace examples under examples/system/tracing/
Move 7 trace-related examples (app_trace_basic, app_trace_to_plot,
esp_trace_custom_library, function_tracing, gcov, sysview_tracing,
sysview_tracing_heap_log) from examples/system/ into a dedicated
examples/system/tracing/ subdirectory for better organization.

Update all path references across documentation (en + zh_CN),
build-test-rules, CI configs, Kconfig, and component READMEs.
2026-07-27 23:56:02 +03:00
Alexey Lapshin b3ae652f21 feat(build): add CONFIG_COMPILER_CXX_ATOMIC_LOCK_POLICY option
libstdc++ selects between a lock-free and a mutex-based policy for
std::shared_ptr reference counting based on this macro. Enabling this
option forces the lock-free policy, which avoids pulling in the
mutex-based implementation and can reduce code size.

Note: the lock-free policy avoids embedding a mutex in each control
block, saving about 88 bytes per shared_ptr, and improves performance
by using atomic operations instead of mutex locking.

Note: this option changes the ABI of libstdc++ atomic/shared_ptr
helpers. It can be incompatible when linking against prebuilt
libraries that were compiled without it, leading to link errors or
undefined runtime behavior. Only enable it if all C++ objects and
libraries in the build use the same setting.
2026-07-23 18:20:25 +07:00
morris ee2cfdb3f3 Merge branch 'feature/isp-flash-dma-input' into 'master'
feat(isp): add aligned flash DMA input example

See merge request espressif/esp-idf!50959
2026-07-23 19:13:55 +08:00
Zhang Shuxian 35deba1bd7 docs: Update CN translation for tracing 2026-07-23 09:34:16 +03:00
Erhan Kurubas 6c6490d54c docs(esp_trace): restructure tracing docs with esp_trace as master
Reorganize the tracing documentation so esp_trace is the master
component, with app_trace, SystemView, and Gcov referenced from it.
2026-07-23 08:58:30 +03:00
Nebojša CvetkovićandClaude Opus 4.8 db6b310447 feat(tools): add -j/--jobs option to idf.py
Add a global -j/--jobs option to idf.py that sets the number of parallel
build jobs passed to the underlying build tool. Previously parallelism was
only configurable via the IDF_PY_BUILD_JOBS environment variable, and only
for the Ninja generator.

The option applies to both Ninja and Make and defaults to IDF_PY_BUILD_JOBS
when not given, so the environment variable keeps working as before.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 16:02:52 +01:00
Ivan Grokhotkov (bot)andClaude Fable 5 b3a0e166fe feat: add compile_options support to idf.py build-file
Allow specifying extra compiler flags (warning flags, preprocessor
definitions, etc.) via a new 'compile_options' entry in the
idf-build-file frontmatter. The options are applied to the source
file via target_compile_options in the generated main component
CMakeLists, with CMake quoting so that flags like -DMSG="hello world"
reach the compiler exactly as written.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:04:41 +02:00
Ivan GrokhotkovandClaude Fable 5 16275df0a1 feat: add idf.py build-file command for standalone C files
Add a new idf.py extension that allows building standalone C files
without requiring full project boilerplate. Source files can include
optional YAML frontmatter in block comments to specify sdkconfig
options, component dependencies, and target configuration.

When the frontmatter configuration changes, the stale sdkconfig is
removed so the new defaults are applied, and a target change also
clears the build directory since IDF_TARGET is pinned in the CMake
cache.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:04:41 +02:00
morris 0315e2fb2e feat(build): support aligned embedded binary data
Allow callers to align embedded binary start symbols for DMA-capable
assets.
2026-07-21 10:40:18 +08:00
Konstantin Kondrashov 686f522200 Merge branch 'doc/bootloader-anti-rollback-fix' into 'master'
fix(docs): Update bootloader anti-rollback documentation

See merge request espressif/esp-idf!50514
2026-07-15 18:05:00 +03:00
Konstantin Kondrashov 05b65a5b0e fix(docs): Update bootloader anti-rollback documentation 2026-07-15 17:43:55 +03:00
Ivan Grokhotkov 560fb2ab99 Merge branch 'feature/lto-take-2' into 'master'
feat(build): add options to enable link-time optimization (LTO)

Closes IDF-71 and IDFGH-17838

See merge request espressif/esp-idf!50002
2026-07-15 10:45:06 +02:00
Shen Meng Jing 46d9f9c065 Merge branch 'docs/sync_cn_and_en' into 'master'
docs: Sync CN and EN docs without the translation label

Closes DOC-15056

See merge request espressif/esp-idf!50501
2026-07-15 09:57:02 +08:00
Ivan Grokhotkov (bot)andClaude Opus 4.8 4c25d4e9ab docs(performance): mention LTO in the optimizing-for-size guide
Document CONFIG_COMPILER_LTO_LINKTIME / CONFIG_COMPILER_LTO_COMPILETIME in the
binary size reduction guide, including the caveats: less accurate per-component
size breakdown, longer build times, incompatibility with custom linker
fragments, and harder debugging.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 19:32:19 +02:00
Zhi Wei Jian 2e6cbccd55 Merge branch 'feat/support_bluedroid_dual_identify' into 'master'
feat(ble/bluedroid): Support bluedroid dual indentify

See merge request espressif/esp-idf!49640
2026-07-13 10:03:39 +08:00
zhiweijian 2358786647 feat(ble/bluedroid): Support bluedroid dual identity 2026-07-10 17:57:09 +08:00
Wu Zheng Hui d26f5682cf Merge branch 'change/change_regdma_malloc_caps' into 'master'
change(heap): reserve DMA pool with low priority MALLOC_CAP_DEFAULT cap

See merge request espressif/esp-idf!50255
2026-07-09 19:32:56 +08:00
Shen Mengjing 811431b99f docs: Sync CN and EN docs without translation label 2026-07-08 17:52:54 +08:00
nilesh.kale 97c2fcf66a feat: update docs for ESP32H4 security chapters 2026-07-06 10:12:35 +05:30
wuzhenghui a3fc0c4b58 change(heap): reserve DMA pool with low priority MALLOC_CAP_DEFAULT caps 2026-07-03 20:54:30 +08:00
Frantisek Hrbata 4cc2d22c48 Merge branch 'docs/cmakev2-build-system-v2' into 'master'
docs(cmakev2): Restructure build system v2 documentation into a guide

Closes IDF-15079 and IDF-15475

See merge request espressif/esp-idf!49781
2026-06-29 07:36:01 +02:00
Zhang Shuxian 320ea43509 docs: Update CN translation for idf-py.rst 2026-06-24 18:46:39 +08:00
Frantisek Hrbata f8adfd176e docs(cmakev2): Restructure build system v2 documentation into a guide
Split the single build-system-v2 page into a landing page that dispatches
to focused how-to guides (creating a project, creating components,
configuring dependencies, third-party libraries, ESP-IDF as a library,
multiple binaries) and reference pages (design and architecture, breaking
changes, and the generated API reference). Mirror the new structure on
zh_CN and update the API Guides table of contents.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-06-24 09:13:01 +02:00
71e057cfca docs(jtag-debugging): add semihosting chapter
Co-authored-by: Shen Mengjing <shenmengjing@espressif.com>
Co-authored-by: Zhang Shu Xian <zhangshuxian@espressif.com>
2026-06-22 12:55:06 +02:00
Liu Linyan bade32f3eb docs(ble_audio): Adopt SIG product name and add LE Audio API guide entry 2026-06-17 14:51:17 +08:00
Zhang Shuxian 04da353d36 docs: Update CN translation for host-apps.rst 2026-06-11 14:30:14 +08:00
Island 477b984238 Merge branch 'idf/ble_audio_arch_doc' into 'master'
docs(ble_audio): Add documents for ISO & LE Audio architectures

See merge request espressif/esp-idf!49065
2026-06-10 19:38:21 +08:00
Jiang Jiang Jian f6eceb316a Merge branch 'feat/support_esp32s31_dfu' into 'master'
Feat/support esp32s31 dfu

See merge request espressif/esp-idf!49329
2026-06-10 15:48:00 +08:00
Liu Linyan 15f3df1ea7 docs(ble_audio): Add documents for introducing ISO & LE Audio architectures 2026-06-10 15:41:00 +08:00
Jiang Guang MingandCursor 0c835d2141 fix(dfu): retry dfu-util flash on macOS detach failure
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 15:40:34 +08:00
Konstantin Kondrashov 7a573330b8 Merge branch 'feature/efuse_dump' into 'master'
feat(efuse): Support efuse token dump

Closes IDF-14046

See merge request espressif/esp-idf!41754
2026-06-05 11:15:30 +03:00