Best adapters

ELM327 Commands: AT Command List, PIDs and a Terminal Walkthrough

The AT commands that set an ELM327 up, the hex requests that ask your car for data, and the OBD2 pins those commands travel over.

Last updated September 2026
Quick answer

Send AT commands to set the adapter up and hex OBD requests to ask the car. ATZ resets, ATE0 turns echo off, ATSP0 picks the protocol automatically, and 010C asks for engine RPM. Every command ends with a carriage return, and the > prompt means the adapter is ready.

  • ATZ resets, ATI shows the version
  • ATSP0 sets auto protocol, ATDP names it
  • 0100 lists supported PIDs, 03 reads codes, 04 clears them
1 OBDLink MX+
Best for a Windows terminal over Bluetooth OBDLink MX+
Pairs with Windows as well as phones and answers the standard ELM327 command set
  • Bluetooth connection
  • Works with iPhone, Android, Windows
  • FORScan-ready (HS/MS-CAN)
Check it out
2 Vgate vLinker FS USB
Best USB cable for terminal work Vgate vLinker FS USB
Wired ELM327 link with large packet support and automatic HS/MS-CAN switching
  • USB cable for laptops
  • Works with Windows
  • FORScan-ready (HS/MS-CAN)
Check it out
3 OBDMonster ELM327 USB
Cheapest wired test bench OBDMonster ELM327 USB
A v1.5 ELM327 on a CH340 USB chip that opens in any serial terminal
  • USB cable for laptops
  • Works with Windows
  • FORScan-ready (HS/MS-CAN)
Check it out

Talk to your car without an app

Every ELM327 app is sending short text commands and reading the replies. You can do the same from a laptop or phone terminal, which is the quickest way to prove whether a problem sits in the app, the adapter or the car.

You need three things: an adapter that shows up as a serial port, a terminal program, and the right speed setting.

  1. Connect. A USB cable appears as a COM port once its CH340 or FTDI driver is installed. A Classic Bluetooth adapter paired with Windows also creates a COM port. On Android, a Bluetooth terminal app does the same job.
  2. Open a terminal. PuTTY, Tera Term or any serial terminal works on Windows.
  3. Set the speed. Many adapters default to 38400 baud and older ones to 9600, with 8 data bits, no parity and one stop bit. Faster models vary, so check the manual.
  4. Turn the ignition on, then type ATZ and press Enter.

A healthy adapter answers with its version string and then a > prompt. The prompt is the adapter saying it is ready for the next command. Garbled characters instead mean the speed is wrong, so try the other common rate before suspecting the adapter.

>ATZ
ELM327 v1.5

>
Every command ends with a carriage return. Letters can be upper or lower case, and spaces are ignored, so AT SP 0 and atsp0 do the same thing.
Cheat sheet

The AT commands worth knowing

CommandWhat it doesTypical reply
ATZFull reset, like unplugging the adapterVersion text, e.g. ELM327 v1.5
ATWSWarm start, a quicker resetVersion text
ATIPrint the version IDELM327 v2.1
AT@1Print the device descriptionMaker's text
ATRVRead the voltage at the porte.g. 12.6V
ATE0 / ATE1Echo off / onOK
ATL0 / ATL1Linefeeds off / onOK
ATS0 / ATS1Spaces in replies off / onOK
ATH0 / ATH1Headers off / onOK
ATSP0Set the protocol to automaticOK
ATSP6Force ISO 15765-4 CAN, 11-bit ID, 500 kbit/sOK
ATDP / ATDPNDescribe the current protocol / give its numberAUTO, ISO 15765-4 (CAN 11/500) / A6
ATST hhSet the reply timeoutOK
ATDRestore defaultsOK

Commands are not case-sensitive and spaces are ignored. Clone chips may not answer every command; the ELM327 datasheet lists which version added each one.

The AT commands you will use every time

AT commands configure the adapter itself, not the car. Most apps send the same short sequence on every connection, and copying it by hand teaches you what each command is for.

ATZ      reset the adapter
ATE0     echo off
ATL0     linefeeds off (ATL1 turns them on)
ATS0     spaces off, for compact replies
ATH0     headers off
ATSP0    automatic protocol search
0100     first request: which PIDs are supported?

