bluetoothserial-portobd-ii

OBD2 - Reading Service 01 PID 00


With my Windows 10 PC, I am connected to OBD2, over Bluetooth 4.0 as a serial device over the COM-Port.

I am sending the following command: Service 01 PID 00 - my command is: 0100\r

Services / Modes: Show current data

Standard PIDs PID 00: Show PIDs supported [0x01 - 0x20] (1..32)

My first car, Opel Astra, response: 010041 00 D8 3B 20 13

my second car, Mercedes Benz, response:

Version A:

Data Received:
0100
Data Received:
41 00 BE 3C A8 13
41 00 98 18 00 01
41 00 98 18 00 01

Version B:

Data Received:
0100
Data Received:
41 00 98 18 00 01
41 00 BE 3C A8 13
41 00 98 18 00 01

Version C:

Data Received:
0100
Data Received:
41 00 98 18 00 01
41 00 98 18 00 01
41 00 BE 3C A8 13

If I am sending 0100 to the Opel Astra, I am getting always the same response D8 3B 20 13, I think it looks good and makes sense.

If I am sending 0100 the the Mercedes Benz, I am getting Version A or B or C. At the same connection time, it is mixed, like: A,A,C or A,C,C - Why it is not just 98 18 00 01 or just BE 3C A8 13

The answer from the Opel is very clear, but, how can I evaluate this answer from the Mercedes?

I don't understand why I get more than 4 bytes, why I get different 4 bytes and why in a different order.


Solution

  • Your Mercedes has multiple ECUs that answer to OBD2 requests. Let yourself show the addresses by turning headers on: Assuming you're using an ELM327-compatible device, it's ATH1\r.

    If you want to target only one ECU, you may set the headers. On an ELM327-compatible device and CAN, it's ATSH7E0 and ATCRA7E8 for physical addressing the first ECU.