English
Language : 

ELM329 Datasheet, PDF (31/76 Pages) ELM Electronics – CAN Interpreter
ELM329
Selecting Protocols
The ELM329 supports several different OBD
protocols (see Figure 2, at right). This is a little
misleading however, as the ELM329 only provides
very minimal support for protocols 1 to 5 - they are
only included so that most ELM327 software will still
work with the ELM329.
The ELM329 really only provides extensive
support for CAN protocols 6 to F. You may never need
to actually select one of these, since the factory
settings cause an automatic search to be performed
for you, and the protocol is activated if it seems
appropriate. If experimenting, you will wish to be able
to select a protocol, however.
For example, if you know that your vehicle uses
the ISO 15765-4, with an 11 bit ID and a rate of
500kbps (protocol #6), then you may want the ELM329
to use only that protocol, and no others. If that is what
you want, simply use the ‘Set Protocol’ AT Command
as follows:
>AT SP 6
OK
From this point on, the default protocol (used after
every power-up or AT D command) will be protocol 6
(or whichever one that you have chosen). Verify this
by asking the ELM329 to describe the protocol:
>AT DP
ISO 15765-4 (CAN 11/500)
Now what happens if your friend has a vehicle that
uses a different baud rate? How do you now use the
ELM329 interface for that vehicle, if it is set for your
car?
One possibility is to change your protocol selection
to allow for the automatic searching for another
protocol, on failure of the current one. This is done by
putting an ‘A’ before the protocol number, as follows:
>AT SP A6
OK
>AT DP
AUTO, ISO 15765-4 (CAN 11/500)
Now, the ELM329 will try protocol 6, but will then
automatically begin searching for another protocol
should the attempt to connect with protocol 6 fail (as
would happen when you try to connect to your friend’s
vehicle).
The Set Protocol commands cause an immediate
write to the internal EEPROM, before even attempting
to connect to the vehicle. This write is time-consuming,
Protocol Description
0
Automatic
1
SAE J1850 PWM (41.6 kbaud)
2
SAE J1850 VPW (10.4 kbaud)
3
ISO 9141-2 (5 baud init)
4
ISO 14230-4 KWP (5 baud init)
5
ISO 14230-4 KWP (fast init)
6
ISO 15765-4 CAN (11 bit ID, 500 kbaud)
7
ISO 15765-4 CAN (29 bit ID, 500 kbaud)
8
ISO 15765-4 CAN (11 bit ID, 250 kbaud)
9
ISO 15765-4 CAN (29 bit ID, 250 kbaud)
A
SAE J1939 CAN (29 bit ID, 250* kbaud)
B
User1 CAN (11* bit ID, 125* kbaud)
C
User2 CAN (11* bit ID, 50* kbaud)
D
SAE J1939* CAN (29* bit ID, 500* kbaud)
E
User4 CAN (11* bit ID, 95.2* kbaud)
F
User5 CAN (11* bit ID, 33.3* kbaud)
*user adjustable
Figure 2. ELM329 Protocol Numbers
affects the setting for the next powerup, and may not
actually be appropriate, if the protocol selected is not
correct for the vehicle. To allow a test before a write
occurs, the ELM329 offers one other command - the
Try Protocol (TP) command.
Try Protocol is very similar to Set Protocol. It is
used in exactly the same way as the AT SP command,
the only difference being that a write to internal
memory will only occur after a valid protocol is found,
and only if the memory function is enabled (M0/M1).
For the previous example, all that needs to be sent is:
>AT TP A6
OK
Many times, it is very difficult to even guess at a
protocol to try first. In these cases, it is best to simply
let the ELM329 decide what to use. This is done by
telling it to use protocol 0 (with either the SP or the TP
commands).
To have the ELM329 automatically search for a
protocol to use, simply send:
ELM329DSB
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
31 of 76