BACnet MS/TP Wiring Best Practices

BACnetMS/TPwiringRS-485termination
April 29, 2026|8 min read

BACnet MS/TP wiring must follow a strict daisy-chain topology using shielded twisted-pair cable (Belden 9841 or equivalent, 100–130 ohm impedance), with 120-ohm termination resistors at both physical endpoints, consistent A+/B− polarity at every device, and the cable shield grounded at one end only. T-taps, star wiring, missing termination, and unshielded cable are the leading causes of intermittent communication failures on MS/TP trunks. Maximum trunk length is 4,000 feet (1,200 m) at baud rates up to 76,800 bps.

Why MS/TP Wiring Matters

BACnet MS/TP (Master-Slave/Token-Passing) runs on an RS-485 physical layer. Unlike BACnet/IP, which rides on managed Ethernet switches with error correction and automatic retransmission, MS/TP depends entirely on the quality of the copper cable connecting devices. Every electrical imperfection—a signal reflection from a T-tap, a missing termination resistor, a polarity swap, excessive cable capacitance—directly degrades communication reliability. There is no switch, no router, and no protocol-level retry mechanism to mask wiring defects.

The consequence is that MS/TP wiring problems produce intermittent, hard-to-diagnose failures. A trunk may work perfectly during commissioning with five devices and short cable runs, then fail unpredictably once twenty devices are connected across a full building floor. CRC error counters climb. Devices drop off the token ring for seconds or minutes, then reappear. Point values go stale. The instinct is to suspect a bad controller or a software configuration error, but in the majority of cases the root cause is physical-layer wiring that violates RS-485 best practices.

Correct wiring is not optional—it is the foundation that every MS/TP network depends on. Getting it right during installation avoids hundreds of hours of troubleshooting later.

Cable Selection

The ASHRAE 135 BACnet standard requires shielded, twisted-pair cable with a characteristic impedance between 100 and 130 ohms for MS/TP networks. The cable must also meet specific capacitance limits: less than 100 pF per meter (30 pF per foot) between conductors, and less than 200 pF per meter (60 pF per foot) between conductors and shield. These are not suggestions—exceeding these limits causes signal attenuation and increased error rates, especially on longer trunks or at higher baud rates.

Recommended Cable: Belden 9841

The industry-standard cable for BACnet MS/TP installations is the Belden 9841. It is a 24 AWG, one-pair, stranded tinned-copper cable with a nominal impedance of 120 ohms. It features both an aluminum foil/polyester tape (Beldfoil) shield and a 90% tinned-copper braid shield, providing excellent EMI rejection in mechanical rooms and electrical closets where BAS controllers are typically installed.

# Belden 9841 Key Specifications
# ──────────────────────────────────────────────
# Conductor:         24 AWG stranded (7x32) tinned copper
# Pairs:             1 twisted pair
# Impedance:         120 ohm (nominal)
# Capacitance:       12.8 pF/ft (42 pF/m) conductor-to-conductor
# Shield:            Aluminum foil + 90% tinned copper braid
# Jacket:            PVC, CM rated
# Temperature Range: -20 to +75 C
# ──────────────────────────────────────────────
# Acceptable alternatives:
#   Belden 9842   (2-pair version of 9841, use one pair)
#   Belden 3105A  (22 AWG, slightly heavier gauge)
#   Alpha Wire 6412  (120 ohm, foil + braid shield)
#   General Cable GenSPEED 485  (120 ohm STP)
#
# AVOID:
#   Cat5/Cat6 Ethernet cable  (100 ohm, wrong impedance)
#   Unshielded twisted pair   (no EMI protection)
#   Thermostat wire (18/2)    (not twisted, high capacitance)
#   Speaker wire               (not twisted, unshielded)

Wire Gauge Considerations

For most BACnet MS/TP installations, 22 AWG or 24 AWG cable is appropriate. The choice affects maximum trunk length: 18 AWG cable can support the full 4,000-foot (1,200 m) specification at lower baud rates, while 24 AWG cable is adequate for trunks up to approximately 3,000 feet (900 m). On trunks shorter than 1,000 feet (300 m)—which covers the vast majority of single-floor installations—24 AWG Belden 9841 is the standard choice and performs reliably at all supported baud rates.

