
Setting the Header / ID Bits (continued)
36 of 83
ELM329
ELM329DSC
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
receives physical replies (the header/ID is of the form
7En). With headers turned on, it is a simple matter to
see the ID, and so learn the address of the module
that is replying. That information can then be used to
make physical requests if desired. For example, if the
headers are on, and you send 01 00, you might see:
>01 00
7E8 06 41 00 BE 3F B8 13 00
From the ISO 15765-4 standard, you then know
that ECU#1 (ID = 7E8) was the one responding. In
order to talk directly to that ECU, all you need do is to
set the header to the appropriate value (it is 7E0 to talk
to the 7E8 device – see ISO 15765-4 for more
information). From that point on, you can ‘talk’ directly
to the ECU using its physical address, as shown here:
>AT SH 7E0
OK
>01 00
7E8 06 41 00 BE 3F B8 13 00
>01 05
7E8 03 41 05 46 00 00 00 00
When experimenting with different headers, you
should be aware that the ELM329 only ‘sees’ replies
that pass through the receive filter. Since the above
replies were of the 7En form (which is used by the
standard functional OBDII replies), the responses
matched the default criteria, and were visible. If the
vehicle had replied with something else, then the
replies might very well not be visible if you did not take
an extra step to define what is to be received. The
easiest way to do that is to use the AT CRA (CAN
Receive Address) command. In this case, you would
only need to say AT CRA 7EX (see the Receive
Filtering section on page 40 for more information).
Hopefully this has helped to get you started. As we
often tell those that write for help – there is a lot to this,
so if you are going to do some serious experimenting
with OBD, you should buy the relevant standards.