Modbus DISCUSSION

Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

Started by obadzafar Modbus RTU troubleshootingRS-485 wiringresponse timeoutslave addressexception response
5 replies 248 views 6 participants
Latest activity · 30 Sep 2026

Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

obadzafar Modbus Forum
#1

I am trying to read a VFD from a Raspberry Pi through a USB to RS-485 adapter. Every request ends with a timeout and zero bytes received. The adapter's TX LED blinks, the drive is set to address 1 and 9600 baud, and the A and B terminals are connected to the adapter's A and B.

Is there a systematic checklist for the case where a Modbus slave does not answer at all, as opposed to answering with an error?

Community replies 5

Re: Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

#2

No answer at all means the slave either never received a valid frame addressed to it, or its reply is not reaching you. A Modbus slave stays silent when the CRC is wrong, the framing is wrong or the address is not its own; it replies with an exception only when the frame was valid but the request was not acceptable. So start with the physical layer and the serial settings.

First swap A and B. The labelling is not consistent between manufacturers: some mark the non-inverting line A, others B, and D+/D- is used as well. Swapping the two wires does no damage, and it fixes a large share of "no response" cases.

Re: Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

#3

Next, match all serial parameters, not just the baud rate. The Modbus RTU specification's default is 8 data bits, even parity and 1 stop bit, and some drives ship that way, while most PC libraries default to 8N1. A parity mismatch makes the slave discard every character.

Check the drive's parameters for baud rate, parity or frame format, slave address, and also the protocol selection: many VFDs have the RS-485 port disabled or set to a proprietary protocol until a parameter selects Modbus RTU, and some need a power cycle before communication parameters take effect.

Re: Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

#4

Then the request itself. Address 0 is broadcast and is never answered, and valid slave addresses are 1 to 247. Make sure the library is really sending unit 1; some use a different default if the argument is omitted. Start with the simplest possible read, one holding register that the manual definitely lists.

An exception reply, for comparison, echoes the function code with the top bit set: a reply of 01 83 02 C0 F1 to a function 03 request means illegal data address. If you see that, the link works and only the address or the count is wrong.

Re: Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

#5

With USB adapters, direction control and echo matter. Adapters with automatic direction switching are the easiest. If yours echoes your own transmission back, which happens when the receiver stays enabled on a 2-wire bus, the library reads the echo as the start of the reply and reports a garbled or incomplete message rather than a clean timeout.

For a short bench cable at 9600 baud, termination is not the problem. A missing reference is more likely: connect the drive's signal common terminal to the adapter's ground so the common-mode voltage stays within range, especially since a VFD is electrically noisy.

Re: Modbus RTU master gets no response from an RS-485 slave: what should I check, in order?

#6

To find which half is failing, look at the bus independently of your software. A second USB to RS-485 adapter on the same pair, with a terminal program in hex mode, shows whether the request is on the wire and whether any reply comes back. With an oscilloscope across A and B you can measure one bit width: at 9600 baud it should be 104 µs.

If a reply is visible on the bus but the library still times out, raise the response timeout, since some drives need tens of milliseconds to answer, and check for the echo issue mentioned above.

TEP COMMUNITY