What’s a DTC?
If you’ve ever owned a car, driven a car, or have been around people that have owned or driven them, you have probably heard of the Malfunction Indicator Lamp (MIL, also known better as the Check Engine Light or CEL) and Diagnostic Trouble Code (DTC, or sometimes just “code”). What are these things, though, and what should you know about them?
NOTE: The write-up that follows should only be assumed to apply to vehicles that are OBD-II compliant. This basically means cars and light duty trucks (including SUV’s) sold in the US after January 1, 1996.
Modern Vehicles Are Complex
Vehicles of today are considerably more complex that those of years past and the use of “computers” (Control Modules) has become more and more prominent (and necessary). One of the primary reasons that there are more control modules today is due to the heavy integration among different systems to improve the driving experience (better fuel mileage, improved safety, more awareness of items needing maintenance, etc.). Sometimes, sensors that are designed to assist with one function may be able to assist with a difference function in a different way. For example: the sensors involved in determining when brakes may be locking up could also be used to reduce engine output power under different conditions. When the vehicle is braking, a wheel going “too slow” could indicate that wheel has lost traction and stopped rotating because of too much brake force. Under acceleration, however, loss of traction could cause a wheel to spin “too fast” (compared to the others) indicating a loss of traction. In one scenario, the brake controller reduces how much force is being applied at that wheel momentarily while in the other the engine’s output power is reduced or the transmission reduces how much power is sent to that wheel momentarily. Without a variety of sensors and their integration, these kinds of complimentary operations wouldn’t be possible.
And, while having all of these functions in our vehicles increases their driveability and safety, it also increases the need to know when something isn’t operating as expected. As the monitoring needs increase, so does the need to ensure that the driver knows whether there’s something that needs attention or not. Enter the “Check Engine Light” or “Malfunction Indicator Lamp” in the dash. If there is something to alert you to, the light will either turn on or will flash. Do you know what it all means, though?
The Check Engine Light
The Check Engine Light (or CEL) is a warning lamp in the dash of your car. It’s purpose is to alert you that something isn’t right and should be investigated and corrected. In vehicles equipped with a CEL there is also a computer of some sort that is constantly monitoring data coming in from a variety of different systems and sensors throughout the vehicle. The module has information about what is considered normal data and it can alert when something occurs outside of normal behavior.
The light itself is only ever in one of three states: Off, On, or Flashing. Off basically means that the module has either not detected anything abnormal, or it at least hasn’t detected anything “abnormal enough” to alert you about it. On means that there is a detected problem that needs to be corrected and a Flashing CEL means the detected problem is likely to damage your vehicle if you continue driving. Different vehicles may offer additional information via various messages in the dash or blinking patterns of the odometer section or similar when you start it – your vehicle’s owner’s manual would be the best place to learn more about what your car can alert you to and how. Know this: Off is good, On is not good, and Flashing is bad… very bad. To put it another way, Off means drive, On means you may be able to continue to drive but be aware that something is amiss, and Flashing means stop. Immediately.
Diagnostics Trouble Codes / DTC’s
The various control modules monitor information from all areas of the vehicle. As information streams in from the different systems, it is compared against “normal” parameters and variances outside of normal parameters are recorded. The computer will determine if and when to change the status of the CEL based on the severity of what’s being detected and the risk it poses.
Example 1: The oxygen sensor readings are indicating that there is “too much” unburnt fuel in the exhaust gasses. If the readings from the O2 sensor indicate that there is more unburnt fuel in the exhaust gasses than optimal, it will attempt to reduce the amount of fuel being burned in the engine. If the readings remain high even though the engine’s fuel / air mix has been leaned out significantly, the computer will determine that there’s a problem that needs to be looked into and it may set code P0175 or similar. This code being set causes the CEL to turn on.
Example 2: One or more cylinders does not actually experience proper combustion – no combustion occurs at all, it may not be a complete/proper combustion, or it occurs at the wrong point in the rotation of that cylinder. This is called a misfire. These happen for a variety of reasons and may be handled easily by the engine’s computer making some adjustments (maybe the engine requires higher octane fuel but the -actual- octane level of the fuel it’s burning isn’t quite up to the level it wants). Sometimes, however, these events can’t easily be handled by the computer and need to be fixed. If a number of these happen in rapid succession (it may only take a couple of seconds to record enough of these), it will set a code that will cause the CEL to flash. Typically, a situation like this occurs under acceleration and could be extremely harmful to various pieces of the engine if not addressed right away.
So, What’s Broken?
Your CEL is on, you got yourself a code reader or stopped at the parts store and know what code got set in the car’s computer. But, what does it mean? What’s broken and what needs to be done to fix it?
A very common misconception is that a CEL / DTC is the end-all, be-all in terms of information and will point you directly to what’s wrong and you can easily get it fixed. While there may be some situations where that may hold some truth, the reality is that DTC’s are a lot like symptoms you might experience when you aren’t feeling well. The symptom calls out that something is wrong, and should generally point you in a good direction to get started, you’re still going to need to gather more information to determine the true “illness” so it can be corrected.
In a nutshell, you need to keep collecting information and data until you have enough to make at least a reasonably educated guess as to what’s going on. Here’s the story of an issue I had along with relevant data that I was collecting, the determination I made as to what the issue was, and whether or not I was correct. This situation is what pushed me to buy a $20 code reader and my first real foray into doing code diagnostics.
One piece of data that is sometimes overlooked is how many others have experience the same issue and what was the root cause of their problem? The example I offer later in this article about an issue with my wife’s car fits nicely into that bucket as the code I pulled on her car could have been a few different things but the most commonly experience one is the one that I had to deal with.
Clearing DTC’s
There are essentially two ways to clear a DTC – fix the problem and operate the vehicle through a specific number of “drive cycles” or use a scan tool to clear the code. Most of the time, correcting an issue and simply driving the vehicle again is more than sufficient – the sensors recognize that things are operating normally and any adjustments that were previously being made in an attempt to correct conditions are simply no longer being made. After a few “drive cycles” of things being normal, the code will be removed, the CEL will turn off, and everything will be back as it should be.
For those that have the most basic of scanning tools that lack any ability to clear codes, this is generally good news. This would include the code reader services that many auto parts stores offer at no cost because they will not (can not) clear codes as a matter of law and policy. So, the misfire that turned out to be caused by a bad set of plugs will clear on its own once the plugs (and wires?) get replaced and you drive the vehicle a bit.
Whenever possible, however, I suggest clearing the codes as part of the repair process itself. I suggest this for a couple of reasons:
- Certain codes that are linked to things like over-fueling can result in the computer continuing to expect the need to reduce the amount of fuel being injected into the engine. This ultimately means that the engine may be running too lean, and that’s bad for certain parts of the engine (like the pistons) as they can end up operating at too high of a temperature and fail prematurely as a result. By clearing the code, it puts the computers back to a more typical set of operating parameters.
- Clearing out a code can also prove to be a very quick and easy way to know if the repairs have (fully) corrected the issue. If you have replaced a part, cleared the code, and that code comes back quickly and re-illuminates the CEL then you know that the problem has not actually been corrected.
One of My Experiences Using DTC’s to Fix a Problem
My wife drove her car home from work and parked it in the garage. 15 minutes later, we were going to take a short ride and she wanted to take her car (and asked me to drive). I started it and upon putting it into reverse (admittedly, this was a quick operation overall since I knew the car was already fully warmed up), the CEL came on, a warning was displayed in the dash, the idle dropped to like 400RPM, and it was running extremely rough. I immediately turned the car off, grabbed my cheap-o OBD-II WiFi reader and plugged it in, connected my phone to it, and fired up a couple of different free apps that use the reader. I was met with “P2652” as a DTC.
A quick Internet search showed that this was a very common code among certain Acura vehicles. The gist is that there are three oil pressure switches in the engine – one for Bank 1 (the “back” of the engine) that controls the Variable Valve Timing (VTEC), one for Bank 2 that controls the VTEC, and one for Bank 1 that controls the Variable Cylinder Mode (it’s a V6 that is capable of dropping three cylinders for better fuel economy). What I could not find at the time, was an exceptionally detailed diagnosis of this exact code and the specific way to go about understanding where to start.
The VTEC switches are the same as each other while the VCM switch is different. I decided to buy one of each from a local dealership because I needed the parts right away to get my wife’s car back up and running so I didn’t have to keep shuttling her to/from work. I removed the Bank 1 VTEC switch and replaced it with the new VTEC switch. This resulted in no change for how the car ran or what it was reporting for codes.
Assuming that the switch I just removed was not failed, I used it to swap the VTEC switch for Bank 2. Same result – no change in anything. At this point, I had one of two situations… Either BOTH of the switches were bad and I ultimately only replaced one with a good one, or neither of them was bad.
I moved on to replace the VCM switch, leaving the two VTEC switches as they were post-replacement steps. Starting the car immediately showed a smoother idle, but it was idling too high. So, I shut the car off, pressed the start button without the brake to get into ACC mode, and then used my code reader / phone app to clear the fault code. I turned the car off, started it again, and was met with smooth idle, correct idle speed, and no more warnings or CEL.
It was at this point that I cautiously ventured out of the garage and down the street to see how it ran. I kept the code reader plugged in and paired to my phone so I could watch for codes and data and everything appeared to be fine.
Permanent DTC’s
After getting back from my test drive, I realized I still had a DTC in the system that was being read. This is when I learned about Permanent DTC’s (PDTC’s). Remember when I mentioned that I used my code reader to remove the fault code and the CEL went off? Interestingly, the code was actually still present in the car’s computer. Basically, because it was an emissions-related DTC, I ended up with a PDTC being stored in the computer.
The way the system generally works is that faulty data or malfunction will (eventually) lead to a DTC being set and then illumination / flashing of the CEL. In some circumstances, a PDTC will -also- be set and those can not be cleared by code readers. At all. Ever. The system has to remove those on its own after meeting specific criteria.
For me, the PDTC went away after three or four drive cycles without any subsequent issues being observed by any of the sensors. The whole reason for all of this is to ensure that a more significant problem, like an emissions-related one, can’t simply be cleared right before the car goes to have its emissions tests done. The computer needs to observe a handful of drive cycles where there are no issues in order to clear the PDTC and remove any associated DTC’s / CEL’s as well. Basically, all of the various sensors related to emissions testing have to be in a “Ready” state along with no fault codes in order for your car to pass.
Basic DTC Interpreting
Disclaimer – the example I provided in this article doesn’t follow this guideline. I don’t know why it breaks these guidelines, but it does.
Diagnostic Trouble Codes, or On-Board Diagnostic 2 (OBD-II) codes are five character codes that can be broken down (in most cases) as follows:
- The first character will indicate the major category as P-Powertrain, C-Chassis, B-Body, or U-Network
- The second character will indicate whether it’s a generic / general code (“0”) that will apply to all vehicles or if it is manufacturer-specific (“1”). My example is a “2” which isn’t well-defined but, along with “3”, is also considered to be manufacturer-specific in most circumstances.
- The third character would be a digit between 0 and 8, and would indicate the area being identified as follows:
- 1 – Fuel or Air Metering
- 2- Fuel or Air Metering within the injector circuit
- 3 – Ignition or misfires
- 4 – Emissions
- 5 – Speed and Idle Control systems, auxiliary inputs
- 6 – Computer and Output Circuit
- 7 or 8 – Transmission
- The remaining two characters give the more specific details of what the code is related to.
As you are decoding a DTC, it’s important to understand that the categorization from the third character shown above ONLY applies if the second character is a “0”. Anything else in the second position and all bets are off… In my example, the P2652 code won’t follow the breakdown above because the second character is identifying that code as manufacturer-specific.
Comments
HI, Mark! Interesting… I got a BlueDriver awhile back so I can diagnose a few basic problems (it’s probably saved me close to $1K by now). I’m curious if you use an app or program to track all your car maintenance and if you have one you’d recommend? I mostly just do the maintenance that my car’s computer tell’s me to do but I also have to careful because it won’t always remind me to do things that need to be done… e.g. I have to remember to replace the timing belt every 7-years because I’ve usually not put enough miles for the computer to tell me to change it.
Author
Hi, Ben.
I can appreciate feeling good about saving money! I spent something like $20 or $25 to buy a simple and basic reader that plugs into the OBD-II port of a vehicle and can be paired with any number of phone apps (you pair the phone itself to the reader via WiFi and then launch the app). I have three different free apps that I use on my phone (inCarDoc, TrackAddict, and Toque Light). My whole foray down this road was to diagnose an issue with my previous truck and it probably ended up saving me at least a few hundred dollars that time in the grand scheme by allowing me to diagnose the issue. I also was able to diagnose and correct an issue with my wife’s car more recently that saved me at least about $400 more.
Knowing I had saved that money, I bought a better reader with more controls baked directly into it to allow me to do things like fully retract the electronic parking brake (required if I ever want to do my own brake work on my current truck). This one cost me around $100 but is entirely self-contained and more functional.
Like you, I tend to predominantly rely on the vehicle to tell me when things need to be done for maintenance. I use Fuelly.com to track all of my expenses for my two vehicles (gas, oil changes, brakes, tire replacements / rotations, etc.) simply because having the app on my phone makes it easy to do so. For the bigger preventive maintenance jobs like you’re referring to (timing belt based on time due to natural breakdown of the belt due to time) is something I would either tape a piece of paper to the wall in the garage or… better yet… set up a reminder on my Google calendar with a 60 day and 30 day pop-up / email notification to remind me.