Commit Graph
8026 Commits
Author SHA1 Message Date
Jakub Kocka 5fdf02ef03 Merge branch 'fix/win_tests' into 'master'
Fix Windows build system timeouts by saving failed command output to files

See merge request espressif/esp-idf!52502
2026-09-21 18:01:02 +08:00
Marius Vikhammer 57f1a2a260 fix(ci): close missing quote in system build-test-rules if clause
An unclosed string made the whole system test-app manifest invalid, so
the auto-suspend disable rule never applied to ESP32-S2.
2026-09-21 09:16:14 +08:00
Marius Vikhammer 3c4bcb4da5 fix(test_apps): drop obsolete esp_hw_support to esp_pm violation
The G1 dependency check fails when an expected extra dependency is no
longer present after the real component edge was removed.
2026-09-21 09:04:05 +08:00
Alexey Lapshin 8834cb9a5e fix(cmake): detect toolchain response-file recursion via path prefix
Skip only @response-file flags under IDF_TOOLCHAIN_BUILD_DIR using
quote-aware parse and cmake_path(IS_PREFIX). Cache the toolchain build
dir as REALPATH so prefix checks compare against a stable path spelling.
2026-09-19 10:44:09 +08:00
morrisandCursor 69bab4a284 fix(g1_components): add esp_hal_cache to HAL component list
Include esp_hal_cache so the G1-restricted build still pulls in the
cache HAL after it was extracted from the generic HAL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 18:08:34 +08:00
morris 150466f598 refactor(lcd): use LZ4-compressed binary images in i80_controller example
- Remove the EXAMPLE_LCD_IMAGE_SOURCE Kconfig option (embedded binary vs
  file system) and always load images from LittleFS.
- Convert the PNG images into LZ4-compressed LVGL binary images (.bin)
at
  build time using LVGLImage.py, and flash them to a LittleFS partition.
- Upgrade lvgl to 9.6.0 and add the espressif/lz4 component; link the
external LZ4 library into lvgl.
- Split the example: main.c focuses on the esp_lcd i80 API, while the
LVGL
  porting (lvgl_port.c) and the UI (lvgl_demo_ui.c) live in separate
files.
- Rework the demo animation to use the LVGL animation engine (lv_anim)
with
  easing paths instead of a manual software timer for smoother
rendering.
- Remove the embedded C image arrays (esp_logo.c, esp_text.c) and the
  obsolete sdkconfig.ci.image_in_{bin,fs} variants.
2026-09-18 13:50:16 +08:00
Roland Dobai bd0820d403 Merge branch 'fix/markup-in-output' into 'master'
Correctly escape strings using status_message decorator

See merge request espressif/esp-idf!52756
2026-09-17 16:58:09 +02:00
Jakub KockaandCursor c082e6a25d ci(tools): Keep Windows build-system work dir short and logs off the live log
Relative CI_PROJECT_DIR after cd nested --work-dir under tools/test_build_system
and blew MAX_PATH. Save failed-command output next to artifacts instead of
streaming a 12 KB record that still hangs shard 3/6.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 20:45:13 +08:00
Jakub Kocka fa7372d1c4 ci(tools): Verify submodules were copied into the idf_copy worktree
git worktree add leaves every submodule as an empty directory, and the
copy loop skipped any submodule it could not read from the source repo.

The placeholder then stayed in the copy and the build failed much later
in an unrelated component, as a missing mbedtls/include or tlsf.c

Check each submodule in the destination after copying it. If one is
still a placeholder, drop the worktree and create the copy with
shutil.copytree, which does not depend on the submodule state of the source checkout
2026-09-17 20:45:13 +08:00
Jakub Kocka 93f39c9169 ci(tools): Avoid live-log the hints test failure on Windows 2026-09-17 20:45:13 +08:00
Erhan Kurubas 345406ec48 Merge branch 'trace_encoder_snapshot_coredump' into 'master'
Add trace snapshot to the coredump file

See merge request espressif/esp-idf!52451
2026-09-17 14:41:18 +02:00
Roland Dobai c43f19f44c fix(panic): pass the DUT serial port to espcoredump 2026-09-17 18:15:26 +08:00
Lu Ai Jun 3dd1a4671a Merge branch 'fix/sys_test_apps_using_wrong_config' into 'master'
CI: fix psram config for system test apps

See merge request espressif/esp-idf!51559
2026-09-17 15:58:44 +08:00
Erhan Kurubas 4d8f4f3b25 test(esp_riscv_trace): Add coredump snapshot note coverage
Check the ESP_RISCV_TRACE ELF note and per-core PT_LOAD segments
after an abort, without decoding the trace stream.
2026-09-16 15:00:57 +02:00
Sudeep Mohanty 6933b41314 Merge branch 'feat/ulp_component_split' into 'master'
refactor(ulp): separate the ULP coprocessor code from the driver

Closes IDF-15957

See merge request espressif/esp-idf!52268
2026-09-15 11:49:23 +02:00
Island 29e854ad3c Merge branch 'feat/bluedroid_enc_adv_data' into 'master'
feat(ble/bluedroid): move Encrypted Advertising Data APIs into the host

See merge request espressif/esp-idf!51898
2026-09-15 14:12:00 +08:00
Marek FialaandCursor 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 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
Jan BeranandCursor 566fc21018 fix: correctly escape strings using status_message decorator
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 14:55:52 +02: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
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
Roland Dobai e9362463b4 Merge branch 'feat/pylib_standalone_scripts' into 'master'
Adopted esp-pylib for various standalone scripts

See merge request espressif/esp-idf!49944
2026-09-09 15:24:05 +02:00
morris da3e20988f Merge branch 'ci/reenable_h4_eco2_target_test' into 'master'
feat(esp32h4): remove the support of esp32h4 rev0

Closes IDF-16110

See merge request espressif/esp-idf!52538
2026-09-09 16:03:35 +08:00
Jakub Kocka d6771a0608 change(tools): Unified outputs of various standalone scripts (esp-pylib) 2026-09-09 09:43:59 +02:00
Armando (Dou Yiwen) 5e181236b7 refactor(mspi): move esp_mspi_align and mspi_mem_barrier to esp_mspi 2026-09-09 14:17:00 +08:00
armando 6e3abd12a1 refactor(spi_flash): move os layer to esp_mspi and chip configs to spi_flash
Also fixes the implicit dependency on esp_partition.
2026-09-09 14:17:00 +08:00
Mahavir Jain 71c93b10b9 Merge branch 'test/s3_memprot_dram_exec_xfail' into 'master'
test(panic): apply the ESP32-S2 memprot expected failures to ESP32-S3

Closes IDFCI-13868

See merge request espressif/esp-idf!52444
2026-09-09 11:42:35 +05:30
zhiweijian f5e9e2496a feat(ble/bluedroid): move Encrypted Advertising Data APIs into the host
Provide esp_ble_ead_encrypt/decrypt in Bluedroid and group the GAP Key
Material characteristic under the same EAD Kconfig menu.
2026-09-08 16:07:44 +08:00
Marius Vikhammer c41541b83b fix(ipc): fixed IPC task ending up in PSRAM
With CONFIG_FREERTOS_PLACE_TASK_STACKS_IN_EXT_RAM enabled IPC
task would end up in PSRAM, causing issues with disabling cache
2026-09-08 11:37:35 +08:00
Marius Vikhammer 25555683b9 Merge branch 'feature/g1_improvements_cmake_v2' into 'master'
feat(build): fixed esp_usb_cdc_rom_console always being included in build

See merge request espressif/esp-idf!51981
2026-09-08 10:36:40 +08:00
Chen Jichang c950e7bae0 feat(esp32h4): remove the support of esp32h4 rev0 2026-09-08 10:30:20 +08:00
luaijun a3a20a7a27 fix: the incorrect SOC_PSRAM_SUPPORTED build condition with SOC_SPIRAM_SUPPORTED.
change: the light-sleep test so an internal-RAM helper task enters light sleep while the PSRAM-stacked Unity task is blocked.Verifies that light sleep succeeds and that the PSRAM-stacked task resumes correctly afterward.Removes the unreliable sleep-callback counter check.
2026-09-08 09:54:58 +08:00
morris 77d0058435 Merge branch 'ci/disable_h4_target_test_for_updating_runners' into 'master'
ci(esp32h4): disable h4 target test for updating runners

See merge request espressif/esp-idf!52449
2026-09-07 17:19:53 +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
Alexey Gerenkov 6d01a64027 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20260831' into 'master'
feat(tools): update openocd version to v0.12.0-esp32-20260831

See merge request espressif/esp-idf!52371
2026-09-04 19:37:02 +08:00
Chen Jichang e9c56e2d78 ci(esp32h4): disable h4 target test for updating runners 2026-09-04 17:19:46 +08:00
harshal.patil 2068cd1aa0 test(panic): apply the ESP32-S2 memprot expected failures to ESP32-S3
The DRAM and RTC_FAST execute cases race the CPU exception against the PMS or
cache interrupt on ESP32-S3 too, so the panic reason is not deterministic.
2026-09-04 14:13:04 +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 4756c1ec75 test(cmakev2): add gdbinit single and multi-binary tests
Cover the default single-executable output directory and per-executable
gdbinit generation in a multi-binary build.
2026-09-04 13:00:09 +08: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
Roland Dobai c63f12f2d0 Merge branch 'fix/kconfig_test_format' into 'master'
fix: KConfig test output format

See merge request espressif/esp-idf!52329
2026-09-03 12:52:44 +02:00
Samuel Obuch 0a1d19eba1 feat(tools): update openocd version to v0.12.0-esp32-20260831 2026-09-03 07:46:42 +00:00
Marius Vikhammer 157d6b1669 feat(build): fixed esp_usb_cdc_rom_console always being included in build 2026-09-03 15:09:38 +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
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
Daniel Paul 1c70539375 fix: KConfig test output format 2026-09-02 13:19:40 +02:00
Marius Vikhammer ff6371a140 Merge branch 'task/remove_build_components_var_in_buildv2' into 'master'
change(build): drop BUILD_COMPONENTS support and migrate test_apps to not use it for buildv2

Closes IDF-15859

See merge request espressif/esp-idf!51695
2026-09-02 19:19:08 +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
Mahavir Jain a1f17cebdc Merge branch 'fix/s3_memprot_panic_report' into 'master'
Report ESP32-S3 PMS violations as memory protection faults

See merge request espressif/esp-idf!52109
2026-09-02 13:41:24 +05:30
Marius Vikhammer 58ab269d3a Merge branch 'feat/app-rollback-auto-confirmation' into 'master'
feat(app_update): Add auto-confirmation of OTA updates

Closes IDF-15981

See merge request espressif/esp-idf!50531
2026-09-02 15:54:30 +08:00