Bench bring-up
Bring-up validates that your host and a specific board are ready before the
agent drives it. Scope every command to the board you actually have attached
with --board-id (or -BoardId on PowerShell).
1. Host bootstrap
Section titled “1. Host bootstrap”The unattended host bootstrap prepares drivers and tooling for a board.
# macOSbash ./setup_host.sh --board-id nrf52833dk
# Windowspowershell -ExecutionPolicy Bypass -File .\setup_host.ps1 -BoardId nrf52833dkTo also rebuild the repo-owned Zephyr firmware locally, opt into the managed
Zephyr build environment during setup (--ensure-zephyr-build-env /
-EnsureZephyrBuildEnv).
2. Validate the host
Section titled “2. Validate the host”uv run python host_bootstrap.py --board-id nrf52833dkBoard-scoped bootstrap requires a unique matching probe and attempts board-specific serial resolution, printing the matched probe UID and serial port on success.
3. Stage 0 check
Section titled “3. Stage 0 check”uv run python stage0_check.py --board-id nrf52833dkIf Stage 0 cannot auto-resolve the UART endpoint it prompts in an interactive terminal. In non-interactive runs, rerun with an explicit port:
uv run python stage0_check.py --board-id nrf52833dk --port nrf52833dk=/dev/ttyACM0Vendor serial auto-detect
Section titled “Vendor serial auto-detect”When the vendor helper CLI is available, it improves serial auto-detect (it is not required for every board):
- Nordic + J-Link boards —
nrfjprog --com - ST-LINK boards —
STM32_Programmer_CLI -l
If these are missing or a board is ambiguous, Stage 0 falls back to prompting
or an explicit --port override.
Recover policy
Section titled “Recover policy”Tracked board YAML uses a typed recover_mode:
nrf_pyocd_unlock— Nordic APPROTECT recovery via pyOCD’s unlock / mass-erase.manual_only— needs recover validation but has no automated Stage 0 path yet.