OBD 1 & OBD 1.5 Protocols

Deep technical details of manufacturer-specific diagnostic protocols: Ford DCL/CART, Chrysler CCD/SCI, Toyota TCCS, Honda serial.

Period1980 - 1996

The Pre-OBD-II Landscape

Before the 1996 federal mandate, every automaker used proprietary diagnostic systems. No standard connector, protocol, trouble codes, or scan tool. This page covers the actual electrical and protocol-level details of each system.

Ford EEC-IV — DCL/CART Protocol

Ford EEC-IV used two communication methods: the flash-code self-test (KOEO/KOER) and the DCL (Data Communications Link) / CART (Custom Automotive Radio Transceiver) protocol for bidirectional scan tool communication.

Physical Layer — DCL (RS-485)

Standard:       RS-485 (differential) or single-wire
Baud rate:      160 baud (early) or 8192 baud (DCL/CART)
Connector:      2-pin, 3-pin, 6-pin, or 16-pin OBD-II
Voltage:        0-5V TTL (single-wire) or differential
Direction:      Bidirectional (TX and RX on same pin)

2-pin connector (oldest):
  Pin 1  — DCL Bus +
  Pin 2  — DCL Bus -

3-pin connector:
  Pin 1  — GND (Signal Ground)
  Pin 2  — DCL Bus +
  Pin 3  — DCL Bus -

6-pin connector (1988-1995):
  Pin 1  — Signal Ground
  Pin 2  — Self-Test Output (STO)
  Pin 3  — Not used
  Pin 4  — Power Ground
  Pin 5  — Self-Test Input (STI)
  Pin 6  — DCL+ (Data stream)

16-pin OBD-II connector (1994-1995):
  Pin 2  — SAE J1850 Bus +
  Pin 4  — Chassis Ground
  Pin 5  — Signal Ground
  Pin 6  — ISO 9141 K-Line
  Pin 7  — ISO 9141 K-Line (DCL+)
  Pin 10 — SAE J1850 Bus -
  Pin 15 — ISO 9141 L-Line

Self-Test Protocol (KOEO/KOER)

KOEO (Key On, Engine Off):
  1. Connect STI (Pin 5) to Signal Ground (Pin 1)
  2. ECU enters self-test mode
  3. Output on STO (Pin 2) as flashing CEL or serial
  4. Codes output as two-digit numbers:
     - Flash pattern: N flashes → pause → M flashes = Code NM
     - Example: 1 flash → pause → 2 flashes = Code 12
     - 3.2 second pause between codes
  5. Code 55 = test passed (no codes stored)
  6. After KOEO codes: wiggle test (monitor for intermittent faults)

KOER (Key On, Engine Running):
  1. Connect STI to Ground, start engine
  2. ECU runs dynamic tests (actuators, sensors)
  3. Output results on STO
  4. Some models require specific inputs during test
     (brake pedal, steering wheel turn, A/C on/off)

DCL/CART Communication Protocol

DCL/CART uses a request/response model:

Scan Tool → ECU:  Command byte (function code)
ECU → Scan Tool:  Response data (sensor values, DTCs)

Command format:
  [Header] [Command] [Parameters] [Checksum]

Common DCL commands:
  0x01  — Request sensor data stream
  0x02  — Request stored DTCs
  0x03  — Clear DTCs
  0x04  — Actuator test mode
  0x09  — Request vehicle ID / calibration

Response format:
  [Header] [Command Echo] [Data bytes] [Checksum]

Sensor data is returned as raw A/D counts — the scan
tool must apply scaling formulas to display engineering
units (RPM, °C, %, etc.).

Ford EEC-IV Common DTCs

Code  Sensor/System              Condition
──────────────────────────────────────────────────────
 12  MAP sensor                 No reference pressure
 14  ECT (Coolant Temp)         Low input (open circuit)
 15  ECT (Coolant Temp)         High input (shorted)
 17  EGR system                 EGR valve malfunction
 18  CAM sensor (Cylinder ID)   No signal
 21  TPS (Throttle Position)    Voltage low (< 0.2V)
 22  TPS (Throttle Position)    Voltage high (> 4.5V)
 23  MAT (Manifold Air Temp)    Out of range
 24  VSS (Vehicle Speed)        No signal at 2000+ RPM
 31  EGR valve position         Out of range
 33  MAF sensor                 Low airflow detected
 35  MAP sensor                 High voltage (> 4.6V)
 41  O2 sensor                  Lean condition (no rich toggle)
 42  O2 sensor                  Rich condition (no lean toggle)
 51  ECU                        Internal self-test failure
 52  ECU                        Power/fuel backup mode
 55  —                          KOEO test passed (no codes)

