Just scanned my vehicle for the first time to check out the code for a Check Engine Light. I grew curious if these fault codes get logged somewhere with a date and time stamp of some kind at the time they were thrown. I'm imagining some design similar to the Event Log used in computer operating systems but I may be totally mistaken on this one.

What exactly is the design around these fault codes as far as how they're recorded. One obvious aspect of the design is the use of unique codes specific to some particular problem. Is that the full story with a fault, are there any other metadata surrounding a fault instance that can be looked up? How do fault histories work in vehicles? Are histories even recorded or are faults simply a binary thing, either on currently or off currently regardless of whether they were ever on at any point in the vehicle's life. I know you can clear codes using scanner tools, is this to suggest that faults would stay flagged on a system in perpetuity until you manually clear them? This would lead me to believe that the check engine light would remain illuminated even after repairing the root cause of a fault. Is this accurate?

3 Answers 3


It really depends on the implementation of OBD2. What my 1997 Subaru logs (virtually nothing) compared to a 2015 Chevy Cruise are entirely different things.

However, in most cases, a Diagnostic Trouble Code (DTC) is logged with a freeze frame, which is a complete store of all Parameter ID's (PIDS). These parameters cover everything from RPM, vehicle speed, O2 sensor data, mass airflow data, long and short term fuel trims, ignition advance, intake and coolant temperature, and perhaps dozens more. These are accessed via OBD2 Mode 2. The simple "Pxxxx" DTC faults are accessed via OBD2 Mode 3, which is often the extent that simple consumer scan tools are able to display.

On more sophisticated scan tools, Mode 2 "freeze frame" data can be displayed, which is invaluable data as it reveals the exact running condition at the very instant the DTC code was set.

The history of such codes again varies with the implementation of OBD2, and quite likely how new the vehicle. On my 1997 Subaru, data is limited -- given that OBD2 wasn't a mandate until the 1996 model year.

However, all vehicles have two categories of DTC: "Pending", which is a detected fault, but doesn't set the Check Engine Light (CEL, SES) until the condition is detected again a certain number of times. (This is accessed through OBD2 Mode 7.) The number of "drive cycles" required to promote a "pending" to a CEL depends on the fault, the implementation, and the vehicle.

The other category of DTC is "stored" or "logged". These are true fault codes that have been promoted from "pending" status to a real-deal fault code, and they by OBD2 definition must set the CEL.

In addition, some Engine Control Units/Modules (ECU/ECM) have the capability of logging a few or dozens of "historical" fault codes, regardless if they have been repaired and/or cleared. This provides background to an astute technician, even when there is no current pending or logged DTC faults.

DTC codes do NOT have to be cleared "manually". If the condition that caused the fault is repaired, or simply no longer occurring (P0420 catalyst efficiency a classic example) the code will "clear itself" so to speak after a certain number of drive cycles without the fault reoccurring. The number of drive cycles required to clear an active CEL DTC depends on the fault and software implementation. In most cases, however, a technician clears these codes after a valid repair to assure the customer that the repair is complete. But we don't HAVE to; it's a courtesy. The ECU/ECM constantly monitors the PID and emission conditions, and will eventually relent, given enough "clean" drive cycles.

As an aside, there is a category of DTC that cause a FLASHING CEL. These differ dramatically from the "solid on" CEL, in that if it comes on and stays on, it's an indication that something is wrong, and the driver should seek service at a convenient opportunity. However, a FLASHING CEL indicates something severely wrong that could cause vehicle damage. Usually, this is indication of an overly rich condition, usually caused by severe ignition faults or fuel injection that if left alone could damage an expensive catalytic converter. These "flashing" check engine lights should be addressed immediately -- some OEMs suggesting pull the vehicle over and have it towed.

To further complicate this process, clearing a CEL gets rid of the fault code from the "active" category, but like your computer analogy, it's an ALT_CTRL-DEL. It completely resets the ECU/ECM, and clears out what is referred to as the "monitors".

The monitors are a whole plethora of tests which run either continuously, or in most cases when certain PID (temperature, engine load, fuel level, drive cycle) criteria are met. (This is what makes it particularly difficult to pass evaporative emission system monitors; the criteria are exact and even depend on how much fuel in in the tank.)

