← All Posts

RS-485 Termination and Biasing: Why Your Serial Bus Is Unreliable

RS-485 is the most widely deployed industrial serial standard in the world. It is the physical layer underneath almost every Modbus RTU bus, every BACnet MS/TP segment, and a huge fraction of proprietary building and energy-management networks. Done right, it runs for kilometres at 115200 baud, in noisy electrical rooms, with dozens of devices on the same pair. For the electrical-level background, see our guide to serial communication protocols.

Done wrong, it produces the symptoms every controls engineer has lived through: intermittent CRC errors that worsen with cable length, garbage bytes that appear when no one is transmitting, devices that drop off the bus at random, and a network that "worked fine on the bench" but collapses in the field. The root cause is almost always the same two things: missing or wrong termination, and missing fail-safe biasing.

This guide explains the differential signalling model, why reflections happen, how to terminate correctly, how to bias an idle bus so it does not chatter, and how to debug the result with a serial terminal.

RS-485 Differential Signalling Recap

RS-485 (TIA/EIA-485) transmits data as the voltage difference between two conductors, traditionally labelled A and B. The voltage on either line relative to ground does not matter; only the difference matters. This is what makes RS-485 immune to common-mode noise: any induced voltage appears on both conductors equally and cancels out at the receiver.

  • Receiver threshold. The receiver output is defined when |V_A - V_B| > 200 mV. Above +200 mV differential is one logic state; below -200 mV is the other.
  • Driver output. A compliant driver produces at least 1.5 V differential under full load, typically around 2 V.
  • Common-mode range. Both conductors can sit anywhere from -7 V to +12 V relative to the transceiver ground and still communicate.
  • Unit load. A standard RS-485 transceiver presents 1 unit load (12 kΩ input impedance). The classic spec allows 32 unit loads per bus.

When the bus is idle and no driver is active, both conductors float. There is no defined voltage on either. This is the root of the garbage-bytes problem we will fix later.

Why Reflections Happen

A transmission line has a characteristic impedance, typically around 100 to 120 Ω for RS-485 twisted pair. When the signal reaches the end of the cable and there is nothing to absorb it, the energy reflects back toward the source. The reflection adds to the next incoming edge, distorting the waveform. At the receiver, this shows up as ringing that crosses the 200 mV threshold multiple times per bit, producing corrupted bytes.

Reflections also happen at any impedance discontinuity along the line: a stub that branches off the main trunk, a connector with different capacitance, a splice to a different cable type. The cleaner the physical topology, the smaller the reflections.

The fix is straightforward: place a resistor equal to the characteristic impedance across A and B at each physical end of the bus. The signal energy dissipates in the resistor instead of reflecting.

Termination: 120Ω at Both Ends, Only the Ends

The standard RS-485 terminator is 120 Ω, matching the nominal impedance of Belden 9841 and equivalent Modbus-certified cable. Some cables are specified at 100 Ω, in which case a 100 Ω terminator is correct. Use what matches the cable data sheet.

The rules for termination are unambiguous:

  • Exactly two terminators per bus, one at each physical end. The master at one end, the last slave at the other.
  • Never terminate intermediate nodes. Every additional terminator loads the driver in parallel. Two 120 Ω terminators already give 60 Ω effective load, which is the edge of the RS-485 spec. Three terminators drop it to 40 Ω, well beyond what most transceivers can drive cleanly.
  • Place the resistor across A and B directly at the transceiver, not at the end of a stub. Distance matters at high baud.

When Termination Is Unnecessary

Termination is a transmission-line effect. It only matters when the cable is electrically long relative to the signal's rise time. The rule of thumb:

If cable length < 0.1 × bit length, you can omit termination.

Propagation velocity in typical twisted pair is about 0.6 c, or roughly 1.8 × 108 m/s. Bit length is therefore velocity × bit time:

  • 9600 baud: bit length ≈ 18.7 km → termination optional below ~1.9 km
  • 19200 baud: bit length ≈ 9.4 km → termination optional below ~940 m
  • 115200 baud: bit length ≈ 1.56 km → termination optional below ~156 m

In practice, terminations cost almost nothing and they eliminate an entire class of debugging, so the safe recommendation is to fit them whenever the cable is longer than a few metres, regardless of baud.

