OBD2 provides access to data from the engine control unit (ECU) and offers a valuable source of information when troubleshooting problems inside a vehicle. The SAE J1979 standard defines a method for requesting various diagnostic data and a list of standard parameters that might be available from the ECU. The various parameters that are available are addressed by “parameter identification numbers” or PIDs which are defined in J1979. For a list of basic PIDs, their definitions, and the formula to convert raw OBD-II output to meaningful diagnostic units, see OBD-II PIDs. Manufacturers are not required to implement all PIDs listed in J1979 and they are allowed to include proprietary PIDs that are not listed. The PID request and data retrieval system gives access to real time performance data as well as flagged DTCs. For a list of generic OBD-II DTCs suggested by the SAE, see Table of OBD-II Codes. Individual manufacturers often enhance the OBD-II code set with additional proprietary DTCs.
Mode of operation
Here is a basic introduction to the OBD communication protocol according to ISO 15031:
Mode $01 is used to identify what powertrain information is available to the scan tool.
Mode $02 displays Freeze Frame data.
Mode $03 lists the emission-related “confirmed” diagnostic trouble codes stored. It displays exact numeric, 4 digit codes identifying the faults.
Mode $04 is used to clear emission-related diagnostic information. This includes clearing the stored pending/confirmed DTCs and Freeze Frame data.
Mode $05 displays the oxygen sensor monitor screen and the test results gathered about the oxygen sensor.
There are ten numbers available for diagnostics:
- $01 Rich-to-Lean O2 sensor threshold voltage
- $02 Lean-to-Rich O2 sensor threshold voltage
- $03 Low sensor voltage threshold for switch time measurement
- $04 High sensor voltage threshold for switch time measurement
- $05 Rich-to-Lean switch time in ms
- $06 Lean-to Rich switch time in ms
- $07 Minimum voltage for test
- $08 Maximum voltage for test
- $09 Time between voltage transitions in ms
Mode $06 is a Request for On-Board Monitoring Test Results for Continuously and Non-Continuously Monitored System. There are typically a minimum value, a maximum value, and a current value for each non-continuous monitor.
Mode $07 is a Request for emission-related diagnostic trouble codes detected during current or last completed driving cycle. It enables the external test equipment to obtain “pending” diagnostic trouble codes detected during current or last completed driving cycle for emission-related components/systems. This is used by service technicians after a vehicle repair, and after clearing diagnostic information to see test results after a single driving cycle to determine if the repair has fixed the problem.
Mode $08 could enable the off-board test device to control the operation of an on-board system, test, or component.
Mode $09 is used to retrieve vehicle information. Among others, the following information is available:
- VIN (Vehicle Identification Number): Vehicle ID
- CALID (Calibration Identification): ID for the software installed on the ECU
- CVN (Calibration Verification Number): Number used to verify the integrity of the vehicle software. The manufacturer is responsible for determining the method of calculating CVN(s), e.g. using checksum.
- In-use performance counters
- Gasoline engine : Catalyst, Primary oxygen sensor, Evaporating system, EGR system, VVT system, Secondary air system, and Secondary oxygen sensor
- Diesel engine : NMHC catalyst, NOx reduction catalyst, NOx absorber Particulate matter filter, Exhaust gas sensor, EGR system, VVT system, Boost pressure control, Fuel system.
Mode $0A lists emission-related “permanent” diagnostic trouble codes stored. As per CARB, any diagnostic trouble codes that is commanding MIL on and stored into non-volatile memory shall be logged as a permanent fault code.