Never use Cat5 or Cat6 Ethernet cable for MS/TP. While physically it is twisted pair, its 100-ohm impedance does not match the 120-ohm termination resistors specified by BACnet, creating impedance mismatches and signal reflections. It may appear to work on short trunks with few devices, but it will cause intermittent failures as the network grows.

Daisy-Chain Topology

BACnet MS/TP requires a strict daisy-chain (bus) topology. The cable runs from the first device on the trunk to the second, from the second to the third, and so on to the last device. Every device is connected in series along a single continuous cable path. There are no branches, no star connections, and no T-taps.

# CORRECT: Daisy-chain topology
#
#   [Router]---[VAV-1]---[VAV-2]---[VAV-3]---[AHU-1]
#     120R                                      120R
#   (termination)                           (termination)
#
# Each device connects directly along the main trunk cable.
# Termination resistors at the two physical endpoints only.

# WRONG: T-tap (stub) off the main trunk
#
#   [Router]---[VAV-1]---+---[VAV-3]---[AHU-1]
#                        |
#                     [VAV-2]   <-- T-tap / stub
#
# The stub to VAV-2 creates a branch that causes signal
# reflections. Even a 6-inch stub degrades signal quality.

# WRONG: Star topology
#
#              [VAV-1]
#                |
#   [VAV-2]---[Hub/Panel]---[VAV-3]
#                |
#              [AHU-1]
#
# Star wiring creates multiple unterminated branches.
# This will not work reliably at any baud rate.

The reason for this strict requirement is signal integrity. RS-485 is a differential signaling protocol operating at relatively high frequencies. Any branch or stub off the main trunk creates an impedance discontinuity where the signal partially reflects back toward the transmitter. These reflections corrupt the data frames that other devices are trying to read, producing CRC errors and token-passing failures. The effect worsens with longer stubs, higher baud rates, and more devices on the trunk.

In practice, keep the stub length from the daisy-chain trunk to a device's terminals as short as physically possible—ideally under one inch (2.5 cm). If a controller is located several feet away from the trunk path, reroute the trunk cable to pass through that controller rather than running a branch to it.

Termination Resistors

Every BACnet MS/TP trunk requires exactly two 120-ohm termination resistors: one at each physical end of the daisy chain. These resistors are wired between the A+ and B− conductors. Their purpose is to absorb the electrical signal when it reaches the end of the cable, preventing it from reflecting back and corrupting data.

# Termination resistor placement
# ──────────────────────────────────────────────
#
#   [Device 1]---[Device 2]---[Device 3]---[Device N]
#      120R                                   120R
#    (end #1)                              (end #2)
#
# Resistor spec: 120 ohm, 1/4 watt, 5% tolerance
# Wired between A+ and B- at the terminal block.
#
# Some devices have a built-in termination jumper or
# DIP switch. If Device 1 or Device N has one, enable
# it instead of adding an external resistor.
#
# Common devices with built-in termination:
#   - Contemporary Controls BASRT-B (DIP switch)
#   - Tridium JACE 8000 (jumper, model-dependent)
#   - Distech EC-BOS series (DIP switch)
#   - Some Schneider Electric AS-B controllers

# WRONG: Termination at every device
#
#   [Device 1]---[Device 2]---[Device 3]---[Device N]
#      120R         120R         120R         120R
#
# Multiple termination resistors in parallel reduce the
# total bus impedance below spec. With four 120R resistors,
# the effective load is 30 ohms -- far too low. The RS-485
# driver cannot supply enough current, signal amplitude
# drops, and the trunk becomes unreliable.

A common field mistake is installing termination resistors at every device, or at an intermediate device rather than the endpoints. This reduces the effective bus impedance and overloads the RS-485 drivers. If you measure the resistance between A+ and B− on a properly terminated trunk with no devices powered on, you should read approximately 60 ohms (two 120-ohm resistors in parallel). If you read 40 ohms or less, there are too many termination resistors on the trunk.

