
64 of 83
ELM329DSC
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
ELM329
Programmable Parameters
The ELM329 contains several programmable
memory locations that retain their data even after
power is turned off. Every time the IC is powered up,
these locations are read and used to change the
default settings for such things as whether to display
the headers, or how often to send ‘wakeup’ messages.
The settings, or parameters, can be altered by the
user at any time using a few simple commands. These
Programmable Parameter commands are standard AT
Commands, with one exception: each one requires a
two-step process to complete. This extra step provides
some security against random inputs that might
accidentally result in changes.
The following pages list the currently supported
Programmable Parameters for this version of the
ELM329. As an example of how to use them, consider
PP 01 (shown on page 65) which sets the default state
for the AT H command. If you are constantly powering
your ELM329 and then using AT H1 to turn the
headers on, you may want to change the default
setting, so that they are always on by default. To do
this, simply set the value of PP 01 to 00:
>AT PP 01 SV 00
OK
This changes the value associated with PP 01, but
does not enable it. To make the change effective, you
must also type:
>AT PP 01 ON
OK
At this point, you have changed the default setting
for AT H1/H0, but you have not changed the actual
value of the current AT H1/H0 setting. From the ‘Type’
column in the table on page 65, you can see that the
change only becomes effective the next time that
defaults are restored. This could be from a reset, a
power off/on, or possibly an AT D command.
With time, it may be difficult to know what changes
you have made to the Programmable Parameters. To
help with that, the ELM329 provides a Programmable
Parameter Summary (PPS) command. This simply
prints a list of all of the PPs, their current value, and
whether they are on/enabled (N), or off/disabled (F).
For an ELM329 v2.1 IC, with only the headers enabled
(as discussed above), the summary table would look
like this:
>AT PPS
00:FF F 01:00 N 02:FF F 03:19 F
04:01 F 05:FF F 06:F1 F 07:09 F
08:FF F 09:00 F 0A:0A F 0B:FF F
0C:68 F 0D:0D F 0E:9A F 0F:F8 F
10:FF F 11:FF F 12:FF F 13:FF F
14:FF F 15:FF F 16:FF F 17:FF F
18:FF F 19:FF F 1A:FF F 1B:FF F
1C:FF F 1D:FF F 1E:FF F 1F:FF F
20:03 F 21:FF F 22:62 F 23:00 F
24:00 F 25:00 F 26:00 F 27:FF F
28:FF F 29:FF F 2A:08 F 2B:02 F
2C:E0 F 2D:04 F 2E:E0 F 2F:0A F
30:42 F 31:01 F 32:F0 F 33:06 F
34:E0 F 35:0F F 36:FF F 37:FF F
You can see that PP 01 now shows a value of 00,
and it is enabled (oN), while the others are all off.
Another example shows how you might change
the CAN filler byte. Some systems use ‘AA’ as the
value to put into unused CAN bytes, while the ELM329
uses ‘00’ by default. To change the ELM329’s
behaviour, simply change PP 26:
>AT PP 26 SV AA
OK
>AT PP 26 ON
OK
Again, PP 26 is of type ‘D’, so the above change
will not actually take effect until the AT D command is
issued, or the ELM329 is reset.
The Programmable Parameters are a great way to
customize your ELM329 for your own use, but you
should do so with caution if using commercial
software. Most software expects an ELM329 to
respond in certain ways to commands, and may be
confused if the carriage return character has been
redefined, or if the CAN response shows data length
codes, for example. If you make changes, it might be
best to make small changes and then see the effect of
each, so that it is easier to retrace your steps and
‘undo’ what you have done. If you get in too deeply,
don’t forget the ‘all off’ command:
>AT PP FF OFF
No matter what software you use, you might get
into more serious trouble, should you change the baud
rate, or the Carriage Return character, for example,
and forget what you have set them to. The Carriage
Return value that is set by PP 0D is the only character
that is recognized by the ELM329 as ending a