How to Read Trouble Codes From the ECU

    On the gauge cluster, to the top left there are a few idiot lights which are not on under normal driving conditions.  One of these lights reads 'check engine.'  This light comes on when the ECU detects a fault in one of the many electronic components from which it receives signals and to which it transmits signals.  If the ECU recognizes a problem while the car is on, the 'check engine' light will be constantly illuminated.  If it has detected a problem in the past, but the problem which it detected no longer exists, the light will be out.  However, the ECU will store a record of the faults it has detected in the past until they are cleared deliberately or unintentionally.  To read any current or past faults, the 'check engine' light will flash in a sort of Morse code, which we can decipher.
   

Underneath the steering column is a wide rectangular piece of plastic, the same color as the dash, which has a tray marked 'TRAY.'  This large piece is held to the underside of the dash with a bunch of screws.  Remove these screws and remove the plastic piece.  Now there will be a bunch of wires for you to see.  To the left of the steering column (at least in left hand drive cars) somewhere probably tucked away will be a bundle of wires with two pairs of electrical connectors which are disconnected.  One is black and connects one wire to one wire, the other is green and roughly 'T' shaped, this one also connects one wire to one wire.  With the car turned completely off, connect the black connector.  Next, turn the ignition to 'ON' but do not start the car.  The idiot lights in the dash will come on, and some may go out after a few moments.  Watch the 'check engine' light and maybe have something you can write on to remember the codes.  If there is a fault code in the ECU, the 'check engine' light will begin to flash in a particular manner.  The codes range in number from 11 to 52, so we know that they all will be two digits.  To signify the tens place of the number, the 'check engine' light will flash a long (1.2 seconds) flash.  The single digit will be a short (.2 seconds) flash.  Each flash within the same code will be separated by .3 seconds.  Each error code will be separated by 1.8 seconds.  Don't bother trying to time all these, just watch the light and you will begin to understand.  Once the ECU has flashed all stored codes, it will loop through and repeat them.  Now, for example, you see two long flashes followed by two short flashes.  This means you have a code number 22.  By looking at the following chart, we see that 22 is the code for the knock sensor.  Once you have read and recorded all faults, turn the ignition off and disconnect the black connector.

    If you have done the above procedure, you will likely wonder what the green T-shaped connectors are for.  These are for a more active code reading procedure called D-check mode in the Subaru manuals.  Start with both connectors disconnected, start the engine, allow it to warm up, then turn it off.  Next, connect the test mode connectors (green T-shape).  Turn ignition to ON position without turning on engine.  At this point if the check engine light does not come on, it is faulty and must be fixed before continuing.  Depress accelerator pedal to floor, return to half throttle and hold for two seconds, then release.  Start the engine.  Now the light can blink in two different ways.  If everything checks out so far, it will blink to indicate a number 01, 02, 03, 04, 05, 06, 07, or 08.  If a problem is already detected, it will blink according to the chart below.  Either way, your next step will be to drive the car with the test mode connectors connected.  You must drive over 7 mph for at least one minute, and shift up to 4th gear if you have a manual tranny.  Now, either you will discover your trouble codes, or you will have none.
    To erase trouble codes from the computer (without resorting to the infamous battery disconnect dance), repeat the above procedure exactly, but connect both the green and black connectors at the appropriate time.      

 

Trouble Code Table


Trouble 
Code
Item Contents of Diagnosis Fail-Safe Operation Non-
Turbo
Turbo
11 crank angle sensor No signal entered from crank angle sensor, but signal (corresponding to at least one rotation of the crank) entered from cam angle sensor none X    X
12 starter switch Abnormal signal emitted from starter switch Turns starter signal switch OFF X    X
13 cam angle sensor No signal entered from cam angle sensor, but signal (corresponding to at least two rotations of cam) entered from crank angle sensor none X    X
14 Injector #1 Fuel injector inoperative (Abnormal signal emitted from monitor circuit) none X    X
15 Injector #2 Fuel injector inoperative (Abnormal signal emitted from monitor circuit) none X    X
16 Injector #3 Fuel injector inoperative (Abnormal signal emitted from monitor circuit) none X    X
17 Injector #4 Fuel injector inoperative (Abnormal signal emitted from monitor circuit) none X    X
21 Water temperature sensor Abnormal signal emitted from water temperature sensor Adjusts water to a specific temperature, maintains radiator fan "ON" to prevent overheating X    X
22 Knock sensor Abnormal voltage produced in knock sensor monitor circuit Sets in regular fuel map and retards ignition timing X    X
23 Air flow sensor Abnormal voltage input entered from air flow sensor Controls the amount of fuel (injected) in relation to engine speed and throttle sensor position X    X
24 Air control valve Air control valve inoperative (Abnormal signal produced in monitor circuit) Prevents abnormal engine speed using "fuel cut" in relation to engine speed, vehicle speed, and throttle sensor position X    X
31 Throttle sensor Abnormal voltage input entered from throttle sensor Sets throttle sensor's voltage output to a fixed value X    X
32 Oxygen sensor Oxygen sensor inoperative  none X    X
33 Vehicle speed sensor Abnormal voltage input entered from vehicle speed sensor Sets vehicle speed signal to a fixed value X    X
35 Canister purge solenoid valve Solenoid valve inoperative none X    X
41 A/F learning control Faulty learning control function none X    X
42 Idle switch Abnormal voltage input entered from idle switch Judges OFF operation X    X
44 Duty solenoid valve
(Wastegate control)
Duty solenoid valve inoperative none      X
45 Atmospheric pressure sensor Faulty sensor Sets sensor to 760 mmHg X  
45 Pressure sensor and pressure exchange solenoid valve Faulty sensor or pressure exchange solenoid valve inoperative Prevents abnormal supercharging pressure using "fuel cut" in relation to engine load      X
49 Air flow sensor Use of improper air flow sensor none X    X
51 Neutral switch Abnormal signal entered from neutral switch none X    X
51 Inhibitor switch Abnormal signal entered from inhibitor switch none X    X
52 Parking switch Abnormal signal entered from parking switch none X    X