If you own a reasonably late model vehicle, at some point you are going to experience the little yellow "check engine" light illuminating in your gauge cluster. Just as the book A Hitchhiker's Guide to the Galaxy notes: “Don't Panic.” While possible, it’s highly unlikely your car is going to die immediately and leave you stranded on the side of the road. It could indicate something as simple as leaving your gas cap loose, or your car's catalytic system is no longer properly reducing the emissions out of the tailpipe. Hopefully this article will give you a rudimentary understanding of the often misunderstood Check Engine Light (CEL).
First a little history. The first on-board computers to control the fuel injection system appeared in a few cars in the very late 1960s and began coming more common in the 1970s. As cars became more complex in the 1980s, automakers, most notably General Motors, began installing proprietary methods of communicating with these systems. By 1988 the California Air Resources Board (CARB) began requiring all new cars sold in California to have basic On-Board Diagnostic capability to aid in emission testing. These systems improved quickly but there was little standardization of the data protocols, the codes, or connector until the implementation of the OBDII standard in 1996. By then all cars sold in the U.S. were required to have a common 16-pin Data Link Connector (DLC) with a common communication parameter, as well as a standard set of Diagnostic Trouble Codes (DTCs). While there was now a standard set of codes, each individual manufacturer were also able to include their own proprietary set of unique codes that went above and beyond the basic standard. This also allowed an industry to develop building devices, known as scan tools, that provided the general public, as well as automotive technicians, the capability to read the on-board codes. These devices range from generic hand-held scanners sold at the local parts store for under $50, to ultra-sophisticated standalone systems that provide lots of data for a knowledgeable user and cost thousands. In the last decade, software packages and DLC "dongles" that plug into a USB or Serial port allow a laptop computer to provide this information.
So what does a CEL tell us? It tells us that either the car in question has a malfunctioning part, a communications error with a system or sensor, or that it is polluting more than it should. Once your CEL illuminates, you have a few options. You can purchase a scan-tool and scan it yourself, take your car to the local parts store to be scanned for free, or take your car to a professional mechanic. If you scan it yourself, or utilize the scan tool at the parts store, you will find that the generic scan-tool will simply give you a code, often with a short description. The five-digit code will begin with a letter followed by four numbers. A common code on a late model Honda civic might be a P0303. The first digit is a P which corresponds to the Powertrain system of the car. The letters C, B, and U standing for Chassis, Body, and Undefined are also part of the standard (but not really relevant to what we are going into right now). The next character will be either a 0 for a "generic" code or a 1 for a manufacturer defined code. Every now and again you will see a two or other number but it’s rare. The third digit will correspond to which sub-system the code is describing, in our Honda example the three corresponds to the ignition system. The final two digits define which specific component is in error or what problem is being found. In our example, it is describing a cylinder three misfire. These codes are listed in manufacturer specific tables found on the Internet or in easily obtainable books. While the codes give us a great place to start looking for the problem, they do not tell us what exactly is wrong. It could be a fouled spark plug, a bad coil-pack, a damaged wiring harness, or even an ECU not sending a signal to fire the coilpack. In addition to the five-digit code, the scan-tool can also retrieve a snap-shot of sensor data when the code was thrown. This data is called the freeze-frame data. It will give information like engine rpm, vehicle speed, and coolant temperature among others. This can aid in diagnosing the problem.