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. It defines a set of diagnostic services and parameter IDs (PIDs) that allow external scan tools to retrieve real-time data and DTCs from the vehicle’s ECUs.
Table of Contents
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. It provides access to key parameters such as engine RPM, vehicle speed, fuel system status, and oxygen sensor readings through standardized PIDs.
For example, PID 0C returns engine RPM data, while PID 0D retrieves vehicle speed, enabling technicians to evaluate system behavior under various conditions.
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.
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 the 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. Unlike OBD I, which had manufacturer-specific protocols, OBD-II supports standardized communication protocols such as ISO 9141-2, SAE J1850 VPW/PWM, and CAN, ensuring compatibility across different makes and models.
For example, vehicles using the CAN protocol typically use pins 6 and 14 for high- and low-speed communication, allowing for faster and more reliable data transfer during diagnostics.
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 |
---|---|
$01 | Show current data |
$02 | Show freeze frame data |
$03 | Show stored Diagnostic Trouble Codes |
$04 | Clear Diagnostic Trouble Codes and stored values |
$05 | Test results, oxygen sensor monitoring (non CAN only) |
$06 | Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only) |
$07 | Show pending Diagnostic Trouble Codes (detected during current or last driving cycle) |
$08 | Control operation of on-board component/system |
$09 | Request vehicle information |
$0A | Permanent 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)

Key features of SAE J1979 (OBD-II)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Final Thoughts
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.