# Classifying a DTC as active, past or potential

Scantools always classify a DTC as active/current, history/past, potential/memory. How do they classify that?

Sample raw data:

80 F1 5A 05 58 01 C1 00 20 0A


Can you help classify it as past, current or potential?

• 80 F1 5A : header
• 05 : 5 bytes of data to consider next;
• 58 : response for request 0x18,
• 01 : 1 DTC,
• C1 00 : it is the DTC
• 20 : I am not sure
• 0A : checksum/end of response

I guess that 20 has to do something with the DTC classification as history, present and potential.

EDIT: I spent more time reading into this, the individual manufacturer of the vehicle has a lot of control over this. The OBD2 DTC has some standard items but is not required to have a time stamp or indication of age, which is more-so what I think you are looking for in the raw data.
I think the only way you can answer this question is having access to the engineering materials/information from the manufacturer. Maybe with some searching you can find an engineer who has worked on the OBD2 section and can tell you for the manufacturer they worked for. Although since it was standardized (in the US) in 1996, I would bet most of the systems haven't changed much. I do know from my personal experience in "convincing" my car to pass state inspection that a stored code can become a non-stored code. This leads me to believe as I said below that the data is logically separated in the ECU's memory.

Your classification of codes is highly dependent on what scan tool you use.

I am not sure what you mean by "active/current, history/past, potential/memory" but there are two classifications for DTCs when stored in an OBD2 system, potential/pending, and logged/stored. I don't believe this information is stored in the DTC as they are logically separated in the OBD2 compliant car.

The car's ECU classifies DTCs at runtime after checking for a set of conditions. A less severe issue get's classified as pending until the condition occurs X more times. Upon occurring X more times, the code will be reclassified from pending to stored.

A common example of a pending is my Infiniti I30 always has a pending code for the crankshaft sensor. The condition for some reason occurs on startup but never repeats so the DTC never moves to logged/stored and the CEL never comes on.

In short, the classification of pending -> stored seems to be up to the car manufacturer.

A good answer covering some of the things you need to consider about OBD2 is in a fellow stackexchange answer here: Do fault codes get recorded with a time stamp into a log with a history of DTCs?

• What I understand from your answer is mode 0x03 and mode 0x07 in OBD-II, right? But I am not asking that. If you look at a professional scan tool they give a code (say P0128), a small description and a status like active or memory (some scan tools report as current/history). I want to know how do they say whether it is active or history. – Soumya Sen Aug 31 '17 at 23:52
• I do not think the DTC contains a timestamp. I think the car manages them in two different queues. I don't know since it's completely different from manufacturer to manufacturer. Mode 2 returns freeze frame data which would have timestamp data. There is not purpose to timestamp the DTC as there is no guaranteed time reference point. – finleyarcher Sep 5 '17 at 18:58
• Also, I am not talking about obd2 mode 3 or 7. I am referring to the internal dataflow within the vehicle, nothing to do with the scan tool. – finleyarcher Sep 5 '17 at 19:02

after 2008 each ECU has 4 fault recording modes Type 7, Type A, Type 18, and Type 19 pending, current, historical and permanent. The trick is knowing how to program an Adreno of other CAN enabled chip to ask each ECH the magic questions. I do, but I do charge for that...

New contributor
TRUscore Certified Automobiles is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Dtc's that are current/active mean the computer is seeing the fault now. History/past means a fault was detected but is not "active right now. Potential/ memory mean that a fault was detected and is not active but has not occured in a 2nd drive cycles . Some faults will turn on the check engine light right away. Others need 2 drive cycles of the fault being present to turn on the check engine light.
Sorry, don't know what those codes mean. Hope this helps.

• I have broken down the raw data – Soumya Sen Aug 27 '17 at 14:50
• This doesn't answer the question – Zaid Aug 30 '17 at 19:09