MAX485 RS-485 Module: Wiring a Reliable Serial Bus
By Kunkune | Published: 2026-11-03
Category: How-to Guides
Learn how to wire a MAX485 module for a stable RS-485 bus, set DE/RE pins, add termination, and test long-distance serial links with Arduino.
Quick answer
Wire the MAX485 module to your Arduino using A/B for the bus and DI/RO for serial data, then tie DE and RE together so a single pin switches between transmit and receive. Add a 120-ohm termination resistor at each end of the bus and use twisted-pair cable for reliable long-distance serial.
Why DE/RE control matters more than the data wires
The MAX485 is a half-duplex transceiver, meaning it cannot send and receive at the same time. If DE and RE are not controlled correctly, two nodes can drive the bus simultaneously and corrupt every message. Tying DE and RE together and driving them from one Arduino pin keeps the direction switching simple and predictable.
A common mistake is leaving DE permanently high. That forces the module to transmit continuously, so it never listens for replies and the bus stays busy. Always return the pin to receive mode after sending.
Termination and cable choices for long runs
RS-485 tolerates long cable runs because it uses a differential pair, but reflections on an improperly terminated bus cause intermittent errors that look like software bugs. Fit one 120-ohm resistor across A and B at each physical end of the bus, and only at the ends. Adding termination at every node overloads the driver.
Use twisted-pair cable and keep the pair together; do not run A and B as separate loose wires. If the bus is short and slow, termination may be optional, but for long-distance serial Arduino links it is the first thing to check when data becomes unreliable.
Step-by-step MAX485 wiring and test
- Connect power and TTL side: Wire VCC to 5V and GND to GND on the Arduino. Connect DI to a software serial TX pin and RO to the RX pin. Checkpoint: confirm the module is the 5V TTL version before powering it. Never power the module from 3.3V unless the label explicitly supports it.
- Tie DE and RE together: Join DE and RE on the module and run a single wire to a free Arduino digital pin. Set that pin LOW for receive and HIGH for transmit in your sketch. If DE and RE are wired separately, you must drive both pins or the bus will misbehave.
- Wire the A/B bus pair: Connect A to A and B to B across all nodes using twisted-pair cable. Do not swap A and B between nodes; if the link fails, swap them at one end only and retest. Label A and B at every connector so a later rewire does not reverse the pair.
- Add termination resistors: Fit a 120-ohm resistor across A and B at the two physical ends of the bus only. Leave middle nodes unterminated. Measure resistance across A and B with power off; two terminators in parallel should read about 60 ohms.
- Set up the Arduino sketch: Use SoftwareSerial or Serial1 for DI/RO, set the direction pin HIGH, write the message, wait for the UART to finish, then set the pin LOW. Add a short delay before switching back to receive. Switching to receive too early truncates the last byte; check with a logic analyzer if unsure.
- Test with a USB-TTL adapter: Connect a MAX485 to USB TTL adapter on the PC side, wire A/B to the bus, and use a serial terminal to send and receive. This isolates bus problems from Arduino code problems. If the USB side works but the Arduino side does not, the fault is in the sketch or DE/RE timing.
Product facts
- MAX485 TTL RS-485 Converter Module: 5pcs MAX485 TTL to RS-485 Converter Module A five-piece set lets you build a multi-node bus or keep a spare module for testing without ordering again.

MAX485 TTL RS-485 Converter Module
