<< All versions

Skill v1.0.1

currentAutomated scan100/100
bakesheep/emberprobe-mcu-flash-debug/mcu-config

+7 new

──Details
PublishedOctober 26, 2026 at 03:24 AM
Content Hashsha256:09921221da7b2ead...
Git SHA2c5265c2c582
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 5.8 KB)
SKILL.md5.8 KBactive
SKILL.md · 49 lines · 5.8 KB

version: "1.0.1" name: mcu-config description: Read or change EmberProbe workspace configuration and synchronize it to the sidebar, including selecting a workspace .ioc. Use for ELF, probe, MCU, SVD and sampling settings, or to inspect CubeMX/OpenOCD paths and route firmware package setup to the extension UI.


MCU Configuration

Use scripts/config.js from this skill directory. Never edit VS Code storage or EmberProbe files directly.

Before you run

  • MCP first: if this session provides EmberProbe MCP tools (such as config_get), use them; the scripts here are the fallback. The authorization and hardware rules on this page apply to both.
  • Applies to: reading or changing EmberProbe workspace configuration (ELF, debugger, MCU target, SVD, selected .ioc, sampling interval, Tcl port, sample history limit), and identifying the supported route for CubeMX and firmware package setup.
  • Requires: the EmberProbe Agent Bridge. No probe or hardware is needed.
  • Preconditions: read the current configuration before changing it; change only the fields the user explicitly requested; openocdPath and cubemxPath are read-only through the Bridge.
  • Side effects: --get is read-only and never mutates configuration, bindings, or hardware; --set changes workspace configuration and immediately synchronizes the sidebar.
  • Success evidence: the normalized configuration returned by EmberProbe. A config read does not verify hardware, and a config write success does not prove a later debug or flash will start.

For failure handling, retry limits, cross-skill routing, and result scoping, read ../_emberprobe/agent-workflow.md.

  1. Read the current configuration before changing it:

``bash node <skill-dir>/scripts/config.js --workspace <workspace> --get ``

  1. Change only values explicitly requested by the user:

``bash node <skill-dir>/scripts/config.js --workspace <workspace> --set debugger=cmsis-dap.cfg,mcu=stm32f4x.cfg ``

  1. Supported keys are elf, debugger, mcu, svd, iocPath, transport, rtos, probeSerial, adapterSpeedKhz, sampleFrequencyHz, legacy sampleIntervalMs, tclPort, and maxSamples. sampleFrequencyHz is the requested sampling rate (0.1–200 Hz); the actual rate may be lower on a slow probe. The experimental waveform "Max rate" (unlimited sampling) toggle is user-only and cannot be enabled through the Agent Bridge; sampling status may report unlimitedActive, limitedBy and effectiveIntervalMs: 0 while it is on. iocPath selects an existing workspace .ioc; it does not edit its contents. rtos enables RTOS task awareness for debugging only; it is case-sensitive, "" turns it off, and it applies at the next debug start. Use mcu-cubemx for initialization configuration and code generation. openocdPath and cubemxPath are read-only through the Agent Bridge; instruct the user to change executable paths in VS Code settings or the EmberProbe sidebar instead.
  2. Report the normalized configuration returned by EmberProbe. The extension validates paths, configuration names, numeric ranges, and synchronizes the sidebar immediately.
  3. On failure, parse the stderr JSON diagnostic and report its error.code, likelyCause, and suggestedActions. Do not guess a hardware or service cause for configuration-validation errors.

--probes calls probe.list and reads J-Link, CMSIS-DAP and ST-Link OS USB metadata without opening the debug interface. It returns available, physical devices and notes; unreadable fields remain unknown. J-Link uses a decimal probeSerial; CMSIS-DAP/ST-Link use exact strings including case and leading zeros. Select transport=swd or transport=jtag according to the user's board wiring. adapterSpeedKhz=0 uses the script default and lets flashing raise the clock to the probe's capability; a nonzero value also caps requests in target reset events, retaining initialization and lower speeds, and is the clock used while programming. Do not infer compatibility from “V9/V10” alone. Stop an active session before changing connection settings; do not bypass PROBE_CONFIGURATION_BUSY or PROBE_SESSION_STALE by editing storage. Configuration and enumeration do not authorize driver replacement.

CubeMX, IOC and firmware packages

Select or clear the project file using --set "iocPath=path/to/project.ioc" or --set "iocPath=". Selection validates an existing file inside the workspace; it neither edits the IOC nor proves its CubeMX version or firmware package is installed. Quote the whole assignment for paths with spaces. The comma-separated --set format cannot represent a path containing a comma.

--get returns cubemxPath and iocPath, but does not return firmware installation status. CubeMX is a global executable setting, not a writable workspace setting through this Skill. Use the sidebar or VS Code user setting emberprobe.cubemxPath to change it. Do not bypass CONFIG_KEY_FORBIDDEN by editing storage.

There is no writable firmwarePackage, firmwareVersion, or repository configuration key. The sidebar derives the STM32 family from mcu and, when an IOC is selected, reads the required version from ProjectManager.FirmwarePackage. It checks CubeMX's configured repository after configuration refresh. With no IOC selected it checks installed packages for the MCU family; this does not establish a particular project's required version.

For a missing package, direct the user to the CubeMX firmware package install action in the sidebar, which opens the native interactive installer. The user handles license/download prompts. The Bridge has no package-install command; mcu-cubemx --inspect is not an installation check. Changing an IOC's package version is not supported by the current generation workflow. Use mcu-cubemx for pin/peripheral changes and authorized code generation after setup.

← v1.0.0All versions