DECEMBER 10, 2024 FOR THE FIERO COMMUNITY, BY THE FIERO COMMUNITY TOTAL MEMBERS: 32811













ECM Diagnostics (Trouble) Codes by C. Pennock


ECM Diagnostics (Trouble) Codes

The Engine Control Module (ECM) uses sensors to monitor the operating conditions of the engine. If any of the values read from the sensors is not what the ECM expects it to be, the ECM will turn on the "Check Engine" or "Service Engine Soon" (SES-) light and will store a Trouble Code in memory. These trouble codes can be retrieved later from the ECM to guide you in diagnosing the problem.

The SES-light should always be on when the ignition is "ON" and the engine not running. If the SES-light does not come on under these conditions, than either the bulb needs to be replaced, you have short somewhere, or you have a defective ECM.

The trouble codes stored by the ECM can be "read" from the SES-light by switching the ECM to Diagnostic mode. To switch the ECM to Diagnostic mode, two pins on the Assembly Line Diagnostic Link (ALDL) connecter must be jumpered, the ignition turned "ON" and the engine must not be running. The ALDL connector is located in the passenger compartment behind the small black panel that also holds the cigarette lighter. After this panel has been removed, the ALDL connector will be visible. Jumper terminal "A" to "B" (or simply ground terminal "B") to enter Diagnostic mode:




With terminal A jumpered to B, turn ignition to "ON" but do not start the engine. The SES-light will now flash once, pause shortly, then flash twice in quick succession. This is the method the ECM uses to "display" codes. In this case, it flashed code "12" (1 flash, pause, 2 flashes):




Whenever the ECM is switched to Diagnostic mode, it will flash code 12 three times after which it will flash all stored trouble codes. After all stored trouble codes have been displayed, the ECM will repeat the process (so getting code 12 again means you have reached the end of the stored codes list).

All possible codes together with a small explanation can be found below. To see the code actually being flashed, click on the SES-light below the code! You can switch the light off again by clicking on it for the second time.


Code 12
Diagnostic Mode Active (ECM OK)
When the diagnostics terminal is grounded, the ignition turned on and the engine is not running, the ECM will flash Code 12 three times. If it's flashing this code while the engine is running (Field Service Mode), then the ECM is not receiving any pulses from the distributor.
Code 13
Oxygen Sensor Failure
When the ECM detects there's no variation in the voltage sent by the Oxygen Sensor during normal operation of the car, it wil set Code 13. Usually this means the sensor is disconnected or it needs to be replaced. Also check for a sticking or misadjusted Throttle Position Sensor.
Code 14
Coolant Sensor (low voltage)
The Coolant Sensor is actually a thermistor. The lower its resistance, the higher the coolant temperature. The ECM will set Code 14 if the engine overheats (temperature higher than 135°C/275°F for longer than 3 seconds), or when there's a problem with the sensor.
Code 15
Coolant Sensor (high voltage)
Because the Coolant Sensor never has an infinitely high resistance, the measured voltage should always be lower than the reference voltage. If the measured voltage is the same as the reference voltage, a problem exists with the Coolant Sensor. The ECM will set this code when it detects a problem with the Coolant Sensor (or when the coolant temperature actually drops below -30°C/-22°F).
Code 21
Throttle Position Sensor (TPS high voltage)
Code 21 indicates a problem with the Throttle Position Sensor. Check for a sticking or misadjusted TPS plunger.
Code 22
Throttle Position Sensor (TPS low voltage)
Code 22 indicates a problem with the Throttle Position Sensor.
Code 23
Manifold Air Temperature (V6 only)
If the ECM detects a problem with the MAT sensor (unusual low temperature reading), it will set Code 23. Check all connections and replace the MAT sensor if necessary.
Code 24
Vehicle Speed Sensor
Code 24 indicates a problem with the VSS (ECM does not receive any speed pulses while driving).
Code 25
Manifold Air Temperature (V6 only)
If the ECM detects a problem with the MAT sensor (unusual high temperature reading), it will set Code 25. Check all connections and replace the MAT sensor if necessary.
Code 32
EGR Vacuum Control
Code 32 is by far the most commonly encountered trouble code. The most common cause for this trouble code is a leak in the EGR vacuum lines. This code is often disregarded since a malfunctioning EGR system seldomly has any effect on the car's driveability, and only on the engine's emissions. It's also tremendously difficult to diagnose the problem. If your car passes emission tests and is otherwise running ok, it's often not worth the trouble trying to find the problem.
Code 33
Manifold Absolute Pressure (MAP) Sensor
The ECM will set code 33 when a problem with the MAP sensor is detected (unusual low vacuum/high pressure). Check the vacuum hoses from the MAP sensor. Check all connections and replace the MAP sensor if necessary.
Code 34
Manifold Absolute Pressure (MAP) Sensor
The ECM will set code 34 when a problem with the MAP sensor is detected (unusual high vacuum/low pressure). Code 34 usually indicates a defective MAP sensor. Check all connections and replace the MAP sensor if necessary.
Code 35
Idle Speed Error
The ECM will set code 35 when the engine speed is 75 RPM above or below the correct idle with closed throttle. This condition must be met for at least 45 seconds before the code is set. If idle speed is too high, check for vacuum leaks. If idle speed varies up and down, your engine might be running too lean (high air/fuel ratio). Check for low fuel pressure or water in fuel. If idle speed is too low, your engine might be running too rich (low air/fuel ration). Check for high fuel pressure or leaking/sticking injectors. Also, check all connections to the IAC and replace the IAC if necessary.
Code 42
Electronic Spark Timing
The ECM will set code 42 under the following conditions:

