Skip to content

BMCLI basics: complete one reproducible bus workflow

This tutorial establishes a repeatable minimum workflow rather than listing commands: resolve the bench, validate hardware, then receive, transmit, record, and decode data.

Terminal window
bmcli bench show --format=json
bmcli doctor
bmcli bench validate --hardware --format=json
bmcli help message recv --format=json
bmcli help logging start --format=json

Use a stable SN/port or project network name, never a volatile enumeration index. JSON Help defines the installed command contract.

Terminal window
bmcli message recv --channel=<SN/port> --duration=60 --format=jsonl
bmcli message send --channel=<SN/port> --id=0x12 --type=master-write --data="01 02 03 04" --bitrate=19200 --format=json
bmcli uds request 22 F1 90 --channel=<SN/port> --request-id=<CAN-ID> --response-id=<CAN-ID> --format=json

Transmit only on a confirmed safe bench. Keep commands, exit codes, timestamps, and artifacts. Load DBC files as controlled resources before using dbc message/signal/decode/encode, distinguish failure classes, and clean up only activity started by the scenario.