Chrysler CCD Bus — Electrical Specification

The Chrysler Collision Detection (CCD) bus was the first mass-produced automotive multiplex network. It uses a differential two-wired twisted pair with precise electrical specifications.

Physical Layer

Standard:       Chrysler proprietary (pre-J1850)
Baud rate:      7,812.5 baud (= 1 MHz / 128)
Wires:          2 twisted pair (Bus+ and Bus−)
Twist rate:     1 turn per 44.45mm (1¾ inches)
Termination:    120Ω resistor across Bus+ and Bus−
Bias:           5V through 13kΩ to Bus−, Bus+ to GND
                through 13kΩ (voltage divider)
Idle voltage:   Bus+ = 2.49V, Bus− = 2.51V
Idle diff:      0.02V (differential)
Active diff:    0.100V (nominal, range 0.02-0.120V)
Bit framing:    Asynchronous serial (like RS-232)
Encoding:       Small differential = 1, Large = 0
Current:        6mA per driver (source or sink)
IC chip:        Intersil CDP68HC68S1 (SPI-to-CCD bridge)

CCD Bus Electrical Details

BUS BIAS CIRCUIT:
                    ┌──────────────┐
   +5V ──── 13kΩ ──┤              │
                    │  Bus− wire   │
                    │              │
                    ├── 120Ω term ─┤
                    │              │
                    │  Bus+ wire   │
                    │              │
                    └──── 13kΩ ───┘
                           │
                          GND

At idle:
  Bus− = 5V × (120 / (13000+120+13000)) = 2.51V
  Bus+ = 5V × (13000+120) / (13000+120+13000) = 2.49V
  Differential = 0.02V (recognized as idle/1)

When transmitting:
  Current drivers toggle 6mA through the bus
  Bus− goes lower, Bus+ goes higher
  Differential increases to ~0.100V (recognized as 0)

CCD Connectors

Under-hood engine connector:
  Pin 1/2  — +12V (not always present)
  Pin 3    — PCM-TX (SCI transmit to scanner)
  Pin 4    — GND
  Pin 6    — PCM-RX (SCI receive from scanner)

In-cabin body connector (blue 6-pin):
  Pin 1    — CCD− (Bus minus)
  Pin 2    — +12V (battery)
  Pin 3    — SCI-RX (may be missing)
  Pin 4    — GND
  Pin 5    — SCI-TX (may be missing)
  Pin 6    — CCD+ (Bus plus)

SCI-RX (Pin 6) shows 5V with no scan tool connected
SCI-TX (Pin 3) shows 0V until scan tool connects

Chrysler SCI Bus

SCI = Serial Communication Interface
Purpose: Direct scan tool ↔ ECM/PCM link (not module-to-module)

Low speed mode (7,812.5 baud):
  - Every byte sent by tool is echoed back by controller
  - Used for: DTC read/clear, actuator tests, basic data
  - Command 0x13: Enter actuator test mode
  - Command 0x14: Read RAM (low-speed, scaled values)

High speed mode (62,500 baud):
  - Enter by sending 0x12 repeatedly until echoed
  - Used for: Real-time data, high-resolution sensors
  - Direct memory read (raw A/D counts)
  - Table select bytes (0xF0-0xFD) switch data pages
  - Up to 14 tables × 240 bytes each = 3,360 bytes

Typical session:
  1. Connect at 7812.5 baud
  2. Send 0x12 repeatedly → switch to 62500 baud
  3. Send table select (0xF0) → access sensor data
  4. Read raw bytes → apply scaling formulas
  5. Switch tables for different sensor groups

Chrysler DTCs

Chrysler uses two-digit codes via CEL flash:

Code 11  — No reference signal (crank position)
Code 12  — Battery disconnect (recent)
Code 13  — MAP sensor voltage out of range
Code 14  — MAP sensor voltage low
Code 15  — No vehicle speed signal
Code 21  — O2 sensor voltage high (rich)
Code 22  — Coolant temp sensor out of range
Code 23  — Intake air temp sensor out of range
Code 24  — Throttle position sensor out of range
Code 25  — Idle air control motor fault
Code 31  — EGR system fault
Code 33  — A/C clutch relay circuit
Code 34  — Cruise control servo fault
Code 35  — Cooling fan relay fault
Code 41  — Alternator field control fault
Code 42  — Fuel relay circuit fault
Code 43  — Multiple cylinder misfire
Code 44  — ECU ground circuit fault
Code 51  — Oxygen sensor lean
Code 52  — Oxygen sensor rich
Code 53  — ECU internal fault
Code 54  — No fuel pickup signal
Code 55  — End of codes

Honda 3-Pin Serial Protocol

