RS-485 and Modbus/RS-485: the wire/One driver at a time
Lesson 5 of 12 · in 3D and VR

One driver at a time

Two wires carry one talker at a time. RS-485 has no rule that says who that is, so Modbus supplies one, and each station's drive lever, the D E and R E pins, only connects its own output to the pair. The lever has to be released after the last bit has left, not before.

Lonely BinaryUpdated 2026-10-074 min readNo board required

View it in VR

Lesson 5 of the RS-485 and Modbus course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/rs485-modbus/5

One driver

Every station is wired to the same pair, and the pair carries one signal. TI's notes are plain: the standard allows only one driver to send at a time, and the data is unreliable while two do. The Modbus guide says it for its own bus: at any time only one driver has the right to transmit.

With two on, each pushes the pair its own way. The drivers are current limited, so nothing is destroyed, and the receivers see garbage.

The lever is local

A MAX485 has two enable pins. DE connects the driver to the pair when high, and RE connects the receiver output when low. Many boards join them, so one GPIO is the lever: high to talk, low to listen.

The lever is the station's own. Nobody hands it over. RS-485 has no arbitration either: nothing decides between two stations that both switch on.

The rule on top

Modbus supplies the rule. One client speaks first, a server answers only when asked, and servers do not talk to each other. So there is nearly always one driver, and the lever follows the conversation: enable for the request, release, listen.

Releasing on time

The request ends when the last bit has left the wire. A call that sends bytes returns once they are in a buffer, which is earlier. Drop the lever then and the last byte is cut, so the server sees a bad check value and says nothing. Hold it too long and the client is still driving when the reply begins. The ESP-IDF UART can switch the pin in hardware in its RS-485 half-duplex mode, and RS-485 and Modbus on the ESP32 has the code.

Common mistakes

  • Dropping the lever with the write call. The call returns before the bits have gone. Wait for the transmit to finish, then release.
  • Leaving the lever on. A station that never releases blocks every reply, so check it first when one station silences the rest.
  • Thinking the lever is a turn. Setting a pin asks nobody's permission. Only the rule above the stations keeps two from talking.

Edit this page — content/fundamentals/rs485-modbus/one-driver-at-a-time.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →