ELM327
   HOME

TheInfoList



OR:

The ELM327 is a programmed
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs ( processor cores) along with memory and programmabl ...
produced for translating the
on-board diagnostics On-board diagnostics (OBD) is a term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or repair technician access to the status of the various vehicle sub-systems. The amount of diagnostic inf ...
(OBD) interface found in most modern cars. The ELM327 command protocol is one of the most popular PC-to-OBD interface standards and is also implemented by other vendors. The original ELM327 was implemented on the PIC18F2480 microcontroller from Microchip Technology. While in business, ELM Electronics also sold other variants of the product, with slightly different part numbers, which implemented only a subset of the OBD protocols. In June 2020, ELM Electronics announced it was closing the business in June 2022.


Uses

The ELM327 abstracts the low-level protocol and presents a simple interface that can be called via a
UART A universal asynchronous receiver-transmitter (UART ) is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least signific ...
, typically by a hand-held diagnostic tool or a computer program connected by USB,
RS-232 In telecommunications, RS-232 or Recommended Standard 232 is a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' ('' data terminal equipment'') suc ...
,
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
or
Wi-Fi Wi-Fi () is a family of wireless network protocols, based on the IEEE 802.11 family of standards, which are commonly used for local area networking of devices and Internet access, allowing nearby digital devices to exchange data by radio waves ...
. New applications include smartphones. There are a large number of programs available that connect to the ELM327. The function of such software may include supplementary vehicle instrumentation, reporting and clearing of error codes. ELM327 Functions: *Read diagnostic trouble codes, both generic and manufacturer-specific. *Clear some trouble codes and turn off the MIL ("Malfunction Indicator Light", more commonly known as the "Check Engine Light") *Display current sensor data *Engine RPM *Calculated Load Value *Coolant Temperature *Fuel System Status *Vehicle Speed *Short Term Fuel Trim *Long Term Fuel Trim *Intake Manifold Pressure *Timing Advance *Intake Air Temperature *Air Flow Rate *Absolute Throttle Position *Oxygen sensor voltages/associated short term fuel trims *Fuel Pressure


Protocols supported

The protocols supported by ELM327 are: * SAE J1850 PWM (41.6 kbit/s) * SAE J1850 VPW (10.4 kbit/s) *ISO 9141-2 (5 baud init, 10.4 kbit/s) *ISO 14230-4 KWP (5 baud init, 10.4 kbit/s) *ISO 14230-4 KWP (fast init, 10.4 kbit/s) *ISO 15765-4 CAN (11 bit ID, 500 kbit/s) *ISO 15765-4 CAN (29 bit ID, 500 kbit/s) *ISO 15765-4 CAN (11 bit ID, 250 kbit/s) *ISO 15765-4 CAN (29 bit ID, 250 kbit/s) *SAE J1939 (250kbit/s) *SAE J1939 (500kbit/s)


Command set

The ELM327 command set is similar to the Hayes AT commands.


Other versions

The ELM327 is a PIC microcontroller that has been customized with ELM Electronics' proprietary code that implements the testing protocols. When ELM Electronics sold version 1.0 of its ELM327, it did not enable the
copy protection Copy protection, also known as content protection, copy prevention and copy restriction, describes measures to enforce copyright by preventing the reproduction of software, films, music, and other media. Copy protection is most commonly found o ...
feature of the PIC microcontroller. Consequently, anyone who had bought a genuine ELM327-v1.0 could use a device programmer to read ELM's proprietary microcontroller firmware as a
binary blob In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source ope ...
. Pirates could trivially produce an ELM327 clone by purchasing the same microcontroller chip and programming it with the copied blob. ELM327 copies were widely sold in devices claiming to contain an ELM327 device, and problems have been reported with the copies. The problems reflect bugs that were present in ELM's version 1.0 microcode; those making the clones may continue to sell the old version. Although these copies may contain the ELM327 v1.0 code, they may falsely report the version number as the current version provided by the genuine ELM327, and in some cases report an as-yet non-existent version. Released software versions for the ELM327 are 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.3, 1.3a, 1.4, 1.4b, 2.0, 2.1, 2.2 and 2.3 only. The actual functions of these copies are nonetheless limited to the functions of the original ELM327 v1.0, with their inherent deficiencies.


