Skills

CAN Bus Diagnostics for Beginners

Anthony CalhounASE Master Tech
Try the AI Diagnostic Assistant — Join Free

CAN Bus Diagnostics: What Every Tech Needs to Know

If you've spent any time chasing U-codes or dealing with a vehicle where half the modules stopped talking, you already know how frustrating CAN bus problems can be. The scan tool throws a wall of codes, the customer wants answers, and the vehicle gives you nothing obvious to look at. Understanding exactly how CAN bus works — and having a real diagnostic process — is what separates a tech who fixes it from a tech who guesses at it.

What CAN Bus Actually Is

CAN stands for Controller Area Network. It was originally developed by Bosch in the 1980s for automotive use and became an industry standard because it solved a real problem: how do you get dozens of electronic control modules to share information without running a dedicated wire between every pair of modules? The answer is a shared two-wire communication network where every module can both send and receive messages.

Before CAN bus, vehicles used point-to-point wiring. If the PCM needed to send vehicle speed to the ABS module, there was a dedicated wire for that. If the instrument cluster also needed vehicle speed, that meant another wire. Multiply this across every module and every data point and you end up with a wiring harness that weighs as much as the engine. CAN bus replaced most of that with two wires that every module taps into.

Today, virtually every module in every modern vehicle communicates over CAN bus or a similar serial network. The PCM, TCM, ABS module, BCM, instrument cluster, HVAC controller, and every other control unit on the vehicle are all connected to one or more CAN networks.

CAN High and CAN Low: How the Signal Works

CAN bus uses two wires: CAN High (CAN-H) and CAN Low (CAN-L). This is called a differential communication system, and understanding why it uses two wires instead of one is important for diagnosing it properly.

When the bus is idle — no module is transmitting — both wires sit at a 2.5-volt bias. This is the resting state. When a module transmits a data bit, the two wires move in opposite directions simultaneously:

  • CAN-H swings up to approximately 3.5 volts
  • CAN-L swings down to approximately 1.5 volts
  • The resulting differential voltage is 2 volts

The receiving modules don't look at CAN-H or CAN-L individually. They look at the difference between the two wires. This is the key to understanding why the system is so robust. Any electrical noise that gets into the wiring hits both wires equally, so the difference between them stays the same. The modules ignore the noise automatically. This is called common-mode noise rejection, and it's why CAN bus works reliably in the electrically hostile environment of a vehicle.

On an oscilloscope, a healthy CAN bus signal looks like clean, sharp square waves on both channels — CAN-H rising while CAN-L falls, and they mirror each other. If the waveform looks rounded, noisy, or distorted, the bus has a problem. More on that later.

Bus Termination: The 120-Ohm Resistors

High-speed data signals traveling on wires behave like electrical signals traveling on a transmission line. Without proper termination, the signal reaches the end of the wire, reflects back, and creates interference with the original signal. To prevent this, CAN bus uses 120-ohm termination resistors at each end of the network.

These two 120-ohm resistors are wired in parallel between CAN-H and CAN-L at the physical ends of the bus. Two resistors in parallel give you 60 ohms total. This is your baseline measurement for a healthy CAN bus.

Here is how to measure it correctly:

  1. Turn the ignition off and wait for all modules to power down (at least 30 seconds, sometimes longer on vehicles with active keep-alive modules)
  2. Disconnect the battery — some technicians skip this, but it eliminates any module influence on the reading
  3. Locate the OBD-II DLC (the diagnostic port under the dash). Pins 6 and 14 are HS-CAN High and HS-CAN Low on most vehicles.
  4. Set your DVOM to ohms and measure resistance between pin 6 and pin 14
  5. 60 ohms is normal. Significantly higher means a resistor or section of the bus is open. Significantly lower means there is a short somewhere on the network.

Some vehicles have the termination resistors built into specific modules rather than in the harness. On those vehicles, disconnecting the wrong module will change your resistance reading even though nothing is wrong with the bus wiring. Check the wiring diagram before you start pulling connectors.

Common CAN Bus Problems

CAN bus failures fall into a handful of repeatable categories. Knowing these categories before you touch the vehicle tells you what to look for.

Open Circuit on One Wire

If CAN-H or CAN-L is broken somewhere in the harness — a chafed wire, a pulled terminal, a corroded splice — the bus loses its differential signal. Depending on where the break is, some modules may still communicate using single-wire mode at reduced reliability. The vehicle will throw multiple U-codes and communication will be intermittent or degraded. On the oscilloscope, one channel will look flat or severely distorted while the other still tries to swing.