Polarity: A+ and B−

RS-485 is a differential signaling protocol that uses two conductors: A (also labeled Data+, D+, or +) and B (also labeled Data−, D−, or −). Polarity must be consistent at every device on the trunk. If the A+ wire connects to the + terminal at one device but to the − terminal at the next device, the differential signal is inverted at that point and communication fails.

The challenge is that manufacturers use inconsistent labeling. Some label the positive conductor as "A", others as "B". Some use "+" and "−", others use "D0" and "D1". The only reliable approach is to pick one wire color for positive and another for negative, then maintain that convention at every single terminal block on the trunk.

# Polarity wiring convention (choose and stick with it)
# ──────────────────────────────────────────────
# Wire Color     Function        Terminal Labels (varies by vendor)
# White          A / Data+       +, A, D+, Data+, TX+/RX+, Pin 1
# Blue           B / Data-       -, B, D-, Data-, TX-/RX-, Pin 2
# Drain/Shield   Shield/Ground   SC, SH, GND, Shield, Pin 3
# ──────────────────────────────────────────────
#
# CRITICAL: If one device labels its positive terminal as "B"
# and another labels it as "A", do NOT follow the letter --
# follow the voltage. Use a multimeter to verify which terminal
# goes positive during idle state (the "mark" or "1" state).
#
# On a powered, idle MS/TP bus:
#   A+ should be MORE positive than B- by 200mV or more.
#   If it reads negative, your polarity is swapped at that device.

A single polarity swap at one device will disrupt communication for the entire trunk downstream of that point. The inverted device will generate frames that appear as noise to every other device, causing CRC errors across the bus. During commissioning, verify polarity at every terminal block before powering on the trunk.

Trunk Length Limits by Baud Rate

The maximum allowable trunk length for BACnet MS/TP depends on the baud rate, cable gauge, and cable quality. The ASHRAE 135 specification defines a maximum segment length of 4,000 feet (1,200 meters) using 18 AWG cable at baud rates up to 76,800 bps. Higher baud rates or thinner-gauge cable require shorter maximum lengths.

Baud RateMax Length (18 AWG)Max Length (22–24 AWG)Notes
9,600 bps4,000 ft (1,200 m)4,000 ft (1,200 m)Most forgiving of cable quality. Used in legacy installations.
19,200 bps4,000 ft (1,200 m)4,000 ft (1,200 m)Common in older BAS installations.
38,400 bps4,000 ft (1,200 m)4,000 ft (1,200 m)Industry standard. Best balance of speed and reliability.
76,800 bps4,000 ft (1,200 m)3,000 ft (900 m)Recommended only with high-quality cable (Belden 9841).
115,200 bps2,500 ft (750 m)2,000 ft (600 m)Rarely used. Requires excellent cable quality and short stubs.

These are maximum values under ideal conditions—clean cable runs, proper termination, minimal EMI. In practice, reduce the maximum by 20–30% when running cable near variable-frequency drives (VFDs), high-voltage feeders, or fluorescent lighting ballasts. If a trunk must exceed the maximum length for its baud rate, install a BACnet MS/TP repeater or split the trunk into two segments with separate network numbers connected through a router.

# Trunk length decision guide
# ──────────────────────────────────────────────
# Trunk < 1,000 ft:  Any baud rate, 24 AWG cable fine
# Trunk 1,000-3,000 ft: 38,400 bps, 22 or 24 AWG
# Trunk 3,000-4,000 ft: 38,400 bps, 18 AWG recommended
# Trunk > 4,000 ft:  Split into two trunks with a router
#                     or add an RS-485 repeater
#
# Device count also matters:
#   - Each device adds capacitive load to the bus
#   - ASHRAE 135 allows up to 128 master devices (MAC 0-127)
#   - Practical limit is 30-60 devices per trunk
#   - Beyond 32 devices, use high-drive RS-485 transceivers
#     or split the trunk

Shield Grounding

