CANopen Shell Commands

Show status report
copen status
Start / stop workers
copen <bus> start
copen <bus> stop
  • stop will fail if clients are still running.

Send NMT commands
copen <bus> nmt <start|stop|preop|reset|commreset> [id=0] [timeout_ms=0]
  • id 0 = broadcast

  • timeout > 0: wait for state change (heartbeat), 3 tries Note: state change response is not a mandatory CANopen feature.

Read SDO
copen <bus> readsdo <id> <index_hex> <subindex_hex> [timeout_ms=50]
  • index & subindex: hexadecimal without “0x” or “h”

  • defaults to 3 tries on timeout

Write SDO
copen <bus> writesdo <id> <index_hex> <subindex_hex> <value> [timeout_ms=50]
  • index & subindex: hexadecimal without “0x” or “h”

  • value: prefix “0x” = hex, else decimal, string if no decimal

  • defaults to 3 tries on timeout

Show node core attributes
copen <bus> info <id> [timeout_ms=50]
  • prints device type, error register, device name etc.

  • Note: some attributes read are optional and may be empty/zero.

Scan bus for nodes
copen <bus> scan [[startid=1][-][endid=127]] [timeout_ms=50]
  • loops “info” over multiple node ids (default: all)

  • Note: a full scan with default timeout takes ~20 seconds