For our purposes, I’m going to assume that your car is model year 1996 or newer. That means that it’s OBD II, or On Board Diagnostics, second generation. The check engine light could mean about seven or eight hundred different things depending on the car you have. And that’s a conservative figure.
The check engine light comes on in your dash when the computer has stored a diagnostic trouble code. Each one of the different codes is associated with a diagnostic procedure that must be performed when that code is set. Here’s an example of an OBD II code: P0300
Breaking Down the OBD II Code
The first character in an OBD II diagnostic code is a letter; this letter identifies the system in the car that the code relates to. For example, if the first character is a “P”, is the code associated powertrain. The other prefixes are “B”, or “Body” codes, “C”, or “Chassis” codes, and “U”, or “Undefined” codes. In our example, we have a “P”, so it’s a powertrain code.
The second character in an OBD II code will either be a “0” (number zero, not letter “O”) or a “1”. “0” series codes are called generic OBD II codes, and are the same for all manufacturers, although not all diagnostic procedures for a given generic code will be the same across manufacturers. “1” series codes are called “enhanced” codes and are defined by the manufacturer. Our example code is a “0”, so it’s a generic code.
The third character identifies the subsystem that the code refers to. For example, a “1” refers to “emission management (fuel or air)”. For our example, a “3” refers to “ignition or misfire”.
The fourth and fifth characters relate to the particular failure within the previously defined parameters. In our example, P0300, we have a random or multiple cylinder misfire. If the last digit was, say, a “3” (P0303), that would mean a misfire in cylinder #3. Once we’ve retrieved the code or codes stored in the car’s computer, we go to our computer information database and retrieve the diagnostic procedure(s) that we need to follow to find the actual problem.
But What Does it Mean?
Sometimes I think diagnostic codes were the worst idea ever inflicted on humanity. Every day we fight an uphill battle because of a far too common misconception among the motoring public that “pulling the codes” is the same thing as diagnostics. Lots of people go to Autozone or one of the other big chains, get the code or codes read, and then assume they know what’s wrong with the car. For example, let’s say Mr. Smith gets his code read and he has a Po131 stored. The generic definition of that code is “O2 sensor circuit voltage low, bank 1 sensor 1”.
Mr. Smith replaces the upstream sensor in bank 1 of his Bulgemobile, clears the computer, and goes merrily on his way. A day or two later, the light comes back on, much to dear Smitty’s chagrin! What happened? Well, Mr. Smith didn’t actually diagnose his problem. He has a small vacuum leak that’s causing his exhaust gases to be leaner than the computer thinks they should be, and the sensor is doing its job correctly. He’s out the money, time, and aggravation of replacing a good part, and is back where he was – with a broken car.
A code is really nothing more than a symptom.
A few of the problems that cause the check engine light to come on are really minor, and will not create a huge problem if not immediately fixed. In these cases, you can hold off for some time if need be. The danger with delaying repairs lies in the literally hundreds of codes, but there’s only one check engine light! If something else happens, handle it immediately to prevent total meltdown, you won’t know about it until it’s too late – the light’s already on.