2

Each time I send a query to the OBD2 I get two responses. For instance, if I send 0105, I get

41 05 5C 7F 01 12

If I turn on header with AT H1 and then send 0105, I get

83 F1 11 41 05 5C 83 F1 18 7F 01 12

I only need the first response, the one from 83 F1 11 please, how do I specify that I want to communicate with only that ECU?

From "ELM Electronics - Circuits for the Hobbyist" I know it should be done using AT SH but there are three options available and I do not know which one to use:

AT SH xyz or AT SH xxyyzz or AT SH wwxxyyzz.

Btw my car is a Hyundai Tucson 2006, and runs protocol 5 that is ISO 14230-4 KWP (fast init, 10.4 kbaud)

pfx
  • 20,323
  • 43
  • 37
  • 57
shups
  • 31
  • 6

1 Answers1

1

There are multiple ways. The most complicated one is setting the header address directly via ATSH. Way easier is appending the number of expected responses to the pid, i.e. 01001 will send 0100 and discards all but one response. The fastest ECU will win, which is not always what you want.

So another way is to filter by header, i.e.:

>0100
18 DA F1 10 06 41 00 B8 7B 30 10 00
18 DA F1 17 06 41 00 80 00 80 03 00

>AT CRA 18DAF117
OK

>0100
18 DA F1 17 06 41 00 80 00 80 03 00
DrMickeyLauer
  • 4,455
  • 3
  • 31
  • 67
  • This works for CAN but how do you filter for ISO14230? the header in the poster is 83 F1 11 41 05 5C which means (80 +3) 3 bytes|F1=reader|11=target| say I only want to see replies from 11, can be done in a loop but is there a way to do it on the ELM??? – becker Apr 27 '19 at 04:35
  • I have a similar problem. The ELM327 is quite simple and is lacking basic functionality. I recommend to use J2534 adapter instead (e.g. Tactrix OpenPort) which is far more flexible. – Elmue May 26 '20 at 16:20
  • I wonder about that myself. It looks like you need to do application-level filtering then. See also my (unanswered) question over here: https://mechanics.stackexchange.com/questions/88437/j1850-vpwm-physical-addressing-3-byte-header – DrMickeyLauer Mar 26 '23 at 11:16