RS485 Raw Passthrough
Raw passthrough is intended for sending RS485 data without a SANPO wrapper. After RAW replies are enabled, device commands from the PC are sent unchanged to RS485 and bus feedback is returned unchanged without a SANPO RT header.
Raw passthrough is not hardware-optimized. After the host finishes one command, leave at least 3 ms with no data before the next command; 5 ms is recommended. For continuous high-rate real-time control, use the wrapped SANPO USB to RS485 protocol. This delay is independent of the RS485 bitrate.
Connection and Communication Settings
A complete board normally exposes two USB serial ports. Each port belongs to one MCU and its two RS485 interfaces. COM or /dev/ttyACM* numbering may not follow board silkscreen order. For first use, connect one device to identify the correct port.
V6 defaults to 4 Mbps, one stop bit, no parity, and eight data bits. The bitrate selected in a USB serial application does not change RS485 bus settings. Configure the bus with:
AT+SETRS485=<bitrate>,<stop-bits>,<parity>,<data-bits>
See Communication Settings for supported values.
Enable Raw Replies
Send this as text with a CRLF line ending:
AT+RS485RAW=1
Success returns:
OK
You can then close the configuration program and open the same port in the host application that sends raw data. RAW mode remains active while the board stays powered, but it is disabled after a power cycle.
After testing, disable RAW replies with:
AT+RS485RAW=0
RS485 feedback then returns in the SANPO RT format with a Channel field.
Select the Target Interface
Raw data has no Channel field, so select the target before passthrough:
AT+RS485RAWCH=<0~4>
Value |
Target controlled by the current USB serial port |
|---|---|
|
Both RS485 interfaces on the current MCU |
|
First RS485 interface on the current MCU |
|
Second RS485 interface on the current MCU |
Query the current target:
AT+RS485RAWCH?
Select only the first interface:
AT+RS485RAWCH=1
The target Channel is saved to Flash. AT+RS485RAW=1 itself is not saved, so RAW replies remain disabled after a power cycle.
Unitree GO-M8010 Test
After enabling RAW replies and selecting the correct channel, send this raw motor command in hexadecimal mode:
FE EE 11 00 00 00 00 00 00 00 00 00 00 00 00 18 7C
A normal reply begins with FD EE. Decode fields and checksum according to the motor manufacturer’s protocol.
Do not add a SANPO RT header and do not let the serial application append 0D 0A to raw binary data.
Limitations
RAW replies do not contain Channel. If both RS485 devices reply at once, the host cannot identify the source from the reply alone.
Prefer selecting one interface with
AT+RS485RAWCH. To manage both interfaces, use SANPO USB to RS485.Firmware separates received blocks based on serial idle time. The host must still parse the device protocol header, length, and checksum.
One continuous receive block retains at most 96 bytes. The host must reassemble longer protocols.
Troubleshooting
Symptom |
Action |
|---|---|
The host transmits but cannot parse replies |
Confirm |
Both interfaces receive the command |
|
Replies begin with |
SANPO |
Corrupted data or unexpected length |
Check bitrate, stop bits, parity, data bits, and A/B wiring |
|
This is expected; send |