A practical CAN bus troubleshooting guide
Most CAN faults are physical, not logical. Three checks with a multimeter find the majority of them. Here is how to run each one and read the result.
The majority of CAN bus problems come from the physical layer: poor wiring, incorrect termination or more than one baud rate on the same bus. You often get away with these at low speeds, but errors start to show around 250 kbps. Three measurements with a multimeter, bus resistance, idle voltage and grounding, find most faults. A fourth test isolates a suspect transceiver. Work through them in order before you suspect the software.
| Check | What goes wrong | Healthy reading |
|---|---|---|
| Termination | Missing or extra terminators cause signal reflections that corrupt frames | 45 to 65 ohm |
| Voltage levels | A faulty transceiver shifts the idle voltage and disrupts the bus | 2.0 to 4.0 V |
| Grounding | Different ground potentials inject noise across a large network | one earth point |
Termination
A CAN bus needs a 120 ohm resistor at each physical end, two in total. They match the impedance of the cable so that signals are absorbed at the ends rather than reflected back. Think of the resistors as shock absorbers: without them, each edge bounces off the end of the bus and returns as noise, which becomes serious as the baud rate rises.
The test measures the combined resistance of the pair and both terminators. With two 120 ohm resistors in parallel you should read about 60 ohm. Switch off the power to every node first, because the meter must not fight any driven signal.
A reading below 45 ohm points to a short between CAN_H and CAN_L, more than two terminators on the bus or a faulty transceiver. A reading above 65 ohm points to an open circuit or a missing terminator: a correct bus has two, not one. If you have no terminator to hand, Influx Technology supplies a DB9 120 ohm adapter that drops straight onto the network.
Voltage levels
Every node drives the bus through a transceiver, and when the bus is idle both lines sit at roughly 2.5 volts. A failing transceiver can pull those idle levels off where they should be, which quietly disrupts communication for the whole network.
To test, power everything on but stop the traffic, then measure the DC voltage from CAN_H to ground and from CAN_L to ground. Each should fall between 2.0 and 4.0 volts. A reading below 2.0 volts suggests a faulty node, so check the continuity of the CAN_H and CAN_L lines. A reading above 4.0 volts also suggests a faulty node, so check for excessive voltage reaching the bus.
Turn a reading into a verdict
Once you have a number on the meter, the question is simply whether it sits inside the healthy band. The tool below does that for both tests. Enter your reading, switch between resistance and voltage, and it tells you what the value means and where to look next.
Grounding
On a desk with two nodes, CAN runs happily without a thought for grounding. Across twenty nodes spread through a vehicle it is a different matter. High speed CAN needs a proper ground to work reliably, because the differential signal is only meaningful against a stable common reference.
There is a trade-off in how you ground the shield. A single ground point avoids ground reflux, the small currents that flow when two ends of the network sit at slightly different ground potentials. Multiple ground points instead help release high-frequency interference. In a vehicle the usual choice is single-point: connect the shield to vehicle ground at one place, with the lowest impedance connection you can manage, preferably near the centre of the network.
Work back from the symptom
If you are not sure where to begin, start from the behaviour you are seeing on the bus. The finder below maps four common symptoms to the checks worth running first, in a sensible order. It includes the transceiver test, which isolates a single suspect node: disconnect it, leave it unpowered and measure from CAN_H to ground and CAN_L to ground, expecting roughly 1 to 4 megohm. A much lower reading means the transceiver is probably damaged.
Reach for the multimeter before the software. Termination, voltage and grounding explain the great majority of CAN faults.
Troubleshooting FAQ
What resistance should a healthy CAN bus read?
With the power to every node switched off, measure the DC resistance between CAN_H and CAN_L. A healthy bus reads between 45 and 65 ohm, around 60, which is two 120 ohm terminators in parallel. The value should be about the same wherever you measure along the bus.
Why is my CAN bus resistance too low or too high?
Below 45 ohm usually means a short between CAN_H and CAN_L, more than two terminators or a faulty transceiver. Above 65 ohm usually means an open circuit or a missing terminator, since a correct bus has two 120 ohm resistors rather than one.
What voltage should CAN_H and CAN_L sit at?
When the bus is idle, both lines rest at roughly 2.5 volts. Measured from each line to ground with traffic stopped, the reading should fall between 2.0 and 4.0 volts. Outside that range points to a faulty node.
Why do CAN errors only appear at higher speeds?
Reflections from poor termination and noise from poor grounding have more effect as the baud rate rises, because the bus has less time to settle between bits. Problems that pass unnoticed at low speed often begin to show around 250 kbps.
How do I test a CAN transceiver?
Disconnect the suspect node and leave it unpowered. Measure the DC resistance from CAN_H to ground and from CAN_L to ground. The reading should be roughly 1 to 4 megohm or higher. A much lower value means the transceiver is probably damaged.
Should a CAN bus shield be grounded at one point or several?
Single-point grounding avoids ground reflux from differing ground potentials, while multi-point grounding helps release high-frequency interference. In a vehicle the common choice is a single low-impedance connection to vehicle ground, near the centre of the network.
Written by the engineering team at Influx Technology. Always follow your own safety procedures when working on a live vehicle or powered equipment.
Log the bus, and log its errors too
The data loggers from Influx Technology, including the REXGEN and REBEL ranges, record CAN traffic alongside bus errors in a standard format, so a marginal network shows up in the log rather than as missing data. REXDESK and DIALOG help you review what was captured.