
12 of 83
ELM329
ELM329DSC
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
AT Command Descriptions
<CR>
[ repeat the last command ]
Sending a single carriage return character causes
the ELM329 to repeat the last command that it
performed. This is typically used when you wish to
obtain updates to a value at the fastest possible rate -
for example, if you send 01 0C to obtain the engine
rpm, you need only send a carriage return character
each time you wish to receive an update.
Do not use ‘AT’ before this command.
. [1 - 8 bytes]
[ send bytes with the 11 bit ID ]
If your currently active protocol uses a 29 bit ID,
there may be times when you would like to send a
single message that has an 11 bit ID. This command is
used for that.
A single period (‘.’) followed by 1 to 8 data bytes
will cause the ELM329 to send those data bytes along
with the currently defined 11 bit ID. The data will be
sent exactly as provided - no formatting bytes or filler
bytes will be added, and the number of data bytes sent
will be the same as what you provide (so if you need to
send 8 bytes as for ISO 15765, then you must provide
all 8 of them). The default value used for the 11 bit ID
is 7DF, but this may be changed with the AT SH xyz
command. See the ‘Mixed ID (11 and 29 bit) Sending’
section for more information.
A protocol must be active before you can use this
command, as the ELM329 needs to know the current
baud rate, etc., but it does not have to be a 29 bit one.
That is, you may use this ‘dot’ command with an 11 bit
ID protocol, for example, if you needed to send
unformatted data along with ISO 15765 formatted data
(but the current firmware only allows you to define one
11 bit ID/header).
Do not use ‘AT’ before this command.
: [1 - 8 bytes]
[ send bytes with the 29 bit ID ]
If your currently active protocol uses an 11 bit ID,
there may be times when you would like to send a
single message that has a 29 bit ID. This command is
used for that.
A single colon (‘:’) followed by 1 to 8 data bytes
will cause the ELM329 to send those data bytes along
with the currently defined 29 bit ID. The data will be
sent exactly as provided - no formatting bytes or filler
bytes will be added, and the number of data bytes sent
will be the same as what you provide (so if you need to
send 8 bytes as for ISO 15765, then you must provide
all 8 of them). The default value used for the 29 bit ID
is 18 DB 33 F1, but this may be changed with the
AT SH xxyyzz or AT SH wwxxyyzz commands. See
the ‘Mixed ID (11 and 29 bit) Sending’ section for more
information.
A protocol must be active before you can use this
command, as the ELM329 needs to know the current
baud rate, etc., but it does not have to be an 11 bit
one. That is, you may use this ‘colon’ command with a
29 bit ID protocol, for example, if you needed to send
unformatted data along with ISO 15765 formatted data
(but the current firmware only allows you to define one
29 bit ID/header).
Do not use ‘AT’ before this command.
AT0, AT1 and AT2
[ Adaptive Timing control ]
After an OBD request has been sent, the ELM329
waits to see if any responses are coming from the
vehicle. The maximum time that it waits is set by the
AT ST hh setting, but this setting is purposely a little
longer than it needs to be, in order to ensure that the
IC will work with a wide variety of vehicles. Although
the setting is adjustable, many people do not have the
equipment or experience that it would take to
determine an optimal value.
The Adaptive Timing feature automatically sets the
timeout value for you, to a value that is based on the
actual response times that your vehicle is responding
in. As conditions such as bus loading, etc. change, the
algorithm learns from them, and makes appropriate
adjustments. Note that it always uses your AT ST hh
setting as the maximum setting, and will never choose
one which is longer.
There are three adaptive timing settings that are
available for use. By default, Adaptive Timing option 1
(AT1) is enabled, and is the recommended setting.
AT0 is used to disable Adaptive timing (so the timeout
The following describes each AT Command that the
current version of the ELM329 supports, in a little more
detail. Many of these commands are also described
further in other sections: