Info
Suzuki Serial Data Line (SDL) is:
- proprietary
- bi-directional
- one-wire
- wired to
pin-9of 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
Note
Mermaid doesn’t allow showing bit 0 on right, so all diagrams are shown such that bit 0 = MSB.
--- title: "SDL message (bit 0 is MSB)" --- packet-beta 0-7: "Header" 8-15: "Length" 16-23: "Data" 24-31: "Checksum"
| Byte | Description | Bytes |
|---|---|---|
| Header | Message type | 1 byte |
| Length | Total length of message | 1 byte |
| Data | OBD address(es) of param | 0-252 bytes |
| Checksum | 8-bit checksum (2’s compliment) | 1 byte |
Header breakdown
--- title: "SDL header (bit 0 is MSB)" --- 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 |
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)