Docs / The Ultimate Guide to CAN Bus Termination: How to Get It Right
How-to & Guides

The Ultimate Guide to CAN Bus Termination: How to Get It Right

Where CAN bus termination resistors go, how to test them with a multimeter, and how to wire a CAN hub without long stubs. With diagrams and fixes.

Most CAN bus problems in a car aren't caused by a faulty ECU or a broken gauge. They come down to two 120Ω resistors: one is missing, there's one too many, or one is in the wrong place. Add a CAN hub to the install and it gets easier still to get wrong, because a hub hides where the bus actually ends.

This guide covers what CAN termination does, where the resistors should go, how to check them with a multimeter in two minutes, and how to wire a CAN hub so you don't end up with long branches that corrupt the data. It applies to any high-speed CAN bus (CANbus): Haltech, Link, MaxxECU, Emtron, MoTeC, Ecumaster, PDMs, wideband controllers, dashes, keypads and gauges.

The short version

  • A CAN bus needs exactly two 120Ω termination resistors, one at each end. Not one, not three.
  • The "ends" are the two devices furthest apart along the wiring. They aren't necessarily the ECU, and they aren't the hub.
  • Everything else hangs off the bus on a short branch (stub), ideally under 30cm.
  • With the power off, CAN High to CAN Low should measure about 60Ω. That one reading tells you most of what you need to know.
  • With a CAN hub, the second resistor goes on the device at the end of the longest branch from the hub, so that long run becomes part of the bus rather than a long stub.

What CAN termination actually does

A CAN bus is a twisted pair of wires, CAN High and CAN Low, that every device on the network shares. A device sends a bit by pushing the two wires apart (a "dominant" bit) or letting them fall back together (a "recessive" bit). The termination resistors do two jobs.

1. They stop reflections

At CAN speeds, the wiring behaves as a transmission line. Twisted pair has a characteristic impedance of roughly 120Ω, so a signal reaching an end of the cable that isn't terminated has nowhere to go and bounces back, like a wave hitting a wall. That echo lands on top of the next bits and scrambles them. A 120Ω resistor at each end matches the cable, so the signal is absorbed instead of reflected.

2. They pull the bus back to idle

This one is often missed. CAN transceivers drive the wires apart for a dominant bit, but nothing actively drives them back together. It's the termination resistors that discharge the bus to the recessive state. With too little termination, every dominant-to-recessive edge is slow and lazy, and at 500kbit/s or 1Mbit/s the receivers start reading bits wrong.

That's why "my bus is only a metre long, so I don't need termination" doesn't hold up. Even a very short bus needs its resistors.

Why exactly two?

The two resistors are in parallel across CAN High and CAN Low, so together they make 60Ω. The transceivers in every device are designed to drive that load.

  • Two resistors (60Ω): correct. Clean edges, no reflections.
  • One resistor (120Ω): one end reflects and the recessive edges are slower. Often mostly works on a short bus, which is exactly what makes it hard to diagnose: intermittent dropouts, errors that come and go with temperature or engine noise.
  • Three resistors (40Ω): the bus is overloaded. The signal level drops, and transceivers can struggle to produce a valid dominant bit. Four resistors (30Ω) is worse.
  • No resistors: usually no communication at all, or garbage.

Where the termination resistors go

The ideal CAN bus is a single line, the backbone (also called the trunk), with a resistor at each end and every other device connected by a short branch:

 [120Ω]                                                [120Ω]
  ECU ════════╤═══════════════╤═══════════════╤════════ Dash / Gauge
              │               │               │
          Wideband          Keypad           PDM

  ═══ backbone (terminated at both ends)
   │  stubs: keep each one short, ideally under 30cm

The rules that follow from it:

  1. Find the two devices that are furthest apart along the wiring. Measure cable length, not distance in the car. Those two are the ends, and they get the resistors.
  2. Turn termination off on everything else. Many devices have a resistor built in, sometimes on by default, so check each one: ECUs, PDMs, wideband controllers, dashes, gauges and keypads.
  3. Keep every other branch short. A device in the middle of the bus should be spliced in close to the backbone, not on the end of a long tail.

The ECU is very often one end of the bus, which is why most ECUs have termination built in. But it isn't automatically the end. If the ECU sits in the middle of the car with devices running off in both directions, it should not be terminated, and the resistors belong at the far device in each direction.

Stubs: why branch length matters

A stub is any piece of wire that leaves the backbone to reach a device, and isn't terminated. Signals travel down the stub, reflect off the device at the end and come back onto the bus. On a short stub, that reflection comes back so quickly that it's lost inside the edge of the bit and does no harm. On a long stub, it arrives later and lands in the part of the bit where the receivers are sampling.

