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 serial bridge transport is also available in CLI (--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600).
  • Full Damiao serial-bridge interface list and command patterns are documented in motor_cli/README.md (section 3.6 in motor_cli/README.zh-CN.md).
  • 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.
Python demos that call the Rust ABI directly through ctypes.
Chinese version: README.zh-CN.md

File

  • python_ctypes_demo.py: unified two-vendor demo
  • four_vendor_pos_sync.py: concurrent multi-vendor position sync helper
Vendor coverage:
  • Damiao: enable, disable, mit, pos-vel, vel, force-pos
  • RobStride: ping, enable, disable, mit, pos-vel, vel, read-param, write-param
    • note: torque/current is parameter-level only (write-param on iq_ref/limits), not a unified high-level mode

Build and Run

Examples

Damiao MIT:
RobStride ping:
RobStride read parameter:
The examples use rs-06 only as a sample model. Use the RS model you use for limits/logging; runtime parameter IDs and types come from the common section 4 table. RobStride write parameter:
Multi-vendor position sync (Damiao x2 + MyActuator + HighTorque):
Dry-run (print generated motor_cli commands only):