About OBD2

If your diagnostic connector looks like this one, then you have an OBDII system,and it requires a scanner to access the codes. All vehicles after 96 have the OBDII systems and some 95 models, too.

 
OBDII Code Definitions

[ Acura ] [ Alfa Romeo ] [ Audi ] [ BMW ] [ Buick ] [ Cadillac ] [ Chevrolet ] [ Chrysler ] [ Citroen ] [ Daewoo ] [ Daihatsu ] [ Dodge ] [ Eagle ] [ Ford ] [ Freightliner ] [ GEO ] [ Genesis ] [ GM ] [ GMC ] [ Honda ] [ Hummer ] [ Hyundai ] [ Infiniti ] [ Isuzu ] [ Jaguar ] [ Jeep ] [ Kenworth ] [ Kia ] [ Lamborghini ] [ Land Rover ] [ Lexus ] [ Lincoln ] [ Mack ] [ Mahindra ] [ Mazda ] [ Mercedes-Benz ] [ Mercury ] [ Mini ] [ Mitsubishi ] [ Nissan ] [ Oldsmobile ] [ Opel ] [ Peterbilt ] [ Peugeot ] [ Plymouth ] [ Pontiac ] [ Porsche ] [ Ram ] [ Renault ] [ Saab ] [ Saturn ] [ Scion ] [ Subaru ] [ Suzuki ] [ Toyota ] [ Volvo ] [ VW ]

Warning: Please check for manufacturer specific codes with an appropriate manual. We recommend Torque Pro for diagnostics.  Be sure to double check the codes. Codes may be Manufacturer specific and may not match the ones listed here.  Check specific manufacturer pages on the site, as some of them, We list the OBD2 codes on those pages for those specific vehicles.

Configuration of 16 pin data link connector (OLC)

Some 1995 GM vehicles have the 16-pin connector but have accessible OBD-I codes. Check the underhood emissions sticker to confirm, and if yours is OBD-I, the codes are accessed by bridging terminals 5 and 6. If your vehicle is OBD-II, a scan tool or computer is required to access the codes.

TERMINALDESIGNATION
Pin 1Manufacturer specific
Pin 2SAE J1850 bus +ve
Pin 3Manufacturer specific
Pin 4Chassis ground
Pin 5Signal ground
Pin 6CAN data bus, high – ISO 15765-4
Pin 7K-line – ISO 9141-2/ISO 14230-4
Pin 8Manufacturer specific
Pin 9Manufacturer specific
Pin 10SAE J1850 bus -ve
Pin 11Manufacturer specific
Pin 12Manufacturer specific
Pin 13Manufacturer specific
Pin 14CAN data bus, low – ISO 15765-4
Pin 15L-line – ISO 9141-2/ISO 14230-4
Pin 16Battery positive

OBD II Trouble Codes: Everything You Ever Wanted to Know

If you have ever been confused either by the sheer number of OBD II trouble codes in use today, or by the differences between generic trouble codes, manufacturer-specific trouble codes, and so-called enhanced trouble codes you are not alone. In fact, many professional mechanics sometimes stumble over ambiguous or unclear trouble code definitions, so it is not surprising that many, if not most non-professional mechanics often experience great difficulty in understanding or interpreting what a trouble code means.

Therefore, in this article, we will explain what trouble codes are, why they are the way they are, and how to interpret them to arrive at logical diagnostic conclusions. However, before we get to specifics, we need to understand how troubles, as we know them today, came to be. Let us start with answering this question-

Why do we need standardized trouble codes?

The history of the system we know today as OBD II is a long and complicated one, but we do not have to delve too deeply into the historical details here, beyond saying that at its core, the OBD II system as it exists today is less of a diagnostic system that it is an emissions control system.

At first reading, this might sound like a contradiction in terms, but it’s not. The fact is that OBD II evolved directly out of OBD I, which was a first attempt by the US Government to enforce emissions regulations in the US domestic market, where air pollution, especially in California, caused by automobiles was taking on dangerous and life-threatening dimensions by the mid to late 1980s.

However, from both a regulatory and enforcement perspective, OBD I was a spectacular failure because the regulations that underpinned the effort somehow failed to include the most important aspects of the envisioned plan to reduce exhaust emissions. Foremost among these omissions was a failure to mandate at least a measure of standardization not only in terms of what the onboard systems would monitor, but also how these systems would report emission control system failures, defects, and malfunctions.

There are many other examples of regulatory failures in the OBD I system, but limited space precludes a comprehensive discussion of all, or even most of them here. Nonetheless, the upshot of the failure to mandate at least a minimum of standardization created a situation where every car manufacturer was for all intents and purposes, free to implement the OBD I emissions control system in whatever way suited them best.

