TROUBLESHOOTING PAGE  A


ALDL Terminals

List of trouble codes: 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 51, 52, 53, 54, 55, 61

Erasing trouble codes

Hopefully your system will fire up and run flawlessly. However this is an imperfect world and sometimes, no matter how careful you are, there are some things beyond your control, especially if its dealing with electrical systems. This page will deal with the most common of problems and their remedies. First is a short tutorial on how a tpi system works.

When you first turn the ignition key to the "on" position, the ecm turns the fuel pump on for about two seconds to prime the fuel injectors. The ecm then shuts the fuel pump off until it receives pulses from the ignition module. During this two second period, and when the engine fires off, the ecm is reading the cst, iat or mat, and tps to set the iac to get the proper idle speed. If your tpi is equipped with a cold start injector, the cold start switch is activated to enrich the fuel to help start the engine. Even on a relatively cold morning, your tpi car should start within a couple of seconds.

When the engine is first fired off, the ecm allows the fuel pump to run, a oil pressure switch is closed when it sees good oil pressure. In event of a oil pump or oil pressure switch failure, the fuel pump will not run. It must be noted here, that in the event of the fuel pump relay failing, the fuel pump will run only after the oil pressure is sufficient to close the oil pressure switch and activate the fuel pump relay. NOTE: If you have a faulty oil pressure switch, DO NOT bypass it! During the time the engine is warming up, the ecm is reading all the sensors, including the maf or map sensor, depending on your system, all the time this information is being processed to adjust the fuel calibration and the idle speed. During this time, the ecm is watching the O2 sensor, waiting for it to be heated enough to activate it and to start sending a variable voltage to the ecm. The ecm also has a internal timer to tell it when it is time to change from open to close loop. You will notice, as the engine is warming up, the idle speed is slowly dropping off, approaching warm idle speed, depending on what the mat (iat) and the cst is reading.

The only difference between open and closed loop, is that during close loop the ecm is monitoring the O2 sensor, to trim the air-fuel ratio to 14:7. It is also during closed loop that the internal memory is being updated (reprogrammed) to reflect changes in the operating condition of the engine.

When you decide to accelerate, the ecm reads changes in the maf or map sensor, tps, and other sensors including O2 to provide the fuel injectors in a wider fuel pulse( more open time) At WOT, the ecm will ignore the O2 sensor, and based on the calibration in the prom chip will allow the engine to go full enrichment, based on tps. If the engine is overheating, as detected by the cst, the ecm will also enrich the fuel rate in attempts to cool the engine.

When you decide to take your foot off the accelerator, the ecm then goes into a enleanment mode. When the tps indicates a nearly closed throttle, and the maf or map sensor indicates little load on engine, the ecm will shorten the pulse width (less open time) of the injectors. If you go into heavy deceleration, like slamming on the brakes, the ecm sees a closed throttle, and a negative load on the engine, the ecm will shut the injectors off, until the engine rpm's drop to around 1000.

Another mode of the ecm is the clear flood mode. This mode of operation is similar to when I remember back in the days when I had my '66 Dodge Dart in high school, and I would flood the engine and a heavy gas smell was evident. I would put my foot all the way down on the gas pedal to open the throttle. This would open the throttle plate and choke plate to allow more air to enter the intake, and hopefully I could get the car to start before I killed the battery. The ecm has a program to allow a similar operation. When the ecm sees the engine being cranked, and the throttle angle is more than 80%, the ecm will shut off the injectors, or lean the mixture out to approximately 20:1 to help start the vehicle.

It is must be said that even though the system may look like it's complicated, just remember that the job of the ecm is to read all the sensors, and then activate the control solenoids and turn the fuel injectors on and off. The longer time the injectors are open, more fuel, less time open, less fuel. Simple. Not like a carburetor with its several sub-systems that are a compromise between power and economy. It is no wonder that there is not a single automotive manufacture using carburetors, they just couldn't meet the demands for emissions, economy and performance.

Just the Facts:

If you are having a performance problem, but no trouble codes are being set by the ecm, and the check engine light is not coming on, Check the obvious.

