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
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.
Any ELM327, a clone included. Pick by the link type your phone supports.
from $10
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
The chip inside can be the same — what differs is how the adapter talks to the phone.
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
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
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
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
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.
ATSHWithout it you can only talk to the engine, not to the dashboard or other units.
ATCRAKeeps you from drowning in other traffic while polling one unit.
ATFCSHThe first of the three commands a long write to a unit cannot go without.
ATFCSDThe second of the three. Defines how the unit asks for the next part.
ATFCSMThe key command for writing. Without it a multi-frame service reset cannot be 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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.