ELM325
About J1922
SAE J1922 is another standard that may be used
J1708 if the vehicle’s engine is not running, and it’s not
moving). This is not an issue with the ELM325, as it is
capable of receiving an unlimited number of bytes, and
is able to send as many as 21 data bytes (23 total) if
the automatic formatting is on.
When monitoring for J1922 messages, use the
same commands as you would with J1587 – MA, MM,
GM, etc. will all work. Note that AT MP will still work
too, but it will filter for the first data byte (which is likely
of minimal use). The only concern might be that if you
are sending messages and looking for responses, you
may have to define your own F1 and F2 filters (see the
Receive Filtering section for more information on this).
by heavy duty trucks and busses. The data format is
similar enough to J1587 that you may use your
ELM325 circuit with it.
J1922 uses a number of predefined messages for
communicating status and performing various control
functions. These are either broadcast at a regular rate,
or provided on demand, just like J1587. Unlike J1587,
they do not use PIDs for defining functions though –
they do that with the MID byte. The J1708 standard
defines MIDs 45 to 56 (ie. 69 to 86 decimal) for use
with J1922).
The messages may be from 2 to 23 bytes in length
with J1922 (21 data bytes are actually allowed by
Restoring Order
There may be times when the ELM325 settings
have been adjusted, and it’s not responding properly.
Perhaps you are not sure of the present settings (but
you do know that you were getting responses before,
and are now not seeing any). Perhaps you have told
the ELM325 to monitor all data, and there are screens
and screens of data flying by.
The ELM325 can always be interrupted from a
task by a single keystroke from the keyboard. As part
of its normal operation, the ELM325 constantly checks
for any received characters on the serial port, and if
found, it will stop what it is doing at the next
opportunity. This may mean that it will continue to
send the information for the current line, then stop,
print a prompt character, and wait for your input. The
stopping may not always seem immediate if it has just
begun printing a line, for example, so be patient.
There may be times when the problems seem
more serious and you don’t remember just what you
did to make them so bad. Perhaps you have ‘adjusted’
the timer, and experimented with the filters, or perhaps
tried to see what happens if the MID byte is changed.
To reset only the filters to their initial state, simply
send:
then all of the settings can be reset by sending the ‘set
to Defaults’ command:
>AT D
This is usually enough to restore order, but of
course it removes all of the settings that you have
made (echo, linefeeds, etc), so should only be used
when you truly want all the settings to be restored to
their default values.
If the AT D command still does not bring the
expected results, it may be necessary to do something
more drastic – like resetting the entire IC. There are a
few ways that this can be performed with the ELM325.
One way is to simply remove the power and then
reapply it. Another way that acts exactly the same way
as a power off and then on is to send the full reset
command:
>AT Z
It takes approximately one second for the IC to
perform this reset, initialize everything and then test
the four status LEDs in sequence. A much quicker
option is available, however, if the led test is not
required – the ‘Warm Start’ command:
>AT F1
then
>AT WS
>AT F2
The AT WS command performs a software reset,
restoring the same items as AT Z, but it does not
perform the LED test.
and the ELM325 will remove any settings that you
have made to either filter.
If the problem is a little more involved than this,
ELM325DSA
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
21 of 31