Short to Power or Ground

If CAN-H gets shorted to battery voltage, it pulls the wire high and the differential collapses. If CAN-L gets shorted to ground, it pulls that wire low with the same result. In either case, the bus cannot communicate. Your resistance measurement will be off, and with KOEO you'll see something other than 2.5V on one or both wires. A short to power on CAN-H might show near battery voltage on that pin. A short to ground will show near 0V on CAN-L.

Short Between CAN-H and CAN-L

When the two wires short together, neither can swing independently. The differential voltage goes to zero and communication stops entirely. Your ohmmeter will show very low resistance — close to zero — between the two wires. This is easy to identify and usually points to a harness that has been pinched, melted, or chafed to the point where the two wires contact each other.

Failed Module Pulling the Bus Down

This is the one that causes the most headaches. A module with an internal failure can actively hold one of the CAN wires at the wrong voltage, killing communication for every other module on the network. The bus resistance may measure correctly because the termination resistors are fine, but the module's internal transistor is stuck on and clamping the bus. The vehicle throws U-codes for every module on the network, but the problem is one bad module, not the wiring.

How to Diagnose a CAN Bus Problem Step by Step

Step 1: Measure Bus Resistance

Start here, always. Key off, modules powered down, measure resistance at the DLC between CAN-H and CAN-L. 60 ohms = healthy termination. Anything far from 60 ohms tells you where to look next. High resistance points to an open in the network. Low resistance points to a short between the wires or a failed module.

Step 2: Check Bias Voltage with Key On, Engine Off

Turn the key on without starting. Measure DC voltage on CAN-H (pin 6) and CAN-L (pin 14) individually, referenced to ground. Both should read approximately 2.5 volts. If one wire is pulled high or low, you have a short or a module holding the bus down. If both wires read 0V, the network may not be powered at all — check your power and ground feeds to the main modules first.

Step 3: Use an Oscilloscope to Verify Waveform Quality

A DVOM can't tell you everything. Connect a two-channel oscilloscope to CAN-H and CAN-L simultaneously. A healthy bus shows:

  • Clean, sharp square waves on both channels
  • CAN-H and CAN-L mirroring each other — one rises as the other falls
  • Consistent amplitude — CAN-H reaching 3.5V, CAN-L dropping to 1.5V
  • No excessive noise or ringing between transitions

Rounded waves indicate a termination problem or excessive bus length. Noisy, erratic waveforms point to electromagnetic interference or a module causing signal reflection. A flat line on one channel while the other still swings confirms an open on the flat wire. No signal at all on either channel means the bus is completely dead — check power and ground before going further.

Step 4: The Half-Split Method

If you've confirmed the bus is down and you suspect a module is killing it, use the half-split method. The goal is to find the bad module by systematically eliminating half the network at a time rather than unplugging every module one by one.

  1. Pull up the network diagram and identify all the modules on the affected CAN bus
  2. Locate the physical midpoint of the network and disconnect a module near the middle
  3. Re-measure resistance or bias voltage — if the bus recovers, the bad module is in the half you just isolated. If it doesn't recover, the problem is in the other half.
  4. Work toward the half with the problem, splitting again, until you find the module that restores the bus when disconnected

This cuts your diagnostic time significantly compared to unplugging modules one at a time from one end of the network. On a vehicle with 12 modules on a single bus, worst case with the half-split method is 4 disconnections. Worst case going one at a time is 11.

Important note: Some modules will set their own codes when disconnected, even if they're not the problem. Clear codes after testing and verify which codes return with the vehicle reassembled.

U-Codes: What They Tell You

U-codes are network communication codes. Unlike P or B codes that point to a specific system failure, U-codes tell you that modules can't talk to each other. Knowing how to read them is half the battle.

Common U-Codes

  • U0100 — Lost communication with ECM/PCM. Any module that tries to receive data from the PCM and gets no response will set this code. Can be set by a dozen different modules simultaneously if the PCM is off the bus.
  • U0101 — Lost communication with TCM. Same concept — modules that need transmission data can't get it.
  • U0073 — Control module communication bus off. This is the big one. It means a module detected that the CAN bus itself went offline — usually because bus traffic stopped entirely.

Multiple U-Codes vs. Single U-Code

This is the most important rule in CAN bus diagnostics:

  • Multiple U-codes across multiple modules = bus problem. If the PCM, ABS module, instrument cluster, and BCM all have U-codes for lost communication with each other, the network itself is the problem — wiring, termination, or a module pulling the bus down.
  • Single U-code in a single module = specific module problem. If only the TCM has a U0100 (lost communication with PCM), start by suspecting the PCM or the wiring between the PCM and TCM. The rest of the network is probably fine.

