When an MS/TP trunk misbehaves, the temptation is to start in software: rediscover the devices, reboot the router, change a setting and see what happens. Resist it. On MS/TP, the wire is the problem far more often than the configuration is, and a multimeter will tell you so faster than any front end.
This is the sequence I use on every trunk call. It's the same four checks every time, in the same order, and it works equally on BACnet MS/TP and Modbus RTU, because both sit on the same RS-485 physical layer. You're testing the wire, not the protocol.
What a healthy trunk looks like
Get the picture right first, because every reading is a comparison against it.
- One daisy chain. The cable goes into each device and out to the next. No stubs, no stars, no tees off the side. Two ends, and only two.
- Two 120 Ω terminators, one at each physical end of the chain — not at the router because it's the router, not at the device nearest the riser because that's convenient. The ends.
- Bias, usually supplied at one point (often the router or one end device), holding the pair at a known idle state so receivers don't read noise as data when nobody is talking.
- Shield continuous through every device and grounded at one end only.
- Every device on the same baud rate, with a unique MAC. That's configuration, not wiring, but it belongs on the same checklist.
The meter sequence
1. Powered down: resistance across the pair
Power off the trunk — every device that could drive or bias the pair, including the router. Measure resistance between + and − at an end of the trunk. Two 120 Ω resistors in parallel make about 60 Ω. That's the number you want.
Much higher, around 120 Ω, means only one terminator is in. Open circuit means none, or a break between you and them. Much lower — around 40 Ω — means three terminators, usually an EOL jumper left on at a device in the middle. Close to zero means a short. Then take the same reading at the other end. If one end reads 60 Ω and the other reads open, you've got a break between them, and now you're hunting for a landing, not a setting.
2. Powered and idle: DC voltage + to −
Power the trunk back up. Measure DC volts from + to −. With the bias doing its job, a healthy idle trunk shows a small positive voltage — commonly somewhere from about 1 V to a few volts, depending on the bias resistor values and how many devices share the bias network. With traffic running the meter will wobble around as it averages the data; that's fine.
The reading to worry about is 0 V. Zero means no bias — nothing holding the lines apart — or a broken or shorted pair, or no power reaching the transmitters. Don't panic over 0.8 V versus 1.5 V; worry about zero. A negative reading at one device when its neighbours read positive is your polarity check telling you something early.
3. Powered: each line to ground (common mode)
Now measure each conductor on its own against ground. RS-485 receivers tolerate a common-mode range of roughly −7 V to +12 V. Inside that range, the receiver can still read the difference between the lines. Outside it, you get errors that come and go with whatever is moving the ground — big motors, VFDs, a chiller starting.
If this reading is fine on a quiet day but the drops line up with a piece of equipment starting, take the reading while it starts. Intermittent common-mode problems only show themselves when the thing causing them is running.
4. Polarity at each device
With the trunk powered and idle, the + conductor should read positive relative to − at every device. Walk the chain. The device where the sign flips is the device where someone crossed the pair. Reversed polarity at a single device usually just knocks that device off the trunk rather than damaging anything, but confirm against the manufacturer's wiring documentation before you swap conductors.
Reading the numbers
| Reading | Healthy | What a bad reading usually means |
|---|---|---|
| Ohms + to −, powered down | About 60 Ω (two 120 Ω in parallel) | ~120 Ω: one terminator missing. Open: none, or a break. ~40 Ω: a third terminator. Near 0: a short. |
| DC volts + to −, idle | Small positive, commonly ~1 V to a few V | 0 V: no bias, open or shorted pair, or no transmitter power. Negative at one device: reversed polarity there. |
| Each line to ground | Within roughly −7 V to +12 V | Outside that range: grounding problem or ground loop, often intermittent. |
| Polarity along the chain | Same sign at every device | A sign change marks the crossed landing. |
| 24 VAC at the device | Within the device's rated range | Low or missing supply looks like a comms fault. Check it before blaming the trunk. |
Treat the middle column as a diagnostic indication, not a certification threshold. Bias values, device count and cable length move the idle voltage around. What you're looking for is the reading that is clearly wrong — zero, open, a sign flip, a number that jumps when the chiller starts.
Termination and bias: the two you'll get wrong most
Too many terminators
The most common termination fault I find isn't a missing resistor. It's an extra one. A controller replaced mid-trunk comes out of the box with its EOL jumper on, or a tech “helpfully” terminates the device they were working on. Three terminators load the pair down, shrink the signal and make the far end of the trunk flaky. The 40 Ω reading gives it away.
Missing termination at the far end
The opposite fault usually happens when a device is added past the old last device. The terminator stays where it was — now in the middle — and the new end is unterminated. Reflections off the open end garble frames for the devices out there. Symptom: trouble concentrated at the far end, and an ohms reading that doesn't match from end to end.
No bias
Bias is the one people forget exists. It's often supplied by the router, so when the router is swapped for a different model — or someone turns a bias setting off — the idle voltage collapses toward zero and the whole trunk becomes flaky. Not dead. Flaky. Receivers see noise on an undriven pair and interpret it as garbage frames. If the trouble started with a router swap, the idle DC reading is the first thing I take.
The faults the meter points you to
Spurs and stars
Somebody needed to add a VAV, the trunk ran past in the ceiling, and they teed off it with a ten-metre tail. It might even work on the bench. On a real trunk, that stub is an unterminated branch that reflects signal back into the chain. The symptoms are intermittent and often affect devices that aren't on the spur at all. The fix is to bring the cable into the new device and back out — re-land it as part of the chain — not to add a terminator on the spur.
Shield grounded at both ends
The shield should be continuous through every device and bonded to ground at one point only. Ground it at both ends and it becomes a conductor between two grounds that are rarely at the same potential, carrying current whenever big equipment runs. The telltale is a trunk that drops when the chiller or a large fan starts, and a common-mode reading that moves at the same moment.
Loose landings
A screw terminal that's been through a few years of vibration, or a conductor landed on its insulation, can make contact most of the time and lose it some of the time. Because it's one daisy chain, a bad landing takes out everything downstream of it — sometimes. Intermittent faults past a particular device point straight at that device's terminals. Tug-test every landing near where the trouble starts; watch the meter while you do it.
An open conductor
The clean version of the loose landing: everything up to a device works, everything past it is dead. Ohms at each end won't agree. Walk the chain with the meter until the reading changes, and the fault is between the last good reading and the first bad one.
When the meter says it's fine
If all four checks pass and the trouble is still there, you've earned the right to move up a layer. Now check the configuration: same baud rate everywhere, unique MACs, Max Master covering the highest master, and enough Max Info Frames on the router — the Max Master and Max Info Frames article goes through those. The BACnet Config Checker will scan a device list for the configuration faults in one pass.
And a meter has limits. It averages. It won't show you a single corrupted frame or the shape of the waveform. For that you need a capture or a scope. But I'd estimate most of the trunk calls I've been on were settled by these four readings before anyone opened a laptop.
- Ohms first, powered down. It tells you termination and continuity in one number.
- Idle DC second. Zero is the reading that matters.
- Common mode when the trouble is intermittent, and ideally while the suspect equipment starts.
- Write the readings on the riser drawing. Next time, you compare instead of guessing.
Go deeper
The full RS-485 test sequence, with the reasons behind every number
Termination, bias, common mode, polarity and what a meter can't see — for MS/TP and Modbus RTU alike. BAS Communication is the protocol layer underneath this article, written for the tech holding the meter.
Get BAS Communication — A Field ReferenceFound a wrong number or a broken link? Tell me and I’ll fix it.