Before you flash
- Connect and power the intended board and probe.
- Build firmware for the exact MCU and board revision.
- Record the flash command, serial port, and baud rate in EMBEDDER.md (
flash_command,serial_port, andserial_baudrate). - Install the flash utility, drivers, and USB permissions on the machine connected to the board.
pio run -t upload, idf.py flash, west flash, nrfjprog, or a J-Link command file. It doesn’t supply those utilities or their board configuration.
Flash a local board
Catch the first boot lines
When you give the baud rate, or Embedder already knows it for that port, Embedder opens the port before the flash command runs. Output is captured from the first byte after reset. Without a known baud rate, Embedder detects it after flashing and starts capturing then, so early lines can be missed. If the port disappears during flashing, Embedder waits about 5 seconds for it to return. An empty log on its own doesn’t prove the firmware failed to boot.Read the result
Embedder reports programming and boot capture separately:
For SWO output, flash first and then follow ITM/SWO.
Flash through a bridge
Use this when the board and probe are attached to another machine running a hardware bridge. You provide a built artifact instead of a flash command, and the bridge host needs probe-rs or OpenOCD installed.- Run
/bridgeand choose the bridge connected to the board. - Build the firmware and note the artifact path, such as an ELF, BIN, or HEX file.
- Ask Embedder to flash it:
- If the bridge has several saved boards, name the board or chip you mean.
- If no target can be detected, give the chip name, such as
nRF52832_xxAA, and Embedder programs it with probe-rs. - If several probes on the bridge can program that chip, Embedder lists them. Name the one to use as
VID:PID:Serial. - Programming through a bridge times out after 5 minutes.
- An artifact without a selected bridge can’t be flashed. For a local board, use a flash command.
Program XMOS hardware
Use XMOS xTAG and xgdb for.xe artifacts and XTC Tools setup. Embedder writes the image to boot flash with xflash, which replaces the image the board boots from, including a dev kit’s factory firmware.
Capturing xSCOPE output after flashing runs the image again from RAM. Use the power-cycle check in that guide to confirm the board boots from flash. xsim reloads the simulator instead of programming a board.
Prepare an AURIX project
For the supported Windows ADS and iLLD workflow, follow AURIX ADS and Flasher. Project setup creates command-line build files. Programming is a separate step that uses AURIX Flasher and the generated HEX file.Share a board with other chats
One chat uses a board at a time. If another chat holds it, run/hardware-queue to see which one. /hardware-force-release --confirm frees the board, but it can interrupt that chat’s work.
If another chat flashed the same board after your last flash, Embedder re-runs your last flash command before your next debugger, hardware-script, or serial operation on that board, and tells you it did. If that re-flash fails, the operation doesn’t run. Flash the board again yourself, then retry.
Troubleshoot
- Wrong or missing artifact: rebuild for the selected board and use the actual output path.
- Flash command times out: check the probe connection, then ask for a longer timeout of up to 10 minutes.
- Probe busy: stop conflicting captures or debugger connections, and run
/hardware-queueto check for another chat. - Flash succeeds but the expected message is absent: check the output transport, baud rate, capture timing, and the flash utility’s reset behavior. Ask Embedder to read the port again before reflashing.
- Port missing after flashing: USB serial boards can take a moment to reappear. Ask Embedder to read the port again once it’s listed.
- Bridge reports no target or several targets: give the chip name, or name the board you mean.
- probe-rs or OpenOCD not found on the bridge host: install probe-rs or OpenOCD on the bridge host as your normal user, then run
embedder bridge doctor. - Board no longer detected: check power, cable, boot mode, and the board’s recovery instructions before retrying.