The ignition module will ground terminal B4 (EST) on the ECM when the system is (supposed to be) running on the ignition module. If this does not happen (ECM is seeing a voltage on terminal B4), the ECM will set code 42.
When the RPM for Electronic Spark Timing is reached (400 RPM) a by-pass voltage will be applied to the ignition module, and the ignition module should no longer ground EST. If it still does, the ECM will set code 42.

There are several reasons any of these conditions can occur. The most obvious is a faulty ignition module. Check all wires coming from the ignition module. Also check your sparkplug wires. Because a high voltage is applied to the sparkplug wires, there could be electro-magnetic interference. Replace sparkplug wires or try rerouting them.
Code 44
Oxygen Sensor - Lean Exhaust
The ECM will set code 44 when the ECM detects a low voltage from the oxygen sensor and the system is operating in Closed Loop (conditions must exist for longer than 20 seconds).

Check the wires of the oxygen sensor, making sure they are not in contact with the exhaust manifold.

Check the oxygen sensor and replace if necessary.

Check the MAP sensor. If the ECM detects a higher than normal vacuum then this will cause the system to go lean. Disconnect the MAP sensor. If the lean condition goes away, then a problem exists with the MAP sensor.

Check for lean injectors.

Check for fuel contamination (specifically for contamination with water).

Check fuel pressure. If pressure is too low, the system will be lean.

Check for exhaust leaks. An exhaust leak can cause air to be pulled into the exhaust and past the sensor.

If you have spark knock, check the EGR system.
Code 45
Oxygen Sensor - Rich Exhaust
The ECM will set code 45 when the ECM detects a high voltage from the oxygen sensor, throttle is applied and the system is operating in Closed Loop (conditions must exist for longer than 50 seconds and engine must be running for at least 1 minute).

Check the oxygen sensor and replace if necessary.

Check fuel pressure. The system will go rich if the fuel pressure is too high.

Check for rich injectors.

Check for leaking injectors.

Check for fuel contamination (specifically for contamination with oil).

Check for proper ignition module shielding. If the ignition module is not properly shielded, the ECM might mistake the electro-magnetic interference for reference pulses, causing too much fuel to be delivered to the system.

Check the canister purge for fuel. If full, check canister control and hoses.

Check the MAP sensor. If the ECM detects a lower than normal vacuum then this will cause the system to go rich. Disconnect the MAP sensor. If the rich condition goes away, then a problem exists with the MAP sensor.

Check for leaking fuel pressure regulator by checking the vacuum line to the regulator for fuel.

Check TPS. An irregular TPS output will cause the system to go rich due to a false indication of accelerating.
Code 51
PROM Failure
Reseat the PROM. If the problem remains, replace the PROM.
Code 52
Fuel CALPAK (V6 only)
Faulty or missing CALPAK. Reseat the CALPAK PROM. If the problem remains, replace the CALPAK PROM.
Code 53
System Over Voltage (V6 only)
The ECM will set code 53 if the system voltage is higher than 17.1 Volts for at least 2 seconds. Check the charging system.
Code 55
ECM Failure
Check all ground connections of the ECM. If all are ok, replace ECM.




PFF Poll

How many Fieros do you own?

I don't own a Fiero
1
2
3
More than 3