A visual inspection is sometimes to keep you from spending a lot of time and/or money. Look for broken or cracked vacuum lines, check the fittings to see if they are tight. Look at the vacuum line schematics to make sure the lines are properly hooked up in the designated systems. Check the intake manifold, because it can be a suspect in vacuum leaks. This goes for the tpi runners, plenum and throttle body gaskets. A vacuum leak here means false air, air that is not being detected by the maf or map sensor, is being introduced, effectively leaning out the fuel calibration. Also check the routing of the wiring harness. Make sure there is no sensor wires within a inch or two of the spark plug wires and ignition coil wire. Checked for broken, missing connectors, or frayed, broken wiring. Be sure no wires got pinched or frayed under clamps or brackets. Check the spark wires and ignition coil wire for swelling, frayed or broken connections. Of course, if you are doing a swap and have been following this website, you will already have known to inspect and repair any problems. Check for fuel leaks. Check all hoses and connections, including those around the fuel rail, fuel injectors and the fuel pressure regulator. Inspect underneath, including the fuel filter and gas line connections to gas tank. A fuel leak is not only wasteful, it is also a potentially dangerous situation. If you find no leaks, then a diagnosis of  fuel pressure is in order. Check for exhaust leaks. A exhaust system that is leaking is also leaking in oxygen. WARNING!! A leaky exhaust is also dangerous, as it may introduce carbon monoxide into the passenger compartment! This upsets the fuel calibration because the ecm thinks the engine is running lean when it fact it's not. The result is a overly rich running engine, poor fuel economy, fouled plugs, increased emissions, and premature engine wear due to the raw fuel washing the protective oil film off the cylinders and ending up in the crankcase.  Of course, a engine that starts out in poor mechanical shape is a prime candidate for problems. If you are trying to put a tpi system on a worn out engine, you are wasting your time.

Understanding GM ALDL Trouble codes:

GM engineers were kind enough to add a diagnostics mode to aid the automotive technician in troubleshooting the problems associated with the computer command control. This system and it similar derivatives were installed across the entire GM line starting in 1981. All though there has been some changes and modifications due to design and engine changes, the system is basically the same. This same troubleshooting technique can also be used by the home mechanic to do simple repairs. The ALDL or sometimes known as ALCL is a terminal connector normally found under the lower dash panel under the steering column. 


On my Camaro, shown above, is the location I choose to install the ALDL. When the ecm detects a problem with any of its sensors, it sets a "flag" in the prom which identifies the problem and stores it until it is retrieved.  If it is a "soft" fault, where the check engine lamp or also known as "service engine soon" (SES) comes on and then goes off, the ecm may or may not set a code. This is due to the fact that the problem may be intermittent or corrected itself. If this happens, it is worth investigating to see if a trouble code has been stored. A "hard" fault is one where the SES stays on, and indicates there is definitely a problem, a trouble code will be stored.

One thing you must remember, there are certain functions that will not set a code. These are output devices that are controlled by the ecm, such as a IAC, canister purge solenoid, air diverter and port solenoid, and egr solenoid. However, these devices can and will have a impact on the overall function such as those that affect the sensing devices, especially the O2 sensor monitoring the exhaust,  so don't overlook these devices when troubleshooting. 

This is a diagram of the terminals and their function:

The SES lamp must come on when the key is turned to the "on" position, and then go out once the engine is started, unless there has been a trouble code set.

ALDL Terminals

Terminals "A" and "B"     

 These terminals are the only ones used to activate the self-diagnostics mode. Terminal A is grounded to the body chassis. Terminal B is routed back through the under dash connector, to ecm terminal A9.  Connecting A and B together, with the ignition key in the "on" position, engine not running will activate the diagnostic mode (explained later). This mode used while the engine is running is used to monitor the O2 sensor for proper operating status. Leaving these terminals unconnected is the normal driving mode. 

 Connecting a 3.9K ohm resistor across these terminals will call for ecm to go into back up mode. The ecm will use only the tps, engine speed, and cst to activate the injectors. This mode is automatically activated when there is a major ecm failure. Instructions on the calpak is used.  Another mode is activated when a 10K ohm resistor is connected to these terminals. This mode will force the ecm to go into close loop, ignoring the internal timer, and fixes the engine speed around 1000 rpm with a fixed iac position. Using this mode can be helpful when trying to diagnose a unstable idle. With the iac position fixed, if the idle still continue to fluctuate, you can rule out a faulty iac motor.

Terminal "C"   

This terminal is used on Chevrolet vehicles that use a air pump. This wire is connected to ecm terminal A2, which is grounded through a control circuit in the ecm. During warm up, the voltage on this terminal should be low, (close to 0), once the engine is warmed up, the voltage will be high (12-13V). This terminal can be used to check the air switching system via O2 sensor .

Terminal "D" 

