All cars and light trucks built for sale in the United States after 1996 are required to be OBD-II compliant. There are five OBD-II protocol types in use:
- J1850 PWM
- J1850 VPW
- ISO 9141-2
- ISO 14230 KWP2000
- ISO 15765 CAN
Each protocol differs electrically and by communication format.
ISO 15765 CAN protocol was developed by Bosch for automotive and industrial control. As of 2008 all vehicles sold in the US are required to implement CAN as one of their signaling protocols. As such, you can expect all vehicles that began first manufacture starting 2008 to be CAN enabled, and all other protocols abandoned from this point onwards.
The code reader or scan tool you use must be compatible with the vehicles specific protocol in order to communicate.
To determine which protocol your vehicle is using, you need to locate the Data Link Connector. It’s a 16-pin rectangular connector usually located below the steering column, behind the ash tray or within at least 3-feet from the drivers seat. It may also be located behind a snap off cover. The connector will not have all of the pins loaded. You can examine which pins are present to identify which protocol is being used. The diagrams below show all of the protocol pin positions.
After you determine your vehicles protocol, check your scan tools support list or look into the scan tools connector to see if the mating pins are present. If the mating pins are present it is a good sign but it is no guarantee that your tool will work.
SAE J1850 PWM
Pulse-Width Modulation — 41.6 kB/sec, standard of the Ford Motor Company

Two wire differential
Pin 2: BUS+ signal
Pin 10: BUS- signal
Active bus state: BUS+ is pulled high while BUS- is pulled low
High signal voltage level: +5V (min/max 3.80 to 5.25)
Low signal voltage level: 0V (min/max 0.00 to 1.20)
Up to 12 message bytes, excluding frame delimiters
Bit Timing:
- “1” Bit: Bus state active for 8uS (within 24uS bit period)
- “0” Bit: Bus state active for 16uS (within 24uS bit period)
- Start-Of-Frame: Bus state active for 48uS
SAE J1850 VPW
Variable Pulse Width — 10.4/41.6 kB/sec, standard of General Motors

Single wire
Pin 2: BUS+ signal
Idle bus level is low
High signal voltage level: +7V (min/max 6.25 to 8.00)
Low signal voltage level: 0V (min/max 0.00 to 1.50)
Up to 12 message bytes, excluding frame delimiters
Bit Timing:
- “1” Bit: Signal low for 128uS or high for 64uS
- “0” Bit: Signal low for 64uS or high for 128uS Start-Of-Frame: Signal high for 200uS
ISO 9141-2 & ISO 14230 KWP2000
These protocols have an asynchronous serial data rate of 10.4 kbps. Communications happen on a single, bidirectional line without additional handshake signals.

ISO 9141-2 is primarily used in Chrysler, European, and Asian vehicles.
Asynchronous serial communication at 10.4 Kbaud
Pin 7: K-line bidirectional for communication
Pin 15: L-line (optional) unidirectional for waking up the ECU
Idle signal levels are high
Signals are active pull-down to 0V (0.00 to 2.40)
High signal voltage level: +12V (min/max 9.60 to 13.5)
Up to 12 message bytes, excluding frame delimiters
Bit Timing:
- UART signaling at 10.4K baud, 8 data bits, no parity, 1 stop
ISO 14230 KWP2000
Abbreviation is short for Keyword Protocol 2000
Asynchronous serial communication up to 10.4 Kbaud
Pin 7: K-line bidirectional for communication
Pin 15: L-line (optional) unidirectional for waking up the ECU
Idle signal levels are high Signals are active pull-down to 0V (0.00 to 2.40)
High signal voltage level: +12V (min/max 9.60 to 13.5)
Message may contain up to 255 bytes in the data field
Bit Timing:
- UART signaling up to 10.4K baud, 8 data bits, no parity, 1 stop
ISO 15765 CAN
The CAN protocol was developed by Bosch for automotive and industrial control. As of 2008 all vehicles sold in the US are required to implement CAN.

Controller Area Network (CAN bus) is a robust vehicle bus standard designed originally for multiplex electrical wiring within automobiles to save on copper.
High speed 250kbit/sec or 500kbit/sec
Pin 6: CAN high (CANH)
Pin 14: CAN low (CANL)
Dominant or active bus state: CANH driven high while CANL driven low
Recessive or idle bus state: CANH and CANL signals are not driven
CANH signal voltage level: 3.5V (min/max 2.75 to 4.50)
CANL signal voltage level: 1.5V (min/max 0.5 to 2.25)