What Is a U-Code on a Car Scanner? Network Communication Codes Explained

A U-code is a diagnostic trouble code that starts with the letter U, which places it in the network category of the standardized OBD-II code format. P codes point to the powertrain, B codes to the body, and C codes to the chassis. A U-code is a vehicle communication trouble code. It means a control module found a problem with the data it exchanges with other modules. To diagnose it correctly, you first need to understand what that message is really saying.
Lost messages: what a U-code actually records
Modern vehicles spread their functions across many electronic control modules. The engine controller, transmission controller, ABS unit, instrument cluster, body controller and others share information over one or more data networks, most commonly a Controller Area Network (CAN). Many modules broadcast messages on a regular schedule, such as engine speed, vehicle speed or switch states. Other modules on the network expect those messages to arrive within a set time window. When an expected message stops arriving, arrives corrupted, or contains values that make no sense, the receiving module can log a U-code. In short, a U-code usually records a missing or bad conversation. It does not directly identify a failed part.
The four characters after the U follow a structure. Codes beginning with U0 and U3 are generally defined by the industry standard, so their basic meaning is consistent across manufacturers. Codes beginning with U1 and U2 are manufacturer-controlled, and their definitions come from the vehicle maker's service information. A large share of generic U-codes describe lost communication with a named module. U0100, for example, is widely defined as lost communication with the engine or powertrain control module. Other U-codes describe a communication bus that has shut itself off, or invalid data received from a specific module. That last type means the messages arrived but failed a plausibility or integrity check.
Messages go missing for a limited set of reasons. The sending module may have lost power or ground, so it cannot transmit at all. The wiring between modules may be open, shorted to power or ground, or shorted between the two network wires. Connectors may be corroded, loose or water-damaged. Low system voltage, such as a weak battery or a voltage dip during cranking, can briefly knock modules offline. Aftermarket devices plugged into the diagnostic port or spliced into network wiring can disrupt traffic. Less often, the sending module itself has failed internally or has a software problem.
Module location: who set the code and where it lives
The most common mistake with U-codes is mixing up the module that stored the code with the module the code names. If a scanner shows a lost-communication code for the ABS module, that code was usually stored by some other module that stopped hearing from the ABS unit. The ABS module may have no codes of its own because it was offline, or it may report that it lost contact with the rest of the network. So two questions matter: which module stored the code, and which module the code says went silent. Most full-featured scan tools show the storing module next to each code. That detail is often more useful than the code description itself.
Physical location matters once you start testing, and it is entirely vehicle-specific. Similar modules can sit under the dash, behind kick panels, under seats, in the engine bay or in the trunk, depending on the design. The reliable source is the manufacturer's service information. Its wiring diagrams and network topology diagrams show where each module sits, which bus it connects to, and where connectors and splice points are. Some vehicles route different networks through a central gateway module, so a fault on one bus may not appear on another. Many scan tools can also display a topology or module list showing which modules respond. This gives a quick map of where communication is breaking down.
Diagnosis: working from the pattern to the fault
Diagnosis normally starts with the basics, because network faults are sensitive to power quality. 1) Confirm the battery is in good condition and the charging system works, since low voltage alone can set communication codes. 2) Run a full-system scan that reads every module, not just the engine controller. 3) Record all codes along with their status: current (active) or stored (history). 4) Note which modules fail to respond at all. This snapshot is worth saving before you clear anything. After clearing, you can see which codes return and under what conditions.
The pattern of codes then guides where you look next. • If several modules all report lost communication with the same module, suspect that module's power feed, ground, fuse, connector or local wiring. • If one module reports losing contact with many others, the problem may be on that module's side of the connection, including its own supply or network branch. • If most or all modules stop responding, or the scanner cannot connect at all, suspect the network itself: a shorted bus, a damaged section of wiring, or a gateway issue. Comparing the codes with the topology diagram usually narrows the search to one branch or one component.
Physical testing confirms the theory. On many vehicles, the high-speed CAN bus can be checked at the diagnostic connector. Pins 6 and 14 of the standard OBD-II connector carry CAN high and CAN low. With the battery disconnected, a typical high-speed CAN bus with two 120-ohm termination resistors measures about 60 ohms between those pins. A reading near 120 ohms suggests one termination path is open. A reading near zero suggests a short between the lines. Voltage checks, and ideally an oscilloscope, show whether both lines are active and switching normally. A common way to isolate a module or segment that is pulling the bus down is to disconnect modules one at a time while watching the bus. Exact values and test points depend on the vehicle and network type, so always check them against service information.
Practical implications and limits
Your tool determines how much of this picture you can see. Basic code readers often access only the engine and emissions-related modules. A U-code stored in a body, chassis or infotainment module may never appear on them. That gap can make the problem look intermittent or invisible when the data is actually there. Symptoms vary just as widely. A lost message might cause a warning light, a gauge that drops to zero, disabled features or, where an immobilizer or engine controller is involved, a no-start. A U-code paired with a clear symptom deserves more urgency than a lone history code with no driveability effect.
There are important limits on what a U-code alone can tell you. • History codes often appear after a battery disconnect, a jump start or a period of low voltage, and they may not point to an ongoing fault. • Replacing the module named in the code is a frequent and costly misstep, because the cause is more often wiring, power or a connector. • Many replacement modules need programming or configuration before they will communicate properly. • Some newer vehicles use security gateways that limit what aftermarket scanners can read or clear. • Manufacturer-specific code meanings and test procedures differ, so a generic code definition is a starting point, not a final answer. If the pattern points to a network-wide fault or the vehicle will not start, a technician with manufacturer-level diagnostic access and wiring information is usually the most efficient route.