Echo and linefeed settings are about tidiness. With echo on, the adapter repeats each command before replying, which helps when typing but clutters an app's parser. ATL1 adds a line feed after each carriage return, which some terminals need to show replies on separate lines.

  • ATH1 shows the header bytes, including which module answered. On CAN cars, 7E8 is usually the engine computer.
  • ATDP prints the protocol in words, and ATDPN prints its number.
  • ATRV reads the voltage at pin 16, a quick battery check.
  • ATI prints the version, the first step in spotting a clone.
  • ATD restores the defaults when you have changed too much and lost track.

If a command returns a question mark, the chip does not know it. Clone firmware often lacks newer commands even when its version string claims otherwise, which is the whole story behind the v1.5 vs v2.1 debate.

Adapter vs adapter

Adapters that take commands well

OBDLink MX+ OBDLink MX+ Vgate vLinker FS USB Vgate vLinker FS USB Vgate vLinker MC+ Vgate vLinker MC+ OBDLink LX OBDLink LX OBDMonster ELM327 USB OBDMonster ELM327 USB Veepeak Mini (Android) Veepeak Mini (Android)
ConnectionBluetoothUSBBluetooth LEBluetooth 3.0USBBluetooth
iPhoneYesNoYesNoNoNo
AndroidYes—YesYes—Yes
WindowsYesYesYes—Yes—
FORScanYesYesYes—Yes—
BMW codingYes—————
Check it out Check it out Check it out Check it out Check it out Check it out
Details

Detailed specs for these adapters

OBDLink MX+
OBDLink MX+
Brand
OBDLink
Model
MX201
Chip
OBDLink STN family, ELM327 command set compatible
Wireless link
Bluetooth, Apple MFi certified
Operating systems
iOS, Android, Windows
Ford MS-CAN
Supported
GM SW-CAN
Supported
Enhanced OEM data
Ford, GM, Mazda, Nissan/Infiniti, Toyota/Lexus/Scion, Honda, Hyundai, Kia
Extra live data
ABS, SRS, TPMS and more, vehicle-dependent
Recommended by
FORScan, Torque, BimmerCode, DashCommand, AlfaOBD, Carista
Protection
Over-voltage and battery drain protection
Firmware
Updates included
Adapter review →Check it out
Vgate vLinker FS USB
Vgate vLinker FS USB
Brand
Vgate
Model
vLinker FS USB (Windows)
Link type
USB; works in USB 2.0 and 3.0 ports
Computer
Windows PC or laptop
iPhone / Android
No
Command set
ELM327 protocol
Bus access
Automatic detection of HS-CAN and MS-CAN
Programming voltage
Up to about 18V for select older US-market vehicles
Data rate
Up to 3 Mbps
Packet size
Full 4095-byte packets
Named software
FORScan (optimised), AlfaOBD, VCTool and other ELM327 programs; not included
Vehicle voltage
12V and 24V
Adapter review →Check it out
OBDMonster ELM327 USB
OBDMonster ELM327 USB
Brand
OBDMonster
Model
MS-327
Link type
USB, wired
Hardware
ELM327 v1.5 chip
USB-serial chip
CH340T
Bus switch
Manual HS-CAN / MS-CAN toggle; automatic on version B08SBGVGKC
Protocols
All OBD2 protocols, plus J1850 PWM, HS-CAN, MS-CAN, HS-CAN2, HS-CAN3
Computer
Windows XP, Vista, 7, 8, 10, 11
iPhone / Android
No
Named software
ELMconfig, FoCCCus, FF2
Vehicles
12V Ford cars and F-series trucks, Mazda, Lincoln, Mercury
Stated coverage
About 99% of models after 2000 and around 92% after 1996
Adapter review →Check it out

Setting the protocol with ATSP when auto search stalls

ATSP0 tells the adapter to try each protocol until the car answers. On most cars that takes a moment; on some older ones it can sit on SEARCHING long enough to look broken.

ATSPProtocol
0Automatic
1SAE J1850 PWM, 41.6 kbit/s
2SAE J1850 VPW, 10.4 kbit/s
3ISO 9141-2, 5-baud init
4ISO 14230-4 KWP, 5-baud init
5ISO 14230-4 KWP, fast init
6ISO 15765-4 CAN, 11-bit ID, 500 kbit/s
7ISO 15765-4 CAN, 29-bit ID, 500 kbit/s
8ISO 15765-4 CAN, 11-bit ID, 250 kbit/s
9ISO 15765-4 CAN, 29-bit ID, 250 kbit/s
ASAE J1939 CAN, 29-bit ID, 250 kbit/s

