Difference between revisions of "OBD2 Diagnostics reading project"
| Line 1: | Line 1: | ||
| − | = Suzuki Jimny JB74 ( | + | = Suzuki Jimny JB74 (2018+) - Reading TPMS data over the diagnostic CAN link = |
{{Donate}} | {{Donate}} | ||
Revision as of 12:50, 29 October 2026
Contents
- 1 Suzuki Jimny JB74 (2018+) - Reading TPMS data over the diagnostic CAN link
Suzuki Jimny JB74 (2018+) - Reading TPMS data over the diagnostic CAN link
Support this project: The information on this page is free, but it took a lot of work to gather, test and write up. If it has been useful to you, you can say thanks with a donation at buymeacoffee.com/bigjimny.
Overview
Purpose-built diagnostic tools (Autel, Launch and similar) already support Suzuki comprehensively. There is also a trend towards replacing the factory head unit with an Android media unit that can run apps to read and display information from the car's electronics. These units are not Suzuki-specific, so this project aims to learn how to read vehicle data (starting with the factory TPMS) and show it on the head unit.
Equipment
| Role | Item |
|---|---|
| Head unit | XTRONS PX90 |
| OBD-II Bluetooth dongle 1 | Generic ELM-based (Chinese) |
| OBD-II Bluetooth dongle 2 | Veepeak OBDCheck BLE+ |
| CAN bus monitor (Windows) | PCAN-View (PEAK-System) |
| Diagnostic tool 1 | Launch X431 CRP919 |
| Diagnostic tool 2 | SZ Viewer app |
| Head-unit apps being tried | Torque, RealDash |
Method
- The diagnostic tools (Launch X431, SZ Viewer) have comprehensive Suzuki support, so they are used to generate the CAN bus requests.
- PCAN-View is connected to the OBD socket to capture the requests and the module's replies, which are then decoded by hand.
- The decoded requests are recreated in the head-unit apps so the head unit can ask the car for the same data directly.
Status: work in progress. Based on one RHD UK-market 2021 Jimny with factory TPMS, owner-made PCAN-View captures, and the Suzuki wiring diagrams (A-8 CAN communication and A-8 Central Gateway/DLC). Items marked unconfirmed are not yet verified.
Summary
- The TPMS control module answers an ordinary diagnostic request on the OBD socket. It does not broadcast tyre data.
- Request ID 0x798, reply ID 0x7A8, 11-bit CAN, 500 kbit/s, ISO-TP framing.
- Service 0x21 (read data by local identifier), identifier 0x00, returns 102 bytes containing all four sensor records.
- The OBD socket is fed by a central gateway, so only diagnostic traffic is visible on it.
DLC (OBD socket) wiring
The service-manual diagram numbers the DLC terminals differently from SAE J1962. In all five cases on the diagram, manual terminal n matches standard pin 17 - n.
| Manual terminal | Standard pin | Function | Wire / source on diagram |
|---|---|---|---|
| 1 | 16 | Battery +12 V | GRY, fuse No.49 "DOME2" (10 A) |
| 12 | 5 | Signal ground | BLK |
| 13 | 4 | Chassis ground | BLK |
| 11 | 6 | CAN-H (from standard assignment) | BLU, gateway pin 8 |
| 3 | 14 | CAN-L (from standard assignment) | WHT, gateway pin 7 |
Use pins 6 and 14 for a CAN adapter. The diagram does not label CAN-H and CAN-L itself.
Cross-check with other reports
A BigJimny forum thread ("JB74 OBD2 connection", December 2020) describes a 2020 JB74 whose OBD plug had pins 4, 5, 6, 14, 15 and 16 wired, with pin 7 (K-line) not wired. The poster, quoting an older Suzuki pinout, lists pin 6 as a blue wire (CAN-H) and pin 14 as a white wire (CAN-L). This matches the table above: a blue CAN wire on pin 6 and a white one on pin 14.
- The CAN-H/CAN-L assignment in that thread comes from a pinout reference that the poster says predates the JB74, so it is a report, not a measurement.
- No wire for standard pin 7 (K-line) appears on the diagram page above, and the forum report also found it unwired. K-line is therefore unlikely to be available on the JB74 socket.
- On the forum poster's car, pin 15 was also wired; the diagram page above shows no wire for it. This may be a market or model-year difference.
Network layout
The DLC is not on the vehicle bus directly. The central gateway control module joins the vehicle CAN bus (its pins 20 and 21, RED/WHT) and provides a separate CAN pair to the DLC (its pins 8 and 7, BLU/WHT).
Modules on the vehicle bus (diagram): ECM, 4WD control module, TCM (A/T models), BCM, ESP control module, headlight auto levelling module (if equipped), dual sensor brake support control module (if equipped), P/S control module, steering angle sensor, TPMS control module / receiver (if equipped), combination meter, SDM, combination switch.
Gateway power: fuse No.60 "IG1 SIG" (10 A) and fuse No.52 "CONT" (5 A). Treat the ignition as needing to be on.
Observation: two captures from the DLC contained only IDs 0x798 and 0x7A8 (plus two error frames). No broadcast traffic from other modules was seen, so passive listening on the DLC will not show TPMS data.
Diagnostic requests seen
| Request | Reply | Meaning |
|---|---|---|
3E |
7E |
Tester present |
1A 8A |
5A 8A + ASCII 37120-78R0* |
ECU identification |
1A 8E |
5A 8E + ASCII 37160-61M0 |
ECU identification |
18 00 FF 00 |
58 00 or 58 01 9A 31 E0 |
Read DTCs by status (second form = one code reported; not decoded) |
21 00 |
61 00 + 100 bytes |
Sensor data block (repeated about twice a second by the scan tool) |
Reading it with an ELM327
Terminal commands, one at a time (CR line ending):
ATZ ATSP6 ATSH798 ATS0 ATL0 ATFCSH798 ATFCSD300000 ATFCSM1 2100
ATSH798sets the request address. The reply address (0x7A8) is worked out automatically.ATFCSH798 / ATFCSD300000 / ATFCSM1make the adapter send the ISO-TP flow-control frame (30 00 00) itself.ATS0removes the spaces between bytes.Without it, the generic Chinese ELM327-based dongle (dongle 1) reportedBUFFER FULLnear byte 81.- Expected output: a length line (
066= 102 bytes) and numbered lines0:toE:. - With default settings dongle 1 returned only the first line (
61 00 xx 01 00 00).
Reply layout (21 00)
Byte positions count the 61 as byte 0.
| Bytes | Content |
|---|---|
| 0-1 | 61 00 (positive reply)
|
| 2 | Varies 117-142. Looks like system voltage x 10 (unconfirmed) |
| 12-21 | Sensor record 1: front left |
| 22-31 | Sensor record 2: rear left |
| 32-41 | Sensor record 3: rear right |
| 42-51 | Sensor record 4: front right |
| 56-71 | Four 4-byte sensor-ID entries whose contents change (meaning unknown) |
| other | Not decoded |
Sensor record (10 bytes)
| Offset | Content |
|---|---|
| +0 to +3 | Sensor ID |
| +4 | Position flag |
| +5 | Value 57-74. Behaves like temperature, possibly with an offset of 40 (unconfirmed) |
| +6 | Pressure candidate (see calibration) |
| +7, +8 | Not understood |
| +9 | Always 0 |
| Wheel | Sensor ID | Position flag |
|---|---|---|
| Front left | 4E AA 09 43 | 0x10 |
| Rear left | DD 91 B5 25 | 0x20 |
| Rear right | 4E AA 03 19 | 0x18 |
| Front right | 4E AA 09 C9 | 0x08 |
Sensor IDs are specific to one car. Yours will differ.
Calibration (provisional)
Byte +6 against gauge readings:
| Raw | Gauge |
|---|---|
| 136 (rear left) | 1.868 bar |
| 131 (rear right) | 1.795 bar |
| 131 (front right) | 1.795 bar |
| 128 (front left, start) | about 25 psi (from memory) |
| 110 (front left, lowest) | about 21 psi (from memory) |
Straight-line fit through these points:
- bar = raw x 0.01627 - 0.344
- psi = raw x 0.236 - 5
The two front-left gauge values were remembered, not recorded, and most of the fit comes from them. Treat the equations as an estimate to be replaced by better data.
Torque Pro custom PIDs
Common fields for every wheel:
| Field | Value |
|---|---|
| Header | 798 |
| Mode and PID | 2100 |
| Diagnostic start command | ATS0, ATL0, ATFCSH798, ATFCSD300000, ATFCSM1 (comma-separated)
|
| Unit / min / max | bar, 0, 4 (or psi, 0, 60) |
Equation uses a letter for each data byte. A is the first byte after 61 00 (reply byte 2).
| Wheel | Byte +5 (temperature?) | Byte +6 (pressure candidate) |
|---|---|---|
| Front left | P | Q |
| Front right | AT | AU |
| Rear left | Z | AA |
| Rear right | AJ | AK |
Example: Q*0.01627-0.344. Letters must be upper case. Whether Torque accepts two-letter variables is unconfirmed.
Known problem
Using dongle 1 (generic Chinese ELM327-based) with Torque Pro on the XTRONS PX90, Torque read bytes A to D (first line of the reply) correctly, but every byte from E onward returned -1, even though a terminal received the full 102 bytes with the same commands. The start-command field is applied (adding ATH1 changed the output). Tried without success: turning off "Faster communication", removing ATS0. Not yet tried: ATAT0, ATSTFF timeout settings, other apps, and the Veepeak OBDCheck BLE+ (dongle 2).. Unresolved.
Open questions
- Meaning of reply bytes +5, +7, +8 and the unexplained regions.
- A reliable pressure scale and offset (more gauge readings needed).
- Whether other Suzuki modules use addresses near 0x798 (not checked).
- Why Torque stops after the first line.
Sources
- Owner PCAN-View captures, October 2026.
- Suzuki wiring diagrams: A-8 CAN communication system; A-8 Central Gateway Control and DLC System (RHD).
- Forum thread "Jimny JB74 (2019+) - Torque Pro PID for TPMS".
- BigJimny forum thread "JB74 OBD2 connection" (December 2020).