Diagnose right in your browser — plug in an ELM327 and the site reads your car itselfProgram for Windows and macOS — all-module scan on any make

HomeAdaptersELM327

ELM327: versions, clones, connection types and Windows setup

The chip is gone, the clones are everywhere. Here is how to tell a usable adapter from a crippled one, and where the limit is the OBD-II standard rather than the hardware.

An ELM327 is a translator chip. Your software sends it a text line such as 0100, the adapter puts that request on the car diagnostic bus using the right protocol, and hands the module reply back as another text line. That is the entire job. Deciding which modules to interrogate and what a reply means belongs to the software on the PC - which is why so much of what people blame on the adapter is really a software limitation, and the other way round.

Elm Electronics, the Canadian company behind the part, shut down on 30 June 2022 and genuine silicon has not been made since. Everything on sale in 2026 is a clone, so the useful question is not whether yours is a clone but whether it is a complete one.

What the hardware can and cannot do

The original was built around a Microchip PIC18F2x8x core, and the datasheet reference circuit runs it from a 4 MHz crystal. Most good clones use a PIC18F25K80 at 16 MHz with reimplemented firmware. On the car side, the chip speaks every protocol the OBD-II connector allows; on the PC side it presents itself as a plain serial port over USB, Bluetooth SPP, BLE or WiFi.

ATSPProtocolWhere you meet it
1, 2SAE J1850 PWM 41.6 kbaud, VPW 10.4 kbaudUS Ford and GM up to the early 2000s
3ISO 9141-2, 5-baud init, 10.4 kbaudEuropean and Asian cars roughly 1996-2004
4, 5ISO 14230-4 KWP2000, slow and fast initK-line cars up to about 2007
6-9ISO 15765-4 CAN, 11-bit and 29-bit IDs, 500 and 250 kbaudThe default for nearly everything since 2008
ASAE J1939 CAN 250 kbaudTrucks and heavy equipment

Now the honest list of what an ELM327 will never do, whatever the sticker claims:

  • No second bus. The chip is wired to pins 6 and 14 only. Ford and Mazda body modules on MS-CAN (pins 3 and 11) and GM body modules on single-wire CAN (pin 1) are physically out of reach. Those need an OBDLink on an STN chip: the MX+ covers both buses, the EX only MS-CAN.
  • No coding, no flashing. It reads and clears, it does not write module configuration or reprogram firmware.
  • No BMW dealer depth. Coding, service functions and full module access on a BMW need a K+DCAN cable or an ENET cable.
  • Slow K-line. On pre-CAN cars the bus itself runs at 10.4 kbaud, so a full module sweep takes minutes, not seconds. That is physics, not the adapter.
  • Patchy routine control. Actuator tests and UDS routines depend on the module accepting them, and clones with an incomplete header command set often cannot address the module at all.

The OBD-II connector, pin by pin

The socket is defined by SAE J1962: sixteen contacts, top row 1-8, bottom row 9-16, numbered left to right as you look at the socket in the car. Some pins are fixed by the standard, the rest are the manufacturer's to use.

12345678910111213141516
4Chassis ground5Signal ground6CAN-H7K-line14CAN-L16+12V
PinSignalWhat it is for
4Chassis groundPower return for the adapter
5Signal groundReference for the data lines; a bad contact here causes intermittent sessions
6CAN-HHigh line of the main bus, ISO 15765-4, 500 or 250 kbaud
14CAN-LLow line of the same bus, always paired with pin 6
7K-lineISO 9141-2 and KWP2000, cars up to roughly 2007
15L-lineSecond init line of the old standard, unused on most cars
16+12VPermanent battery feed, live with the ignition off
1SW-CAN (GM)GMLAN at 33.3 kbaud; other makes use this pin for their own purposes
3 and 11MS-CAN (Ford, Mazda)125 kbaud body bus, invisible to an ELM327
8Second K-line (BMW)A K+DCAN cable uses pins 7 and 8
2 and 10SAE J1850 PWM and VPWOlder US-market Ford and GM

Identifying your adapter properly

Forget the label and the chip marking: both come from the same people who wrote the firmware string. Identification is behavioral - work through this list in a terminal, or let Diagnost do it for you.

  • ATZ - reset and banner. This is the string that gets quoted as the version, and it is a hard-coded text constant in every clone. Treat it as marketing, not evidence.
  • ATI - the same identifier without a reset. If it disagrees with the banner, the firmware was patched carelessly.
  • AT@1 - device description. Real firmware returns a meaningful string; thin clones return nothing or a question mark.
  • ATRV - battery voltage at the connector. Compare it against a multimeter and watch it move when the engine starts. A constant 12.0V means there is no divider behind the number.
  • ATPPS - programmable parameter summary. A complete board prints a table of hex values; a crippled one says it does not understand.
  • ATAL, ATH1, ATSH, ATCRA - long messages, headers, custom header and receive filter. These four are what a module sweep is built on. If headers do not appear in replies after ATH1, that adapter will never read anything beyond generic engine codes.
  • ATMA - monitor all traffic. Many fakes silently do nothing here, which is a well-known giveaway.

