Documentation

RS-485 echo and RTS problems on Modbus RTU

If your Modbus RTU master sees its own request come back as the reply, or misses the first bytes of an answer, the cause is almost always how the adapter switches between transmit and receive.

What goes wrong

SymptomLikely cause
The master receives its own request as a reply (echo)The adapter or wiring leaves the receiver enabled while transmitting.
The first bytes of the reply are lost, or CRC errors appearThe driver switches to receive too late, or the slave replies before the master is listening.
The reply is cut shortThe driver switches to receive too early, before the last byte has left the UART.
Works at 9600 baud, fails at 115200Software-controlled RTS switching is too slow for the line speed.
Random timeouts on a long busMissing termination or bias resistors, ground differences or noise.

What to check, in order

  1. Confirm the serial settings match: baud rate, parity, data bits and stop bits. A parity mismatch looks like random CRC errors.

  2. Check the adapter type. Many USB-RS-485 adapters switch direction automatically in hardware. Others need the software to toggle RTS. Use the matching mode.

  3. Handle the echo. If your own request comes back, enable echo removal in the master, or fix the hardware so the receiver is disabled while transmitting.

  4. Check the RTS setting. Enable RTS toggle only when the adapter needs software direction control. Leaving it on with a hardware-switched adapter causes the problems in the table above.

  5. Check the bus. Termination at the two ends of the bus only, bias resistors once on the bus, correct A/B polarity, a shared ground reference and proper cable shielding.

  6. Reduce the speed as a test. If the problem disappears at a lower baud rate, the timing is the cause.

Doing this in Busscope

In the serial connection settings, turn on Remove echo (RS-485 loopback) first and test a single small read: function 03, one register. Then turn on RTS toggle (transmit enable) only if the adapter needs it. Change one setting at a time, and use Delay between polls to space requests out if replies still arrive late.

Busscope's Request Runner can replay a saved list of requests and show each response, so you can tell whether a fix holds across several requests. Once communication is stable, the diagnostics window can read device identification and counters.

Timeouts over TCP are covered in Modbus TCP timeout: a 7-step checklist. Exception codes are explained on the Modbus exception codes page.

Note: the RS-485 echo and RTS options have not yet been tested on real RS-485 hardware. Check them on your own setup before relying on them in production, and check the device manual for its turnaround timing.

Try Busscope

Install Busscope and run it without a license key to see whether it fits your work. Evaluation mode is for trying the tool, not for production or commercial use.

Download the evaluation All documentation