Once auto search succeeds, ATDPN shows the number with an A in front, meaning it was found automatically. Write that number down; next time, ATSP followed by it skips the search.

Protocols 3 to 5 begin with a slow wake-up handshake, so the first request on those cars can take a few seconds. Later requests run faster once the link is open.

  • Most US cars from 2008 on answer on 6.
  • ATSPA6 tries 6 first but still falls back to searching if 6 fails.
  • A car that answers on no protocol usually has the ignition off, a loose adapter or a blown fuse for the port.

The connection guide covers the fuse and fit checks in more detail.

Our pick

Three command sets, one adapter

Vgate vLinker MC+
Best for command-line tinkering on any device Vgate vLinker MC+

The vLinker MC+ is compatible with the ELM327, ELM329 and STN command sets, and reaches GM single-wire CAN and Ford MS-CAN as well as the five standard protocols. It connects to iPhone, Android and Windows.

Check it out

Reading RPM, coolant temperature and codes by hand

Car requests are plain hex: a mode number, then a PID. Mode 01 asks for live data, and the reply starts with 41 to confirm it.

RequestAsks forHow to decode the reply
0100Supported PIDs 01 to 20Four bytes, one bit per PID
0105Coolant temperatureA minus 40, in °C
010CEngine RPM(256 × A + B) ÷ 4
010DVehicle speedA, in km/h
0110Mass airflow(256 × A + B) ÷ 100, in g/s
0111Throttle positionA × 100 ÷ 255, in %
>010C
41 0C 1A F8

Here A is 1A and B is F8 in hex, or 26 and 248 in decimal. So (256 × 26 + 248) ÷ 4 gives 1,726 RPM. A coolant reply of 41 05 7B works the same way: 7B is 123, and 123 minus 40 is 83 °C.

Other modes cover the rest of the OBD2 menu:

  • 03 lists stored trouble codes, and 07 lists pending ones.
  • 04 clears codes and freeze frame, and resets readiness monitors.
  • 02 reads freeze frame data.
  • 0902 requests the VIN on cars that support it.
Do not send 04 casually. It wipes the evidence a mechanic would use and resets emissions readiness, so read and note the codes first.
Graphed

How fast each OBD2 protocol talks

Standard bit rates of the protocols the ELM327 command set covers. ATSP chooses among them; ATDP tells you which one your car uses.

The OBD2 pins your commands travel over

Every command ends up as signals on specific pins of the 16-pin diagnostic connector. Knowing the ELM327 OBDII pin layout helps when an adapter works on one car and not another.

PinUse
2SAE J1850 bus positive
4Chassis ground
5Signal ground
6CAN high
7ISO 9141-2 and KWP2000 K-line
10SAE J1850 bus negative (PWM)
14CAN low
15ISO 9141-2 L-line, on some cars
16Battery positive, usually unswitched

The remaining pins, 1, 3, 8, 9, 11, 12 and 13, are left to each car maker. Ford uses 3 and 11 for its MS-CAN network, which is why FORScan cables carry a switch, and GM uses pin 1 for single-wire CAN. Pin 16 carries battery voltage even with the key out on most cars, which is why an adapter left plugged in stays powered and why sleep modes matter.

  • Adapter has no power at all? Check pin 16; on many cars its fuse is shared with the power outlet.
  • Powers up but finds no protocol? Check that the pins for your car's protocol are present in the port.
  • Works on CAN cars only? The adapter may lack K-line or J1850 hardware.

For the Ford side of this, see the FORScan guide. For the software that sends these commands for you, the app guide lists the options by platform.

Driver questions

Drivers want to know

What is the first ELM327 command to send?

ATZ, which resets the adapter and prints its version. Follow it with ATE0 to turn echo off and ATSP0 to let the adapter find the car's protocol.

What baud rate does an ELM327 use?

Many default to 38400 and some older units to 9600. Faster USB and Bluetooth models vary, so check the manual if 38400 gives garbage.

Why does my ELM327 reply with a question mark?

The chip does not recognise the command. Check the spelling, or suspect clone firmware that lacks newer commands.

What does NO DATA mean?

The car did not answer that request. Either your car does not support that PID, or the ignition is off.

How do I read the VIN with an ELM327?

Send 0902 on a car that supports it. The reply comes back as several lines of hex that decode to the 17 characters of the VIN.

Also helpful

More OBD2 help

More adapters

More adapters for tinkerers