We all used ‘secret codes’ when we were kids. If you wanted to get into my boyhood clubhouse, you had to know the secret code. It didn’t matter who you were — even my father wasn’t excepted. Fortunately, Dad was very understanding about it all. He just yelled for me to come out, and that worked — secret code or no secret code.
Secret codes swirled around stories of spies and espionage during WW II, and the stories gave me lots of ideas. US Navy intelligence was able to break the Japanese secret code at the beginning of WW II, to great advantage. During the Cold War, intriguing stories abounded about international spying and the use of secret codes.
All of this stuff was highlighted in movies, which placed great importance on secret codes in their plots and story lines, and I ate it all up. Later, in the service, I met fellow servicemen who knew Morse Code. They could talk to each other simply by tapping their fingers on the table. Us ‘no-code’ types never knew what they were saying because we didn’t understand Morse Code. I think they got away with a lot in those days because they had their own secret language.
So when ‘trouble codes’ appeared in the auto-motive industry in the early 1980’s to diagnose emission problems, I had some idea what codes meant. I wanted to learn these new codes because I knew they would have a big impact on my life and they would play a larger role as time went on.
Many of those first computer-controlled cars had only 8 to 12 trouble codes total, and some of the codes seemed more for the engineers than for working technicians. In those days, technicians hoped when a car had an emissions or driveability problem, the Check Engine light would turn on, so they could find a trouble code in the computer memory to offer a clue of what was wrong.
We all groaned whenever a major emissions or driveability problem came in the door but there were no trouble codes stored in the affected car’s computer. The dreaded ‘no-code driveability problem’ struck fear in the hearts (and heads) of many technicians, and it still does to this day for some of us. Many techs ended up writing their resumes on oily rags and quit the auto repair industry to go to work in the truck or lawn mower repair industry, rather than learn about trouble codes and counting the blinks of a Check Engine light. Of course, that escape didn’t work in truck repair: Trouble codes followed them a few years later.
Even when a trouble code was stored in the computer’s memory, that didn’t always mean the problem was easy to fix. You could find a TPS (throttle position sensor) trouble code and so replace the TPS, only to have the vehicle set the same TPS code again. It was very unsettling to find a code that pointed to a particular sensor, replace the sensor with a brand new one, only to find the same code set again. How could there be a TPS sensor trouble code, but a new TPS sensor didn’t fix the problem? By now we’ve developed a better understanding of trouble codes and the conditions that trigger them. Or have we?
In the days B.C. (Before Computers), there were no throttle position sensors, and life was a lot easier for some of us. When the first computer-controlled engines appeared, they had these contraptions called ‘sensors.’ A TPS was bolted to a carburetor at the throttle shaft and had three wires going to a computer, of all things. We learned there were two trouble codes associated with the TPS. One code was stored if the sensor output signal voltage was too high, and the other if the sensor output signal voltage was too low.
When these codes appeared, the computer turned on the Check Engine light. We learned to count the blinks of the Check Engine light to read the trouble code stored in computer memory. The engineers intended the ‘too high’ code to identify an open-circuit throttle position sensor. The ‘too low’ code was to identify a short-circuited sensor. I don’t know about you, but I never found a shorted throttle position sensor and found very few that were actually open all across the potentiometer range. Most ‘TPS too high’ and ‘TPS too low’ codes were related to circuit problems which were not always corrected by changing the TPS sensor, I learned the hard way by replacing a few perfectly good TPS’s.
Let’s look at the TP (the new name we’ve been using since 1996 for the TPS) circuit in Figure 1. The TP sensor is connected to the PCM through connector C135 in the harness. Figure 1 shows that the wire between PCM pin 1 (5-volt reference) and C135 Pin A, is broken in the harness. The TP analog (signal) voltage at PCM Pin 2 is a constant zero volt if measured with a DMM. A scan tool would indicate zero-volt TP output signal voltage. This problem makes the PCM set a TP output signal voltage ‘too low’ trouble code. You can change the TP sensor and the PCM, but those changes cannot fix the problem. It takes some troubleshooting of the wiring harness to find and repair the open circuit.
Figure 2 shows the wire between PCM Pin 3 (sensor ground) and C135 Pin C is broken inside the harness. You’ll find the TP analog (signal) voltage at PCM Pin 2 is a constant 5 volts if you measure it with a DMM. A scan tool would indicate a 5 volt TP signal voltage. This problem means the PCM sets a TP signal voltage ‘too high’ trouble code. Again, you can change the TP sensor and the PCM, but those changes also cannot fix the problem. It takes more troubleshooting of the wiring harness to find and repair that open circuit.
An intermittent TP sensor is also a frequent problem. We learned to find these by sweeping the TP sensor across its full range while measuring the TP signal voltage with a lab scope. Any glitches in the signal flag a bad or worn spot on the TP sensor potentiometer. Life slowly began to return to a more normal routine as we learned to master the TPS, CTS, MAP, BARO and other sensor circuits on those early 1980s-version, computer-controlled engines.
Just about the time we started to get comfortable, the trouble-code situation got more complicated with OBD-II systems. Suddenly, we had ‘a few more’ (!) codes to work with than before. The problems illustrated in Figures 1 and 2 remained, with some new twists. At least all vehicle manufacturers agreed to use the same trouble codes for the same failures (persuaded, to be sure, by federal law). OBD-II brought an end to the problems caused by each manufacturer’s using a different trouble-code format to convey the same types of information about system problems.
OBD-II trouble codes are called Diagnostic Trouble Codes, or DTC’s for short. When the PCM detects a fault, it turns on the Malfunction Indicator Lamp (MIL for short), which plays an analogous role to the Check Engine Light on pre-OBD-II systems.
Under OBD-II, the DTC numbering and definitions are standard for all vehicle manufacturers. DTC P0122 is TP sensor voltage too low, while P0123 is TP sensor voltage too high, for all makes and models. The ‘P’ means a PCM (Powertrain Control Module) DTC. The ‘0’ represents a required DTC by federal regulation (a ‘1’ would be a manufacturer-specific code for that make and model). The ‘12’ directs you to the TP sensor and the ‘2’ or ‘3’ indicates the type of TP failure, in this case either high or low signal voltage.
The first time it recognizes a P0122 or P0123 code, the PCM turns on the MIL and stores the DTC in its memory.
Some new twists began with OBD-II. Before OBD-II, the TP sensor could send an incorrect signal voltage to the PCM for a given throttle position, and the PCM could not tell the difference. The PCM simply responded to the inaccurate TP signal voltage the only way it knew, because it was unable to recognize the TP signal voltage was incorrect for the actual throttle position.
For example, if the vehicle were idling and TP volt-age were over one volt (from a poor ground circuit or improper adjustment), the PCM would think the throttle was beginning to open, even if it were at the proper position for idle. The PCM would react by lengthening the injector pulsewidth and advancing the timing. The higher the TP signal voltage above one volt, the longer the pulsewidth, and the more advanced the timing. This could make for awkward idling and a loss of power on initial take-off creating excessive emissions, not to mention the ripple effect of the PCM trying to correct for a richer than normal fuel mixture at idle.
This type of problem is called an ‘out-of-range’ problem and is a new trouble code twist introduced with OBD-II systems. For the TP sensor circuit, OBD-II adds the DTC P0121 for TP sensor (signal) voltage out of range. The PCM looks at other sensors to determine engine conditions, then compares this information with the TP signal voltage. A discrepancy between what the TP signal voltage says in comparison to the signals from other normally operating sensors can lead the PCM to recognize an out-of-range condition for the TP sensor. The PCM turns on the MIL and stores a DTC- P0121 after the second time the fault occurs — not the first time as with the other two TP DTC’s.
Vehicle manufacturers may use different strategies to determine whether a TP sensor signal is out of range. Some manufacturers are generous with this type of service information, while others hold it out of circulation as if it were a matter of national security. Maybe we need to have our security clearances upgraded so we can get the information necessary to troubleshoot the additional problems the car is now capable of recognizing!
Take the initiative to learn the parameters used to determine when a sensor voltage is out of range for a driving condition, so you can troubleshoot problems on all vehicles you expect to repair. Ask questions in training clinics and seminars whenever you have the chance. Seek out manufacturer information as well to learn all you can, so the next time it comes up you will be prepared. It must become part of your thinking from now on to ask questions and seek the required information at every opportunity. Maintain records of all you learn, even if you have to keep a personal notebook. Nobody else can do this for you.
Understanding why and how a DTC sets requires a familiarity with all the parameters related to that DTC. OBD-II uses four levels or classifications of DTC’s, and each has its own effect on the MIL. This can shed more light on how to use DTC’s more effective-ly. For our purposes, we’ll call these different classifications Type A, B, C and D faults.
Type A faults have the potential to increase vehicle emissions by more than 1.5 times the allowable federal standard. A Type A fault will turn on the MIL and set a DTC the first time the fault occurs. DTC’s P0122 (TP signal too low) and P0123 (TP signal too high) are both examples of Type A faults because they can have a major impact on emissions. The MIL turns on immediately, and the DTC is stored in memory.
Type B faults have less potential effect on emissions, but can still cause the PCM to turn on the MIL. A type B fault must occur on two consecutive trips before the MIL turns on. A ‘trip’ is defined as an engine start followed by a drive cycle that lasts long enough to raise the engine temperature at least 40 degrees F, as long as the engine temperature was less than 160 degrees F when the trip began. An example of a Type B fault is P0121 — TP signal voltage out of range. The PCM doesn’t consider this to be a major problem until it occurs on two consecutive trips. Then the MIL turns on, and the DTC is stored in memory.
A fault that occurs on two consecutive trips must be corrected. A DTC is stored in PCM memory, which turns on the MIL to alert the driver to a problem serious enough to affect emissions. If you erase codes or do a repair that you believe has fixed the problem, roadtest the car to see whether the Type B DTC P0121 recurs.
Before starting the engine, wait until the engine coolant temperature drops below 160 degrees F.
Then test drive the vehicle long enough to raise the engine temperature more than 40 degrees F to determine whether the Type B DTC turns on the MIL again. If the MIL stays off for two trips, the problem is fixed. Knowing the secrets behind a Type A or B DTC can make a difference in how you approach a problem. It can also make a difference when it comes time to verify your repair. For example, it’s nice to know that it takes two separate trips (with cooldowns) to confirm a DTC P0121 repair.
If no diagnosis or repairs are attempted, the MIL will stay ON for Type A or B faults, unless the fault conditions do not repeat for three consecutive trips. The exceptions to this rule are misfire DTC’s. The MIL will stay lit, unless the system passes a self-test under operating conditions similar to the conditions that caused the misfire and set the DTC in the first place.
Type C faults are non-emission related faults. They will not turn on the MIL, but they will usually turn on a less serious ‘service’ light. If the problem does not occur during consecutive trips, the service light goes out, but the DTC is stored in memory.
Type D faults are non-emission related faults that do not turn on any warning light, but simply store a DTC in memory for service purposes.
A DTC is considered an active code if it occurred during the last system self-test. If the fault did not occur during the last self-test, it is considered a history code.
You can see with OBD-II DTC’s you have to also know whether the DTC is a Type A or Type B code to be sure whether it repeats during a test drive. Deciphering codes takes a little more skill with OBD-II, but it’s worth the effort. That way, the next time you think about updating your resume, you won’t have to write it on an oily rag.