In every GM W-Body car, there is a computer that controls virtually all aspects of the engine's operation. This computer is called the ECM, or "Electronic Control Module". The ECM is constantly controlling, adjusting, and monitoring engine conditions. If there is an engine malfunction caused or detected by any one of the many sensors connected to the ECM, a trouble code will be stored in NVM, or Non-Volatile Memory. What you need to do first is find out what trouble codes are presently stored in the ECM. You can read these trouble codes in several different ways. The best and easiest way is to purchase a "scan tool". A scan tool displays trouble codes numerically on a LCD display or computer terminal. The more expensive scan tools also display the details behind the trouble code in full detail, such as the sensor voltage detected and what it should be. The drawbacks to the scan tool method is that a scan tool costs several thousands of dollars. The other method is to perform a "NON-SCAN" diagnostic circuit check by having the "Service Engine Soon" light blink out the codes stored in the ECM.
Regardless of the method used, the secret to communicating with the car's computer is through the ALDL connector (Assembly Line Diagnostic Link). This is where a scan tool would plug in. We will also utilize this connector for our "NON-SCAN" method.
NOTE: The cheap $25-30 "scan tool" and the $5 "scan key" that you find at many auto parts stores are NOT actual scan tools. They are essentially expensive jumper wires. Don't buy them unless you like wasting money, a paperclip or wire will work.
The following "NON-SCAN" method can be used to read these codes.
A steady "Service Engine Soon" light with ignition "ON" and engine stopped confirms battery and ignition voltage to the ECM.
The ALDL connector looks like this
Example: An error Code 25 will be:
12,12,12,25,25,25,12,12,12, etc.
Click on Malfunction Description to get more detailed information.
Trouble Code 12 is a special-case code that is not logged into the ECM's Non-Volatile Memory (NVM) when detected. When the ECM detects no ignition reference pulses from the ignition module when the ignition is in the 'ON' position, it illuminates the Check Engine Lamp (CEL), but does not log this code as it would other codes.
Code 12 is used on most systems when in the Diagnostic mode (ALDL Terminal B grounded, key-on/engine-off) to signal the beginning or end of a so-called 'diagnostic sequence', when the ECM annunciates each stored code in the ECM's NVM on the dash CEL.
When in this mode, the ECM will begin by flashing code 12 on the CEL 3 times. This indicates the beginning of a diagnostic sequence. It will then flash any codes stored in NVM 3 times each before proceeding to the next code. When all stored codes are finished, the ECM will again flash code 12 to indicate the end of the diagnostic sequence. The cycle will continue as long as the ECM is in Diagnostic Mode.
NOTE: Codes are not displayed in order of occurance but rather in numerical order.
Trouble Code 13 indicates that the exhaust stream oxygen-content sensor (O2 sensor) is not responding as expected. When cold, the sensor is 'biased' by the ECM to about 450 millivolts. Before it warms to at least 600 deg F (315 deg C) it acts as an open circuit and when the ECM reads it, it reads the 450 mV bias. The ECM expects the sensor to warm in a short period of time and begin sending its own voltages. The general conditions for this code getting set are:
Trouble Code 14 indicates that the Coolant Temperature Sensor (CTS) is reporting abnormally high readings. CTS is used to control fuel mixture, timing, idle speed, TCC and EGR operations among others. The thermistor used has a high-resistance when cold, lowering as the coolant warms.
Code 14 will set if:
Deg C | Deg F | Resistance (ohms) |
---|---|---|
100 | 212 | 177 |
70 | 158 | 332 |
40 | 104 | 1459 |
20 | 68 | 3520 |
5 | 41 | 7280 |
-5 | 23 | 12300 |
-20 | -4 | 28680 |
-40 | -40 | 100700 |
Trouble Code 15 indicates that the Coolant Temperature Sensor (CTS) is reporting abnormally low readings. CTS is used to control fuel mixture, timing, idle speed, TCC and EGR operation, among others. The thermistor used has a high-resistance when cold, lowering as the coolant warms.
Code 15 will set if:
- temperature reported is < -37.30 deg F (-38.5 deg C)
Typical thermistor resistances expected
are:
Deg C | Deg F | Resistance (ohms) |
---|---|---|
100 | 212 | 177 |
70 | 158 | 332 |
40 | 104 | 1459 |
20 | 68 | 3520 |
5 | 41 | 7280 |
-5 | 23 | 12300 |
-20 | -4 | 28680 |
-40 | -40 | 100700 |
Trouble Code 21 indicates that the Throttle Position Sensor (TPS) is reading abnormally high. TPS volts should be close to 0.42 V at closed throttle and rise smoothly in about 0.02 volt increments to a maximum reading of about 4.85 volts at WOT.
Code 21 will set if:
Trouble Code 22 indicates that the Throttle Position Sensor (TPS) is reading abnormally low. TPS volts should be close to 0.42 V at closed throttle and rise smoothly in about 0.02 volt increments to a maximum reading of about 4.85 volts at WOT.
Code 22 will set if:
Trouble Code 23 indicates that the Manifold Air Temperature (MAT) sensor or Intake Air Temperature (IAT) is reading lower than expected. When the air is cold, the thermistor has a high resistance, which falls as the air charge warms. Low readings thus indicate possible open circuits in MAT circuit.
Code 23 will set if:
Trouble Code 24 indicates that the Vehicle Speed Sensor (VSS) is not sending the expected (based on other system parameters like LV8, TPS, RPM etc.) signal to the ECM.
Code 24 will be set if vehicle speed equals zero 0 mph when:
Trouble Code 25 indicates that the Manifold Air Temperature (MAT) or Intake Air Temperature (IAT) sensor is reading higher than expected. When the air is cold, the thermistor has a high resistance, which falls as the air charge warms. High readings thus indicate possible short circuits in MAT circuit.
Code 25 will set if:
Trouble Code 26 indicates that the quad-driver is malfunctioning.
QDM symptoms:
Trouble Code 32 indicates that the Exhaust Gas Recirculation (EGR) system has detected a fault. There are two types, the older integrated electronic EGR contains a voltage regulator which converts the ECM signal to provide different amounts of EGR flow by regulating the current to the solenoid. The ECM controls EGR flow with a pulse width modulated signal (turns "ON" and "OFF" many times a second) based on airflow, TPS, and RPM. This system also contains a pintle position sensor which works similar to a TPS sensor, and as EGR flow is increased, the sensor output also increases. The other type is a digital 3-level EGR used in newer engines. Code 32 will get set when:
Trouble Code 33 indicates that the Manifold Absolute Pressure (MAP) sensor is detecting unusually low vacuum in the manifold. Code 33 will get set when:
Trouble Code 34 indicates that the Manifold Absolute Pressure (MAP) sensor is detecting unusually high vacuum in the manifold. Code 34 will get set when:
OR
Trouble Code 35 indicates a problem with the Idle Speed Control (ISC) circuit. It will be set when the closed throttle engine speed is 200 RPM above or below the desired (commanded) idle speed for 50 seconds. Possible causes include:
Trouble Code 41 indicates an incorrect MEM-CAL has been installed or it is faulty and it must be replaced.
Possible causes include:
Trouble Code 42 indicates that there may be a malfunction in the Electronic Spark Timing (EST) system. During cranking, the timing is controlled by the ignition module and the ECM grounds the EST line. It expects to see no activity on this line at this time. When the ECM enters EST mode, it applies +5 volts to the BYPASS line and expects to see voltage variations on the EST line.
Reasons for the ECM to set Code 42:
Trouble Code 43 indicates that there may be a malfunction in the Electronic Spark Control (ESC) circuit. ESC is used to sense spark knock (pinging) and retard the timing to eliminate it. The knock sensor is located at the rear of the engine block. The ECM will retard the timing by as much as 20 degrees in 1 degree increments. A loss of knock sensor signal or loss of ground at the ESC module will cause the signal at the ECM to remain high. The ECM will act as if no knock is present, and may possibly result in engine damage, due to detonation.
Code 43 is set when:
Trouble Code 44 indicates that the O2 sensor is showing a persistently high exhaust oxygen content (lean), despite the efforts of the ECM to increase injector on-time (thus increasing fuel delivered). Integrator and BLM numbers may indicate > 128 by a substantial margin.
Code 44 is set when:
Trouble Code 45 indicates that the O2 sensor is showing a persistently low exhaust oxygen content (rich), despite the efforts of the ECM to decrease injector on-time (thus decreasing fuel delivered). Integrator and BLM numbers may indicate < 128 by a substantial margin.
Code 45 is set when:
Trouble Code 51 indicates that the ECM sensed a fault in the MEM-CAL. On power-up, the ECM does a checksum of the MEM-CAL to ensure the MEM-CAL integrity is good. If the calculated sum does not match the sum in the MEM-CAL, the ECM will hardcode 51 and enter Back-Up mode, since the ECM cannot know where in the MEM-CAL the fault lies.
Code 51 is set when:
Trouble Code 52 indicates that the ECM sensed a fault in the CALPACK. The CALPACK is a module separate from the PROM that contains preset calibrations used by the system in the limp-home mode. The ECM checks for its presence at power up.
Code 52 gets set when:
This code will be set when the ignition is "ON", and the engine RPM is greater than 800 and the ECM is seeing a ignition fuel reference voltage of more than 17.1 volts. During the time of this failure, all ECM outputs will be disengaged.
Possible causes include:
Trouble Code 54 indicates a low voltage at the fuel pump. If the voltage at terminal "A20" is less than 4 volts for .4 seconds since the last reference pulse was received, the code will be set.
Possible causes include:
Trouble Code 55 indicates that the Analog- to-Digital (A/D) converter in the ECM timed out. The ECM checks this by initiating a conversion and timing how long it takes to complete. If the converter, for whatever reason, fails to signal the End-Of-Conversion (EOC) before a timeout counter runs down, the ECM assumes it is bad and sets this code.
Possible causes for Code 55 are limited to:
Trouble Code 61 indicates that the ECM has determined the oxygen sensor is contaminated or degraded, because the voltage change time is slow or sluggish.
Possible causes:
Trouble Code 66 indicates that A/C pressure sensor has determined that the A/C refrigerant system pressure is either too low (0 psi, .1 volt at sensor) or too high (450 PSI, 4.6 volts at sensor) for 5 seconds or more. If this code is present, the A/C compressor is disabled by the ECM.
Possible causes: