SAE J1979 (On-Board Diagnostics-II), is a standard used to monitor and report the status of various vehicle systems, including emissions-related components and detect malfunctions or faults that may affect the vehicle’s performance and emissions.

What is an OBD (on-board diagnostics)?

OBD is the automotive electronic system which is designed to offer self-diagnosis and reporting capabilities of a vehicle. This information is used by repair technicians. This system grants technicians access to subsystem information, facilitating performance monitoring and analysis of repair requirements. OBD allows the retrieval of diagnostic information generated by the vehicle’s ECUs. SAE J1979 OBD-II is the standard that all OEMs around the world use for on-board diagnostics.

What is the difference between an OBD and OBD-II?

OBD-II is the second generation of OBD (also known as OBD I). It replaced the original OBD in the early 1990s.OBD I was externally connected to the car’s console whereas OBD-II port is located on the underside of the dashboard on the driver’s side of the car.

The port may have a 16-pin, 6-pin, or 9-pin configuration depending on the type of vehicle.

What vehicle data can be accessed using the OBDII port?

The OBD-II grants access to the status information and Diagnostic Trouble Codes (DTCs) for the powertrain, including the engine and transmission, as well as the emission control systems. Furthermore, through OBD-II, you can retrieve the following vehicle information:

  • Current vehicle Data
  • Vehicle Identification Number (VIN)
  • Calibration Identification Number
  • Ignition and Emissions Control System counters

SAE J1979 OBD-II PIDs (Parameter IDs)

OBD-II PIDs are codes that are used to request the above data from a vehicle, using a diagnostic tool. SAE J1979 standard defines many OBD-II PIDs. There are 10 diagnostic services (or modes) described in the latest OBD-II SAE J1979 standard:

Service / Mode (hex)Description
$01Show current data
$02Show freeze frame data
$03Show stored Diagnostic Trouble Codes
$04Clear Diagnostic Trouble Codes and stored values
$05Test results, oxygen sensor monitoring (non CAN only)
$06Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only)
$07Show pending Diagnostic Trouble Codes (detected during current or last driving cycle)
$08Control operation of on-board component/system
$09Request vehicle information
$0APermanent Diagnostic Trouble Codes (DTCs) (Cleared DTCs)

How do you log the SAE J1979 OBD-II data?

First, connect a diagnostic tool (running in a laptop) or scanner tool to the OBD-II connector.
Now, using this tool, send the Diagnostic request frames via CAN.
Then, the relevant ECUs will respond back with Diagnostic response frames via CAN.
Finally, decode those raw OBD2 responses CAN frames (example via an OBD2 DBC installed in the diagnostic tool)

Examples of some CAN frames for SAE J1979 OBD-II data

Since OBD-II is a Diagnostic protocol, it will contain a Request (from Tester tool) and a Response (from ECU).

Usually the Engine ECU has physical address (CAN-ID) as ‘7E0’ hex. So if someone wants to see the Vehicle Speed, then the CAN frame request from the tester (Laptop or PC with a Diagnostic tool, or a OBD scanner tool) would be like this:

7E0 02 01 0D 55 55 55 55 55

Here ‘7E0’ is the 11-bit CAN-ID of Engine ECU. 02 (1st Databyte) is the number of useful bytes, 01 (2nd Databyte) is for the Service 01 (Show current data) and $0D ((3rd Databyte) is the PID for Vehicle Speed. And remaining data bytes have ‘0x55’ as padding data.

Now once this CAN frame is sent via any Diagnostic tool (Ex CANoe, CANape, VehicleSpy etc.) the ECU will respond back with valid Vehicle Speed. The response frame will be like this:

7E8 03 41 0D 96 4E AA AA AA

Here ‘7E8’ is the response CAN-ID, 03 is the number of useful bytes, 41 is the response identifier for 01 mode, 0D is the PID, and 96 is the actual vehicle speed (in hex). The decimal real world value would be 0x96 (hex) = 150 Kmph.

Key features of SAE J1979 (OBD-II)

  1. Emissions Monitoring: OBD-II is primarily focused on monitoring and diagnosing emissions-related systems to ensure compliance with environmental regulations, such as the emission standards set by government authorities.
  2. Diagnostic Trouble Codes (DTCs): When a fault is detected in a vehicle’s systems, the OBD-II system generates Diagnostic Trouble Codes (DTCs). These codes provide specific information about the nature and location of the problem, aiding in identifying and diagnosing the issue.
  3. Standardized Connectors: OBD-II requires vehicles to have a standardized diagnostic connector (usually located under the dashboard) to facilitate access to the vehicle’s diagnostic data.
  4. Readiness Monitors: OBD-II monitors the status of various emissions-related systems and indicates their readiness for emissions testing. This information is used during vehicle inspections to verify if the vehicle meets emissions requirements.
  5. Data Retrieval: With the help of a diagnostic tool, technicians can retrieve real-time data from the vehicle’s OBD-II system, including sensor readings, fuel trim values, engine speed, coolant temperature, and more.
  6. Compatibility and Interoperability: OBD-II is designed to be compatible with various vehicle makes and models, ensuring that a standard diagnostic tool can be used across different vehicles.
  7. OBD-II PIDs: OBD-II defines a set of Parameter IDs (PIDs) that represent specific data elements within the vehicle’s systems. These PIDs allow the diagnostic tool to request and display specific information from the vehicle’s ECUs.
  8. Readiness Status: OBD-II monitors the readiness status of certain emissions-related systems, indicating whether they have completed the self-tests required for emissions compliance.

Conclusion

OBD-II has become a standard requirement in many countries and regions worldwide. It is an essential tool for vehicle diagnostics, maintenance, and emission testing, as it allows service technicians and emissions inspectors to access critical information about the vehicle’s systems, identify faults, and ensure compliance with environmental regulations. Additionally, OBD-II helps vehicle owners by providing early warnings of potential issues, promoting regular maintenance, and reducing emissions for a cleaner environment.