Key takeaway: Two 120 Ω terminators only, at the two physical ends of the bus. Adding more is one of the most common RS-485 mistakes, and it quietly reduces the differential amplitude until CRC errors appear at higher baud rates.

Fail-Safe Biasing

When no driver is active, both A and B float. Without a defined idle state, any noise coupled onto the line can push the differential voltage back and forth across the 200 mV threshold. The receiver interprets each crossing as a start bit, and the UART dutifully emits garbage characters.

The fix is fail-safe biasing: force the bus into the idle (logic 1) state with a pair of resistors. The conventional arrangement pulls one line up to Vcc and the other down to GND, so the differential idle voltage is comfortably above 200 mV.

A common bias network with a 120 Ω terminator in place:

  • 390 Ω pull-up from A to Vcc (5 V)
  • 120 Ω terminator between A and B (already required at the end)
  • 390 Ω pull-down from B to GND

The three resistors form a voltage divider from Vcc to GND through a total of 390 + 120 + 390 = 900 Ω. The current through the chain is 5 V / 900 Ω ≈ 5.56 mA. The differential voltage across the terminator is therefore 5.56 mA × 120 Ω ≈ 0.67 V, well above the 200 mV threshold. The common-mode voltage sits at roughly (2.83 + 2.17) / 2 = 2.5 V, safely inside the -7 V to +12 V common-mode range.

Values between 390 Ω and 750 Ω are common; larger values reduce loading but also reduce the bias margin. Above 750 Ω, you should recompute the differential against the actual number of unit loads on the bus to make sure you still clear 200 mV.

The bias network is installed at one location only, typically at the master end of the bus, in parallel with the end terminator. Biasing at both ends doubles the load and is unnecessary.

Modern Fail-Safe Transceivers

Many contemporary RS-485 transceivers integrate the fail-safe bias on-chip, so the receiver output is guaranteed to a defined state when the inputs are open, shorted, or idle. Examples include:

  • SP485R (Exar / MaxLinear) — 1/4 unit load, true fail-safe receiver
  • MAX487 and MAX3470 (Maxim / Analog Devices) — low-power, reduced slew rate, internal fail-safe
  • SN65HVD308x family (Texas Instruments) — integrated fail-safe, multiple speed grades

If every node on your bus uses a fail-safe transceiver, you can usually omit the external bias network on short, well-terminated cables. On longer runs or mixed fleets where some transceivers are older non-fail-safe parts, external biasing remains the safe default. It costs two resistors and removes a whole class of intermittent bugs.

Counting Unit Loads

The classic EIA-485 limit is 32 unit loads per bus, where 1 unit load corresponds to an input impedance of 12 kΩ. Adding nodes in parallel lowers the combined input impedance and increases the load on the driver.

Modern fractional-load transceivers change the math:

  • 1/4 UL transceivers (SP485R, MAX487, SN65HVD3086) present ~48 kΩ input impedance, allowing up to 128 nodes on the same bus.
  • 1/8 UL transceivers allow up to 256 nodes.

Remember that the terminators count too. Two 120 Ω terminators in parallel with the input impedances give an effective bus load that the driver must source. With 32 standard-UL nodes (each 12 kΩ) plus two 120 Ω terminators, the combined load is roughly 12 kΩ / 32 in parallel with 60 Ω — about 64 Ω total. That is just inside the RS-485 minimum-load spec of 60 Ω, leaving very little margin.

Topology: Daisy-Chain Only

RS-485 is a daisy-chain bus. The cable runs from the master to slave 1, then from slave 1 to slave 2, and so on, terminating at the last slave. Stubs should be shorter than 0.3 m, ideally zero. Every branch off the main trunk is an impedance discontinuity that reflects energy back into the line.

The topologies that cause problems:

  • Star topology. Cable fan-out from a central junction to multiple devices. Every arm is a stub; reflections add up. This almost never works reliably above 19200 baud.
  • Long stubs. Even a "short" drop of a few metres to a panel-mounted device can corrupt a 115200 baud bus.
  • Looped topology. The cable comes back to the master. Electrically this creates two parallel paths and is undefined.

If you must branch, the right fix is a coupler or repeater that electrically isolates the two segments. Cheap passive junctions are false economy.

