RS485 RTS Control in QModMaster: When to Enable It

Your wiring is right, the baud rate matches, the slave ID is correct — and QModMaster still reports “no response”. Before you rewire anything, check one setting: RTS control. On half-duplex RS485 it decides whether your PC is allowed to talk at all.

Why RS485 needs direction control

RS485 is half-duplex: both sides share one differential pair, so only one device may drive the bus at a time. Every RS485 transceiver has a driver-enable signal that switches it between transmitting and listening. Get the timing wrong and your request never leaves the PC — or the reply collides with your own transmitter still being on.

USB-to-RS485 adapters handle this in one of two ways: automatic direction control done in hardware (the adapter watches the TX line and switches by itself), or manual control via the serial port’s RTS signal, where the software must raise RTS while transmitting and drop it to listen.

The RTS Control setting in QModMaster

In QModMaster’s Modbus RTU settings you will find an RTS Control option with modes including Always Up and Toggle:

  • Toggle: RTS is asserted only while bytes are being transmitted, then released so the reply can come back. This is the correct mode for manual direction control on half-duplex RS485.
  • Always Up: RTS is held asserted continuously. Rarely what you want on a shared bus — it can keep your transmitter enabled and block incoming replies.

Rule of thumb: if your adapter handles direction automatically, leave RTS control at its default (off). If it doesn’t, Toggle is the mode to try first.

CH340 and other budget adapters

Many low-cost USB-RS485 adapters — including popular CH340-based ones — lack reliable automatic direction control. The symptom is unmistakable: the TX LED blinks, every setting is correct, and nothing ever comes back. Enabling RTS toggle in QModMaster fixes exactly this case.

The reverse is also true: if your adapter does switch direction in hardware, turning RTS control on can fight it — frames get truncated or the bus locks up. When in doubt, test both ways. It takes thirty seconds and cannot damage anything.

Troubleshooting checklist

  • Identify your adapter type: does the vendor mention automatic direction control or auto TX/RX switching? If yes, keep RTS control off.
  • No auto switching? Set RTS Control to Toggle and retest.
  • Still no reply? Try Always Up once — a few adapters are wired for it.
  • Verify baud rate, parity, data bits, and stop bits match the device exactly.
  • Confirm the A/B pair isn’t swapped and the slave ID is right.
  • On cable runs over a few dozen meters, fit 120 Ω termination resistors at both ends.
  • Open the bus monitor: if you see your request bytes going out, the port and RTS timing are fine — the problem is downstream (wiring, address, or the device itself).

Fighting an adapter with no automatic direction control? Enabling RTS toggle solves it for most people. If yours still won’t behave, life is easier with an adapter that switches direction by itself — see USB-RS485 adapters.

Frequently asked questions

What does RTS control actually do on an RS485 bus?

It drives the serial port’s RTS line to switch the RS485 transceiver between transmit and receive. Because half-duplex RS485 gives both sides one shared pair, the driver must be enabled exactly while the request bytes go out, then released so the reply can return.

Should I enable it with a modern USB-RS485 adapter?

Usually not. Most modern adapters switch direction automatically in hardware, and layering RTS control on top can truncate frames or lock the bus. Enable it only when your adapter needs manual direction control.

It worked yesterday and broke today — could RTS be the cause?

Yes, if the setting was changed or reset. Also check that Windows hasn’t re-enumerated the adapter on a different COM port — QModMaster may be sending perfect frames to the wrong port.

Does RTS control matter for Modbus TCP?

No. RTS is a serial-port signal and Modbus TCP doesn’t use serial lines at all. If TCP times out, investigate the IP address, port 502, and firewalls instead.

Related Guides

Similar Posts