All the below information is for the first generation Subaru Impreza, which is the pre-facelift model covering years from 1992 to 1997. All the details below would hep anyone Diagnose when their Check Engine light stays one and geared towards WRX, STI owners.
ECU Diagnostics
The stock ECU on a 92-97
Subaru Impreza can diagnose any fault that may arise that are sent from the various sensors in the engine bay to the electronic controller unit (ECU). The ECU will then signal the driver via the Check Engine in the instrument console if there is a problem with any of the computers inputs. It is possible to find which sensor(s) is faulty by following these steps:
- Turn ignition OFF
- Connect read memory connectors [black connectors]
(scroll down to "Finding Those Connectors" section to help you locate them)
- Turn ignition ON (Engine OFF)
- Engine Check lamp turns on
- Code is indicated by Pulsing lamp
- If Code is OK then Turn ignition OFF & Disconnect Connectors
- Check ECU Code
- Turn ignition OFF & Disconnect Connectors
- If there is a fault Check Appropriate Sensor
ECU Reset
An ECU reset will restore the car to factory default settings. This will remove any stored fault codes and restore ignition advance. Note that on the early
Subaru models (especially pre 1997) the ECU purposely retards the ignition when any knock is detected, however, and it takes its time to advance the timing again.
It is possible to reset the ECU by following steps:
- Turn ignition OFF
- Connect Read Memory Connectors [black connectors] & Test Mode Connectors [green connectors]
(scroll down to "Finding Those Connectors" section to help you locate them)
- Turn ignition ON (engine off)
- Engine Check lamp turns on
- Depress accelerator pedal completely
- Then return it to the half-throttle position and hold it there for two seconds
- Release pedal completely
- Start engine
- Code is indicated by Pulsing lamp
- If a fault is detected - Check ECU Code
- If no fault is detected - drive the car sensible for a couple of minutes
until warm (don't push it and take it easy like a grandpa!)
- When the ECU has been reset the Check Engine Light will flash
- Code is indicated by Pulsing lamp
- If a fault is detected Check ECU Code
- Turn ignition OFF & Disconnect Connectors
- If there is a fault Check Appropriate Sensor
Finding Those Connectors
As indicated above, the Black Read Memory Connectors & the Green Test mode Connectors are required to perform diagnostic & ECU resets. The connectors are located under the dash up by the steering column. If they have not been used before they are usually taped quite high up & can be difficult to find, but they are there, once untaped they dangle down and are quite easy to use.
Reading ECU Codes
The ECU codes are displayed as pulses of the Check Engine Light.
Normal use
- CEL On - If Check Engine Light stays on there is a fault.
- CEL Off - If Check Engine Light goes out there is no fault.
Diagnostic Mode
Flashing: Even and Continuous
No Fault is indicated by the Check Engine Light continuously & evenly flashing on/off (this is also used to indicate the successful completion of an ECU Reset).
Flashing: Abruptly with a pattern
You have a fault, the different pulses related to numbers, and the numbers will relate to an ECU code in plain English for you to further diagnose the car - scroll down to "Subaru ECU Codes" for the full list.
The long pulses (1.3 Seconds) indicate Tens and the short pulses (0.2 Seconds) indicate ones. Pulses are separated by Short Pauses (0.2 Seconds), multiple codes are separated by a Long Pause (1.8 Seconds).
The simplest way for an inexperienced mechanic to retrieve codes is to write the codes down in a sort of Morse Code (dots and dashes), and start a new line when you get a 1.8 Second pause (for NEW code), and then add the actual numbers up after code retrieval is completed.
Code Examples
Single Code |
Multi Code |
1.3 second pulse (10)
0.2 second pause
1.3 second pulse (10....for a total of 20)
0.2 second pause
0.2 second pulse (1.....for a total of 21)
0.2 second pause
0.2 second pulse (1.....for a total of 22)
0.2 second pause
0.2 second pulse (1.....for a total of 23) |
1.3 second pulse (10)
0.2 second pause
1.3 second pulse (10....for a total of 20)
0.2 second pause
0.2 second pulse (1.....for a total of 21)
0.2 second pause
0.2 second pulse (1.....for a total of 22)
0.2 second pause
0.2 second pulse (1.....for a total of 23)
1.8 second pause (this means NEW code)
1.3 second pulse (10)
0.2 second pause
0.2 second pulse (1.....for a total of 11)
0.2 second pause
.2 second pulse (1.....for a total of 12) |
Code 23 -- MAF Sensor |
Codes 23 and 12, MAF Sensor and Starter Circuit |
All codes below are the generic
Subaru ECU error codes, the highlighted ones are specific codes for the Impreza.
Code |
ITEM |
11* |
Crank Angle Sensor or Circuit |
12* |
Starter Switch or Circuit |
13* |
Cam Position Sensor or Circuit (TDC Sensor on Justy) |
14 |
Fuel Injector No. 1 (Legacy, Impreza, Justy, SVX) |
15 |
Fuel Injector No. 2 (Legacy, Impreza, Justy, SVX) |
16 |
Fuel Injector No. 3 (Legacy, Impreza, Justy, SVX) |
17 |
Fuel Injector No. 4 (Legacy, Impreza, SVX) |
18 |
Fuel Injector No. 5 (SVX) |
19 |
Fuel Injector No. 6 (SVX) |
21* |
Coolant Temperature Sensor or Circuit |
22* |
Knock Sensor or Circuit (Right Side on SVX) |
23* |
Air Flow Meter or Circuit (Exc. Justy) |
24* |
Air Control Valve or Circuit (Exc. Justy) |
25 |
Fuel injector No. 3 and 4 (XT-6) |
26 |
Air Temperature Sensor (Justy) |
28 |
Knock Sensor No. 2 (SVX, Left Side) |
29 |
Crank Angle Sensor (SVX, No. 2) |
31* |
Throttle Position Sensor or Circuit |
32* |
Oxygen Sensor or Circuit (No. 1, Right Side, On SVX) |
33* |
Vehicle Speed Sensor (VSS) or Circuit |
34 |
EGR Solenoid or Circuit |
35* |
Purge Control Solenoid or Circuit |
36 |
Air Suction Solenoid Valve (Impreza) |
37 |
Oxygen Sensor (No. 2, Left Side, On SVX) |
38 |
Engine Torque Control (SVX) |
41 |
Air/Fuel Adaptive Control |
42* |
Idle Switch or Circuit |
43 |
Throttle Switch |
44* |
Wastegate Duty Solenoid (Turbo Models) |
45* |
Pressure Sensor Duty Solenoid (Turbo Models) |
45 |
Atmospheric Pressure Sensor or Circuit (Non-Turbo Models) |
46 |
Neutral or Parking Switch or Circuit |
47 |
Fuel Injector |
49 |
Airflow Sensor |
51* |
Neutral Switch (Manual Transmission Models) |
51 |
Inhibitor Switch (Automatic Transmission Models) |
52 |
Parking Brake Switch (Exc. Justy) |
53 |
Fuel Pump or Circuit |
54 |
Choke Control System |
55 |
EGR Temperature Sensor or Circuit |
56 |
EGR System |
57 |
Canister Control System |
58 |
Air Control System |
61 |
Fuel Tank Pressure Control Solenoid (Impreza) |
62 |
Fuel Temperature Sensor (Impreza) |
63 |
Fuel Tank Pressure Sensor (Impreza) |
64 |
Vacuum Line Control Valve or Circuit |
65 |
Vacuum Pressure Sensor |
66 |
Sequential turbo system |
67 |
Exhaust valve solenoid (positive pressure) |
68 |
Exhaust valve duty solenoid |
71 |
Ignition Pulse System |
73 |
Ignition Pulse System |
74 |
Ignition Pulse System |
88 |
TBI Control Unit |
Sensors
Please refer to the photo and the reference guide for the location of each sensor in the engine bay of your
Subaru Impreza. If you are currently debugging a problem from the fault given by the ECU code mentioned above then one of the following applies:
- Sensor is disconnected, or wire is cut somewhere in the harness. Using a voltmeter to check continuity can help cross out this possible issue.
- Faulty Sensor. Either research the possible values the sensor should own to (usually in ohms), or if possible replace the sensor with a known working one.
- Faulty Mechanics. It could be the real fact that the mechanics the sensor is built to detect a fault on is actually not performing as it should.
Reference |
Sensor |
1 |
Pressure sensor |
2 |
Pressure exchange solenoid valve |
3 |
Wastegate control solenoid valve |
5 |
Mass air flow sensor signal |
6 |
Oxygen sensor |
7 |
Vehicle speed sensor 2 |
8 |
Engine coolant temperature sensor |
9 |
Throttle position / Idle Switch |
10 |
Idle air control solenoid valve |
11 |
Knock sensor |
12 |
Camshaft position sensor |
13 |
Crankshaft position sensor when starter switch is ON |
14 |
Purge control solenoid valve |
ECU Pinouts
The ECU pinouts for a 1996
Subaru Impreza can be
downloaded from here.