Some vehicles may or may not have this terminal. But it is a handy one. It is connected to the SES light. When you apply 12V to this terminal, it will allow to to check for a burnt out lamp.

Terminal "E" 

This terminal is used by a scanner tool to interpret the data stream from the ecm. With the scanner it is possible to get real time look into what the ecm is doing and how it is thinking. Although the scanners are quite expensive, they are helpful especially in trying to find a drivability problem.

Terminal "F"

This terminal is used to check the status of the torque converter clutch solenoid. When the brake pedal has not be depressed and the ecm has not called for the TCC to be activated, there will be 12V at this terminal. If the TCC is active through the ecm, or the brake has been applied, the voltage will drop to zero. 

Terminal "G"

When this terminal is present, it is possible to check for a non-operating fuel pump. By applying 12V to this terminal, you can check the fuel pump. If the pump runs, the non operating condition is upstream from it.

Terminal "H", "J", "K", "L".

No connections.

Terminal "M"

This terminal is used on some applications with high speed scanners. This connection is used in conjunction with terminal "E" in transmission of serial data through a scanner. Some vehicles though only have a terminal "M" for high speed transmission only (such as the 1990-92 F body), so if you only have a low speed scanner and don't have a terminal in pin "E" of the ALDL, you can add this by obtaining a ALDL and extracting the terminal needed. The terminal "E" and "M" share the same data line back to ecm.

Trouble  code retrieval 

When there is problem detected by the ecm, it will set a code. But just as was explained earlier, there are "hard" and "soft" codes. We will focus on the hard codes. With the engine not running, key in the "on" position, jumper terminals "A' and "B". With the ecm in the diagnostic mode, it will first flash a code 12, indicating the ecm has entered this mode. You will see the SES  do this for a code 12:  flash, pause, flash, flash. Think of it in on/off state: 1, pause, 1+1 = 1+2, or 12. It will flash this code three times, then there will be a short pause, and it will flash code 12 again three times, as long as there are no trouble codes, the ecm will flash this over and over until the jumper is removed from the ALDL. 