We can list many examples of the chaos this had caused in the car repair industry at the time, but the most serious problem involved fault codes. In practice, the regulations called for two-digit fault codes to indicate specific issues, but the result of a lack of enforceable standardization was that car manufacturers were not obliged to assign the same two-digit codes to the same problem. For example, OBD I trouble code 17 on a Ford product might indicate a cylinder-specific misfire, while the same OBD I trouble code on a GM product might indicate a fuel pressure issue.

Moreover, the period from about 1986 onwards saw several rapid advances and developments in fuel injection systems, as well as the mandatory introduction of catalytic converters, which greatly increased the complexities of the engine and fuel management systems of the time. This was not necessarily a bad thing, but the problem for the mechanics of the time was that car manufacturers were forced not only to update/upgrade the control modules then in use, but also to increase the number of control modules to accommodate added monitoring and control functions.

The continual updates and upgrades to OBD I systems meant that the trouble codes in use at the time also changed. For instance, the advent of catalytic converters and oxygen sensors added at least 200 new trouble codes, but since these were not standardized, it became impossible to design objective tests to determine whether (or not, as the case may have been) a vehicle passed or failed an emissions test.

By 1990, it became clear to the Federal Government that OBD I was a complete disaster in the sense that it could not be enforced in any meaningful way. Nonetheless, the upside of OBD I was that the enforced introduction of catalytic converters had produced significant improvements in the air quality in all major metropolitan areas in the USA, which brings us to-

The birth of OBD II standards

When it became clear the OBD I fiasco had to be resolved, the Government tasked the SAE (Society of Automotive Engineers) in 1991 to develop a new, and greatly more organized and standardized system to enforce emissions regulations. To do this, however, the SAE required inputs from other government agencies, including, but not limited to, the Environmental Protection Agency, and the California Air Resources Board. The SAE also invited inputs from the major car manufacturers, oil and fuel refiners, fuel and oil importers, fuel formulators, and distributors, among many other industry players.

We can skip over the initial discussions, disagreements, turf wars, and threatened lawsuits when this process began, and focus on what it was the Government wanted. It wanted a standardized onboard system that monitored a minimum required number of systems, functions, and components that produced, controlled, minimized, and affected exhaust emissions. It also wanted a standardized onboard diagnostic system that could be a) tested for functionality in the same way across all vehicle makes and models, and b) a system that would recognize when it had been tampered with.

One other requirement touches on the topic of this article; the requirement for standardized fault codes that indicated the same problem on all vehicles, regardless of the vehicle’s make or model. Moreover, all of the above standards and requirements were to be made to apply to all light vehicles that are manufactured and sold in the US domestic market, including imported makes and models.

Accomplishing that was a very tall order indeed, but by 1992/3, the SAE and its partners had produced a remarkable document, named SAE standard J2012: Diagnostic Trouble Code Definitions, which was subsequently enshrined in law, this law being Act of Congress CFR Section(s): 40 CFR 86.1806-04(h)(l)(iii). Of course, this Act had been revised many times over the years to accommodate new automotive technologies, but at its core, it remains the official source of reference with regard to-

  • Trouble code definitions that apply to all vehicle makes and models i.e., generic trouble codes
  • Emission related component locations
  • Emission related component descriptions and terminology
  • Automotive acronyms and/or abbreviations, although SAE standard J1930 has become the authoritative document in this regard

Most importantly though, this document also provides detailed instructions on how fault codes must be constructed to convey the maximum amount of information about a fault, system, or component without creating confusion between closely related faults, systems, and components. In the next section, we will discuss this in some detail, but before we get to the specifics, it is important to note that-

There are no “generic codes”

Although most, if not all online trouble code lookup tools and databases list codes either as “Generic” or “Manufacturer-specific”, neither the Act nor SEA Standard J2012 (or any other SAE Standard, for that matter), use the term “generic codes”. While no great harm is done by using the term “generic” to refer to trouble codes that are not specific to faults on the products of any given vehicle manufacturer, it helps to remember that SAE standard J2012 mentions only two categories* of trouble codes when searching for information on obscure or little-used codes.

* Fairly recent revisions of SAE Standard J2012 include references to so-called “enhanced trouble codes”, which are trouble codes that contain an additional two digits (as a suffix) to allow for advances in, and developments of existing technologies. As a practical matter, this allows car manufacturers to use existing codes, but with additional information about a system, part, or component to make diagnosing issues easier. We will discuss these trouble codes in a following section.

In fact, including the search term “generic” in online searches for some trouble codes may not return any results, while including either “ISO/SAE Controlled” or “Manufacturer Controlled” will often yield the desired results. Having said that, here are some details of the two principal categories of trouble codes-

ISO*/SAE Controlled Codes (Core DTCs)

*The ISO (International Organization for Standardization) is a nongovernmental organization that comprises standards bodies from more than 160 countries, with one standards body representing each member country. In the case of the USA, the SAE is the organization that controls the implementation and maintenance of Standard J2012 in the US market. As a practical matter though, all the member countries of the ISO have adopted SAE Standard J2012 virtually unchanged, meaning that fault codes are implemented almost perfectly uniformly in all the major automotive markets. (Italics and bolding added for emphasis)

Some faults occur often enough on a sufficiently large number of vehicles for the ISO/SAE to assign a specific trouble code to that fault. One example of this is random misfires, which can occur on any internal combustion for a wide variety of reasons, regardless of the vehicle’s make or model. In this case, the ISO/SAE has assigned code P0300, which all manufacturers must assign to indicate a random misfire condition on all of their products. As a point of interest, random misfires are misfires that cannot be associated with a specific cylinder or cylinders.

Note though, that trouble codes in this category cannot be assigned by any car manufacturer to any common issue until a) the ISO/SAE has determined that the fault is common across a sufficiently large number of makes and models and b), the code intended to be assigned by a manufacturer has been approved for use by the ISO/SAE.

NOTE: It is important to note that all vehicle manufacturers are obliged to implement OBD II in ways that allow all aftermarket or non-manufacturer specific scan tools can access all ISO/SAE controlled trouble codes in all 10 diagnostic modes through the vehicle’s DLC (Data Link Connector), regardless of the communication(s) protocol(s) in use on their products.

Manufacturer Controlled Codes (Non-Uniform DTCs)

These are codes that have been made available for use by car manufacturers where differences in the design, implementation, and/or principles of operation of systems, parts, and components are a) sufficiently unique to warrant the use of a unique trouble code, and, b), where systems, parts, and/or components are proprietary, thus requiring unique or specialized diagnostic and/or repair procedures.

NOTE: Vehicle manufacturers are not obliged to make manufacturer-specific diagnostic trouble codes, diagnostic data, or fault data accessible to non-manufacturer-specific scan tools, although many high-end aftermarket scan tools have limited access to this data via the DLC.

However, all car manufacturers are legally obliged to follow the prescribed trouble code format when they assign trouble codes to faults that are specific to their products. Note though that although car manufacturers are free to design proprietary code formats for internal consumption, car manufacturers are obliged to “translate” such formats into the prescribed ISO/SAE Standard J2012-prescribed format. While there are many examples of such proprietary trouble code formats, one example from VW, and other vehicles in the larger VAG group, will suffice-

To indicate a circuit malfunction or an intermittent signal from a brake light switch, VW/VAG will typically use trouble code(s) 16955 or 001393 in dealership settings or in specialized independent shops that use VAG-specific diagnostic equipment. Note that in OBD II format, this code translates into P0571, which is an ISO/SAE Controlled, or so-called “generic” trouble code, which brings us to-

The structure of OBD II trouble codes

It is important to note that all OBD II-compliant trouble codes follow the same structure, regardless of whether any given code is ISO/SAE or manufacturer controlled.

Note: OBD II oxygen sensor designation
For “V” engines; BANK 1 is always on the side of the engine with the number 1 cylinder (odd cylinders), and BANK 2 is always on the side of the engine where the number 2 cylinder (even cylinders) is located.

OBD-II trouble code format

  • 5 character alpha-numeric trouble codes are made up as follows:
Letter PrefixFirst DigitSecond DigitThird DigitFourth Digit
P0108
12345

Letter prefix defines system group

B

Body – Refers to equipment in the passenger compartment such as power seats, power windows, sunroof, the A/C system, etc

C

Chassis – Refers to systems like the active suspension, air suspension (if fitted), steering system, and the brake system, etc

P

Powertrain – Refers to the powertrain, which includes the engine, all ancillary equipment that has the potential to affect emissions, and the interface between the engine and the transmission that establishes and maintains communication between the engine and the transmission

U

Network communications – Refers to all control modules on the vehicle, as well as the various serial bus communications systems and other devices that establish and maintain communication between all control modules on the vehicle

First digit defines code type

  • Body/chassis

0

SAE defined (OBD-11)

1

Manufacturer defined

2

Manufacturer defined

3

For future allocation

  • Powertrain

0

