canbus deciphering

Mitsubishi Outlander PHEV Forum

Help Support Mitsubishi Outlander PHEV Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Thanks for sharing your understanding. I can understand it. Sounds like it may also resemble CANopen.

Will have to have a play sometime, CAN bus and Modbus is part of my day job.

CSS is a great resource.
 
Registered TPMS list

(I don't know if its first or second set)

Req.Id: 0600 Resp.Id: 500, pid: 2128

resp: [05] [00] [61] [28] [00] [0e] [eb] [52] [fc] [0e] [e8] [e2] [b1] [0e] [eb] [53] [06] [0e] [e8] [e2] [ae] [ff] [ff] [ff] [ff]

1st tpms id: [0e] [eb] [52] [fc]
2nd: [0e] [e8] [e2] [b1]
3rd: [0e] [eb] [53] [06]
4th: [0e] [e8] [e2] [ae]

remark: sensors are away so I believe - instead of FFs at the end - there should be actual TPMS sensor readings?

Please correct me if its wrong assumption.
I was wrong here.
Last four 0xFFs are for 5-th (spare) wheel. I don't have it registered - so no real code here.

I have bonus though:

It is successfull session of registering new tpms sensors (for set 1.):

Get VIN:
> 00 00 07 e0 1a 90
< [00] [00] [07] [e8] [5a] [90] [4a] [4d] [42] [58] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__]
J M B X x x x x x x x x x x x x x

> 00 00 07 df 10 92
> 00 00 00 1c 10 92
> 00 00 07 df 3e 02
> 00 00 00 1c 3e 02

Get P/N:
> 00 00 06 00 1a 87
< [00] [00] [05] [00] [5a] [87] [04] [64] [00] [01] [ff] [43] [00] [2c] [01] [01] [38] [36] [33] [37] [42] [33] [32] [38] [20] [20]

Get SW/VER:
> 00 00 06 00 1a 9c
< [00] [00] [05] [00] [5a] [9c] [01] [04] [64] [00] [01] [ff] [2c] [01] [01] [38] [36] [33] [37] [42] [33] [32] [38] [30] [30]

> 00 00 06 00 31 a2 00
< [00] [00] [05] [00] [7f] [31] [33]

> 00 00 06 00 27 01
< [00] [00] [05] [00] [67] [01] [89] [7c] [16] [f9]

> 00 00 06 00 27 02 61 55 4e a0
< [00] [00] [05] [00] [67] [02] [34]

> 00 00 06 00 31 a2 00
< [00] [00] [05] [00] [71] [a2]

Get detected sensors:
> 00 00 06 00 21 a2
< [00] [00] [05] [00][61][a2][00][10] [ff][ff][ff][ff][ff][ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff]

after 1st tpms found:
> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61] [a2] [01] [10] [02] [5f] [aa] [4f] [ff] [ff] [ff][ff][ff][ff][ff][ff][ff][ff][ff][ff][ff] [ff] [ff] [ff]

after 2nd:
> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61][a2][03][10] [02][5f][aa][4f] [02][5f][a9][ed] [ff][ff][ff][ff][ff][ff][ff] [ff] [ff] [ff] [ff] [ff]

after 3rd
> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61][a2][07][10] [02][5f][aa][4f] [02][5f][a9][ed] [02][5f][a1][11] [ff][ff][ff][ff] [ff] [ff] [ff] [ff]

after 4th:

> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61][a2][8f][00] [02][5f][aa][4f] [02][5f][a9][ed] [02][5f][a1][11] [02][5f][a7][18] [ff][ff][ff][ff]

> 00 00 07 df 10 81
> 00 00 00 1c 10 81


Please remember - this procedure involves decreasing tyre pressure atleast 20kPa in each tyre starting from Front Left, next FR, RR, RL.
After decrease - up to one minute is needed to detect sensor.
Code: SendID: 0600, Pid: 21a2 is sent repeatedly to detect changes.

Hope - this will help someone.

Anyone who know how to register new sensors knowing their ID's without "learn" procedure described above?
 
I was wrong here.
Last four 0xFFs are for 5-th (spare) wheel. I don't have it registered - so no real code here.

