USB to RS485
The following protocol applies to firmware V4.1 or later
Send the AT+VER serial command to check the firmware version; if no version is returned or it shows V33, please update to the latest firmware
The SANPO Motor Debug Tool can generate test code quickly and supports CAN/RS485 motors
Protocol Overview
Use Case |
TX Protocol |
RX Protocol |
|---|---|---|
RS485 motors, up to 64-byte frames |
Motor data passthrough; last 4 bytes: Channel 1 byte + data length (1 byte) + tail 0x0D 0x0A |
Motor feedback passthrough |
The first two bytes of RS485 frames must not be the reserved headers 0x45 0x54, 0x41 0x54, or 0x53 0x54
RS485 Frame Example
TX frame
RS485 data passthrough (max 60 bytes) |
Channel (1 byte) |
Data length (1 byte) |
Tail (2 bytes) |
|---|---|---|---|
0x22 0x33 0x00 0x53 0x54 0x00 0x53 0x54 0x00 0x53 0x54 0x00 0x53 0x54 0x00 0x53 0x54 |
0x00 |
0x11 |
0x0D 0x0A |
RX frame (motor feedback passthrough)
RS485 feedback passthrough (max 60 bytes) |
|---|
0x22 0x33 0x00 0x53 0x54 0x00 0x53 0x54 0x00 0x53 0x54 0x00 0x53 0x54 0x00 0x53 0x54 |
Motor Debug Tools
SANPO Motor Debug Tool supports CAN/RS485 motors
Unitree motor tool: https://gitcode.com/sanpo/robot/tree/v4/tools/UnitreeMotor.zip
Unitree usage guide: https://support.unitree.com/home/zh/Motor_SDK_Dev_Guide/Motor_debugging_assistant
Examples
USB to RS485 example (Python): Download
Example: send a sine motion command to a Unitree RS485 GO-M8010 motor (ID 1) on Windows COM9(Linux /dev/ttyACM0), RS485-2
Windows:
python3 usb2rs485_unitree_sine_demo_v4.py --port COM9 --motors 1 --channel 2
Ubuntu(Jetson):
sudo python3 usb2rs485_unitree_sine_demo_v4.py --port /dev/ttyACM0 --motors 1 --channel 2