OBD-2 is the diagnostic standard used in passenger cars and light trucks. SAE J1939 is the diagnostic standard used in heavy-duty trucks, buses, and off-road equipment. The main difference is how they communicate: OBD-2 answers questions when asked, while J1939 continuously broadcasts data to the whole vehicle network.
OBD-2: The Passenger Car Standard
OBD-2 lets a vehicle report engine and emissions problems without a technician manually inspecting each part. It started in 1991 as a California emissions rule and became a full SAE standard shortly after.
What connector does OBD-2 use?
OBD-2 vehicles use a standardized 16-pin connector, usually located under the dashboard within reach of the driver’s seat. Two pins carry the CAN data signal, and one pin supplies constant battery power. Exact pin wiring can vary slightly by manufacturer.
What physical layer does OBD-2 run on?
Older OBD-2 vehicles used K-Line, a slower single-wire connection. Nearly all modern vehicles, including EVs, now use CAN, running at 250 or 500 kbps.
How does OBD-2 communicate?
OBD-2 uses a request-response model. A scan tool sends a specific question, and the vehicle answers with only that data; for example, requesting vehicle speed returns just the speed value. This system covers around 40 commonly used engine and emissions parameters out of nearly 100 defined.
SAE J1939: The Heavy-Duty Standard
J1939 is used in trucks, buses, farm equipment, construction machinery, and other off-road vehicles. It runs on the same basic CAN wiring as OBD-2 but uses a completely different messaging structure.
What connector does J1939 use?
J1939 vehicles use a 9-pin Deutsch connector, designed to withstand the vibration, temperature extremes, and moisture exposure common in heavy-duty and off-road environments.
How does J1939 communicate?
Unlike OBD-2, J1939 devices broadcast data continuously, whether another device is actively requesting it. Two identifiers organize this traffic:
- PGN (Parameter Group Number): identifies a group of related data values.
- SPN (Suspect Parameter Number): identifies a specific value or fault within that group.
Every device on the network reads these broadcasts and picks out the data relevant to it.
How does J1939 handle large messages?
When a message is too large for a single frame, J1939 splits it into multiple parts and reassembles them at the receiving device, a similar concept to OBD-2’s approach but implemented differently.
| Attribute | OBD-2 | SAE J1939 |
|---|---|---|
| Used In | Passenger cars, light trucks | Heavy trucks, buses, off-road equipment |
| System Voltage | 12V | 24V |
| Bus Speed | 250/500 kbps | 250 kbps |
| Connector | 16-pin (round DLC) | 9-pin Deutsch |
| Messaging Style | Request-response | Continuous broadcast |
Key Engineering Considerations
- Interference: Heavy equipment generates more electrical noise, so shielding and connector selection matter more.
- Signal quality: Both uses CAN wiring, but bus length, device count, and traffic volume differ enough that designs need to be application specific.
- Traffic load: J1939 networks stay busy continuously; OBD-2 networks are mostly idle until queried, which affects controller memory and processing needs.
Have thoughts on this comparison, or a question about a specific implementation?
Check out our LinkedIn post on this topic and join the discussion.
If you’re looking for ECUs, gateway controllers, or smart actuators built for these protocols, contact us at info@apagcosyst.com.