
15 of 83
ELM329
ELM329DSC
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
Control’ message to always be sent in response to a
‘First Frame’ message, and the ELM329 automatically
sends these without any intervention by the user. If
experimenting with a non-OBD system, it may be
desirable to turn this automatic response off, and the
AT CFC0 command has been provided for that
purpose. The default setting is CFC1 - Flow Controls
on.
Note that during monitoring (ie AT MA), there are
never any Flow Controls sent no matter what the CFC
option is set to.
CM hhh
[ set the CAN ID Mask to hhh ]
There can be a great many messages being
transmitted in a CAN system at any one time. In order
to limit what the ELM329 views, there needs to be a
system of filtering out the relevant ones from all the
others. This is accomplished by the filter, which works
in conjunction with the mask. A mask is a group of bits
that show the ELM329 which bits in the filter are
relevant, and which ones can be ignored. A ‘must
match’ condition is signalled by setting a mask bit to
'1', while a 'don't care' is signalled by setting a bit to '0'.
This three digit variation of the CM command is used
to provide mask values for 11 bit ID systems (the most
significant bit is always ignored).
Note that a common storage location is used
internally for the 29 bit and 11 bit masks, so an 11 bit
mask could conceivably be assigned with the next
command (CM hh hh hh hh), should you wish to do the
extra typing.
CM hh hh hh hh [ set the CAN ID Mask to hhhhhhhh ]
This command is used to assign mask values for
29 bit ID systems. See the discussion under the
CM hhh command as it is essentially identical, except
for the length. Note that the three most significant bits
that you provide in the first digit will be ignored.
CP hh
[ set CAN Priority bits to hh ]
This command is used to modify the five most
significant bits of a 29 bit CAN ID for sending
messages (the other 24 bits are set with one of the AT
SH commands). Many systems use these bits to
assign a priority value to messages, and to determine
the protocol. Any bits provided in excess of the five
required are ignored, and not stored by the ELM329 (it
only uses the five least significant bits of this byte).
The default value for these priority bits is hex 18,
which can be restored at any time with the AT D
command.
CRA
[reset the CAN Rx Addr]
The AT CRA command is used to restore the CAN
receive filters to their default values. Note that it does
not have any arguments (ie no data).
CRA xyz
[set the CAN Rx Addr to xyz]
Setting the CAN masks and filters can be difficult
at times, so if you only want to receive information
from one address (ie. one CAN ID), then this
command may be very welcome. For example, if you
only want to see information from 7E8, simply send AT
CRA 7E8, and the ELM329 will make the necessary
adjustments to both the mask and the filter for you.
If you wish to allow the reception of a range of
values, you can use the letter X to signify a ‘don’t care’
condition. That is, AT CRA 7EX would allow all IDs
that start with 7E to pass (7E0, 7E1, etc.). For a more
specific range of IDs, you may need to assign a mask
and filter.
CRA wwxxyyzz [set the CAN Rx Addr to wwxxyyzz]
This command is identical to the previous one,
except that it is used to set 29 bit CAN IDs, instead of
11. Sending AT CRA will also reverse the changes
made by this command.
CS
[ show the CAN Status counts ]
The CAN protocol requires that statistics be kept
regarding the number of transmit and receive errors
detected. If there should be a significant number of
errors (due to a hardware or software problem), the
device will go off-line in order to not affect other data
on the bus. The AT CS command lets you see both
the transmitter (Tx) and the receiver (Rx) error counts,
in hexadecimal. If the transmitter should be off (count
>FF), you will see ‘OFF’ rather than a specific count.
CSM0 and CSM1
[ CAN Silent Monitoring off or on ]
The ELM329 was designed to be completely silent
while monitoring a CAN bus. Because of this, it is able
to report exactly what it sees, without colouring the
information in any way. Occasionally (when bench
testing, or when connecting to a dedicated CAN port),
it may be preferred that the ELM329 does not operate
AT Command Descriptions (continued)