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.
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.
| Protocol | Command | Typical vehicles |
|---|---|---|
| Auto Detect | ATSP0 | All vehicles (recommended / default) |
| TOYOTA CAN | ATSP6 + physical addressing | Mid-2000s to early-2010s Toyota / Lexus vehicles |
| CAN 11-bit / 500 kbps | ATSP6 | Most passenger cars from 2008 onward (most common) |
| CAN 29-bit / 500 kbps | ATSP7 | Some modern vehicles using extended IDs |
| CAN 11-bit / 250 kbps | ATSP8 | Some specialty vehicles |
| CAN 29-bit / 250 kbps | ATSP9 | Commercial vehicles, pickup trucks, etc. |
| KWP2000 Fast | ATSP5 | European vehicles c. 2003–2007 (ISO 14230 fast init) |
| KWP2000 Slow | ATSP4 | European vehicles c. 2000–2006 (5-baud init) |
| ISO 9141-2 | ATSP3 | Older European cars, late 1990s–early 2000s Asian cars |
| J1850 PWM | ATSP1 | Older Ford (US, c. 1996–2003) |
| J1850 VPW | ATSP2 | Older 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
| Year | First choice | Second choice |
|---|---|---|
| 2008–present | CAN 11-bit / 500 kbps | Auto |
| 2003–2007 (Europe) | KWP2000 Fast | KWP2000 Slow |
| 2000–2007 (Europe / Asia) | ISO 9141-2 | KWP2000 Slow |
| 1996–2003 (US Ford) | J1850 PWM | Auto |
| 1996–2003 (US GM / Chrysler) | J1850 VPW | Auto |
Region / manufacturer tendencies
| Region / Maker | Likely protocol |
|---|---|
| Japanese cars (2008+) | Almost always CAN 11-bit / 500 |
| Older VW / Audi / Skoda (–2007) | KWP2000 Fast or ISO 9141-2 |
| Older Opel / Saab | Often KWP2000 Slow |
| Older Lada / Dacia | ISO 9141-2 |
| Older US Ford | J1850 PWM |
| Older US GM / Chrysler | J1850 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.