SAE defined (OBD-11)

1

Manufacturer defined

2

SAE defined (OBD-11)

3

P3000-P3399 – Manufacturer defined

P3400-P3999- SAE defined (OBD-II)

  • Network communications

0

SAE defined (OBD-11)

1

Manufacturer defined

2

Manufacturer defined

3

SAE defined (OBD-11)

Second digit/letter defines system area

From a diagnostic perspective, the second digit/letter serves to break the vehicle up into more easily manageable pieces, so to speak. Thus, this digit indicates the location of the fault more precisely, in the sense that it indicates in which subsystem on the vehicle the fault is located. As a point of interest, consider the “7” in P07XX codes; it indicates that the fault is in the transmission, as opposed to in the interface between the engine and the transmission. This is an important distinction, since some communication issues between the engine and the transmission can, and do mimic the symptoms and/or effects of transmission failures/defects.

Also, note that the letters A to F indicate issues, defects, and/or malfunctions that only occur on hybrid vehicles. These typically include issues with the high-voltage battery pack and/or the motor/generator, and/or the power electronics, as opposed to issues with the internal combustion engine or the emissions control system on the vehicle, although there are known exceptions to this rule.

  • Powertrain – P0/P1 code

0

Fuel, air or emission control

1

Fuel or air

2

Fuel or air

3

Ignition system or misfire

4

Emission control

5

Vehicle speed, idle speed control or auxillary inputs

6

Computer or auxillary outputs

7

Transmission

8

Transmission

9

Transmission

A

Hybrid propulsion

B

Hybrid propulsion

C

Hybrid propulsion

D

For future allocation

E

For future allocation

F

For future allocation
  • Powertrain – P2 code

0

Fuel, air or emission control

1

Fuel, air or emission control

2

Fuel, air or emission control

3

Ignition system or misfire

4

Emission control

5

Auxillary input

6

Computer and auxillary outputs

7

Transmission

8

For future allocation

A

Fuel, air or emission control

B

Fuel, air or emission control

c

For future allocation

D

For future allocation

E

For future allocation

F

For future allocation
  • Powertrain – P3 code

0

Fuel, air or emission control

1

Fuel, air or emission control

2

Fuel, air or emission control

3

Ignition system or misfire

4

Cylinder deactivation

5

For future allocation

6

For future allocation

7

For future allocation

8

For future allocation

9

For future allocation

A

For future allocation

B

For future allocation

c

For future allocation

D

For future allocation

E

For future allocation

F

For future allocation

  • Network communications

0

Network electrical

1

Network communications

2

Network communications

3

Network software

4

Network data

5

For future allocation

6

For future allocation

7

For future allocation

8 .

For future allocation

9

For future allocation

A

For future allocation

B

For future allocation

c

For future allocation

D

For future allocation

E

For future allocation

F

For future allocation

Third and fourth digits/letters define specific fault

These digits/letters indicate the actual fault on a granular level, although the cause of the problem is typically not indicated. Some examples of such indications include, but are not limited to-

  • …input circuit high or low
  • …input circuit intermittent
  • …sensor range/performance
  • …camshaft/crankshaft correlation
  • …camshaft correlation
  • …fuel pressure high or low
  • …lost communication with “X” control module

– and several thousand other possible failures, malfunctions, or defects that cover every aspect of every system, part, or component that can be monitored directly, or whose operation on or more control modules can infer based on observed failures or malfunctions of closely related systems, parts, or components.

NOTE: The trouble code is hexadecimal and therefore the third, fourth and fifth characters can be either a number (0-9), or a letter (A-F).

  • Unlike the decimal system that uses a base of 10, the hexadecimal system uses a base of 16. Using the characters 0-9 and A to F the number can be from 0-15.

Character

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

Value

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  • By using the hexadecimal system 2 characters can equate to a maximum number of 255, in the decimal system the maximum number with 2 characters is 99.
  • For example:

Hex

Decimal equation

Decimal

C8

(12 X 16) + (8 X 1)

 200

FF

(15x 16)+ (15x 1)

 255

100

(1 X 16 X 16) + (0 X 16) + (0 X 1)

 256

Example code P0300

Let us put the above into practice by decoding OBD II trouble code P0300, which is a common code on vehicles of all makes and models. In this case, the code can be broken down as follows-

  • P” indicates that the fault involves the Powertrain
  • 0” indicates that the code is ISO/SAE controlled, and therefore, applies to all vehicles
  • 3” indicates that the fault involves the misfire detection system
  • 00” indicates that the fault (misfire) occurs randomly, and cannot be associated with one or more specific cylinders

