From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The ELM327 is a programmed microcontroller produced by ELM Electronics for translating the on-board diagnostics (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 is implemented on the PIC18F2480 microcontroller from Microchip Technology.

ELM327 is one of a family of OBD translators from ELM Electronics. Other variants implement only a subset of the OBD protocols.


The ELM327 abstracts the low-level protocol and presents a simple interface that can be called via a UART, typically by a hand-held diagnostic tool or a computer program connected by USB, RS-232, Bluetooth or Wi-Fi. New applications include smartphones.

There are a large number of programs available that connect to the ELM327.[1]

The function of such software may include

ELM327 Functions

  • Read diagnostic trouble codes, both generic and manufacturer-specific, and display their meaning (over 3000 generic code definitions in the database).
  • Clear 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 System status
  • Fuel Pressure

Protocols supported by ELM327[edit]

The protocols supported by ELM327 are:[2]

  • 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)

ELM327 command set[edit]

The ELM327 command set[3][4] is similar to the Hayes AT commands.

Pirate clones[edit]

Typical cheap ELM327 clone without label on the controller

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 feature of the PIC microcontroller. Consequently, anyone could buy a genuine ELM327, and read ELM's proprietary binary microcontroller software using a device programmer. With this software, pirates could trivially produce ELM327 clones by purchasing the same microcontroller chips and programming them with the copied code.[5][6] ELM327 clones were widely sold in devices claiming to contain an ELM327 device, and problems have been reported with the clones.[7] 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 pirate clones 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.[8] Released software versions for the ELM327 are 1.0, 1.3a, 1.4b, 2.1 and 2.2 only.[9] The actual function of these pirate clones is nonetheless limited to the function of the original ELM327 v1.0, with inherent deficiencies.

Most of the clones are reporting [ELM327 v1.5], despite the fact that Elm Electronics does not have a version 1.5.

We note that a free Android app "ELM327 Identifier" tests 103 different AT codes and uses this information to determine which version of the ELM327 chip is actually present (or is being emulated by a pirate chip). Most of the pirated adapters that claim to be "v.1.5" or "v.2.1" actually fail most of the AT codes beyond v.1.4 and will not execute codes characteristic of ELM327 v.1.4b, 2.0, 2.1 or 2.2. Further, many of the pirated clone adapters do not even have OBDII port pins 2 and 10 connected, rendering them incapable of connecting to the ECU of many Ford and GM vehicles using the SAE J1850-PWM or -VPW protocols.[10]

See also[edit]


  1. ^ "ELM327 Compatible Software". imechatronics.com. IMechatronics. Retrieved 6 May 2012.
  2. ^ "ELM Electronics". ELM Electronics. ELM Electronics.
  3. ^ "ELM327 AT Commands" (PDF). ELM Electronics. Retrieved 6 May 2012.
  4. ^ "ELM327 v2.2 OBD to RS232 Interpreter" (PDF). ELM Electronics. Retrieved 15 Jan 2018.
  5. ^ "83427-elm327-usb-vehicle-obd-2-scanner-tool". Priuschat forum. Retrieved 6 May 2012.[dubious ]
  6. ^ "ebay ELM327 mini guide". User review. eBay. Retrieved 6 May 2012.[dubious ]
  7. ^ "Why you shouldn't buy an Elm327 Clone". Scantool. Retrieved 6 May 2012.
  8. ^ "ELM327 Product Information". ELM Electronics.
  9. ^ "ELM327 SW versions". ELM Electronics. Retrieved 31 Aug 2015.
  10. ^ https://timyouard.wordpress.com/2015/09/02/disection-of-a-counterfeit-elm327-obdii-adapter-from-china/

External links[edit]