7 Steps to Engine Fault Code Diagnostics

There is a lot you can do with a check engine lamp on your dash even if you don’t have all the dealership's diagnostic information. Yes, you may run out of solutions and there will be situations where you can’t solve the problem on your own. You can, however, deal with many or most check engine problems by following a 7-step formula. This formula works for every engine diagnostic problem, but some are more difficult than others. Keep in mind the fact that even a dealership with fully trained technicians and access to all possible tools and information will still have no choice but to go to the OE for help. It happens more often than you might think, especially if the engine model is relatively new.

More information on how to use a voltmeter and understand sensors available in the free e-book at kevinrgauthier.com/e-books.html

The Seven Steps

As we go through the steps, you’ll see that some equipment and a lot of basic mechanical knowledge are necessary. You need a code-reader to know what the codes are, and the better your understanding of engine, electrical and aftertreatment processes, the more you can get done. These are all things that you can and should be constantly improving.

Step 1 – Read the codes

It may go without saying but it needs to be said, you must read the codes. In the resources section on kevinrgauthier.com, you’ll find a very useful form that you can use for free to sort out the different codes as plain and simple as possible. Once you’ve plugged in the code reader you want to see which codes are stored. Chances are good that there will be more than one code. Usually, there will be 2-3 codes for a given problem and there can be dozens, especially if you haven’t checked and cleared codes in a while. A regular engine start can cause codes that you will never see simply because of the voltage drop caused by the engine starter which triggers codes. Most of these can be ignored.

If you only have a few codes, write them all down so you have a record (unless you can print the list). If you have a lot of codes write down the active codes first, preferably in order of highest to lowest count. Most codes will trigger more than one fault because every time an ‘out of range’ reading is taken by the ECU; a code will be triggered. Then write down the inactive codes, again in order of highest to lowest count. If you have many codes, you can probably ignore the oldest and lowest count codes especially if they mention low-voltage.

Step 2 – Interpret the codes

You normally want to diagnose only one code at a time. There are a few reasons for this but mostly you want to avoid diagnosing two different problems that are actually related and so wasting half your time and possibly replacing parts for no reason. The highest counting active code is the code you want to diagnose first. As you get to know engines better you may learn a specific code is more likely to help you solve the problem. Engines work from upstream to downstream which means a problem at the intake level can cause problems in the aftertreatment system. Less likely the other way around, but you’d be surprised. Anything is possible with these complex machines.

Once you’ve identified the code to work on, you want to do some research on it. We’ll use a very simple example, a P2560 Engine Coolant Level Low. This is about as simple as it gets but is a great example to illustrate the point. Let’s picture the situation so far: a check engine lamp has turned on in the dashboard. You’ve plugged in a code reader and found 5 codes. The only active code has a count of 37. The other 4 codes are for different systems and are all low-voltage codes with lower counts under a dozen. The coolant system is one that every mechanic should know pretty well. If the coolant level gets too low, a sensor will change its reading, this reading is interpreted as a code for low coolant.

Step 3 – Understand which sensor is causing this code

In the example of low coolant, the question of which sensor can cause the code to be triggered is really simple. In the surge tank or reservoir, there is going to be a sensor in the bottom which detects if there is liquid or not. Some may have a floating magnet which will lower the level of coolant and if it reaches the sensor triggers a fault code. Either way, the sensor is at the bottom.

Step 4 – What condition will cause the code to be triggered?

In the coolant level example, it hardly needs to be discussed. But what about a pressure differential fault code in the DPF? It’s a similar situation. Instead of a water level triggering a sensor, a sensor reads internal pressure, compares it to other information and decides that the pressure is too much, or too little compared to an ideal state. This in turn triggers a fault code. We’ll stay with the low coolant example to finish discussing the process.

Step 5 – Test the wiring and sensor

Because a coolant level is so consistent, although it will expand with heat, it may seem less worthwhile to verify the wiring or sensor. If the reservoir is empty, you really should fill the system, and see if the system responds by making the code inactive. If that’s the case, congratulations, you only have to identify the leak that caused the coolant level to be low, and you’re probably fine. In the example of the aftertreatment issue, instead of checking a fluid level, you need to create an environment where the code can be triggered. This means the temperature is at a minimum and possibly the load (road test), so testing the wiring and sensors is definitely less expensive and time-consuming. Add to that the knowledge that they often fail (this is an example of knowing more about mechanical principles and common issues).