If you would rather not install anything first, the fastest test is the in-browser adapter check: it talks to an ELM327 over USB with Web Serial or over BLE with Web Bluetooth, straight from Chrome or Edge, and pulls engine codes in a few seconds. Windows and Android are supported, iOS is not.

Drivers and connection setup on Windows 10 and 11

USB

Inside a USB adapter sits a USB-to-serial bridge, most often a CH340, sometimes an FTDI FT232RL or a Prolific PL2303. Install the driver for the actual bridge: CH341SER for CH340, the CDM package from ftdichip.com for FTDI, and for PL2303 only the legacy driver, because current Prolific drivers deliberately refuse cloned chips. A healthy install shows up in Device Manager as a COM port with no warning icon.

On FTDI parts, open the port properties, go to the advanced port settings and drop the latency timer from its default of 16 ms to 1-4 ms. On a bus sweep with hundreds of short requests this is the difference between a brisk scan and a sluggish one.

Bluetooth SPP

Pair it in Windows settings with PIN 1234 or 0000. Windows then creates two virtual COM ports, outgoing and incoming, and software needs the outgoing one. Pairing is not connecting: the port only opens at the moment an application asks for it, which is why an adapter can sit in the device list looking paired and connected to nothing.

BLE

Bluetooth Low Energy models exist mainly because iOS does not let apps use SPP. Units such as the Vgate iCar Pro BLE are connected directly by the application through a GATT service and normally expose no COM port at all. On Windows this avoids the whole virtual-port mess, provided your software supports BLE - Diagnost and the browser check both do.

WiFi

A WiFi adapter runs its own access point. Factory defaults are almost always IP 192.168.0.10 and TCP port 35000, on an open network with no internet behind it. Join that network, point the software at that address, and expect the laptop to be offline until you disconnect.

What Diagnost reaches through an ELM327, by make and year

MakeYears and protocolWhat an ELM327 gets you
BMW, Mini1998-2013 E series K-line / D-CAN, 2010+ F/G/I DoIPGeneric engine data only. Full depth needs K+DCAN or ENET
VW, Audi, Skoda, SEATto ~2000 KW1281, 2001-2004 KWP2000, 2004-2008 CAN TP2.0, 2008+ UDSModule scan with VAG addresses from 2008. The 2004-2008 TP2.0 module - gateway module list, identification, codes, clearing - was added in 3.1.13 and is being verified on real cars. Before 2004 you need a KKL or K+DCAN cable
Mercedes-Benz, Smartto 2004 K-line, 2004+ diagnostic CAN on pins 6/14 at 500 kbaud with non-standard 0x6xx to 0x4xx ID pairsEngine, transmission and modules found by automatic ID-pair discovery, with EZS, ESP and EPS known - added in 3.1.13, being verified on real cars
Opel, Chevrolet, Cadillac, Buick, GMCto 2004 K-line, 2004+ GMLAN over HS-CAN and SW-CANEngine, transmission, ABS and GMLAN codes via service $A9 - added in 3.1.13, being verified on real cars. Body modules on SW-CAN need an OBDLink MX+
Ford, Mazda, Lincolnto 2003 K-line, 2003+ HS-CAN plus MS-CANEngine, transmission, ABS. Body and cluster live on MS-CAN and need an OBDLink MX+ or EX
Toyota, Lexus, Daihatsuto ~2005 K-line, 2006+ CANModule scan with Toyota addresses, plus the hybrid battery report with every block voltage
Nissan, Infiniti2000-2007 K-line, 2007+ CANModule scan with Nissan addresses on CAN cars
Hyundai, Kia, Genesis2000-2006 K-line, 2006+ CANEngine and standard modules; earlier cars need a K-line cable
Honda, Mitsubishi, Subaru, Suzukiown K-line dialects when old, CAN from 2006-2008Engine and standard modules on CAN. Honda HDS and Mitsubishi MUT over K-line are not supported
Renault, Dacia, Peugeot, Citroen, Fiatto ~2004 K-line, 2005+ CANEngine and standard modules
Geely, Chery, Haval, Changan, JAC2010+ CAN UDSEngine and standard modules

As of September 2026 the rule of thumb is simple: the newer the car, the more a cheap ELM327 gives you. On a CAN car from 2008 onward it is a full multi-module scanner in the hands of the right software; on a car from the late nineties it is an engine code reader and not much else.