If there are trouble codes stored, it will follow the code 12, starting with the least numerical code first, flash it three times, go to the next numerical code, flash it three times, and so on until it has reached the last code. Then it will flash code 12 again, and start the whole process again, until the jumper is removed. This will give you plenty of time to retrieve the codes, and double check yourself to make sure you have written down the right ones.    Example: Code 34: flash, flash, flash, pause, flash, flash, flash, flash. (1+1+1, pause, 1+1+1+1= 3+4, or 34.

 Below is a list of trouble codes:

12 ecm diagnostic mode 36 maf burn-off malfunction
13 oxygen sensor 41 ecm tach signal failure
14 cst voltage low 42 est failure
15 cst voltage high 43 esc (knock sensor) 
21 tps voltage high 44 lean exhaust
22 tps voltage low 45 rich exhaust
23 mat voltage high 51 prom failure or installation
24 vss 52 calpak missing
25 mat voltage low 53  high battery voltage
32  egr system malfunction 54 low fuel pump voltage
33  maf or map reading high 55  defective ecm
34 maf or map reading low 61 Oxygen sensor
35 idle speed error

Code 12 - This code is the diagnostic code. It also means that no reference pulses are being detected by the ecm. If this is the only code being displayed by the ecm,  you are being told the ecm is functioning properly.

If you are not getting a code 12 lamp, use this chart to find the problem.

Code 13- This code is set by a O2 sensor problem. It is normally set when there is a open circuit or the O2 sensor is coated with soot from a over rich mixture.                                                                                                                                                                                                        Code 14- This code is set when the cst voltage is low, typically close to 0 volts. The only things that causes this is a shorted sensor or the yellow wire to the sensor is shorted to a ground. Failure of a cst will affect the functions of the fuel delivery, ignition timing, cooling fan, TCC and the idle control. Typically a normal sensor will have the following resistance:

Engine Coolant Temperature Sensor or

Manifold Air Temp Sensor  (F & C)

Resistance in Ohms
210  99 185
160   71 450
100   38 1,800
 70    22 3,400
 40      4 7,500
   0   -18 25,000

This is only a guideline, but it should be fairly close to be effective as to the integrity of the sensor. 

Code 15- This code is for a open sensor or open yellow wire to the sensor. When the ecm sees more than 4.8V on this wire, it assumes that this is an open circuit. This problem will also cause the problems mentioned above for a code 14.

Code 16- This code is set when the ecm see a system over voltage. This usually happens when the voltage regulator in the charging system is defective. When this happens, the ecm will drop off line the solenoids, to keep them from surging a high voltage into the ecm whenever they turn on and off. Find and correct the problem with the charging system.  

Code 21- When the ecm sees the tps voltage high. Usually set when the tps signal (blue wire) is above 2.5V, while the ecm sees an idle speed less than 1500 rpm. These conditions must be met for a specific time, usually 3-5 seconds. This code can also be set when the tps is defective, when the black wire from the connector is open, or the blue sensor wire is shorted against the gray (5V) wire. Check all connections carefully.

Code 22- This code is when the ecm sees the tps voltage low. This happens when the ecm thinks that contact with the tps is lost. Look for a opened or grounded blue or gray wire.

Code 23- A manifold air temperature sensor indicating a low temp. Usually the ecm thinks it sees a temperature of less than -30 F, the vehicle not moving and the engine has been running more than 4 minutes. Look for a defective sensor, or a open circuit in the tan wire or in the black wire returning to the ecm on pin D2. The chart that is used for the coolant sensor resistance can also be used for the mat sensor. 

  Code 24- A vehicle speed sensor malfunction will set this code. The conditions for it being set is vehicle speed at 0 mph, engine speed between 1500-3000 rpm, tps less than 2% open, and the transmission not in park or neutral. These conditions must be met for about 10 seconds. A faulty VSS will affect the operation of the TCC, IAC and ignition timing.

Code 25- This code is set when the ecm sees a mat sensor reading a high temperature. The only causes is a shorted sensor or the tan wire is shorted to ground.    

 Code 32- A egr failure will set this code. Either a faulty egr valve, egr temp. switch or the egr control solenoid. . When the egr solenoid is operating properly, the ecm will activate it, allowing vacuum to open the egr valve, this in turn will allow the hot exhaust gases to circulate through the egr valve, and the egr temp. switch will heat up until it reaches its activation temperature, will close and send s grounded signal back to the ecm telling it the conditions have been met. If the switch is closed on start up or does not close when the operating parameters are met, this code will be set.

 Code 33- This indicates a faulty maf or map sensor, depending on your tpi system. MAF: This code is set when the ecm sees a indicated airflow of greater than 45 grams per sec (gps) and the tps is less than idle, and engine rpm's is around 2000. This can be set by intermittent  problems, usually a bad connection. These can be extremely difficult to find. Check the harness and connections  very thoroughly. Also check for routing of wiring near the spark plug wires, this can induce a voltage high enough to cause problems. If this code is being set along with other maf related codes (34 and 36) suspect strongly a bad maf connector. If all else checks out, the maf is bad. But since this sensor is very expensive, exhaust all your efforts to find and correct a wiring problem first. MAP: If you have speed density, this code will be set when the ecm sees the engine running, tps less than 2%, and a indicated air flow of 11psi or about 8" of vacuum. A faulty map sensor is the problem.

Code 34- This indicates a faulty maf or map sensor, depending on your tpi system. MAF: This code is se when the ecm sees the following conditions: airflow less than 2.5 gps, engine speed of 600 rpm or greater and the tps is above 6% angle. The typical problems are usually false air, vacuum leaks, or residue build up on the maf element or behind the throttle plates. Check the wiring and connectors very carefully, especially if this code is also present with a code 33 and 36. MAP: This is set when the ecm sees a indicated low air flow, or in other words a unrealistic high manifold pressure. Usually a bad map sensor is at fault, but check the wiring and connectors for shorts. 






  Code 35- This code indicates a idle speed error fault. This usually occurs when the ecm sees that the desired rpm's is not being met within a specified range for 50 seconds. This code also can be set when the engine is running too rich or two lean and setting a code 44 or 45. Also look at the iac pintle  for damaged or  if there is damaged by the pintle dragging in the iac passage. If everything checks out, with the engine running, connect a test light to ground and probe the 4 wires to the iac connector. The test light should blink on and off. If it does not, check all the wiring going back to the ecm for opens or shorts to ground, and repair them. Check the connectors for tightness. Check the resistance of the coils of the iac. Noting the relation of the connector to the iac motor, put your ohmmeter probes to each of the blue wires, and then to the green wires. The resistance should be greater than 20 ohms. Check this first before you install a new ecm or reinstall your old one, our you risk damaging your ecm. 

Code 36- This code is related to the burn off relay failure. The ecm has failed to detect 12V on the black wire going back to ecm pin D12, when the relay is not energized. The most likely cause is a open black wire or orange power wire going back to a fusible link to the battery. If this code is present with codes 33 and 34, again as mentioned before, check all the connections and wiring.

 Code 41- This code is for a calpak error. Calpaks are made for a specific engine calibration and the wrong one will set this error code. Also suspect faulty connections on the ecm. If the fault returns after other corrections have been made, suspect a faulty ecm. 

Code 42- This code will be set when the engine is running at 600 rpm or greater, and there is no pulse on the white wire from the ecm to the ignition module for more than 200ms (milliseconds). Common causes for this code include bad connections, frayed wiring, or broken wires such as the tan/black (ecm pin D5) purple/white( ecm pin B5) or white wire (ecm pin D4). Check your wiring carefully along with the connections back to the ecm. 

Code 43- This code is related to problems with the esc system. The code is usually set when there is a voltage detection of the wire going to the esc module to the ecm pin B7. The code will set whenever the engine is first started, and the ecm checks the function of the esc. Also once engine operating temperature is reached and the throttle is nearly open, the ecm will advance the timing until pinging is heard and then back off the timing. If the ecm does not detect the knock sensor operating, it will also set a code. 

Code 44- This code will be set whenever the ecm perceives a lean exhaust condition. The main causes for this is a grounded O2 sensor, low fuel pressure, restricted injectors, contaminated fuel, exhaust leaks or bad air switching valve. The condition met to set the code is  a low  O2output voltage (less than 0.2V)around a minute with the ecm is closed loop.

Code 45- When the ecm has detected a rich exhaust condition, and the O2 sensor voltage remains at more the 0.7V for more than a minute, with the throttle angle between 3 and 40%. Look for leaking injectors, excessively high fuel pressure, leaking egr valve, bad tps and vapor control purge             valve. 

Code 46- This code is unique to vehicles equipped with the vats system. 

Code 51- Memcal fault code. Check the connections to the ecm and memcal and make sure the memcal is fully seated in the socket.

Code 52- This fault related to the calpak. the ecm detects an error with the calpak, wrong information, defective memcal, bad connection from memcal and ecm socket.

Code 53- The ecm has detected a system over voltage. This is when the ecm sees a voltage of over 17 volts for more than two seconds. Check out and repair the charging system. 

Code 54- The ecm monitors the voltage on the fuel pump circuit. If it sees a voltage of less than 2V for about 2 seconds, this code will be set. This can be set by a faulty charging system, but the most likely cause is either a loose or corroded connection in the fuel pump circuit.

Code 55- This code relates to major ecm fault, replace the ecm. 


Be sure to check the resistance of all your relays and solenoids BEFORE you start your tpi for the first time.

 IAC, EGR, air select, air diverter and canister purge solenoids should read at least 20 ohms with a digital meter.

The fuel injectors should be at least 10 ohms , with the normal range around 12-16 ohms.

The relays such as MAF, MAF burnoff, fuel pump, cooling fan etc.,  should read between 40-60 ohms, no less than 20 ohms.

If the resistance values are too low, the excess current through the ecm's driver circuits will destroy it in a short time. This also goes for carefully checking the wiring harness for shorts.

Code 61- This code is set when the ecm detects a oxygen sensor that is not responding. If you use a rtv silicone that is not approve for sensor equipped cars (sensor safe) you will certainly destroy the 02 sensor. Use of leaded gasoline will do the same thing.

Erasing trouble codes:  After troubleshooting and repair for any stored codes, and you need to see if problem has been corrected, pull the ecm power fuse for at least 15 seconds. This will erase any fault codes. Reinstall fuse before starting engine. Just remember also, that erasing trouble codes, also erases the stored memory in the prom chip and after the engine is restarted, it will be relearning to fine tune the fuel calibrations. During this time, for at least 20 minutes of driving time, the engine may act like it's not running right, but that will be quickly corrected as the ecm relearns. 

Using a scanner tool:

This tool is usually reserved for tech shops and automotive repair facilities, but it is worth mentioning here, if you plan to purchase one. While some of these can cost around a thousand dollars. There are several companies that sell software and hardware, that with one's personal computer can be use to link with the ALDL connector and display the engine operating parameters on the monitor.

This tool used with along other troubleshooting tools is invaluable in diagnosis of difficult problems.

When setting up a scanner, it may be necessary to enter the appropriate information such as the third digit of the VIN, car line (in this case, Chevrolet) and the engine type (VIN eighth digit), and the year (VIN tenth digit).

Custom Search

                                                         [BACK]     [HOME]      [NEXT]