19 of 94
ELM327DSJ Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
If you send AT IFR S, the ELM327 will use the
value defined as the Source Address (usually F1, but it
can be changed with PP 06), even if another value
was sent in the Header bytes. This is not what is
normally required, and caution should be used when
using AT IFR S. AT IFR H restores the sending of the
IFR bytes to those provided in the Header, and is the
default setting.
IGN [ read the IgnMon input level ]
This command reads the signal level at pin 15. It
assumes that the logic level is related to the ignition
voltage, so if the input is at a high level, the response
will be ‘ON’, and a low level will report ‘OFF’.
This feature is most useful if you wish to perform
the power control functions using your own software. If
you disable the Low Power automatic response to a
low input on this pin (by setting bit 2 of PP 0E to 0),
then pin 15 will function as the RTS input. A low level
on the input will not turn the power off, but it will
interrupt any OBD activity that is in progress. All you
need to do is detect the ‘STOPPED’ message that is
sent when the ELM327 is interrupted, and then check
the level at pin 15 using AT IGN. If it is found to be
OFF, you can perform an orderly shutdown yourself.
IIA hh [ set the ISO Init Address to hh ]
The ISO 9141-2 and ISO 14230-4 standards state
that when beginning a session with an ECU, the
initiation sequence is to be directed to a specific
address ($33). If you wish to experiment by directing
the slow five baud sequence to another address, it is
done with this command. For example, if you prefer
that the initiation be performed with the ECU at
address $7A, then simply send:
>AT IIA 7A
and the ELM327 will use that address when called to
do so (protocols 3 or 4). The full eight bit value is used
exactly as provided – no changes are made to it (ie no
adding of parity bits, etc.)
Note that setting this value does not affect any
address values used in the header bytes. The ISO init
address is restored to $33 whenever the defaults, or
the ELM327, are reset.
JE [ enables the J1939 ELM data format ]
The J1939 standard requires that PGN requests
be sent with the byte order reversed from the standard
‘left-to-right’ order, which many of us would expect. For
example, to send a request for the engine temperature
(PGN 00FEEE), the data bytes are actually sent in the
reverse order (ie EE FE 00), and the ELM327 would
normally expect you to provide the data in that order
for passing on to the vehicle.
When experimenting, this constant need for byte
reversals can be quite confusing, so we have defined
an ELM format that reverses the bytes for you. When
the J1939 ELM (JE) format is enabled, and you have a
J1939 protocol selected, and you provide three data
bytes to the ELM327, it will reverse the order for you
before sending them to the ECU. To request the
engine temperature PGN, you would send 00 FE EE
(and not EE FE 00). The ‘JE’ type of automatic
formatting is enabled by default.
JHF0 and JHF1 [ J1939 Header Formatting off or on ]
When printing responses, the ELM327 normally
formats the J1939 ID (ie Header) bits in such a way as
to isolate the priority bits and group all the PGN
information, while keeping the source address byte
separate. If you prefer to see the ID information as four
separate bytes (which a lot of the J1939 software
seems to do), then simply turn off the formatting with
JHF0. The CAF0 command has the same effect (and
overrides the JHF setting), but also affects other
formatting. The default setting is JHF1.
JS [ enables the J1939 SAE data format ]
The AT JS command disables the automatic byte
reordering that the JE command performs for you. If
you wish to send data bytes to the J1939 vehicle
without any manipulation of the byte order (ie in the
order specified by the SAE documents), then select JS
formatting.
As an example, when sending a request for
engine temperature (PGN 00FEEE) with the data
format set to JS, you must present the bytes to the
ELM327 as EE FE 00 (this is also known as little-
endian byte ordering).
The JS type of data formatting is off by default.
JTM1 [ set the J1939 Timer Multiplier to 1 ]
This used to set the AT ST time multiplier to 1, for
the SAE J1939 protocol. As of firmware v2.1, this
AT Command Descriptions (continued)