If however, the first digit in this example were “1”, the trouble code (now P1300) would be manufacturer controlled, and some examples of manufacturer-defined applications are listed below-

  • Chrysler/Dodge/Jeep: Ignition timing adjustment circuit failure
  • Ford: Boost Calibration Fault
  • GM: Ignitor Circuit
  • Lexus: Igniter Circuit Malfunction (Bank 1 Or No. 1)
  • Mercedes: Left CKP sensor (L5/4)
  • Opel: Fuel tank – empty
  • Saab: Torque Limitation Signal Low

The above should clear up most misunderstandings and misconceptions about how trouble codes are constructed, but there is one more type or category of trouble code that is often misunderstood, this being-

Enhanced trouble codes

As control technologies developed, in the sense that control modules are increasingly processing more data from multiple sensors, it became increasingly difficult for car manufacturers to assign ISO/SAE-controlled trouble codes to issues with multiple possible causes. Thus, to accommodate increasingly complex issues in modern vehicles, the SAE republished Standard J2012 in 2016 to include an appendix known as J-2012DA.

In essence, this appendix allows car manufacturers to add two additional digits to existing 5-digit ISO/SAE controlled codes to create enhanced, 7-digit codes that are better able to describe different issues in complex systems. Let us use OBD II trouble code P0300- “Random Misfire Detected” again as an example to see how this works-

Provided the car manufacturer uses a standard IS0/SAE controlled code such as P0300, the manufacturer can add as many two-digit suffixes to the basic codes as required to define the misfire issue further. For instance, Toyota has created three additional codes by adding suffixes to P0300, these new codes being-

  • P0300:00 – “Random / Multiple Cylinder Misfire Detected”
  • P0300:27 – “Random / Multiple Cylinder Misfire Detected (Emission) Signal Rate of Change Above Threshold”
  • P0300:28 – “Random / Multiple Misfire (Over Temperature) Signal Rate Above Allowable Range”

The expanded definitions for code P0300 may not mean much to many non-professional mechanics, but in professional settings like dealerships and advanced independent shops, the added information cuts the time spent on diagnostics dramatically. However, it should be noted that since many enhanced trouble codes are essentially hybrids between ISO/SAE Controlled codes and manufacturer-specific codes, these kinds of codes are generally not listed in online code databases of lookup tools. Thus, the most efficient way to decode enhanced codes is to consult a) dealer-level repair and/or service information for the affected vehicle, or b), Technical Service Bulletins published online, which leaves us with just one more thing, this being-

ISO/SAE reserved trouble codes

Also known as “Reserved by Document” codes, these are simply ISO/SAE controlled trouble codes that are reserved by the SAE and other regulatory/standards bodies for future use. Essentially, the J2012 standard makes provision for the fact that there will come a time when there will not be enough defined trouble codes available to accommodate all the advances in automotive technology.

This is particularly true of UXXXX, or communications/network codes, which explains why so many communications codes one sees in trouble code lookup tools or databases are listed as “Reserved”. In fact, during the past ten years or so, the ISO/SAE Standard J2012 has released several dozen reserved codes for “generic” use by car manufacturers in several major markets. In all cases, the codes were required to describe common faults in advanced serial communications systems, such as telematics systems in connected vehicles, which leaves us with this-

Conclusion

When dealing with fault codes it helps to remember that trouble codes have little diagnostic value. In practice, the only diagnostic value fault codes have is that they indicate that one or more signal outputs did not meet expected or desired values. Therefore, extracting fault codes from a vehicle is just the first step in a diagnostic process, and since all control and management systems on modern vehicles depend on signal inputs data processing, and use signal outputs to verify that the data had been processed. As a result, the presence of one or more fault codes is nothing more than an indication that something had gone wrong with the input, processing, and output process, so relying on fault code definitions as definitive diagnostic conclusions is bad diagnostic practice.

Nonetheless, diagnosing issues on modern vehicles without the aid of trouble codes would be almost impossible but if one understands what fault codes are, how they are constructed, and what information they are meant to convey, diagnostics becomes a whole lot easier- even for non-professional mechanics.

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

4 Comments
most voted
newest oldest
Inline Feedbacks
View all comments
James Ladson
10 months ago

Thank you for your help

Johan
Johan
3 years ago

My ECU do not connect with my OBD Scanner devise

Charles E Armijo
Charles E Armijo
2 months ago
Reply to  Johan

Can someone help me with this please

hailu abebe
hailu abebe
2 years ago
Reply to  Johan

my obd2 scan tool connected to DLC but no communication ,when diagnosis start and says fail