Technical Training

Network Communication Diagnosis: CAN Bus, U-Codes, and Finding the Bad Module

Anthony CalhounASE Master Tech9 min read

Modern Vehicle Networks

A modern vehicle is not one computer — it is a network of computers. A mid-range 2022 vehicle may have 30 to 50 electronic control modules communicating with each other constantly. The engine control module shares RPM, load, and fuel trim data. The transmission control module responds to engine load data to select the correct gear ratio. The body control module monitors switches and controls outputs. The instrument cluster displays information gathered from multiple modules. The ABS module shares wheel speed data with the stability control system. The HVAC module monitors temperature sensors and cabin conditions.

None of these systems can function in isolation. The instrument cluster cannot display engine RPM if the ECM stops transmitting it. The transmission cannot shift optimally if it cannot receive throttle position data from the ECM. The stability control system cannot function without wheel speed data from the ABS module. Every module depends on data from other modules, and the network that carries that data is the foundation everything else depends on.

When the network works correctly, all of this happens invisibly and seamlessly. When the network develops a fault, multiple systems fail simultaneously in ways that appear unrelated. A vehicle with a CAN bus fault may present with engine misfires, transmission shifting problems, instrument cluster failures, and ABS warning lights — all at the same time, all from a single root cause in the communication network.

Understanding vehicle networks is not optional knowledge for modern automotive technicians. It is a fundamental diagnostic skill. Without it, a network fault generates a list of symptoms that sends you chasing individual systems — spending hours testing a transmission that is actually working correctly but cannot receive the data it needs to shift properly. With it, you recognize the network failure pattern immediately and go directly to the root cause diagnosis.

U-Codes — Reading Network Fault Codes Correctly

The SAE J2012 fault code standard defines U-codes as network communication codes. Every U-code tells you the same thing: one module attempted to communicate with another module and received no response. The structure of the U-code tells you which two modules are involved.

U0100 means lost communication with the ECM/PCM. The module reporting this code — which you can identify in the scan tool by checking which module stores the code — expected to receive data from the ECM and did not get it. U0101 is lost communication with the TCM. U0121 is lost communication with the ABS control module. U0155 is lost communication with the instrument panel cluster. Each U-code references a specific module by its standardized code number.

The critical interpretive rule: the module that stores a U-code is the one that is working. The module named in the code is the one that stopped communicating. U0100 stored in the TCM means the TCM is working and tried to receive ECM data but could not — focus on the ECM's ability to communicate, not the TCM.

A single U-code points to a specific module or its circuit. A module that has lost power to its primary supply fuse stops communicating. A connector that has backed out of the module housing stops communication. A module that has internally failed stops communicating. These single-module faults generate one or a few U-codes from the modules that expected to hear from the failed module.

Multiple U-codes — five, ten, fifteen codes all appearing at once — tell a different story. When every module on the network is setting U-codes for every other module simultaneously, the network itself has failed. Not all those individual modules failed at once. Something has disrupted the communication bus that all of them share, preventing any of them from communicating. That single bus-level fault generates a cascade of U-codes across the entire vehicle. Recognizing this pattern immediately redirects the diagnosis from individual module testing to network diagnosis.

CAN Bus Basics

Controller Area Network — CAN bus — was developed by Bosch in the 1980s and became the dominant automotive network protocol because of its reliability, noise immunity, and ability to allow multiple modules to share a two-wire network without a central controller. Every module on the CAN bus can send messages and every module can receive them. Messages are prioritized — higher-priority messages preempt lower-priority ones if they try to transmit simultaneously. The system is self-organizing.

CAN bus uses two wires — CAN High (CAN-H) and CAN Low (CAN-L) — that run as a twisted pair throughout the vehicle. In the idle state — called the recessive state — both wires sit at approximately 2.5 volts. When a module transmits a dominant bit, CAN-H rises to approximately 3.5 volts and CAN-L drops to approximately 1.5 volts. The receiving modules read the voltage difference between the two wires, not the absolute voltage of either wire. This differential architecture is what gives CAN bus its resistance to electrical noise — external interference affects both wires equally and the difference between them stays the same.

CAN bus operates at different speeds depending on the network. High-speed CAN for powertrain and chassis typically runs at 500 kilobits per second. Medium-speed body CAN may run at 125 kilobits per second. Knowing the speed matters for oscilloscope diagnosis because the scope settings differ based on data rate. High-speed CAN requires faster scope settings to see individual bits than medium-speed CAN.

The 60-Ohm Test — Fastest CAN Bus Health Check

Every end of a CAN bus backbone has a 120-ohm terminating resistor between CAN-H and CAN-L. These resistors serve two purposes: they set the correct impedance for the transmission line to prevent signal reflections that would corrupt data, and they provide the known resistance that makes the 60-ohm test possible.

Two 120-ohm resistors in parallel equal 60 ohms. This is the single most important measurement in CAN bus diagnosis. Here is the exact procedure: turn the ignition off. Disconnect the battery negative cable. Wait 30 seconds for all module capacitors to discharge. Measure resistance between pin 6 (CAN-H) and pin 14 (CAN-L) of the OBD-II diagnostic link connector under the dash.

If you read approximately 60 ohms — between 55 and 65 is typical — both terminating resistors are present and the bus wiring between them has no shorts. The physical CAN bus is intact.

If you read approximately 120 ohms, one terminating resistor is open — either the resistor itself has failed, or the bus wire between that end terminator and the DLC is broken, isolating that terminator from the measurement point. Find the two terminator locations on the vehicle (service information shows this) and measure resistance at each terminator location individually to identify which one is open.