ISO 11898, the high-speed CAN standard, recommends stubs no longer than 0.3m (30cm) at 1Mbit/s. Lower bit rates tolerate a bit more, but 30cm is the safe target for any car install, and many motorsport ECUs and their accessories run at 1Mbit/s anyway. Keep the total of all the stub lengths down too: one long stub does more damage than several short ones, but they add up.

An unterminated device on the end of a 2m tail is the classic mistake. It might work on the bench and then drop out once it's in the car with the engine running.

CAN hubs: where it gets complicated

A CAN hub (a CAN splitter or distribution block) is a convenient way to connect several devices: one plug in from the ECU, several plugs out. Electrically, though, a hub is just a splice. All its ports are wired together inside. It doesn't repeat or regenerate the signal, and it doesn't make the bus a "star network".

That matters, because every port you use on a hub adds a branch. The cable from the hub to each device is a stub unless that device is an end of the bus and terminated. A hub with four devices on 1.5m leads isn't a tidy network: it's one backbone with several long stubs hanging off one point.

The rule for hubs: terminate the longest branch

With the ECU terminated at one end, the bus runs ECU → hub, then out along one branch to the other end. You get to choose which branch that is, and it should be the longest one. Terminate the device at the end of the longest branch, and keep every other branch from the hub short, ideally under 30cm.

 GOOD: the longest branch is terminated

                                     ┌── 20cm ──── Keypad
 [120Ω] ECU ─────── 2.5m ─────── HUB ┼── 15cm ──── Wideband controller
                                     └── 1.8m ──── Dash / Gauge [120Ω]

 Backbone: ECU → hub → gauge (terminated at both ends)
 Stubs:    keypad 20cm, wideband 15cm

Terminate a short branch instead and the long one becomes the stub:

 BAD: a short branch is terminated, leaving a long stub

                                     ┌── 20cm ──── Keypad [120Ω]
 [120Ω] ECU ─────── 2.5m ─────── HUB ┼── 15cm ──── Wideband controller
                                     └── 1.8m ──── Dash / Gauge   ← 1.8m stub

 The resistance still reads 60Ω, but a 1.8m tail is reflecting onto the bus.

This is the trap: both layouts measure a perfect 60Ω. A multimeter tells you how many resistors there are, not where they are. Only the wiring tells you that.

Hubs with a built-in terminator

Some hubs have a 120Ω resistor built in, or come with a terminating plug for a spare port. Terminating at the hub makes the hub the end of the bus, which means every branch from the hub is a stub. That's fine if all the devices are mounted close to the hub on short leads. It's a problem if any of them is a metre or more away. In that case, leave the hub's terminator out and terminate the device on the longest branch instead.

Check your hub's instructions or measure it. A hub with nothing plugged in should read open circuit between CAN High and CAN Low. If it reads 120Ω, it has a terminator in it.

When more than one branch is long

The backbone can only have two ends, so only two long runs can be "inside" the bus. If you have two long branches and the ECU is on a short one, make the two long branches the ends:

 ECU near the hub, two devices far away

                       ┌── 2.0m ──── Dash [120Ω]
 ECU ── 25cm ──── HUB ─┤
 (termination OFF)     └── 1.5m ──── PDM  [120Ω]

 Backbone: dash → hub → PDM. The ECU is now the stub.

If you have three or more long branches, no choice of resistors will fix it. Rework the wiring instead:

  • Move the hub closer to the cluster of devices, so the long run is a single cable from the ECU to the hub and the branches are short.
  • Use two hubs along the backbone, one near each group of devices, joined by a single cable, with the far ends terminated.
  • Daisy-chain instead. Run the bus device to device and splice each one in close to the backbone. It's the topology CAN was designed for.

How to check your termination with a multimeter

This is the quickest and most useful CAN test you can do, and it needs nothing more than a cheap multimeter.

Note: this test usually doesn't work with software-controlled termination. Many modern devices, including KrispyGauge and a lot of ECUs, PDMs and dashes, switch their termination resistor on and off in software rather than with a jumper or a fixed resistor. The resistor is connected by an electronic switch that only closes while the device is powered, so with everything off the meter can't see it. A resistor switched on in software can read as missing, and the meter shows 120Ω or open circuit on a bus that's actually terminated correctly. Measuring with the power on doesn't fix it either, because resistance readings on a live bus aren't reliable. If any of your devices use software-controlled termination, this step can be misleading. Check the termination setting in each device's software instead, and use the meter only to count the fixed resistors.

  1. Turn everything off: ignition off, and ideally the battery disconnected. Resistance readings on a powered bus are meaningless.
  2. Leave every device plugged in. You're measuring the whole network as it is.
  3. Set the meter to resistance (Ω) and measure between CAN High and CAN Low at any convenient connector. Back-probe it, or use a spare hub port or a breakout.