Common connection failures

  • Detected by Windows, no reply from the car. The PC-to-adapter half works and the adapter-to-car half does not. Ignition to ON, check ATRV for real battery voltage, then force the protocol instead of relying on ATSP0.
  • Wrong COM port. Bluetooth pairing yields two ports and only the outgoing one works. Some older software also chokes on port numbers above COM9, which you can change in the driver properties.
  • Wrong baud rate. 38400 is the factory value, 115200 appears on faster clones. At the wrong rate you get silence or garbage.
  • Paired but not connected. Windows shows the device permanently, but the SPP channel only exists while an application holds the port open. Remove and re-pair if the port refuses to open.
  • Replies truncated. Long multi-frame answers arriving in pieces is the signature failure of cut-down clones, and no setting fixes it - replace the adapter.
  • WiFi joined, no data. Confirm the software is aimed at 192.168.0.10:35000 and that Windows has not silently switched back to a network with internet.

Leave it plugged in and you will be jump-starting

Pin 16 is a permanent battery feed. A typical ELM327 idles at a few tens of milliamps, and only better boards implement a real sleep mode that drops to single digits. Over a two-week holiday that is enough to flatten a healthy battery.

When to buy something else

An ELM327 is the right first adapter for almost everyone: cheap, universal, and enough for one owner and one car. Move up in three situations. For a BMW or Mini where you want coding, service resets and every module, buy a K+DCAN cable for E series and early F cars or an ENET cable for G and I series - around $10 each. For Ford, Mazda or GM body work, only an OBDLink MX+ (or an EX for Ford MS-CAN) reaches the second bus. For a pre-2005 car that never answers on CAN, you need K-line: a VAG KKL cable at about $5, or the same K+DCAN.

J2534 pass-through devices such as Mini-VCI, Mongoose, Scanmatik and Openport are a separate category: Diagnost drives them as a virtual ELM327 through the vendor driver, support was added in version 3.1.12 and is still being verified on real devices. They are not a BMW solution.

What the software does with any of these is on the Diagnost download page and the ELM327 software page; code explanations live in the code reference, for example P0420.

Questions and answers

Is v1.5 really better than v2.1?

Usually yes, and the numbers are misleading. Elm Electronics never shipped a firmware called 1.5, so every v1.5 on the market is a clone - but the good ones are built on a PIC18F25K80 with a nearly complete AT command set. Adapters sold as v2.1 are often cut-down boards that answer fewer commands and drop long multi-frame replies.

Is my ELM327 fake, and how do I check it?

Every ELM327 sold today is a clone, because the original chip went out of production in 2022. What matters is whether the clone is complete. Send ATI, AT@1, ATPPS and ATAL: a crippled board answers most of them with a question mark, while a good one returns real strings and a parameter list.

Can an ELM327 read ABS and airbag codes, or only engine?

The OBD-II standard itself covers only the engine and emissions-related systems. ABS, transmission and airbags answer manufacturer requests over UDS or KWP at their own addresses, which is software work, not adapter work. Diagnost sweeps those addresses over a plain ELM327 on CAN-bus cars, roughly 2008 and newer.

Bluetooth, BLE or WiFi - which one for a Windows laptop?

USB is the least trouble on a laptop: one COM port, no pairing. Bluetooth SPP works but creates two virtual ports and you need the outgoing one. BLE pairs without virtual COM ports, so it is the cleanest wireless option on Windows 10 and 11 and the only one an iPhone accepts. WiFi takes over your wireless adapter, so the laptop loses internet while you diagnose.

Which COM port and baud rate do I select?

Most adapters run at 38400 baud, some clones at 115200. The COM number is whatever Windows assigned - check Device Manager for a USB Serial Port or CH340 entry. Diagnost scans ports and both baud rates by itself, so you only need this if you are talking to the adapter from a terminal.

Why does it connect but show NO DATA?

NO DATA means the adapter talked to the PC but got nothing back from the car. Turn the ignition to ON rather than accessory, confirm battery voltage with ATRV, and set the protocol by hand - automatic detection is the first thing cheap clones get wrong.

Can an ELM327 damage my ECU or drain the battery?

Reading codes and live data is the same traffic a shop scanner sends, so it is safe. The real risk is the battery: pin 16 is live with the key out and a typical adapter idles at a few tens of milliamps, which will flatten a weak battery over a week. Unplug it when you are done.

Do I need a v2.3 adapter or is v1.5 hardware enough?

For reading modules, live data and clearing codes, a solid v1.5-class board is enough. The genuine 2.2 and 2.3 firmware added flow-control modes and extended addressing features that most clones claiming those numbers never implemented anyway.

Download Diagnost

Free program: scans every module on any make, live data, service functions and an AI mechanic built in. Finds the connected adapter on its own and picks the one that is on the car.

Download the programWindows 7–11 and macOS · the same AI mechanic inside

Other adapters

Updated: 2026-09-05