
18 of 83
ELM329
ELM329DSC
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
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 ELM329 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 ELM329, 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 ELM329 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, then select
JS formatting.
Using the above example for engine temperature
(PGN 00FEEE) with the data format set to JS, you
must send the bytes to the ELM329 as EE FE 00 (this
is also known as little-endian byte ordering).
The JS type of data formatting is off by default.
JTM1
[ J1939 Timer Multiplier to 1 ]
This command sets the J1939 AT ST time
multiplier to 1, reversing any changes made by JTM5.
JTM1 is the default setting. It has no effect for non-
J1939 protocols.
JTM5
[ J1939 Timer Multiplier to 5 ]
When using a J1939 protocol, it is occasionally
useful to be able to set the AT ST time to values
longer than one second. The JTM5 command will
multiply the AT ST setting by a factor of 5, in order to
provide longer times for the J1939 protocols (only). By
default, this multiplier is off.
L0 and L1
[ Linefeeds off or on ]
This option controls the sending of linefeed
characters after each carriage return character. For
AT L1, linefeeds will be generated after every carriage
return character, and for AT L0, they will be off. Users
will generally wish to have this option on if using a
terminal program, but off if using a custom computer
interface (as the extra characters transmitted will only
serve to slow the communications down). The default
setting is determined by the voltage at pin 7 during
power on (or reset). If the level is high, then linefeeds
are on by default; otherwise they will be off.
LP
[ go to the Low Power mode ]
This command causes the ELM329 to shut off all
but ‘essential services’ in order to reduce the power
consumption to a minimum. The ELM329 will respond
with an ‘OK’ (but no carriage return) and then, one
second later, will change the state of the PwrCtrl
outputs (pins 14 & 16) and will enter the low power
(standby) mode. The IC can be brought back to normal
operation with an RS232 input, CAN activity, or a
rising edge at the IgnMon (pin 15) input, in addition to
the usual methods of resetting the IC (power off then
on, a low on pin 1, or a brownout). See the ‘Low Power
Mode’ section (page 61) for more information.
M0 and M1
[ Memory off or on ]
The ELM329 has internal ‘non-volatile’ memory
that is capable of remembering the last protocol used,
even after the power is turned off. This can be
convenient if the IC is often used for one particular
protocol, as that will be the first one attempted when
next powered on. To enable this memory function, it is
necessary to either use an AT command to select the
M1 option, or to have chosen ‘memory on’ as the
default power on mode (by connecting pin 5 of the
AT Command Descriptions (continued)