OBD-II connector wiring

Was this article helpful?

Comments

ELM327 AT commands: the reference every owner eventually needs

The commands your app sends before it shows you a single number. Knowing a handful of them turns a connection problem from a mystery into a diagnosis.

AI-generated 4 min read

An ELM327 adapter is a translator. On one side it speaks the vehicle’s OBD-II protocol; on the other it presents a simple text interface over a serial connection.

Commands prefixed with AT configure the adapter itself. Everything else is passed to the vehicle.

Related: how to choose an ELM327 adapter and ELM327 not connecting to phone.

The ones worth knowing

CommandWhat it does
ATZFull reset. Returns the version string
ATIIdentify — returns the version without resetting
ATE0Echo off. Apps set this so replies are not duplicated
ATL0Linefeeds off
ATH1 / ATH0Headers on/off — headers show which module replied
ATSP0Set protocol to automatic
ATDPDescribe the protocol currently in use
ATRVRead voltage at the connector
ATS0Spaces off, for compact replies
ATSTSet timeout
ATWSWarm start — softer than ATZ

Your app sends most of these automatically at connection time.

The two that solve real problems

ATRV — read voltage

Returns the voltage measured at the OBD connector.

This is genuinely useful and completely independent of the vehicle answering anything. It tells you:

  • Whether the connector has power at all. No voltage means a fuse: OBD port with no power.
  • Battery condition, roughly. Under 12 V at rest is a weak battery.
  • Charging voltage with the engine running.

If an adapter connects to your phone but the vehicle does not answer, ATRV is the first thing to check. Power present but no response is a protocol problem; no power is a fuse problem.

ATDP — describe protocol

Returns which of the OBD-II protocols the adapter negotiated: ISO 15765-4 CAN, ISO 9141-2, KWP2000, or one of the SAE J1850 variants.

Useful when connection is unreliable. Automatic detection occasionally settles on the wrong protocol, and setting it explicitly with ATSP followed by the number fixes it.

OBD-II protocols explained and K-line and ISO 9141 legacy diagnostics.

Version strings and clones

ATI returns something like ELM327 v1.5 or ELM327 v2.1.

Treat that string with suspicion. Clone adapters routinely report version numbers their firmware does not actually implement. A device claiming v2.1 while behaving like a partial v1.4 implementation is common.

The practical consequence is missing functionality that the version string promised.

How to spot a fake ELM327 clone adapter and STN chipsets versus ELM327 clones.

Headers, and why they matter on multi-module vehicles

With ATH1, each reply includes the header identifying which module sent it.

On a vehicle where several modules answer the same request — common on larger cars — that is how you tell responses apart. Without headers, the replies arrive interleaved and indistinguishable.

Most apps handle this internally, but it explains why a raw terminal session can look like nonsense.

The transport reality

Worth restating, because it is the most common purchasing mistake.

ELM327 communication runs over a serial connection, which on Bluetooth means the Serial Port Profile — Bluetooth Classic.

BLE does not provide SPP. A BLE-only adapter pairs with a phone and then cannot carry the protocol. Buying one is the single most common way to end up with an adapter that appears to work and does nothing.

OBD adapter: WiFi vs Bluetooth vs BLE.

Should you type these yourself?

Mostly not. A good app handles initialisation, protocol selection and header management without you thinking about it.

But knowing what the app is doing turns “it will not connect” into a sequence you can reason about:

  1. Does the adapter respond to ATI at all? If not, the problem is the adapter or the phone connection.
  2. Does ATRV return a plausible voltage? If not, check the connector’s fuse.
  3. Does ATDP return a protocol? If not, the vehicle is not answering.
  4. Do actual data requests return values?

Each step narrows the problem to a different part of the chain.

Try it on the free tier of the apppair an ELM327 adapter over Bluetooth Classic. When a connection misbehaves, working through those four checks in order finds the cause far faster than reconnecting repeatedly.

Comments

Loading…