22 of 83
ELM329DSC Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
AT Command Descriptions (continued)
up to about 28V, with an uncalibrated accuracy of
typically about 2%.
S0 and S1 [ printing of Spaces off or on ]
These commands control whether or not space
characters are inserted in the ECU response.
The ELM329 normally reports ECU responses as
a series of hex characters that are separated by space
characters (to improve readability), but messages can
be transferred much more quickly if every third byte
(the space) is removed. While this makes the message
less readable for humans, it can provide significant
improvements for computer processing of the data,
and reduce the amount of data in the send buffer. By
default, spaces are on (S1), and space characters are
inserted in every response.
SD hh [ Save Data byte hh ]
The ELM329 is able to save one byte of
information for you in a special nonvolatile memory
location, which is able to retain its contents even if the
power is turned off. Simply provide the byte to be
stored, then retrieve it later with the read data (AT RD)
command. This location is ideal for storing user
preferences, unit ids, occurrence counts, or other
information.
SH xyz [ Set the Header to 00 0x yz ]
Each message that is sent by the ELM329 is a
combination of a header (ID bits) and data bytes.
Since the ID bits need to be changed far less often
than the data byes, it makes sense to change them
only when needed.
The AT SH xyz command accepts a three digit
argument, takes only the right-most 11 bits from that,
and uses that for the 11 bit ID when sending standard
length ID messages.
SH xxyyzz [ Set the Header to xxyyzz ]
This command provides a means to set three
bytes of the 29 bit extended ID. The values passed are
used to populate the 24 least significant bits (and the
remaining 5 bits are set using the AT CP command).
Since the CAN Priority bits do not often change, this
three byte/six digit command often provides a slightly
faster way to change an extended ID. In addition, it
provides compatibility with the large ELM327 software
base.
The header bytes (ID bits) in a message are
normally assigned values for you (and depending on
your application, may never require adjusting), but
there may be occasions when it is desirable to change
them (particularly if experimenting with physical
addressing). If experimenting, it is not necessary but
may be better to set the headers after a protocol is
active. That way, you can be sure of your starting point
before changing the default values.
The header bytes are defined with hexadecimal
digits. These remain in effect until set again, or until
restored to their default values with the D, WS, or Z
commands.
If new values for header bytes are set before the
vehicle protocol has been determined, and if the
search is not set for fully automatic (ie other than
protocol 0), these new values will be used for the
header bytes of the first request to the vehicle. If that
first request should fail to obtain a response, and if the
automatic search is enabled, the ELM329 will then
continue to search for a protocol using default values
for the header bytes. Once a valid protocol is found,
the header bytes will revert to the values assigned with
the AT SH command.
SH wwxxyyzz [ Set the Header to wwxxyyzz ]
All 29 bits of an extended ID (header) may be set
at once with this command. Only 29 bits are used - the
three most significant bits of the first digit are ignored.
SP h [ Set Protocol to h ]
This command is used to set the ELM329 for
operation using the protocol specified by 'h', and to
also save it as the new default. Note that the protocol
will be saved no matter what the AT M0/M1 setting is.
The ELM329 supports many different protocols, as
listed here (but it’s a little misleading, as there is only
very minimal support for protocols 1 to 5):
0 - Automatic
1 - SAE J1850 PWM (41.6 kbaud)
2 - SAE J1850 VPW (10.4 kbaud)
3 - ISO 9141-2 (5 baud init, 10.4 kbaud)
4 - ISO 14230-4 KWP (5 baud init, 10.4 kbaud)
5 - ISO 14230-4 KWP (fast init, 10.4 kbaud)
6 - ISO 15765-4 CAN (11 bit ID, 500 kbaud)
7 - ISO 15765-4 CAN (29 bit ID, 500 kbaud)