Now let’s say the coolant level is fine, the reservoir is nice and full. The fault code said the level is low because of a reading from the sensor. There’s no way to verify beyond interpreting the sensor's voltage. So not we have to check the wiring and sensor to see where the fault is. The problem could always be the ECU or the software, but outside a dealership with the relevant software, you don’t want to assume that until you have to.

Testing is easy. First, with the truck turned on and the code reader plugged in, unplug the sensor. Does a low voltage code appear? If yes, continue. Next, short the wiring (not the sensor) with a wire and check for a high voltage code. If yes, continue to the sensor. If you can’t get these two results, you need to repair your wiring/harness. Once repairs are done, re-do these two tests to see if the circuit works properly.

Now, whether the wiring needed to be fixed or not you want to test the sensor. In this case, it’s very simple. If the sensor needs the floating magnet or just liquid, then that’s what you will give it. Install leads to the sensor and set your multimeter to Ohms, or resistance. Again, for more information on using a multimeter go to kevinrgauthier.com/e-books.html. Take a reading on the sensor with no liquid or magnet. Record the result. Now introduce the sensor to the liquid or magnet. Record the result and compare. If there is no difference, replace the sensor, it is defective. If the resistance changes dramatically, the sensor is fine.

For a yes/no sensor or go/no-go, this is the same way you will test it. Does the resistance change or not? Many sensors are variable and that variability needs to be consistent. Here I’ll give two examples. For coolant temperature (be careful not to burn yourself or damage the sensor) you want the sensor to be in liquid that is increasing or decreasing in temperature (boil water or cool it) and you need to watch the resistance move up or down consistently. It won’t be smooth on the multimeter, but it should be relatively consistent. If it jumps around, the sensor is defective. It’s the equivalent of blind spots. A second example is mechanical variability. A fuel sender or fuel gauge sensor is a fixed bar, attached to the fuel tank, and a floating arm, usually a metal or plastic arm with a floating device on the end. Here again, you attach your multimeter leads to the sensor and move the arm back and forth looking for consistent changes all the way up and down. If the resistance doesn’t change or changes sporadically, the sensor is defective and must be replaced.

Note that resistance will not move up1, 5, or 10 Ohms at a time. It’s a bit choppier than that in reality. That’s okay. The ECU also knows that and interprets the information accordingly. The fuel in your tank sloshes around constantly as you move but the gauge in the dash doesn’t because the ECU is programmed to take averages.

Step 6 – Verify functioning of the system

Just because a sensor or some wiring was defective doesn’t necessarily mean the code is not good or useful. You want to verify the system being tested. Coolant temperature code? Get the truck to temperature and see if the code persists. Measure the coolant temperature yourself to see if the 300 degrees on the dash is somewhere near 300 degrees. The same goes for any other system on the vehicle. You may have to check for obstructions, leaks or whatever else may lead to a code being triggered. If you don’t you may have an unhappy surprise coming in the very near term future.

Step 7 verify repairs

Especially where there were multiple codes you must try to re-create the codes you diagnosed. In the coolant example, you likely topped off the system, saw the code was inactive and carry on. This is seldomly the case. More often you need to get to operating temperature or drive with a load. Also, not all sensors get read by the ECU just because the key is on. Others only test the circuit every few minutes or in certain situations. Make sure you’re recreating what the ECU needs to verify the fault is no longer active.

Conclusion

This may seem like a lot but with practice, it will become second nature. It’s a very useful method of working on check engines with or without good diagnostic information. Read the codes, interpret them, understand the sensor involved, understand what would cause a code like this, test the wiring and sensor, test the system, then verify all repairs. With practice, this will get easier and you’ll be amazed at how much you can do. Just remember, everyone is always learning and there is no shame in looking for help. In fact, not only is looking for help when you feel you’ve hit the limits of your skill not shameful, it’s extremely intelligent and can save you a lot of headaches and additional cost. Working safely is always job number one and if you don’t know or understand something, you should definitely look to learn first before diving in. No job is worth your health.