ECU Diagnostics

Description:

Most EFI Suzukis (maybe all?) have two diagnostic interfaces for the ECU. One diagnostic connector allows codes to be read by counting the flashes from the Check Engine Light after jumping two of the pins with a wire link.
The second connector is either a 16-pin OBD2 (J1962) connector or a 12-pin ALDL type connector, this connector is for use with a scan tool. Models equipped with the ALDL connector use a Suzuki proprietary interface known as the Serial Data Link (SDL). Models with an OBD2 connector use SDL, OBD2 (ISO-9141-2) or OBD2 CANBus.
Airbag, ABS and transmission controllers usually have there own test connectors, these are not covered here.

Check Engine Light Method

Some early models have an empty slot in the fuse box that requires a fuse to be inserted. Most models have either a 4-pin or a 6-pin connector that requires a wire link to be inserted to pull the fault codes.

Typical Connector locations:
First gen. Vitara/Sidekick/Tracker
Underneath the bonnet either beside the battery or beside the (UK) drivers side headlamp.
Jimny
Behind glovebox
GV/Grand Vitara
Under bonnet beside ignition coil (if fitted)


Six pin connector:




There are two input 'switches', the Diagnostic Switch Terminal (DST) and the Test Switch Terminal (TST) and two output lines the Diagnostic Output Terminal and the Duty Output terminal. The Diagnostic Output Terminal is simply a connection to the Check Engine Light (CEL). Diagnostic modes are selected by placing jumpers between the switch terminals and the ground terminal.
The test modes are given in the table below. '0' represents a grounded input, '1' represents a non-grounded input.


Input Terminals
Output
DST (B)
TST (E)
1
1
No Diagnostic Outputs*
1
0
Ignition Timing to Initial Settings
0
1
Diagnostic Codes Output on Diagnostic Output Terminal*, ISC Duty Cycle on Duty Check Terminal
0
0
Diagnostic Codes Output on Diagnostic Output terminal*, Injector Duty Cycle on Duty Check Terminal


* When CEL is ON this terminal will be 'High', when CEL is OFF this terminal will be 0V.


Four pin connector:


The four pin connector is similar to the six pin connector. The Diagnostic switch terminal outputs the fault codes on the The Test Switch Terminal sets the ignition timing to base settings.


The test modes are shown in the table below. '0' represents a grounded input, '1' represents a non-grounded input.


Input Terminals
Output
DST (B)
TST (D)
1
1
No Diagnostic Outputs
1
0
Ignition Timing to Initial Settings
0
1
Diagnostic Codes Output on CEL, ISC ouput on Duty Check Terminal
0
0
Diagnostic Codes Output on CEL, Injector Duty Cycle output on Duty Check Terminal


Fault Codes:

Fault codes are indicated by flashing the CEL as shown in the picture below. In this case the fault code '21' is being output. The light is switched ON twice in quick succession to indicate a 2. The light is then OFF for 1 sec and then flashed once to indicate a 1. There is then a 3 sec period with the light off before the next code is indicated. If there are no other codes then the sequence repeats.




Below is a description of the codes and some hints on fault diagnosis. In all cases there is a possibility that the ECU is damaged, however this is unlikely unless the CEL does not light, remains on permanently even with a jumper in the connector, or you have the main and fuel pump relays clicking continuously.
Diagnostic Code
Diagnostic Item
Possible Fault
12
Normal
No fault or fault in not monitored circuit
13
O2 Sensor
ECU will drive mixture rich or lean.
If O2 reading doesn't change or is slow to change a fault is flagged
14
Water Temperature Sensor
WTS signal High
Open circuit sensor or bad ground
15
Water Temperature Sensor
WTS signal Low
Short circuit in sensor or wiring shorted to ground
21
Throttle Position Sensor
TPS signal High
TPS faulty or open circuit signal or ground connection
22
Throttle Position Sensor
TPS signal Low
TPS faulty, short circuit signal or open circuit power connection
23
Air Temperature Sensor
ATS signal High
ATS open circuit or bad ground
24
Vehicle Speed Sensor
VSS faulty, Broken Speedo cable
25
Air Temperature Sensor
ATS signal Low
ATS short circuit, signal wire short circuit or open circuit power connection
27
Compensation Resistance Signal
(Diesel only?)
Open circuit or shorted
28
Glow Plug Relay Signal
(Diesel only)
Open circuit or shorted
31
Manifold Pressure Sensor
MPS signal Low
MPS faulty, open circuit power connection
31
Boost Sensor Signal
(Turbo)
Boost sensor Signal Low
Boost sensor faulty, open circuit power connection
32
Manifold Pressure Sensor
MPS signal Low
MPS faulty, open circuit power connection
32
Boost Sensor Signal
(Turbo)
Boost sensor Signal High
Boost sensor faulty, open circuit ground connection
33
Mass Airflow Sensor
 
34
Mass Airflow Sensor
 
35
NE Sensor
(Diesel only)
 
41
Timer Control Valve Signal
(Diesel only)
 