If you read near zero ohms — less than 10 — CAN-H and CAN-L are shorted together somewhere on the bus. This shorts every module on the network and prevents all communication. The short may be in the wiring or inside a module that has developed an internal CAN bus short.

If you read over-limit (OL) — open circuit — both terminators are open, or the bus wiring is completely broken between the terminators and the DLC. This is rare but indicates severe wiring damage or two simultaneous terminator failures.

The battery must be disconnected for this test. With the battery connected, modules are powered and their internal circuitry affects the resistance reading — you get an inaccurate measurement that can mislead the diagnosis. Battery disconnected, ignition off: then measure.

Finding the Bad Module

When the 60-ohm test shows a low resistance — near zero ohms — a module or the wiring has an internal short between CAN-H and CAN-L. This short pulls both bus lines to the same voltage, preventing the differential signaling that carries data. Every module connected to the bus is affected — none of them can communicate because the shorted bus holds both lines at the same voltage regardless of what any module transmits.

To find the shorted module, you need to isolate modules one at a time and observe the bus resistance. There are two methods: connector unplugging or fuse removal. Fuse removal is faster when modules can be isolated by pulling their power supply fuses — the module de-powers and its internal connection to the bus becomes high impedance.

Pull one module's fuse. Remeasure resistance between pins 6 and 14. If the resistance jumps to 60 ohms, the de-powered module was the one shorting the bus — that module has an internal short between its CAN bus connection and the bus lines. Reinstall the fuse, observe that the low resistance returns, confirm the fault, and replace that module.

If the resistance stays low after pulling the fuse, that module is not the source. Reinstall the fuse and move to the next module. Work through the modules systematically, starting with those most commonly associated with internal CAN bus failures on that specific vehicle platform. Service data and known failure patterns for the vehicle can guide the order.

On some vehicles, modules are not fuse-isolated individually — multiple modules share a fuse. When you pull a shared fuse and the resistance changes, you have isolated the group of modules containing the fault. Then unplug modules in that group one at a time to identify the specific offending module.

CAN Bus with a Scope

The 60-ohm resistance test confirms physical layer integrity. The oscilloscope shows you whether the data being transmitted on that intact physical layer is clean and valid. A bus that passes the resistance test but still has communication faults has good wiring and resistors but corrupted data — noise, a bad module output driver, or water intrusion adding capacitance to the bus.

Connect a dual-channel scope to pins 6 (CAN-H) and 14 (CAN-L) at the DLC. With ignition on and modules communicating, you should see rapid digital pulses. CAN-H pulses from the 2.5V idle level up to approximately 3.5V. CAN-L pulses from 2.5V down to approximately 1.5V. The two waveforms are mirror images — when CAN-H goes up, CAN-L goes down by the same amount at the same time. Between message frames, both lines return to 2.5V. This pattern is a healthy CAN bus.

Noise appears as jagged edges or random spikes. Asymmetric waveforms — where CAN-H reaches the correct level but CAN-L does not drop as far as expected — indicate an imbalance in bus loading, possibly from a module with a degraded output driver. Rounded pulse edges instead of clean square transitions indicate excessive capacitance on the bus from water intrusion in a connector.

Unplug modules one at a time while watching the scope. When you disconnect the module responsible for the corruption, the waveform cleans up immediately. Reconnect it and the corruption returns. Before replacing the module, inspect the connector for corrosion — a corroded connector can cause the same waveform symptoms as an internally failed module and is a much cheaper fix.

Diagnosing Multiple Simultaneous U-Codes

When a vehicle comes in with a scan tool full of U-codes — ten, fifteen, or more codes spanning multiple systems — your first diagnostic move is the 60-ohm test, not individual module testing. Multiple simultaneous U-codes indicate network failure, not multiple module failures. One test tells you the state of the network's physical layer and directs everything after it.

If the 60-ohm test returns 60 ohms, the physical layer is intact and the issue is above the physical layer — data corruption, a module transmitting garbage on an intact bus, or an intermittent issue that is no longer active. Connect the scope to confirm bus signal quality.

If the 60-ohm test shows an abnormal reading, you have found the root cause of all those U-codes. Fix the physical layer first — find the short, the open, the bad module — and then retest. In most cases, resolving the physical layer fault resolves all the U-codes simultaneously. The cascade of codes was a symptom of the one root cause.

After clearing codes and repairing the bus fault, verify communication is restored by connecting a scan tool and confirming that all expected modules show up in the module list and that no new U-codes appear. Then perform a complete functional test of the systems that were reporting faults — verify the transmission shifts correctly, the ABS activates in self-test mode, the instrument cluster displays all channels properly. The network repair has to be followed by system function verification to confirm all the downstream effects of the original fault are resolved.

The Bottom Line

Network communication diagnosis is a required skill for any automotive technician working on vehicles built in the last fifteen years. The tools are simple — a scan tool to read U-codes, a multimeter for the 60-ohm test, and an oscilloscope for bus waveform analysis. The methodology is systematic — read the codes, understand whether they indicate a single module fault or a network fault, test the physical layer first, then trace the fault to its source. Get this right and a vehicle that appears to have a dozen electrical problems resolves to one root cause fix. Automotive technician training that covers CAN bus diagnosis produces techs who do not get lost in U-code cascades.

APEX Tech Nation — automotive technician training built by techs, for techs. Try Pro free for 7 days.

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.