Easy BACnet · BACnet IP Controls made Easy Points lists Get the app

How do I troubleshoot a BACnet MS/TP trunk?

Updated 4 November 2026

Short answer

Work from the wire up. Check polarity and the signal common, then termination (120 Ω at the two ends of the trunk and nowhere else) and bias (one set, at most two). Then make sure every device runs the same baud rate, no two devices share a MAC address, and Max_Master is at least the highest master MAC on the trunk. Most dead or flaky trunks are one of those. The pattern of which devices are missing usually tells you which.

Read the symptom first

Before you open a panel, look at which devices are missing and when. A scan from the IP side through the trunk's BACnet router gives you the list: every MS/TP device that answers shows up at the router's IP address with a network number and MAC.

What you seeLook at first
Whole trunk goneThe router's MS/TP port, a short or open at the start of the run, a device holding the bus
Every device past one point is missingA break or bad splice at that point; termination in the wrong place
Devices with high MACs never appear, low ones are fineMax_Master set too low on one or more devices
Two devices trade places, or one appears and vanishesDuplicate MAC address
Everything is there but slow, and drops out now and thenBaud mismatch on one device, reversed polarity, noise, or a trunk that is simply too long or too full
One device missing, the rest fineThat device: power, its MAC, its baud rate, its wiring at the terminal
Your phoneUSB-C Ethernet10.20.30.50JACE / supervisorhead-end10.20.30.5Controls switch · BAS VLAN 10.20.30.0/24RTU-1Device 100110.20.30.11AHU-1Device 100210.20.30.12BACnet routernetwork 20110.20.30.20BACnet IP — UDP 47808, everything has an IP addressVAV-2-01MAC 1Dev 20101VAV-2-02MAC 2Dev 20102VAV-2-03MAC 3Dev 20103…BACnet MS/TP — RS-485 twisted pair, 38400 baud, network 201No IP addresses: a scan shows them at the router’s IP plus net 201 / MAC.
BACnet IP devices sit on the controls network. MS/TP devices hang off a router and show up at the router’s IP with a network number and MAC.

1. Wiring

2. Termination and bias

Termination is a 120 Ω resistor (or a jumper or switch on the controller) at the two physical ends of the trunk. Not on every device, and not on stubs. Bias holds the idle line in a known state; the trunk needs one set, often provided by the router, and no more than two. Too many terminators or bias sets load the line down; none at all lets it float. If two short segments each work alone but fail when joined, count the terminators and bias jumpers first.

3. Baud rate

Every device on a trunk must run the same rate: usually 38,400 or 76,800 on newer jobs, 9,600 or 19,200 on older ones, and some newer devices offer 115,200. A device on the wrong rate doesn't just go missing; it sees garbage, may answer with garbage, and causes errors for everyone. Some controllers auto-detect the baud rate at power-up and lock onto whatever they hear first, so a trunk that was briefly wrong can stay wrong until those devices are power-cycled.

4. MAC addresses

Masters use MAC 0–127; slaves, which never get the token, use 128–254. Every MAC on one trunk must be unique. Two controllers on the same MAC answer for each other, corrupt each other's replies and slow the trunk; the symptom is a device whose name or Device ID changes between scans. MACs are usually set on DIP switches or rotary switches, and a replaced controller is the usual culprit. Easy BACnet warns after a scan when it sees two devices at the same network number and MAC.

The MAC is only local to the trunk. The Device ID is separate and has to be unique across the whole site; many integrators build it from the network number and MAC so the two stay in step.

5. Max_Master and Max_Info_Frames

Each master passes the token to the next MAC it knows about, and now and then polls the addresses above its own to see if anyone new has joined, but only up to its Max_Master setting. If a device's Max_Master is 31 and there is a controller at MAC 40, that controller may never be offered the token and never talks. Set Max_Master at or above the highest master MAC on the trunk, on every device. The default of 127 always works but wastes time polling empty addresses, so a tuned value speeds a small trunk up.

Max_Info_Frames is how many messages a device may send each time it holds the token. Field controllers are fine at 1; the router or supervisory controller handles traffic for the whole trunk and usually needs a higher value, or reads from the IP side queue up behind it.

6. Size and load

RS-485 is good for about 4,000 ft (1,200 m) per segment and a limited number of unit loads before you need a repeater. In practice, vendors recommend somewhere around 30 to 60 controllers per trunk depending on baud rate and how much each one is polled. A trunk that has grown past that works, slowly, and falls over when something else goes wrong. Splitting it onto a second router port is often the real fix.

Tools that help

Check it on your own network. Easy BACnet is a free Android app that finds BACnet IP devices and reads their points in a couple of taps.

Get it on Google Play