Skip to content

BMCLI logging

Online (host-side) CAN traffic recording to ASC. For on-device (offline) logging to the device’s flash, use logging start --hardware or the equivalent offline logging start (see offline).

Multi-channel: --channel=A,B,C records all listed channels interleaved into ONE output file. Each frame is tagged with a LOGICAL channel number (1-based position in this recording, NOT the device’s physical port). The file header carries a // ch<N> = SN<serial>/port<physical> mapping comment so the logical numbers can be decoded.

Record CAN traffic to ASC (or BLF) file. In daemon mode, runs as a background thread (singleton — a 2nd logging start while one is active returns ERROR: logging already active).

Terminal window
bmcli logging start --channel=10356/1 --output=log.asc
bmcli logging start --channel=10356/0,10356/1 --output=log.asc --duration=60 # multi-channel -> one file
bmcli logging start --channel=10356/0 --output=log.blf --format=blf
bmcli logging start --hardware --channel=10356/0,10356/1 --output=log.asc # on-device (== offline logging start)
Option Default Description
--channel (required) Channel(s): comma-separated SN/port (e.g. 10356/1), UID/port, legacy index, or name.
--output (required) Output file path
--format asc asc or blf
--duration infinite Duration in seconds
--hardware off Record ON-DEVICE to the device’s flash storage (third-gen hw). Equivalent to offline logging start.
Terminal window
bmcli logging stop # stop host-side recording
bmcli logging stop --hardware # stop on-device recording (== offline logging stop)

Survey of all recording-capable entities. Does NOT require --channel.

$ bmcli logging status
[host] active=yes channels=10356/0,10356/1 file=all.asc dur=12s msgs=1234
[dev 10356] offline=on mode=always_on channels=0x0003 path=log.asc storage=12/64 MB free
[dev 10357] offline=off
  • [host] — host-side (online) recording, tracked by the daemon (standalone mode: a foreground recording IS this process, so nothing to survey).
  • [dev SN] — each USB device’s on-device recording state via BM_GetLogging. Devices are independent (per-device on/off). Devices without offline storage show n/a.

Optional --channel=<spec> filters to the matching entity. --format=json produces structured output (null fields where a device lacks offline support).



Source of truth: bmcli_reference.md in the BMCLI repository. Run bmcli help <category> <action> --format=json for the exact contract of the installed version.