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

0

Both RS485 interfaces on the current MCU

1 or 3

First RS485 interface on the current MCU

2 or 4

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 AT+RS485RAW=1 and the correct USB serial port

Both interfaces receive the command

AT+RS485RAWCH is 0; select a specific channel

Replies begin with 52 54

SANPO RT replies are still active; enable RAW replies

Corrupted data or unexpected length

Check bitrate, stop bits, parity, data bits, and A/B wiring

RT replies return after power-up

This is expected; send AT+RS485RAW=1 again after each power cycle