CarScan

Which OBD-II adapter to choose

We do not sell adapters and earn nothing on links — so here it is plainly: for reading fault codes a cheap clone is enough. It is the service reset you cannot save on.

Only reading codes

Any ELM327, a clone included. Pick by the link type your phone supports.

from $10

Service reset too

An adapter that really performs the five unit-addressing commands: OBDLink SX / EX / MX+ (STN1110, STN2120) or a genuine ELM327 v1.4b or 2.x.

from $50

Four ways to connect

The chip inside can be the same — what differs is how the adapter talks to the phone.

Bluetooth (SPP)

Android, the most common choice

Cheap, works everywhere, paired once and connects on its own.

Does not work on iPhone at all: Apple does not give apps classic Bluetooth.

iPhone: no

Bluetooth LE

iPhone and newer Android phones

The only wireless way on iPhone. No pairing needed — the app finds the adapter itself.

Slower than classic Bluetooth: live readings refresh less often.

Works on iPhone

Wi-Fi

Both platforms

Works on both iPhone and Android, and the link is fast.

The phone leaves your network for the adapter: no internet while connected.

Works on iPhone

USB (cable)

Android phones with OTG

The most reliable link: nothing drops in the middle of a long procedure.

Needs an OTG adapter, and the phone is tied to the socket by a cable.

iPhone: no

The five commands a service reset needs

Reading codes needs none of them. They are needed to address a particular unit and to send it a long command — that is exactly what a service reset is.

  1. ATSH
    Set the request header

    Without it you can only talk to the engine, not to the dashboard or other units.

  2. ATCRA
    Receive filter

    Keeps you from drowning in other traffic while polling one unit.

  3. ATFCSH
    Flow control: header

    The first of the three commands a long write to a unit cannot go without.

  4. ATFCSD
    Flow control: data

    The second of the three. Defines how the unit asks for the next part.

  5. ATFCSM
    Flow control: mode

    The key command for writing. Without it a multi-frame service reset cannot be done.

«OK» does not mean «done»

A clone can answer OK to all five and still not deliver a single addressed request to the unit. That happened to us on 01.09.2026: the command list was complete, the report said ready — and nothing worked on the car. Since then the app checks the addressing for real and refuses to start service procedures until it is confirmed.

How a clone shows itself

A version that never existed

ELM Electronics released 1.0–1.4b and 2.0–2.3. «v1.5», «v2.1 mini» and the like are clone firmwares on a PIC18F25K80 or an STM32 chip. That alone is not a verdict: what the adapter can actually do matters more.

Answers OK and does nothing

The most annoying kind. The adapter cheerfully answers «OK» to every command, yet not a single addressed request reaches the unit. It happened to us on 01.09.2026 on our own car: the command list was complete, the report said ready — and nothing worked. Since then the app stopped trusting answers and checks the addressing for real.

Gets hot and drops the link

A cheap board heats up during a long scan and drops the connection — right in the middle of a long procedure. If the link dies after five or ten minutes, this is usually why.

Drains the battery

Clones often fail to sleep with the ignition off and keep drawing current around the clock. Left in for a week, such an adapter can flatten the battery — unplug it if the car is parked.

When a pricier adapter will not help

There is one case where the usual advice is harmful. If the car uses CAN-FD, no ELM327 will read it — genuine or clone, any version: it is not in the command set at all. Advanced chips handle other buses, but not this one. The car answers with what looks like noise, the adapter reports errors, and it all looks like broken hardware.

It shows up on GM and Ford from 2019–2020, on electric cars from 2023 and on newer Geely models. There you need an adapter that names CAN-FD in its own description — it is separate hardware, not a firmware setting.

The second half of the same story is the wiring: a cheap adapter is soldered to pins 6 and 14 only. A unit sitting on another pair cannot be reached with any command at all — there is no wire, and it has nothing to do with how clever the adapter is.

CAN-FD, the socket pins and how to tell the three cases apart

Questions before buying

Which adapter should I buy if I only want to read fault codes?

Any ELM327 will do, a cheap clone included. Reading codes, live data and readiness monitors work on those too. Choose by the link type: BLE or Wi-Fi for iPhone, anything for Android.

And what if I need the service reset?

Then do not save on it. You need an adapter that really performs the five unit-addressing commands — in practice an OBDLink SX, EX or MX+ (STN1110 and STN2120 chips) or a genuine ELM327 v1.4b or 2.x. The app checks your adapter and tells you plainly whether it can do it.

Can I tell from the listing whether it is a clone?

Not reliably. The listed version can say anything while the board inside is something else. Only a connected adapter can be checked: the app polls it and tries the addressing on a live car.

Can I leave the adapter plugged in?

If the car is driven daily — usually yes. If it stands for weeks, unplug it: many adapters never sleep and keep drawing current the whole time.

Will an adapter fit my car?

The OBD-II socket is there on cars from about 2001, and the protocol depends on the year and the market. There is a separate page that answers by make, year and market.