5
votes

I am trying to use a Bluetooth ELM327 wireless OBD-II receiver to obtain data from a vehicles OBD-II port. I am not trying to gather information about the engine, but rather some of the electronics in the vehicle. I have been given certain commands to access the devices and have been successful using different devices and software other than the ELM327.

I do not have much experience dealing with the CAN bus and data transfer in general; so forgive me if I am leaving out crucial pieces of this process. However, I do understand CAN basics such as message headers and data bytes.

So far I have been using the Ford DET tool to gather data from the device. I am able to send an 8 byte CAN message and receive data back. I have many commands which I need to parse proper data from the output they produce. For example, if I were to send the command

0x727 03 19 02 8F

My log file shows:

00184.3548  (Rx)  0x72F  10  0F  59  02  CA  E1  00  00
00024.8556  (Rx)  0x72F  10  0F  59  02  CA  E1  00  00  ---  Request DTC Info: Report DTCs By Status Mask (StatusMask: 8F)
00189.4469  (Tx)  0x727  03  19  02  8F  00  00  00  00  ---  Request DTC Info: Report DTCs By Status Mask (StatusMask: 8F)
00189.4549  (Rx)  0x72F  10  0F  59  02  CA  E1  00  00
00189.4572  (Tx)  0x727  30  00  00  00  00  00  00  00
00189.4591  (Rx)  0x72F  21  0A  E1  01  00  0A  9A  89
00189.4612  (Rx)  0x72F  22  13  0A  00  00  00  00  00  ---   Pos Resp to Read DTCs By Status Mask (3 DTCs) 

Here is what happens when talking to the ELM327 with goSerial. I have included all the commands to illustrate how I am using the ELM327 device.

>ath1
OK

>ats1
OK

>atal
OK

>at sh 727 <-- set the message header to 0x727
OK

>03 19 02 8f
72F 03 7F 03 11 

>

As you can see, the result output on the final line is much shorter than that the Diagnostic Engineering tool is giving me. Am I not configuring the device properly?

Basically I am trying to have the ELM327 output match the output from the Ford DET tool. I understand that this is a very vague question.

Here is some other information about my configuration:

  • Baud rate: 38400 (standard for vehicles?)
  • CAN version: ISO 15765-4

All my commands start with 0x727. Flow control is transmitted with 0x727 and 0x7A7.

Also, I have already read over most of the ELM327 documentation so please do not leave that as a solution.

1
Can you please tell me the setup you have done to log what commands the scan tool is sending? I want to see DTCs apart from Powertrain (P codes from mode $03). Your method seems to provide a way I can display/log what commands a scan tool sends for say ABS, BCM, Airbags etc.Soumya Sen

1 Answers

3
votes

What makes you think that "the result output on the final line is much shorter than that the Diagnostic Engineering tool is giving me" ?

Actually, the response of the ECU is perfectly valid: 72F 03 7F 03 11

72F - ID of the CAN message
03 - Length of data bytes
7F - Negative response
03 - The negative response is for command 03
11 - Not supported

You have an error in the line where you are sending the CAN message "03 19 02 8f". You should send the message like this: "19 02 8f".