I am trying to make a software, which runs under Windows and communicates with an ELM327 device. I created the first version and I went in my SMART ForTwo (SMART 451) vehicle and I managed to connect with the Instrument Cluster (Transmit CAN ID is 782, Receive CAN ID is 783). However I have a huge problem with Flow Control. Here is the log:
TX: ATI RX: ELM327 v1.5a
TX: ATE0 RX: ATE0 OK
TX: ATSP6 RX: OK
TX: ATH1 RX: OK
TX: ATL1 RX: OK
TX: ATCFC1 RX: OK
TX: ATFCSM0 RX: OK
TX: ATAL RX: OK
TX: ATSH782 RX: OK
TX: ATCRA783 RX: ?
TX: ATST64 RX: OK
TX: 1092 RX: 783 02 1A 87
TX: 1A87 RX: 783 10 16 5A 87 05 6E 00 08
I used another tool and I saw that the ELM327 device sends the Flow Control Frame, immediately. It is like this:
891.438 782 02 1A 87
891.444 783 10 16 5A 87 05 6E 00 08
891.444 782 30 00 00 00 00 00 00 00
As you can see - Flow Control frame is sent at exactly the same time as the First Frame, that is sent from the other device. I am sure that the other device has a problem to receive the "Flow Control" frame. I studied the ELM327 documentation, but did not find any info about how to delay the Flow Control frame. How should I correctly send the request "1A 87" and receive the response?