It takes a certain number of successful drive cycles, obeying all the requisite criteria, to "pass" these monitor tests. At this point the vehicle can pass an OBD2 emissions inspection -- when all monitors have passed. (In New York, vehicles produced prior to 2001 can have two incomplete monitor tests, 2001 and newer are allowed one, and it may be that recent vehicles are allowed none incomplete. This is just trivia.)

The upshot is that while a vehicle may have had proper repairs and the fault codes cleared, this does NOT mean it will pass an OBD2 emissions inspection. This prevents the shadetree technique of disconnecting the battery and taking it immediately to inspection. The vehicle must complete the requisite number of drive cycles with all (or most) criteria met in order to get the passing grade. While a so-called "not ready" vehicle doesn't fail emissions testing, it also doesn't pass. After the ALT-CTRL-DEL ECU/ECM lobotomy, the vehicle settles in and doesn't become "ready" for inspection until it proves to itself that all monitors are go, and the vehicle is running clean.

  • Thanks, I may have beat you but your answer is far more detailed. More trivia; a vehicle with a pending code will pass emissions as long as all the other systems have passed. With some trickery and slight of hand a car with a bad catalytic converter or EVAP system could pass.
    – vini_i
    Aug 24, 2016 at 13:27
  • Wow! This is great. How did you learn all of this? Is there a ODB-2 spec that is publicly available?
    – dlu
    Aug 24, 2016 at 15:30
  • @dlu motorcraftservice.com/freeresources/obd is a good resource.
    – vini_i
    Aug 24, 2016 at 17:20

There are two kinds of fault codes; single trip and two trip.

A single trip fault code is generally a major failure like a severe misfire. This will illuminate the check engine light immediately upon detection.

A two trip fault code has to be verified on two trips. The first trip sets a pending code without illuminating the light. If the fault is detected again the light will illuminate.

Theoretically when a hard fault (light illuminated) passes the test two consecutive times the light will go out. The code is then downgraded to pending from hard fault. This is stipulated by if the testing is still run with a hard fault. There are some instances where testing is suspended with a hard fault and then clearing the light with a scan tool is the only way to shut off the light. A pending code will disappear if the test passes 60 consecutive drive cycles.(starting and shutting the car off 60 times does not constitute a drive cycle)

Whenever a code is stored freeze frame data is stored with it. Freeze frame data (FFD) is a snap shot of the most common data when the fault was detected. The problem with it is the values stored differ by manufacturer and by year of vehicle. The values may include but are not limited to; coolant temp, rpm, air temp, short term fuel trim, long term fuel trip, loop status, how long into a drive cycle the fault is set, how many drive cycles have gone by since the fault was set.... the list goes on and on.

Older vehicles could only store a single frame of FFD and the more severe fault code took priority. Newer vehicle can store multiple FFD frames. While you may be able to figure out in what order the codes occurred there is no proverbial time stamp like in an event logger.

  • Excellent answer (you beat me). One key thing I left out that the OP specifically asked was the "time stamp" part of it. The ECU has no idea what time or day it is. The number of drive cycles for some DTC clears might be capped at 60 (or 3, or 5), and the number of trips might be one, two, or more (P0420 is a multi-headed beast) ... but I do not believe there is any OBD2 mandated standard on drive cycle numbers, or fault repetition to clear or set specific DTCs. This varies with vehicle and OBD2 implementation. Good job!
    – SteveRacer
    Aug 24, 2016 at 10:28

Very detailed responses already! Just wanted to add something about emissions testing after clearing fault codes. Some manufacturers include a way to create the conditions that will determine whether emissions components pass/fail without extended drive times. The VCDS software I have for Volkswagen (and their other brands) has a "set readiness" option in the engine CPU. It walks you through the emissions components step by step, indicating how long you have to hold the engine at a certain RPM and when the test is conducted. Newer vehicles will automatically take over and rev the engine while older ones have to be done precisely by someone in the driver seat maintaining fairly precise RPMs. In short, probably best to take a car to an actual dealership for an emissions inspection if you recently cleared the engine codes so that it has a chance to pass.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .