Skip to main content

Channel Compatibility (PCAN + slcan + Damiao Serial Bridge)

  • Linux SocketCAN uses interface names directly: can0, can1, slcan0.
  • For USB-serial CAN adapters, bring up slcan0 first: sudo slcand -o -c -s8 /dev/ttyUSB0 slcan0 && sudo ip link set slcan0 up.
  • Damiao-only CAN-FD transport is available in CLI (--transport socketcanfd), independent from classic socketcan.
  • Damiao-only serial bridge transport is also available in CLI (--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600).
  • On Linux SocketCAN, do not append bitrate in --channel (for example can0@1000000 is invalid).
  • On Windows (PCAN backend), can0/can1 map to PCAN_USBBUS1/2; optional @bitrate suffix is supported.
Transport legend:
  • [STD-CAN] => --transport auto|socketcan
  • [CAN-FD] => --transport socketcanfd
  • [DM-SERIAL] => --transport dm-serial
[CAN-FD] note: integrated transport path, but motor validation matrix is not declared yet.

Debugging Guide

  • For deterministic Linux slcan + Windows pcan troubleshooting, see can_debugging.md.

Build

Common

  • --vendor damiao|robstride|hightorque|myactuator|hexfellow|all
  • --transport auto|socketcan|socketcanfd|dm-serial (dm-serial is Damiao-only; socketcanfd required for Hexfellow)
  • --channel can0
  • --serial-port /dev/ttyACM0 --serial-baud 921600 (used with --transport dm-serial)
  • --motor-id <id>
  • --loop <n> --dt-ms <ms>

Damiao

[STD-CAN]
[DM-SERIAL]
[CAN-FD]

Hexfellow

[CAN-FD]
[CAN-FD]

RobStride

RobStride supports rs-00 through rs-06. Always pass the physical motor model: control commands share the same CLI shape, but read-param / write-param use section 4 runtime manual parameter tables.

HighTorque (native ht_can v1.5.5)

Supported modes:
  • scan
  • read / ping
  • mit (unified interface)
  • pos / vel / tqe
  • pos-vel-tqe
  • volt / cur
  • stop / brake / rezero / conf-write / timed-read
Unit interface (aligned with other vendors):
  • --pos in rad
  • --vel in rad/s
  • --tau in Nm
  • --kp, --kd are accepted for unified MIT signature, ignored by ht_can protocol
Raw interface (debug):
  • --raw-pos, --raw-vel, --raw-tqe
Examples:

MyActuator

Unified scan

RobStride focused scan:
For RobStride, probe / device_id is the motor ID. feedback_id / host_id (for example 0xFD) is the host-side ID, not the motor ID. RobStride motor_id / device_id values are validated as 1..255; feedback_id / host_id values are validated as 0..255. Use the exact RS00-RS06 model for RobStride limits/logging. Parameter read/write uses the common section 4 runtime table.