What the reading means:

  • About 60Ω (55 to 65Ω): two resistors. Correct.
  • About 120Ω: only one resistor. Find the missing end and turn its termination on.
  • About 40Ω: three resistors. One of the devices in the middle has termination on and shouldn't.
  • About 30Ω or lower: four or more resistors.
  • Close to 0Ω: CAN High and CAN Low are shorted together somewhere. Look for a crushed wire or a bad crimp.
  • Open circuit or many kΩ: no termination at all, or you're not actually connected to the bus.

To find which device has a resistor you didn't expect, unplug devices one at a time and watch the reading change. The one that moves it from 40Ω to 60Ω is your culprit.

Remember the limitation from the hub section: 60Ω proves the number of resistors is right, not that they're at the right ends. Check the layout against the wiring as well.

Wiring tips that matter as much as termination

  • Use twisted pair, and keep it twisted all the way to the connector. Around one twist every 25 to 50mm is plenty. Untwisted sections are where interference gets in.
  • Don't swap CAN High and CAN Low. It's more common than any termination fault, and the symptoms look identical. Check it first.
  • Keep CAN away from ignition leads, coils and injector wiring, and cross them at right angles where you have to.
  • Make solid splices. A soldered and heat-shrunk splice, or a proper connector, close to the backbone beats a long tail to a remote connector.
  • One bit rate per bus. Every device must be set to the same speed. A single device at the wrong rate can flood the bus with error frames.

Signs your CAN termination is wrong

  • A dash or gauge showing NO CAN SIGNAL, or readings that freeze
  • Readings that appear briefly, then drop out
  • Problems that get worse with the engine running, or as things warm up
  • A device that works on the bench but not in the car
  • CAN error counters or bus-off warnings in your ECU software
  • Keypad buttons that only work some of the time
  • Adding one more device breaks something that worked before

If you have a KrispyGauge on the bus, KrispyScan shows the live CAN traffic in your browser. A bus with healthy termination shows steady, regular frames from every device. Gaps, missing IDs or frames that come and go point straight back at wiring or termination.

Special cases

Factory cars and the OBD2 port

A car's diagnostic CAN bus is already terminated at both ends by the factory. When you plug into the OBD2 port, never add termination. Your device is a stub on the car's bus, so keep the lead from the OBD2 plug to the device as short as is practical, and avoid long extension cables. See OBD2 setup.

Adding a device to an existing bus

If you're adding a gauge or controller to a bus that already works, measure first. If it reads 60Ω, splice the new device in close to the backbone with termination off. Only if you're extending the bus past the old end do you move the resistor: off at the old end, on at the new one.

Multiple gauges

Daisy-chain them and terminate only the last one in the chain. Every gauge in the middle has termination off. More on this in running multiple KrispyGauges.

Common questions

Does CAN bus termination have to be exactly 120Ω?

120Ω is the standard value, and a normal 1% or 5% resistor is fine. What matters is that the two together come to roughly 60Ω. Don't substitute a single 60Ω resistor at one end: it gets the meter reading right but leaves the other end unterminated.

Can I put both resistors at the hub, or at the ECU?

No. Both resistors in one place gives the right reading but leaves the far ends of the cable unterminated, so they reflect. The resistors belong at the physical ends of the backbone.

What's split termination?

Some devices use two 60Ω resistors in series with a small capacitor from the midpoint to ground, instead of a single 120Ω. It filters common-mode noise and still measures 120Ω across CAN High and CAN Low, so it counts as one terminator when you're adding them up.

Does the termination resistor wear out or need to be a certain wattage?

No. The current through it is tiny, and a standard 1/4W resistor is more than enough.

My bus works with the wrong termination. Should I still fix it?

Yes. A short bus at low load can limp along with one resistor, or with three, and then fail when it's hot, when the engine is making the most noise, or when you add one more device. A misbehaving CAN bus at the wrong moment can mean a lost keypad command, a missing warning or a dash that freezes. Getting the termination right takes five minutes.

How do I set the termination resistor on a KrispyGauge?

Every KrispyGauge has a 120Ω termination resistor built in, which you switch on or off in the Web UI. Turn it on only if the gauge is an end of the bus. The KrispyGauge termination guide goes through each install.

Still chasing a CAN fault? Email [email protected] with a photo or sketch of your wiring and your multimeter reading, or ask in the KrispyGauge Tips & Tricks Facebook group.

← All docs