Info
Suzuki Serial Data Line (SDL) is:
- proprietary
- bi-directional
- one-wire
- wired to
pin-9
of SAE J1962 - used for ICM communication (if immobilizer equipped)
- baud rate of
7812
(common) or15625
It fits the definition of being a K-line.
I have talked about how it’s wired in my baleno.
SDL message format
--- title: "SDL message" --- packet-beta 0-7: "Header" 8-15: "Length" 16-23: "Address" 24-31: "Checksum"
Byte | Description |
---|---|
Header | Message type |
Length | Total length of message |
Address | OBD address of param |
Checksum | 8-bit checksum (2’s compliment) |
Header breakdown
--- title: "SDL header" --- packet-beta 0-3: "Module type" 4-7: "Request type"
Module type
Nibble | Type |
---|---|
1 | ECM |
2 | ABS[1] |
8 | Immobilizer |
Request type
Nibble | Request |
---|---|
0 | ID |
3 | Read data |
4 | Write/Erase data |
5 | Actuation |
8 | 9 | Immobilizer |
OBD addresses (Baleno G13 w/o O2 sensor)
The ECU is provided OBD addresses which it then maps into memory using a lookup table. I’m going off by what I found online because I don’t have a test bench and can only work on my daily driver live.
Address | Parameter | Comments |
---|---|---|
0x00 | FAULT_CODES_1 | Current fault codes 1 |
0x01 | FAULT_CODES_2 | Current fault codes 2 |
0x02 | FAULT_CODES_3 | Stored fault codes 1 |
0x03 | FAULT_CODES_4 | Stored fault codes 2 |
0x04 | RPM_HIGH | RPM high byte |
0x05 | RPM_LOW | RPM low byte |
0x06 | TARGET_IDLE | Desired idle |
0x07 | VSS | Vehicle speed |
0x08 | ECT | Engine Coolant temperature |
0x09 | IAT | Intake air temperature |
0x0A | TPS_ANGLE | Throttle valve angle using TP sensor |
0x0B | TPS_VOLTAGE | TP sensor voltage |
0x0D | INJ_PULSE_WIDTH_HIGH | Injector pulse width high byte |
0x0E | INJ_PULSE_WIDTH_LOW | Injector pulse width low byte |
0x0F | IGNITION_ADVANCE | Ignition advance commanded by ECM |
0x10 | MAP_SENSOR | Manifold absolute pressure |
0x11 | BAROMETRIC_PRESSURE | Barometric pressure reported from ECM |
0x12 | ISC | IACV duty cycle |
0x13 | LONG_TERM_FUEL_TRIM | 128 fixed. Makes sense as 0.0% in range 0-255 and my car is w/o o2 variant |
0x14 | SHORT_TERM_FUEL_TRIM | ditto |
0x15 | CURRENT_FUEL_TRIM | ditto |
0x16 | BATTERY_VOLTAGE | Battery voltage reported from ECM |
0x19 | RADIATOR_FAN | 0 OFF, 128 ON. |
0x1A | STATUS_FLAGS | bit-1 : PSP switchbit-2 : AC switchbit-4 : closed throttle position switchbit-6 : Tail-light/defogger swtich |
0x20 | FAULT_CODES_5 | AUTEL scanner queries this when reading DTC |
0x21 | FAULT_CODES_6 | ditto |
Scan tool data (FSM)
The following are parameters mentioned in FSM available from scan tools. Note some of them I could not see for my engine on expensive scan tools. Particularly because the parameters mentioned are for o2 variant ECU. Others just weren’t being shown but were present in ECU response.
Note
Parameters that are italic are ones I added myself.
Parameter Name | Shown on AUTEL scan tool | Present in my prototype |
---|---|---|
RADIATOR FAN (RADIATOR FAN CONTROL RELAY) | No | Yes |
FUEL CUT | No | Yes |
TP SENSOR VOLT (THROTTLE POSITION SENSOR OUTPUT VOLTAGE) | Yes | Yes |
BATTERY VOLTAGE | Yes | Yes |
DESIRED IDLE | Yes | Yes |
ENGINE SPEED | Yes | Yes |
CLOSED THROT POS (CLOSED THROTTLE POSITION) | Yes | Yes |
PSP SWITCH (POWER STEERING PRESSURE SWITCH) | Yes | Yes |
COOLANT TEMP (ENGINE COOLANT TEMP.) | Yes | Yes |
INTAKE AIR TEMP. | Yes | Yes |
ELECTRIC LOAD | Yes | Yes |
IAC FLOW DUTY (IDLE AIR CONTROL FLOW DUTY) | Yes | Yes |
THROTTLE POS (ABSOLUTE THROTTLE POSITION) | Yes | Yes |
A/C SWITCH | Yes | Yes |
VEHICLE SPEED | Yes | Yes |
MAP (INTAKE MANIFOLD ABSOLUTE PRESSURE) | Yes | Calculation needs to be confirmed |
IGNITION ADVANCE (IGNITION TIMING ADVANCE FOR NO. 1 CYLINDER) | Yes | ditto |
INJ PULSE WIDTH (FUEL INJECTION PULSE WIDTH) | Yes | Yes. Need to find accurate calculation |
CALC LOAD (CALCULATED LOAD VALUE) | No | No. Can make it work as FSM says it’s fully calculated value. Need to know MAP value and compression of the cylinders |
DIS. WITH MIL ON | No | No idea what this is. Fault code present? |
Physical throttle position | N/A | Not added yet but calculated. Physical throttle position 0-100% by finding the full range of throttle valve and then calculate :) |
Operating temp | N/A | Boolean to show engine is at operating temp using radiator fan range (87C - 100C) |
Successor
The next protocol that came after SDL was also proprietary called SDL-KWP
. Major difference between SDL and all subsequent protocols was that they all were wired to pin-7
of SAE J1962.
[1]: Not tested myself as my car doesn't have ABS
Sources: Rhinopower website (web archive)