Honda used a custom serial protocol on a 3-pin connector. The protocol is request/response based at 9,600 baud with a specific command structure.

Physical Layer

Baud rate:      9,600 baud
Data bits:      8
Parity:         None
Stop bits:      1
Voltage:        0-5V TTL
Connector:      3-pin (blue, under dash)
  Pin 7 (TXD/RXD) — Bidirectional data
  SCS pin         — Service check (short to GND for codes)
  GND             — Ground

Location: Passenger kick panel or under dashboard
  Often in rubber sleeve with 2-pin SCS connector
  SCS connector is for self-diagnostic mode (not data)

Honda Serial Command Protocol

Request format:
  [Header1] [Header2] [Command] [Sub-command] [Length]
  Header1 = 0x20 (request to ECU)
  Header2 = 0x05 (ECU address)
  Command = 0x01 (read data) or 0x72 (write)

Example: Request RPM
  TX: 20 05 01 00 05
  RX: 02 01 05 10 [byte2] [byte3] 03
  RPM = ((byte2 × 256) + byte3) / 4

Response format:
  [Header] [Command] [Sub-command] [Data...] [End]
  Header = 0x02 (response from ECU)
  End    = 0x03

Honda Data PIDs

Parameter          Command         Formula
──────────────────────────────────────────────────────
Engine RPM         20 05 01 00 05  ((B2×256)+B3)/4
Engine Coolant     20 05 01 00 01  polynomial+40 (°C)
Intake Air Temp    20 05 01 00 11  polynomial+40 (°C)
Throttle Position  20 05 01 00 14  (raw-25)/2.08 %
MAP Sensor         20 05 01 00 12  raw × 0.716 kPa
O2 Sensor          20 05 01 00 15  raw 0-255 (0-1V)
Short Term Fuel    20 05 01 00 06  correction factor
Long Term Fuel     20 05 01 00 07  correction factor
Vehicle Speed      20 05 01 00 0D  km/h (1:1)
Timing Advance     20 05 01 00 26  ((raw-24)/2)+128
Battery Voltage    20 05 01 00 17  raw / 10.45 V

Toyota TCCS Protocol

Baud rate:      9,600 baud
Connector:      22-pin DLC1 (under hood) + 17-pin DLC2 (dash)
Mode select:    Short TE1 to E1 on DLC1
Data pin:       TD (test data) on DLC1

DLC1 pinout (22-pin):
  TE1 — Test terminal 1 (short to E1 for diagnostics)
  TE2 — Test terminal 2 (advanced diagnostics)
  E1  — Ground
  TD  — Test data output (9600 baud serial)
  VF  — Variable frequency (voltage feedback)
  +B  — Battery voltage
  W   — Watch lamp (CEL control)
  IG− — Ignition signal (tachometer reference)

DTC output: CEL flash pattern (2-digit codes)
  Code 12: RPM signal (crank position)
  Code 13: RPM signal at high speed
  Code 14: Ignition signal fault
  Code 21: O2 sensor fault
  Code 22: ECT sensor fault
  Code 24: IAT sensor fault
  Code 31: MAP sensor fault
  Code 41: TPS fault
  Code 51: Idle switch fault
  Code 55: Knock sensor fault

OBD 1.5 — The Transitional Era

OBD 1.5 (1994-1995) installed OBD-II hardware (16-pin connector) but used manufacturer-specific software. Physically compatible with OBD-II tools but not fully compliant.

Feature         OBD-I              OBD 1.5           OBD-II
──────────────────────────────────────────────────────────
Connector       Proprietary        16-pin J1962      16-pin J1962
Protocol        Manufacturer       Manufacturer      SAE standard
DTCs            Flashing CEL       P1-codes only     P0/P1/P2 codes
LiveData        Rare               Partial PIDs      Standard PIDs
Monitors        None               Incomplete        8 required
Scan Tool       Brand-specific     Partial universal Universal
Year Range      1980-1995          1994-1995         1996-present

Timeline

1980GM introduces ALDL — first mass-produced on-board diagnostic system
1982Ford launches EEC-IV with self-test capability and KOEO/KOER modes
1984Chrysler introduces Lean Burn system with basic diagnostics
1986Honda introduces 3-pin diagnostic connector
1987Chrysler CCD (Collision Detection) bus — first automotive multiplex network
1988Chrysler CCD deployed on production vehicles — revolutionary 2-wire multiplex
1988CARB (California Air Resources Board) OBD-I regulations take effect
1993Ford DCL/CART protocol enables bidirectional EEC-IV communication
1994OBD 1.5 transitional systems appear
1996Federal OBD-II mandate — end of manufacturer-specific era