Back to Help
Features

OBD Protocol Selection

OBD-II uses several communication protocols (ISO standards), and the one in use depends on your vehicle's make, year, and region. OBD-NINJA defaults to automatic detection, but you can also pick a protocol manually for vehicles where auto-detect fails.

Published · May 9, 2026·Updated · August 19, 2026

1.Overview

OBD-II has been mandatory in the US since 1996 and is now used worldwide, but its underlying communication protocols have evolved over time. Before CAN bus (ISO 15765) became the standard, vehicles used a mix of ISO 9141-2, KWP2000 (ISO 14230), and the US-specific SAE J1850 PWM/VPW — varying by manufacturer and region.

OBD-NINJA picks the right protocol on connect via the ELM327 `ATSP0` (auto-detect) command, but auto-detection can fail on older or grey-market vehicles. For those cases, you can manually choose from 11 options — 10 supported protocols plus one dedicated preset.

When to use it — if your adapter hangs on "SEARCHING…" until it times out, drops in and out, or refuses to connect to an older European or imported car, picking the protocol manually often fixes it.

2.Supported Protocols

OBD-NINJA offers the following 11 options — 10 protocols mapped to the ELM327 ATSPx commands, plus one Toyota-specific preset.

ProtocolCommandTypical vehicles
Auto DetectATSP0All vehicles (recommended / default)
TOYOTA CANATSP6 + physical addressingMid-2000s to early-2010s Toyota / Lexus vehicles
CAN 11-bit / 500 kbpsATSP6Most passenger cars from 2008 onward (most common)
CAN 29-bit / 500 kbpsATSP7Some modern vehicles using extended IDs
CAN 11-bit / 250 kbpsATSP8Some specialty vehicles
CAN 29-bit / 250 kbpsATSP9Commercial vehicles, pickup trucks, etc.
KWP2000 FastATSP5European vehicles c. 2003–2007 (ISO 14230 fast init)
KWP2000 SlowATSP4European vehicles c. 2000–2006 (5-baud init)
ISO 9141-2ATSP3Older European cars, late 1990s–early 2000s Asian cars
J1850 PWMATSP1Older Ford (US, c. 1996–2003)
J1850 VPWATSP2Older GM / Chrysler (US, c. 1996–2003)

Treat the table as a guide. Even within the same model, year and market region can change the protocol — when in doubt, try Auto first.

3.About TOYOTA CAN mode

Some Toyota / Lexus vehicles from the mid-2000s to early 2010s (such as the HiAce and Land Cruiser of that era) use standard OBD-II CAN communication, yet do not answer the broadcast query that auto-detection sends to all ECUs. The result is a vehicle that "won't connect" even though the adapter is fine.

TOYOTA CAN mode keeps the standard CAN protocol (11-bit / 500 kbps) but addresses the engine ECU directly instead of broadcasting. Vehicles that ignore the broadcast query may connect this way. No special adapter is required — a regular ELM327-compatible BLE adapter works as-is.

How to use: Settings → "OBD Protocol" → select "TOYOTA CAN (older Toyota/Lexus)". Note that depending on year and trim, the same model may connect fine with Auto Detect — try Auto first, then TOYOTA CAN if it fails.

If neither works, please send us a diagnostic log via the "Send connection log" button shown after a failed connection. Every log helps us expand vehicle support.

4.Setup

From the Settings screen

  • 1. Open Settings
  • 2. Tap "OBD Protocol"
  • 3. Pick a protocol from the list
  • 4. It applies on the next connection

Tip: After changing the protocol, disconnect Bluetooth and reconnect. The change does not apply to an active session.

Recovery flow when connection fails

If a connection attempt fails, a dialog appears automatically with a "Select protocol" button that takes you straight to the picker. From app version 1.3.1, the app also analyzes the adapter's response to suggest which protocols are worth trying next — the dialog names them, and the picker lists them near the top with a "(recommended)" mark. You can always return to Auto Detect, even after a failed manual selection.

5.Which protocol does my car use?

When in doubt, start with Auto. The tables below are rough guidance based on year and region.

Quick guess by model year

YearFirst choiceSecond choice
2008–presentCAN 11-bit / 500 kbpsAuto
2003–2007 (Europe)KWP2000 FastKWP2000 Slow
2000–2007 (Europe / Asia)ISO 9141-2KWP2000 Slow
1996–2003 (US Ford)J1850 PWMAuto
1996–2003 (US GM / Chrysler)J1850 VPWAuto

Region / manufacturer tendencies

Region / MakerLikely protocol
Japanese cars (2008+)Almost always CAN 11-bit / 500
Older VW / Audi / Skoda (–2007)KWP2000 Fast or ISO 9141-2
Older Opel / SaabOften KWP2000 Slow
Older Lada / DaciaISO 9141-2
Older US FordJ1850 PWM
Older US GM / ChryslerJ1850 VPW
European / Asian cars (2008+)CAN 11-bit / 500 — fall back to 29-bit
Commercial (pickups / trucks)CAN 29-bit / 250 worth trying

Imported vehicles — the same model can ship with a different protocol depending on the destination market. North American and European variants may use different protocols, so the destination region tends to be a more reliable hint than the badge on the car.

6.Troubleshooting

Order to try when you can't connect

  • 0. Check the device name you're connecting to — does it look like your adapter ("OBDII", "ELM327", "Vgate", …)? If you've picked an unrelated nearby Bluetooth device (smart lights, earbuds, etc.), no protocol will ever connect
  • 1. Try Auto first — confirm whether anything connects at all
  • 2. CAN 11-bit / 500 — for 2008+ vehicles, this is the most common
  • 3. CAN 29-bit / 500 — try this if 11-bit didn't work
  • 4. Pick from the year / region tables above
  • 5. If none work, suspect the ELM327 adapter or cable itself

Tip: Reconnect Bluetooth every time you change the protocol (disconnect and reconnect). Just changing the setting is not enough. From app version 1.3.1, the failure dialog suggests recommended protocols — trying those first is the fastest route.

7.FAQ

Auto works fine — does specifying the protocol make connection faster?

Slightly. Auto tries protocols in sequence internally, so picking a known protocol can shorten the initial connection time.

What if I pick a protocol that doesn't match my car?

The connection fails and the fallback dialog appears, letting you pick a different protocol from there. From app version 1.3.1, the app suggests likely candidates based on the adapter's response, and you can always return to Auto Detect.

I've heard ELM327 adapters differ in protocol support — is that true?

Yes. Some cheap clones only support CAN protocols and skip the older J1850 family. For older cars, pick an adapter that explicitly lists the protocols you need.

Can I switch back to Auto after picking a protocol manually?

Yes. Just choose "Auto Detect" again from the same picker.

I changed the protocol but nothing seems different

Disconnect Bluetooth and reconnect. The protocol command (ATSPx) is sent during the connection init sequence, so it doesn't affect an active session.

TOYOTA CAN mode still won't connect

Please send us a log via "Send connection log" on the failure dialog. We'll review the communication record. Very old vehicles may use non-CAN protocols such as K-Line.

No protocol works at all

First make sure the Bluetooth device you selected is actually your adapter (troubleshooting step 0). Also, a small number of vehicles complete OBD-II communication but do not support standard live data (Mode 01) — changing the protocol will not help there. Send us a connection log and we can tell which case you're in.

Download OBD NINJA

Free on iOS and Android.