I have bonus though:

It is successfull session of registering new tpms sensors (for set 1.):

Get VIN:
> 00 00 07 e0 1a 90
< [00] [00] [07] [e8] [5a] [90] [4a] [4d] [42] [58] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__] [__]
J M B X x x x x x x x x x x x x x

> 00 00 07 df 10 92
> 00 00 00 1c 10 92
> 00 00 07 df 3e 02
> 00 00 00 1c 3e 02

Get P/N:
> 00 00 06 00 1a 87
< [00] [00] [05] [00] [5a] [87] [04] [64] [00] [01] [ff] [43] [00] [2c] [01] [01] [38] [36] [33] [37] [42] [33] [32] [38] [20] [20]

Get SW/VER:
> 00 00 06 00 1a 9c
< [00] [00] [05] [00] [5a] [9c] [01] [04] [64] [00] [01] [ff] [2c] [01] [01] [38] [36] [33] [37] [42] [33] [32] [38] [30] [30]

> 00 00 06 00 31 a2 00
< [00] [00] [05] [00] [7f] [31] [33]

> 00 00 06 00 27 01
< [00] [00] [05] [00] [67] [01] [89] [7c] [16] [f9]

> 00 00 06 00 27 02 61 55 4e a0
< [00] [00] [05] [00] [67] [02] [34]

> 00 00 06 00 31 a2 00
< [00] [00] [05] [00] [71] [a2]

Get detected sensors:
> 00 00 06 00 21 a2
< [00] [00] [05] [00][61][a2][00][10] [ff][ff][ff][ff][ff][ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff]

after 1st tpms found:
> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61] [a2] [01] [10] [02] [5f] [aa] [4f] [ff] [ff] [ff][ff][ff][ff][ff][ff][ff][ff][ff][ff][ff] [ff] [ff] [ff]

after 2nd:
> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61][a2][03][10] [02][5f][aa][4f] [02][5f][a9][ed] [ff][ff][ff][ff][ff][ff][ff] [ff] [ff] [ff] [ff] [ff]

after 3rd
> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61][a2][07][10] [02][5f][aa][4f] [02][5f][a9][ed] [02][5f][a1][11] [ff][ff][ff][ff] [ff] [ff] [ff] [ff]

after 4th:

> 00 00 06 00 21 a2
< [00] [00] [05] [00] [61][a2][8f][00] [02][5f][aa][4f] [02][5f][a9][ed] [02][5f][a1][11] [02][5f][a7][18] [ff][ff][ff][ff]

> 00 00 07 df 10 81
> 00 00 00 1c 10 81


Please remember - this procedure involves decreasing tyre pressure atleast 20kPa in each tyre starting from Front Left, next FR, RR, RL.
After decrease - up to one minute is needed to detect sensor.
Code: SendID: 0600, Pid: 21a2 is sent repeatedly to detect changes.

Hope - this will help someone.

Anyone who know how to register new sensors knowing their ID's without "learn" procedure described above?
I bought a second hand maxiTPMS ts508 for about 50€ which allows me to program different wheels. I use a "relearn" function in the menus. There is no deflating/inflating required.
 
Its true - it resembles a little master/slave in specific scenarios: ECU do not broadcasts its P/N during normal work, so you need to explicitly ask for it.
Its sometimes hard to say which entity is master and which is slave though.

Please do not stick with my nomenclature. It may be just wrong naming.
If you want to understand this better - there is excellent introductory page here: https://www.csselectronics.com/pages/obd2-explained-simple-intro

In general its just one particular entity (one ECU) is little shisofrenic :) it is listening on one specific ID (I called it send ID) but it produces messages using another one - I called it "response ID".

There is another thing: one ECU (lets use ICE motor ECU as an example) do not listen for any message to set specific motor RPMs. It listens only on messages from "his known colleauge" which can be throttle pedal.
I have read a little more about OBD PIDs now and understand it. I also have a CSS CL1000 CAN Bus Logger that can be programmed to datalog a list of PIDs which may come in handy one day.

https://www.csselectronics.com/products/can-bus-logger-interface-cl1000
 
Back
Top