Version outline

v1.0 Initial public release, the ELM327 v1.0 supported: – SAEJ1850 PWM and VPW,- – ISO 9141-2 (10.4 and 9.6 kbps), – ISO 14230-4 (10.4 and 9.6 kbps), – ISO 15765-4 CAN (250 and 500 kbps)- The RS232 baud rates were only 9.6 kbps or 38.4 kbps v1.0a – J1850 VPW timing adjustment for some ’99 – ’00 GM trucks. v1.1 – Introduced Programmable Parameters – Added Flow Control commands v1.2 – RS232 baud rates are adjustable to 500 kbps – Programmable Parameters can be reset with a jumper – Introduced Adaptive Timing – Added SAE J1939 support (protocol A) – Added user defined CAN protocols B and C – Modified KWP protocols to allow four byte headers v1.2a – Changed error detection to catch KWP 4 byte headers if no data or checksum – Added check to prevent CAN mask corruption on certain Flow Control sends v1.3 – Adaptive Timing tuned a little differently – Several J1939 improvements – New CAN CRA commands to help setting masks and filters – New CAN D0/D1 commands for printing of message dlc – New CAN RTR command for sending same – Added space character control in responses – New STOPPED message for user interrupts during searches – Introduced LV RESET message for resets from low voltage – New @2 and @3 commands for storing of unique identifier – Added ability to state the number of responses desired v1.3a (still available) – Added wiring checks for when the J1962 CAN pins are used for other functions v1.4 – Added Low Power mode (‘sleep’ function) – Added extended addressing mode for CAN protocols – Added 4800 baud ISO 9141 and ISO 14230 support – Allow manual control over ISO 9141 and ISO 14230 initiation – Provided a single EEPROM byte for user data storage – All interrupts now say STOPPED (not just when searching) – Many new Programmable Parameters and additions v1.4a Elm Electronics never made a v1.4a v1.4b (no longer available) – New CSM command to have active or passive CAN monitoring – New CRA command to quickly reset changed masks and filters – Several SAE J1939 updates v1.5 Elm Electronics never made a v1.5 v2.0 – New Activity Monitor watches OBD pins – Wake from Low Power now retains settings – AT CRAs accept ‘don’t care’s (X’s) – New PP’s provide extensive ISO/KWP control – Increased the RS232 Tx buffer to 512 bytes – Brownout reset voltage reduced to 2.8V v2.1 – Speed increases – Processes ‘Response Pending’ (7F xx 78) replies – CAN searches now measure frequency and require a match v2.2 – AT CS command now shows CAN frequency – Added 12500 and 15625 bps ISO/KWP baud rates – New AT CER hh command allows defining the CEA Rx address – New IFR modes 4,5,6 control J1850 IFR sending while monitoring – Added PP 1F to allow KWP length to include the checksum byte – Increased PP19 from 31 to 4F v2.3 (latest release) – New AT FT command adds another layer of filtering – Added three CAN Flow Control modes for experimenters – Response Pending now works with CAN Extended Addressing – New AT IA, and C0/C1 commands – Better noise tolerance on RS232 Rx Slightly more detailed changes may be viewed in their latest datasheet in the Version History chapter (pag. 94-95).


See also

*
On-Board Diagnostics On-board diagnostics (OBD) is a term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or repair technician access to the status of the various vehicle sub-systems. The amount of diagnostic inf ...
*
OBD-II PIDs OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool. SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North America are required to support ...
* OBDuino * OpenXC


References

{{Reflist


External links


ELM327 DataSheet & Manual
Microcontrollers Automotive electronics