The cable shield must be continuous from the first device to the last device on the daisy chain. At each intermediate device, splice the shield through without interruption—strip the outer jacket, fold back the braid or foil, and reconnect it on the other side of the terminal block. Do not connect the shield to the device's ground terminal at intermediate points.

Ground the shield at one end of the trunk only. The grounding point should be at the supervisory controller, router, or the panel with the best earth ground connection. This is typically the first device on the trunk (the BACnet/IP to MS/TP router or the JACE). Connect the shield conductor to the device's Shield/Common (SC) terminal or to the panel's earth ground bus at that single point.

# Shield grounding: correct vs. incorrect
# ──────────────────────────────────────────────
#
# CORRECT: Shield grounded at one end only
#
#   [Router]---[VAV-1]---[VAV-2]---[AHU-1]
#     GND        |          |         |
#     |||     (splice)  (splice)  (tape off)
#     Earth   shield    shield    shield end
#     ground  through   through   insulated
#
# WRONG: Shield grounded at multiple points
#
#   [Router]---[VAV-1]---[VAV-2]---[AHU-1]
#     GND       GND       GND       GND
#     |||       |||       |||       |||
#     Earth     Earth     Earth     Earth
#
# Multiple ground connections create ground loops.
# Differences in earth ground potential between panels
# drive current through the shield, inducing noise on
# the data conductors and causing CRC errors.

At the far end of the trunk (the last device), tape off or heat-shrink the exposed shield conductor to prevent accidental contact with any grounded surface. An unintentional second ground point creates a ground loop that injects noise onto the data conductors, producing the same CRC errors and intermittent failures that bad wiring causes.

Common Mistakes

Platform Compatibility

BACnet MS/TP wiring requirements are defined by the ASHRAE 135 standard and the underlying EIA/TIA-485 (RS-485) electrical specification. They are vendor-neutral and apply identically across all BAS platforms. The same cable, the same daisy-chain topology, the same termination resistors, and the same polarity rules apply regardless of the controller manufacturer.

Platform / ControllerRS-485 Terminal LabelsBuilt-in TerminationWiring Notes
Contemporary Controls BASRT-B+ / − / SCYes (DIP switch)Enable built-in termination only if the router is at one end of the trunk.
Tridium JACE 8000A+ / B− / REFModel-dependent (jumper)Check hardware manual for jumper location. REF is signal reference, not earth ground.
Johnson Controls FEC / FAC+ / − / SNo (external resistor required)FEC26/36 series: screw terminals on the RS-485 port. FAC series may use Phoenix connectors.
Schneider Electric AS-B / AS-PD+ / D− / SHSome models (DIP switch)AS-P supports two independent MS/TP ports. Terminate each trunk separately.
Honeywell SpyderA / B / GNDNo (external resistor required)Note: Honeywell labels A as negative on some models. Verify with documentation.
Distech Controls EC-BOS+ / − / ShieldYes (DIP switch)DIP switch on the controller board. Factory default is unterminated.
Reliable Controls MACH-Pro+ / − / SModel-dependentTwo RS-485 ports on some models. Each port is an independent trunk.
Carrier i-Vu / Open series+ / − / REFNo (external resistor required)Use REF conductor as signal reference. Do not connect to chassis ground.

The critical takeaway is that terminal labeling varies by manufacturer, but the electrical requirements are identical. Map your wire colors to the correct polarity at each device using the manufacturer's wiring diagram, not the letter on the terminal. When in doubt, use a multimeter on a powered, idle bus: the A+ terminal should read approximately 200 mV or more positive relative to B−.

Source Attribution

The technical guidance in this entry is informed by the following sources:

MS/TPwiringRS-485terminationcable

Was this article helpful?

Related Articles

Need to do this remotely? SiteConduit provides Layer 2 access that preserves BACnet broadcasts — no BBMD needed for remote sessions. Join the waitlist.

SC

SiteConduit Technical Team

Idea Networks Inc.

SiteConduit builds managed remote access for building automation. Our knowledge base is maintained by BAS professionals with hands-on experience deploying and troubleshooting BACnet, Niagara, Modbus, and Facility Explorer systems.