Always scan every module on the vehicle before touching anything. A complete code pull gives you the full picture. If you see U-codes scattered across the entire vehicle, go straight to bus diagnostics. If the U-codes are isolated to one or two modules, start looking at the specific modules and their power and ground circuits first.

CAN Bus Variants and Related Networks

Modern vehicles don't run on a single CAN bus. They run on multiple networks with different speeds and purposes, connected by gateway modules that translate between them.

HS-CAN (High Speed CAN)

Speed: 500 kbps. This is the main powertrain and chassis network — PCM, TCM, ABS, ESC. High-speed modules that need rapid data exchange live here. This is what you're measuring at pins 6 and 14 of the DLC on most vehicles.

MS-CAN (Medium Speed CAN)

Speed: 125 kbps. Body control, comfort systems, HVAC, seat modules. These systems don't need high-speed data so they run on a slower, less expensive network. Ford uses MS-CAN extensively. It appears on different DLC pins depending on the vehicle.

LIN Bus (Local Interconnect Network)

LIN is a single-wire, low-speed network used for simple, low-cost components — window switches, mirror controls, individual seat motor controllers. A master module (often the BCM or a door module) manages the LIN network, and the slave modules respond on command. LIN problems usually show up as specific feature failures rather than broad communication codes. Diagnosing LIN requires either a scan tool that supports LIN monitoring or a scope on the single LIN wire.

FlexRay

FlexRay is a high-speed, fault-tolerant network used in advanced driver assistance systems and chassis control on high-end vehicles — active suspension, advanced brake systems, steer-by-wire. It's faster than HS-CAN and has built-in redundancy. FlexRay diagnostics require manufacturer-specific tools and procedures. You're unlikely to encounter it on mainstream vehicles but it appears on late-model BMW, Mercedes-Benz, and some GM platforms.

Real Diagnostic Scenarios

Scenario 1: The Bus That Won't Wake Up

A 2018 pickup comes in with multiple U-codes across every module, no communication with the PCM, and a no-start. Resistance at the DLC reads 60 ohms — termination looks fine. Bias voltage with key on shows 0V on both CAN-H and CAN-L. The bus isn't being pulled down; it simply has no power. Check the fuses and the ignition switched power feed to the gateway module first. In this case, a blown fuse killed power to the gateway, and the entire network went dark. Five-minute fix once you know where to look.

Scenario 2: One Module Killing the Network

A 2015 sedan comes in after a minor front-end collision. Multiple U-codes, HVAC inoperative, instrument cluster partially dead. Resistance at the DLC reads 12 ohms — far too low. The waveform on the scope is completely flat. Using the half-split method, disconnecting the right front area modules restores the bus resistance to 60 ohms. The ABS module, which took impact damage in the collision, has an internal failure and is clamping CAN-L to ground. Replace the ABS module, verify bus operation, done.

Scenario 3: Intermittent Communication Loss

A 2020 crossover has intermittent U-codes that come and go, customer complaint of random warning lights. Resistance and bias voltage check out when the vehicle is cold in the shop. Connect a scope and drive the vehicle — when it warms up, the waveform starts showing ringing and noise on both channels. The problem is a high-resistance splice in the CAN bus harness that expands under heat and intermittently opens the circuit. No code, no obvious failure in the shop — you only catch it with a scope under operating conditions.

The Bottom Line on CAN Bus Diagnostics

CAN bus is not complicated once you understand what it's trying to do. Two wires, a differential signal, and 120-ohm resistors at each end. Your three measurements — resistance at the DLC, bias voltage with key on, and waveform quality on the scope — cover the majority of what you need to know about the health of the bus before you start pulling connectors.

Read the U-codes first and read all of them. Multiple U-codes across multiple modules point to the network. A single U-code points to a specific module. Use the half-split method to find the bad actor efficiently. And always verify your repair with a scope — a measurement that looks right on a DVOM can still look wrong on an oscilloscope, and the scope doesn't lie.

CAN bus problems are fixable. They just require a process.

Related Articles

Disclaimer: This article is for educational and informational purposes only. Technical specifications, diagnostic procedures, and repair strategies vary by manufacturer, model year, and application — always verify against OEM service information before performing repairs. Financial, health, and career information is general guidance and not a substitute for professional advice from a licensed financial advisor, medical professional, or attorney. APEX Tech Nation and A.W.C. Consulting LLC are not liable for errors or for any outcomes resulting from the use of this content.