ELM329
AT Command Descriptions (continued)
MA
[ Monitor All messages ]
This command places the ELM329 into a bus
OBD message. For the SAE J1939 Protocol, however,
it is often desirable to monitor for the multi-byte
Parameter Group Numbers (or PGNs), which can
appear in either the header, or the data bytes. The MP
command is a special J1939 only command that is
used to look for responses to a particular PGN
request.
Note that this MP command lets you set four of the
six PGN digits, but provides no means to set the first
two digits, so they are always assumed to be 00. For
example, the DM2 PGN has an assigned value of
00FECB (see SAE J1939-73). To monitor for DM2
messages, you would issue AT MP FECB, eliminating
the 00, since the MP hhhh command always assumes
that the PGN is preceded by two zeros.
monitoring mode, in which it continually monitors for
(and displays) all messages that it sees on the OBD
bus. It is a quiet monitor, not sending Acknowledge
bits or Wakeup (CAN periodic) messages. Monitoring
will continue until it is stopped by activity on the RS232
input, or the RTS pin.
To stop the monitoring, simply send any single
character to the ELM329, then wait for it to respond
with a prompt character (‘>’), or a low level output on
the Busy pin. (Setting the RTS input to a low level will
interrupt the device as well.) Waiting for the prompt is
necessary as the response time varies depending on
what the IC was doing when it was interrupted. If for
instance it is in the middle of printing a line, it will first
complete that line then return to the command state,
issuing the prompt character. If it were simply waiting
for input, it would return immediately. Note that the
character which stops the monitoring will always be
discarded, and will not affect subsequent commands.
All messages that are received by the ELM329 will
be printed as found, even if the CAN auto formatting is
on. Normally, the automatic formatting will clean up
what is displayed, hiding errors, improperly formatted
messages, etc. but when monitoring, you will see all
messages that pass through the receive filter, and the
error messages.
This command is only available when a protocol
has been selected for SAE J1939 formatting. It returns
an error if attempted under any other conditions. Note
also that this version of the ELM329 only displays
responses that match the criteria, not the requests that
are asking for the PGN information.
MP hhhh n
[ Monitor for PGN, get n messages ]
This is very similar to the previous command, but
adds the ability to set the number of messages that
should be fetched before the ELM329 automatically
stops monitoring and prints a prompt character. The
value ‘n’ may be any single hex digit.
If the filter and/or mask are set (with the CF, CM or
CRA commands) before sending AT MA, then the data
displayed will be restricted to only those messages
that meet the criteria. This is normally desired, but
occasionally brings unexpected results when users are
not aware. If you truly want to see all data, then you
may want to be sure there is no filtering of data (send
AT CRA before the AT MA).
The MA monitoring command operates by closing
the current protocol (an AT PC is executed internally),
then configuring the IC for silent monitoring of the data
(no wakeup messages, or acknowledges are sent by
the ELM329). When the next OBD command is to be
transmitted, the protocol will again be initialized, and
you may see messages stating this. ‘SEARCHING...’
may also be seen, depending on what changes were
made while monitoring.
MP hhhhhh
[ Monitor for PGN hhhhhh ]
This command is very similar to the MP hhhh
command, but it extends the number of bytes provided
by one, so that there is complete control over the PGN
definition (it does not make the assumption that the
Data Page bit is 0, as the MP hhhh command does).
This allows for future expansion, should additional
PGNs be defined with the Data Page bit set. Note that
internally, the filter and mask are set using the values
provided, but only the Data Page bit is relevant in the
mask - the other bits are ignored. If you need more
precise matching of the priority and EDP bits, you
might consider the AT CM and AT CF commands to
set the filter and mask, then use AT MA.
MP hhhhhh n
[ Monitor for PGN, get n messages ]
MP hhhh
[ Monitor for PGN hhhh ]
This is very similar to the previous command, but it
adds the ability to set the number of messages that
should be fetched before the ELM329 automatically
The AT MA command is quite useful for when you
wish to monitor for a specific byte in the header of an
ELM329DSB
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
18 of 76