42
Crank Angle Sensor
CAS signal not present during cranking, only shows while cranking!
Faulty CAS or bad connection
43
Knock Sensor circuit malfunction
Faulty Knock Sensor or bad connection
43
Starter Signal
(Diesel only?)
Starter signal on during engine running
Starter signal off during cranking
44
Idle switch
Idle Switch Open
Faulty Idle switch, badly adjusted TPS, open circuit signal or ground connection
45
Idle Switch
Idle Switch Closed
Faulty Idle Switch, badly adjusted TPS or signal shorted to ground
51
Exhaust Gas Recirc Valve
EGR modulator faulty, exhaust passageway clogged, bad VSV, vacuum leak, catalytic converter fault
52
Leaking Injector
Bad injector, dirty injector, excessive fuel pressure
52
Spill Valve Signal
(Diesel)
Stuck spill valve, open or shorted wiring
61
Shift Solenoid Valve A (#1)
(A/T)
 
62
Shift Solenoid Valve A (#1)
(A/T)
 
63
Shift Solenoid Valve B (#2)
(A/T)
 
64
Shift Solenoid Valve B (#2)
(A/T)
 
65
TCC Solenoid Valve Electrical
(A/T)
 
66
TCC Solenoid Valve Electrical
(A/T)
 
71
Test Switch
Test Switch Terminal Grounded (Samurai only?)
Wire link still in diagnostic plug or signal shorted to ground
71
Memory Error
(Late models)
ECU internal write error or checksum error
72
Transmission Range Switch circuit malfunction
(A/T)
 
73
Fuel Temperature Sensor
(Diesel)
Fuel temp. sensor, open or shorted wiring
75
Output Speed sensor Circuit Malfunction
(A/T)
 
76
Input/turbine Speed sensor Malfunction
(A/T)
 
ON - Not Flashing
ECU
ECU Failed
Immobiliser
81
Immobiliser/ECU
Immobiliser codes not matched (ECU side)
82
ECU
ECU Internal fault
83
Immobiliser/ECU
Serial Data Link
84
ECU
No Immobiliser codes registered in ECU


Serial Data Link Interface

The ALDL connector has the SDL on pin M, Pins ? and ? provide 12V power and ground for a diagnostic scanner.
SDL uses pin 9 on the J1962 connector, ISO 9141-2 (OBD2) uses only the K-Line (pin 7).


ALDL Connector



OBD2 (J1962) connector



This is a bi-directional one wire interface. Its existance is not widely publicised, it is usually shown in the wiring diagram as a single box connected to the ECU and labelled SDL. However as described above it is connected to an underdash connector. Currently there is only one scanner known to be compatible, the Tech1 scanner which costs several thousands pounds. I am currently working on a cheap alternative. There are some variations to the protocol, below I have detailed the protocol used by the later 8v models.

Header
Message Length
Address
Checksum


An example:



    Send To ECU

    Header = $13
    Message length = $04
      Offset = $00 to unknown (will depend on ECU)
    Checksum = all bytes sum to zero

  ECU returns

    Header = $13
    Messsage Length = $04
    Data = ?
    Csum

The offset is defined by a look up table in the ECU. This implies that there may be commonality between ECUs. The list below shows the addresses that I have determined so far for the EE88 EPROM. The first column is the OBD address, the second column is the actual memory address being read. I have made a prototype scanner to create the hardware interface. Parameter definitions will be filled in as work progresses.

00   $0044   = Fault Codes
01   $0046   = Fault Codes
02   $0045   = Stored fault codes??
03   $0047   = Stored fault codes??
04   $0187
05   $004D   = RPMH, RPM High Byte (RPMH + RPML = RPM/4
06   $004E   = RPML, RPM Low Byte
07   $00D5
08   $0093
09   $00DF = WTS
0A   $00E0   = ATS
0B   $9803   = ECU variant
0C   $0070   = TPS Angle (referenced from idle switch
0D   $005B   = TPS Position
0E   $005A   = O2 Sensor Volts*2
0F   $00AF   = ISC Duty Cycle
10   $00FE   = Injector Pulse Width High byte
11   $00FF   = Injector Pulse Width Low byte
12   $0066   = Manifold Pressure
13   $0040   = Cylinder filling??
14   $00BA   = Ignition Timing (degs)
15   $00D8
16   $00F3   = Short term fuel trim
17   $00EB   = Long term fuel trim
18   $00E1
19   $00D9
1A   $0058   = Battery Voltage * 0.0737288
1B   $0188
1C   $0186   = Flags? Bit2 = Fuel Pump?
1D   $0095
1E   $0079
1F   $0002   this is a PORT?


So to read the TPS position send:
    $13, $04, $0D, $DC
The ECU will respond with:
    $13, $04, Position, Csum


OBD2

OBD2 diagnostic links will be either ISO 9141-2 up to around 2006 and CANBus on 2006-on models. These protocols are covered fairly comprehensively on other sites so I won't detail them here. Diagnostic scanners are available quite cheap and these will access all standard OBD2 defined data. Below I have listed the manufacturer specific codes defined by Suzuki.

Insert table here.