On-board diagnostics bootstrap

Every automotive engineer, repair technician and car enthusiast has heard about OBD or OBDII. These are different versions of the same system know as on-board diagnostics. It is a self-diagnostic and reporting functionality built into vehicle. OBD was created as a mean of standardization and normalization of the messaging protocol aimed at efficient troubleshooting and reporting of the problems encountered with a vehicle control systems. Given that modern vehicles have tens of microcontrollers, sensors, actuators and other devices interconnected as a part of local computer network, it is easy to see why such effort was needed.

OBD defines set of parameter identifiers (PIDs) which denote measured values in different systems monitored and controlled by various embedded computers and other devices. There is a set of generic codes which are supported across the range of manufacturers and models of vehicles. However, real power of the OBD is ability to extend this specifications and include manufacturer specific codes indicating relevant parameters. Of course, with this power, comes responsibility of the code providers to allow correct decoding. This can become cumbersome over time as host of new codes are being added every so often.

General Motors had their own proprietary on-board diagnostics system as early as 1970’s, called Assembly Line Diagnostic Link (ALDL). It was used with first electrical fuel injection (EFI) systems and later developed control units of different car components. 1991, in California, OBDI was introduced. Intention of the regulator was to encourage design of the emission control system. From there, OBD1.5 and later OBDII were developed, further advancing capabilities and extending features.

Illustration 1: OBD Connector: Type A (left), Type B (right).

OBD compatible tool is needed in order to access and read information of the system. There are two standardized variants of the connectors, Type A and Type B, as defined by SAE J1962 specification. Both are female D-shaped connectors featuring 16 pins, divided in two rows of 8. Between pin lines there is a groove, which is interrupted on Type B connector, preventing attachment of the Type A connector. Conversely, Type B connector can be used with Type A socket. Pinout of the connector defined by the SAE J1962 is as follows:

1 Manufacturer’s discretion:

  • GM: J2411 GMLAN/SWC/Single-Wire CAN
  • VW/Audi/BMW: Switched +12V to tell a scan tool whether the ignition is on.
  • Ford, FIAT: Infotainment CAN High
9 Manufacturer’s discretion:

  • BMW: TD (Tachometer Display) signal aka engine RPM signal.
  • GM: 8192 bit/s ALDL where fitted.
2 Bus Positive Line of SAE J1850 PWM and VPW 10 Bus Negative Line of SAE J1850 PWM only (not SAE J1850 VPW)
3 Manufacturer’s Discretion:

  • GM: Object Detection CAN bus (+)
  • Ford: DCL(+) Argentina, Brazil (pre OBD-II) 1997–2000, USA, Europe, etc.
  • Ford: Medium Speed CAN-High
  • Chrysler: CCD Bus(+)

Manufacturer’s Discretion:

  • GM: Object Detection CAN bus (-)
  • Ford: DCL(-) Argentina, Brazil (pre OBD-II) 1997–2000, USA, Europe, etc.
  • Ford: Medium Speed CAN-Low
    Chrysler: CCD Bus(-)
4 Chassis ground 12

Manufacturer’s discretion:

  • GM: Chassis high-speed CAN bus (+)
  • GM: Diagnostic codes to DIC (1994–2004 Corvette)
5 Signal ground 13

Manufacturer’s discretion:

  • GM: Chassis high-speed CAN bus (-)
  • Ford: FEPS – Programming PCM voltage
6 CAN-High (ISO 15765-4 and SAE J2284) 14 CAN-Low (ISO 15765-4 and SAE J2284)
7 K-Line of ISO 9141-2 and ISO 14230-4 15 L-Line of ISO 9141-2 and ISO 14230-4

Manufacturer’s discretion:

  • BMW: Second K-Line for non OBD-II (Body/Chassis/Infotainment) systems.
  • Ford, FIAT: Infotainment CAN-Low.

Battery voltage:

  • Type “A” 12V/4A
  • Type “B” 24V/2A

Connector port of the OBDII system is required to be within 2 feet of the steering wheel or in special cases defined by the manufacturer, connector can be located elsewhere, but still within the reach of the driver seated on it’s seat.

Device running diagnostics software connected to the OBD compatible port can access PIDs and decode them into troubleshooting messages according to defined format and the protocol of the communication. OBD trouble codes are composed of a single letter followed by 4 digits, where initial letter carries information of the relevant car parts group: P for engine and transmission, B for body, C for chassis and U for network. Standardized diagnostic trouble codes (DCTs) may be extended by custom data specific to manufacturers implementation.

This bootstrap will be followed by reviews of most popular OBD compatible diagnostic tools readily available on the market. They will explore their characteristics and user experience as well as robustness, support and other relevant aspects.

Leave a Reply