Back in the mid-1980s, the federal government pushed various automotive brands to execute new programs in the interest of emissions control. As part of this effort, digital systems known as Onboard Diagnostic-I or “OBD-I” systems emerged. These plug-in systems were largely non-standard, and differed significantly in terms of what kind of data was available and how easy it was to access. However, at the same time, more and more electronic systems were being fitted into consumer vehicles.
As a result, by the time the mid-90s rolled around, initial OBD-I systems were supplanted by new, highly-standardized systems renamed OBD-II. These refined devices held comprehensive data indices, offering access to virtually all electronic vehicle sensors.
So, now that we have an idea of where these systems came from, let’s get into the details of OBD-II trouble codes – what they are, how they’re generated, and what they mean.
What Are OBD-II Trouble Codes?
Generally speaking, OBD-II codes are standardized diagnostic trouble codes generated by a vehicle's onboard computer system and used by technicians and DIYers to diagnose potential issues within a vehicle's systems.
Each code represents a specific issue or malfunction, providing a numeric or alphanumeric identifier. To access and read these codes, a special scan tool is used. Most OBD-II scanners also allow users to clear trouble codes from the vehicle's memory after resolving an issue.
How Are OBD-II Codes Generated?
OBD-II trouble codes are generated and stored in the OBD-II system through a series of sensors and data monitoring processes. The process usually looks something like this:
A sensor detects an out-of-range parameter, like oxygen levels in the exhaust gases being outside what’s normally expected. The vehicle's onboard computer, or Engine Control Module (ECM), which monitors all these sensors, notes the deviation and identifies the issue as an error.
This error essentially sends up a little red flag in the form of a diagnostic trouble code, which is stored in the vehicle's memory. It remains there until you or your mechanic retrieves and clears it using an OBD-II code reader.
A Note On Scan Tools
OBD-II scanners are handheld devices that interface with a vehicle's internal electronic systems. They are designed to retrieve and interpret diagnostic trouble codes, but not all scanners are created equal. These tools vary widely in price due to differences in their capabilities, features, and build quality.
Basic scan tools that simply read and erase trouble codes can be had for as little as $25-$30. However, if you’re looking for more advanced diagnostic features – like live data streaming, graphing capabilities, and ABS/airbag system diagnostics – or the ability to diagnose a broader range of vehicle makes and models, then you’ll be steadily climbing the price scale. (Some highly-capable models can reach into the thousands.)
That said, the average DIY enthusiast who just wants to display codes and gather some helpful diagnostic direction, can easily find a capable model that fits the bill for under $100.
OBD-II Code Structure: What It All Means
As noted, with OBD-II came more standardization, and that means diagnostic trouble codes all rely on the same format. It consists of a five-character alphanumeric sequence initiated by a letter and then followed by four numerals.
The first character indicates the code's category, and the following characters provide more information about the specific issue.
Here's a general breakdown of the code structure:
P (Powertrain). Codes starting with "P" relate to powertrain issues, including engine, transmission, and drivetrain components.
B (Body). The "B" category relates to the body of the vehicle, including lighting, air conditioning, and other climate control systems.
C (Chassis). Codes with "C" relate to the vehicle’s chassis and suspension These codes often deal with issues like ABS sensor malfunctions, stability control, and steering.
U (Network). The "U" category relates to the vehicle’s communication network and data exchange throughout the vehicle’s sensor arrays, and related electronic components. (For example, if there is a wiring issue causing communication problems between the ECM and other modules in the vehicle, it would send up a U-based trouble code.)
Following Characters (Specific Issue). After the category character (i.e., P, B, C, or U) the following digits and letters provide more detailed information about the specific issue. These characters vary based on the manufacturer and vehicle model but typically, they include numbers and letters that specify the subsystem, component, or nature of the problem.
There are databases and resources available that provide detailed breakdowns and descriptions of diagnostic trouble codes. Many are online, where you simply type in the code and receive an explanation of what each character means. However, we always recommend that avid DIYers pick up a physical OBD-II Code Reference Guide to keep on hand.
Step-By-Step Code Retrieval Using An OBD-II Scanner
Here’s a general step-by-step on how to read an OBD-II trouble code:
Locate the OBD-II port. Typically located under the dashboard on the driver's side of the vehicle, the port features a 16-pin connector, which is usually rectangular in shape.
Plug in the OBD-II scanner. Connect the OBD-II scanner's cable or adapter to the OBD-II port in the vehicle.
Turn on the vehicle's ignition. Turn the vehicle's ignition to the "ON" position without starting the engine. This allows the OBD-II scanner to power on and communicate with the vehicle's onboard computer.
Access the OBD-II menu. On some handheld OBD-II scanners, the trouble code retrieval process will begin automatically. However, for others, you may need to navigate through the scanner's menu to find the "Read Codes" or "Retrieve Codes" option.
Scan for trouble codes. Once you select the "Read Codes" option, the OBD-II scanner will communicate with the vehicle's onboard computer and retrieve any trouble codes stored in its memory.
Note the trouble codes. The scanner will display the retrieved trouble codes on its screen. Again, each code is typically a five-character alphanumeric string (e.g., P0123, B0567, C1234, U0140).
Access the code library. Refer to the OBD-II code library or database to interpret the meaning of each trouble code. The code library will provide descriptions of the specific issues or faults associated with each code.
Identify the issues. Match the retrieved codes with their corresponding descriptions in the code library to identify the specific issues affecting the vehicle's systems or components.
Diagnose and address the problems. Based on the trouble codes and their meanings, you can choose to proceed with further diagnostic procedures through a professional, or begin making repairs/replacements yourself.
Clear the trouble codes (Optional): After resolving the problems, you may choose to clear the trouble codes from the vehicle's memory using the OBD-II scanner. This step ensures that only current and relevant codes remain in the system.
Interpreting OBD-II trouble codes is an important skill to have as a DIY enthusiast, since they’re basically your vehicle’s way of communicating to you what’s wrong. Getting them right is even more critical, as it helps you save money and time on repairs, keeps your ride safe, and prevents bigger issues down the road. Otherwise, you might end up fixing things that don't need fixing or missing out on fixing what really matters, ultimately impacting vehicle performance and reliability. Thankfully, with a little patience and practice this is a skill you can master with little difficulty. Happy code-cracking!