Topology
Unterminated
Terminated Ends
Star / Branched
Reflections
Severe at cable ends
Absorbed by terminators
Multiple stubs, severe
Max Cable Length
Short runs only
~1.2 km at 9600 baud
Unpredictable
Bias Required?
Yes (always)
Yes (recommended)
Yes (often insufficient)
High Baud Reliable
No
Yes
No
Number of Nodes
Up to 32 UL
32 UL (128 with 1/4 UL)
Limited by stub length

Ground Reference: The Third Wire

RS-485 is differential, but it is not isolated. Every transceiver has a common-mode range of -7 V to +12 V relative to its own ground. If two devices on the bus sit at significantly different ground potentials — common when they are powered from different circuits or different buildings — the common-mode voltage drifts out of range and communication fails or the transceivers are damaged.

The standard solution is the third wire: a signal ground conductor running alongside A and B, connecting the GND reference of every transceiver together. This constrains the common-mode voltage to a range the receivers can handle.

For installations where the ground potential between endpoints is large, or where galvanic isolation is required for safety, use an isolated RS-485 transceiver. The isolation barrier (typically 2.5 kV or 5 kV) lets each segment float independently. Isolated USB-to-RS-485 adapters are a small investment that pays for itself the first time a ground loop fries your laptop.

Debugging with a Serial Terminal

Once you understand termination and biasing, the symptoms become diagnostic. For a deeper look at the adapter side of the workflow, see our USB-to-RS485 adapter guide.

  • Garbage bytes when the bus should be idle. Classic missing-bias symptom. The receiver is interpreting noise as start bits. Install or fix the fail-safe bias network.
  • CRC errors that worsen with cable length or baud rate. Classic missing-termination symptom. Add a 120 Ω resistor at the far end. If errors persist, verify the cable impedance matches the terminator value.
  • Devices that respond at 9600 but drop off at 115200. Could be either termination or inter-frame timing; for the latter, see our article on Modbus RTU over serial. Try adding termination first.
  • Bus works when only two devices, fails when more are added. Either you are exceeding the unit-load limit, or a long stub on a new node is corrupting the signal. Try a 1/4 UL transceiver, or re-route the topology to a clean daisy-chain.
  • Intermittent failures that correlate with motor starts or VFD activity. Common-mode noise from the drives is coupling onto the bus. Improve shielding, add a third-wire ground, or move to isolated transceivers.

Reading the raw bytes with a hex-capable serial terminal is the fastest way to localise these problems. For more on tooling, see our overview of serial terminals for macOS, and for a broader comparison of where Modbus fits in the industrial stack, see our industrial protocol comparison.

Frequently Asked Questions

Do I need termination on every RS-485 node?

No. Termination resistors (typically 120 ohms) belong only at the two physical ends of the bus. Terminating intermediate nodes overloads the driver, reduces the differential signal amplitude, and can corrupt data. The terminator's job is to absorb signal reflections at the cable ends, not to bias every transceiver on the line.

What value termination resistor should I use for RS-485?

Match the cable's characteristic impedance. For standard RS-485 twisted-pair cable that is 100 to 120 ohms, with 120 ohms being the most common choice. A 100 ohm terminator is acceptable for cables rated at that impedance. Using the wrong value leaves residual reflections that cause bit errors at higher baud rates.

Why does my RS-485 bus receive garbage bytes when no one is transmitting?

When no driver is active the bus floats, and noise coupled onto the line crosses the receiver threshold, generating false start bits and garbage characters. The fix is fail-safe biasing: pull one line to Vcc and the other to GND with resistors (commonly 390 to 750 ohms) so the idle differential voltage exceeds the 200 mV receiver threshold.

How many RS-485 nodes can I put on one bus?

The classic EIA-485 limit is 32 unit loads (UL), where 1 UL equals a 12 kilohm input impedance. Modern fractional-load transceivers such as the SP485R or MAX487 present 1/4 UL, allowing up to 128 nodes on the same bus. The practical limit is also constrained by cable length, stub length, and termination quality.

Serial Terminal for macOS

MacTools Serial Terminal shows you every byte on the RS-485 bus in hex plus ASCII, with millisecond timestamps to expose inter-frame timing problems. User-space drivers for Apple Silicon. $9.99 one-time.

Get MacTools Serial Terminal

Related: Full SCADA System

Need continuous monitoring with dashboards, alarms, and trending across all your devices? Voltrus SCADA supports Modbus, OPC-UA, Siemens S7, Allen-Bradley, DNP3, BACnet, MQTT, and more. Lifetime license from $249.

Further Reading