Since I have built so many scantools in the past years, many people are fascinated by the things a scantool displays, but are unsure about how to properly use it and what you can do with it. The following paragraphs will give you a short introduction on the use of a scantool on the Fiero.
Code 12: Not a trouble code at all, it only means the engine is not rotating.
Code 13: An open in the oxygen sensor. Either sensor or wiring. The ECM sets this code if it doesn't see O2-Sensor voltage changes. The sensor should be replaced every two years anyway.
Code 14/15: Coolant temp sensor grossly out of range. This is usually a problem with the wiring or ECM contacts.
Code 21/22: TPS sensor out of range. These things are mechanical and do wear. Set the scantool to TPS and check if the value is steadily under 0.2V or over 4.5V while slowly varying the throttle (engine off, ignition on). If so, it's the wiring, if the throttle does vary, the TPS is worn.
Code 23/25: Air temp sensor grossly out of range. This is usually a problem with the wiring or ECM contacts.
Code 24: Speed sensor: This one rarely goes bad, but the plastic gear on the VSS can break. If the speedo is dead you usually get a Code 24 along with it, but sometimes the speedo can appear intact and still deliver no pulses to the ECM. It's easy to switch any Fiero speedo temporarily into the car and check if that cures the problem. (All Fiero speedos are compatible and can be used for that purpose).
Code 32: EGR circuit feedback. Usually the service tech people just replace the EGR solenoid when they get this fault, but it can also be caused by wiring problems or cracked vacuum hoses (or even a leaking EGR valve). So be sure to use the check procedure before running to the parts counter.
Code 33/34: MAP sensor grossly out of range. This is usually a problem with the wiring or ECM contacts.
Code 35: Idle speed error. Replacing the IAC valve is normally not the solution to get rid of this one! This fault means that the ECM could not control the idle speed within its set limits, and this is likely to be caused by other factors, namely vacuum leaks (EGR-tube!), bad sensors, intermittents in the wiring, etc. Again, be sure to use the diagnostic tree in the Helms for this one.
Code 42: EST fault. This is the only code that is difficult to diagnose, because the scantool is no big help there, but Code 42 is usually either caused by a bad module, bad module ground (replace module screws!), bad wiring or interference through misrouted spark plug wires.
Code 44/45: O2 sensor grossly out of range. This is usually a problem with the wiring or ECM contacts, but the sensor does wear and should be replaced every two years anyway.
Code 51: PROM error. Unlikely fault, but easily checked by replacing the PROM with another one. If that doesn't help, the ECM is bad.
Code 52: CalPak error. Even more unlikely than Code 51. Usually the calpak is just missing. Get a new one.
Code 53: System over voltage. Check voltage vs. rpm. If it goes over 15V, you have a bad regulator on the alternator. if not, clear fault and see if comes back again. If it does, the ECM is bad.
Code 55: Bad ECM. Either a bad ground or a bad ECM. Also relatively unlikely.
Although the ECM monitors the sensors constantly for out of range readings, some sensors do age and their readings gradually change, which is something the ECM can not detect. Bad contacts can also change readings which stay within the limits and do not cause a trouble code to be set. The effect of this is usually bad fuel economy, sluggish response, etc. The following list contains a short description for each of the positions a scantool displays, what it is, how to diagnose, etc.
MAT: Manifold Air Temperature. This is the sensor reading. It should read close to ambient temperature (or CTS) if the car has been sitting overnight. This sensor does age, so check it every now and then.
CTS: Coolant Temperature Sensor. This is the sensor reading. It should read close to ambient temperature (or MAT) if the car has been sitting overnight. This sensor does age, so check it every now and then. This one is useful to check when the thermostat opens: just observe while the engine gets hotter. You'll see the temperature drop and stabilize when the thermostat opens.
MAP: This sensor is best compared to a known good vehicle with the engine off. With the engine running you can see the value varying, but you can only verify that the value is changing, not really if it's accurate. With a vacuum pump and gauge you can check the reading with the table provided in the Helms manual.
TPS: This sensor does not age, but it wears because it's mechanical. Usually it wears near the idle position, so check the reading by slowly varying the accelerator pedal and see if the value follows. The slow update rate of the scantool is really hurting here, so an analog gauge measuring directly at the TPS may give better results.
BAT: Current battery voltage. Interesting, but not really all that helpful. Only useful for diagnosing a bad regulator.
O2: This is the current O2 voltage. Again, the update rate is too slow, but you can check if the value changes at all once the sensor has heated up. Once the sensor is hot, the O2 sensor indicates changes from lean to rich several times a second, these crossovers from rich to lean or vice versa are called crosscounts. The sensor does age quickly and responds slower and slower with age, causing reduced economy at first, and then later on driveability problems may appear. Replace the sensor every two years.
VSS: Current speed. Used to check Code 24, or to verify the accuracy of the speedo. Not really useful for anything else.
RPM: Current rpm. Useful for checking accuracy of the tach, but not much else.
IAC: Idle Air Control steps. This is what the ECM thinks is the current IAC position, not what it actually is! So, if the IAC sticks or the wiring is bad, the IAC value can be anything but correlate with the real position. The IAC steps are zero with the IAC closed, and increase the more the IAC is open. After startup the IAC is high and as the engine warms the IAC will slowly go to zero. If there is a vacuum leak (EGR-tube), the IAC will close more quickly, because the ECM will need less additional air due to the leak. Comparison to another vehicle or notes from a year ago can be helpful here.
BPW: This is the Base Pulse Width for the injector(s). Interesting, but of little use for diagnostics.
ADV: This is the spark advance in degrees, calculated from a base offset. The base offset it set by rotating the distributor (if equipped), so this again is where the ECM thinks the timing is. A strobe light is much, much better for checking the real timing (remember the 1.5s update rate), so this one again is not all that interesting.
EGR: This is the currently commanded EGR duty cycle (goes from 0-100%). 0% means no EGR, valve is closed. The more EGR is commanded, the more the valve opens. This one is not very useful for diagnosing EGR problems (the EGR diagnostic switch is for that purpose), but it is interesting to see under what conditions the ECM actually commands EGR. Since this is another commanded value, it does not necessarily reflect the actual state of the EGR.
O2X: This is the O2 crosscounts value. The O2 reading will always swing around the center value of 0.45V, at least that's the point of the whole emissions control hoopla. Each time the O2 value crosses the center line, this value is incremented. This value will only count up and wrap to zero if it exceeds 255. The faster this counter counts up, the better the regulation.
INT: The integrator is a variable used for emissions control. If the ECM does not see a crosscount for a while and the mixture stays too rich, the integrator is incremented. If there is no crosscount and the mixture is lean, the value is decremented. Without getting too technical, this value is used to richen or lean out the mixture, to bring the exhaust back into the operating range. The value should be around 128, which is the center value. If it is constantly too high or too low, there may be a vacuum leak or leaking injector that the ECM is trying to compensate for.
BLM: This is a value related to the INT variable, but is a long term variable. You really need to be into the inner workings of the ECM to work with this one.
PROM ID: Some Scantools show the PROM-ID of the installed PROM.GM technicians use this to look up which PROM is installed without opening up the ECM.
Flags are readings which are On/Off, Open/Closed, etc. Usually they show the value of an input that is not a sensor but a switch, or the state of an output that drives a solenoid.
A/C Clutch output: This flag reflects what the ECM commands the A/C clutch to do. If this indicates "on", the A/C clutch should come on, or there is a problem.
A/C Request input: This flag indicates if the A/C is commanded on. Easy to verify by pressing the appropriate switches on the A/C control head.
Fan Switch output: This means the Fan is being commanded on by the ECM. If this flag is on and the fan is not, either the fan relay or the fan itself is bad.
TCC Solenoid output (automatic only): This flag shows if the TCC solenoid is engaged or not. Interesting to see when the ECM turns this one on, but as with all outputs, if the TCC is not working correctly, this value is not related to what's actually happening.
Shift light output (manual only): Not interesting unless your shift light bulb is burnt out.
EGR Switch input: This is the diagnostic switch that causes Code 35. By applying and releasing vacuum to this switch while observing the flag status, you can determine if the switch is bad, or the wiring, or the vacuum components.
Loop status: When the engine is cold and the O2 sensor not yet working the engine is in open loop, meaning that the emission controls are switched off. When the O2 sensor has warmed up and emission controls kick in, the engine goes closed loop.
Mixture status: This is an internal variable that shows if the mixture is currently rich or lean.
Battery status: Shows if the ECM considers the current voltage to be adequate or not. Frankly, the battery voltage reading is much more useful for that purpose, but hey...
Well, I hope this information is useful, but as always, I value your feedback and if you have any additions, corrections or suggestions, please let me know!
There have been visitors to this site since May 31, 2000.