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.
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.