Two Different Protocol Generations
J1939 and J1708/J1587 are both heavy-duty vehicle communication standards, but they belong to different eras and use entirely different physical and logical approaches. J1708/J1587 was the dominant protocol through the 1990s and early 2000s. J1939 began replacing it as CAN-bus technology became standard, and by the mid-2000s, all new heavy-duty engines were required to support J1939 diagnostics.
On trucks built during the transition — roughly 1997–2007 — both protocols often existed simultaneously, with newer modules on J1939 and older components (some ABS controllers, legacy body electronics, older instrument clusters) on J1708. Many still in service today have this mixed architecture.
Physical Differences
J1708 uses an RS-485 electrical standard — a balanced differential pair operating at a lower data rate (9,600 baud) than J1939 CAN (250 kbps). The J1708 connector at the dash is typically a 6-pin Deutsch connector, while J1939's primary access is the 9-pin Deutsch connector. Some trucks have both connectors under the dash.
Diagnostic tools for J1708/J1587 need a different physical interface and different software tables than J1939 tools. A modern J1939 scan tool will not read J1708 data through the 9-pin connector — it needs the 6-pin adapter and J1587 protocol support.
Code Format Differences
J1587 uses a three-part identifier: MID (Message Identifier, identifies the module), PID (Parameter Identifier, identifies the parameter being monitored on that module), and SID (Subsystem Identifier, for component-specific faults). This is a fundamentally different naming system than J1939's SPN/FMI/SA.
When looking up a fault from an older truck and the code appears as a MID + PID or MID + SID number, it is a J1587/J1708 code. Looking this up in a J1939 SPN/FMI table will not return a result — the correct lookup is in a J1587 PID/SID table for the specific MID (module type).
Which Protocol Does Your Truck Use
A quick way to determine the protocol: check the diagnostic connector type and see whether the code display shows MID/PID/SID (J1587) or SPN/FMI (J1939). Model year is also a guide — trucks from before 2001 are almost certainly J1587. Trucks from 2008 onward are predominantly J1939. Trucks from 2001–2007 may have both protocols active depending on the specific components.
Related Pages
Sources
- SAE J1939 Standards Collection SAE International · official · accessed 2026-05-05 · confidence medium
Source: SAE International, SAE J1939 Standards Collection. This page paraphrases factual fields only and is not a substitute for the original document.
Open source - NHTSA Manufacturer Communications Search National Highway Traffic Safety Administration · government · accessed 2026-05-05 · confidence high
Source: National Highway Traffic Safety Administration, NHTSA Manufacturer Communications Search. This page paraphrases factual fields only and is not a substitute for the original document.
Open source
FAQ
Can a truck have both J1939 and J1708 systems active at the same time?
Yes. Many trucks built in the late 1990s and 2000s bridged both systems during the transition. Older modules (engines from that era, some ABS systems, instrument clusters) communicated on J1708/J1587 while newer modules used J1939. Gateway devices or modules that participated in both networks were common. Some legacy systems still use J1708 alongside J1939 on older trucks still in service.
If my truck shows MID, PID, and SID codes instead of SPN/FMI, is that J1708?
Yes. MID (Message Identifier), PID (Parameter Identifier), and SID (Subsystem Identifier) are J1587/J1708 identifiers. Seeing those terms on your display or in a diagnostic tool confirms you are working with an older diagnostic communication standard. The lookup tables for MID/PID/SID codes are separate from SPN/FMI tables, and the diagnostic tools for each are different.
Will a modern J1939 diagnostic tool also read J1708 codes from older systems?
Some do, with the appropriate adapter. Many professional scan tools include J1587/J1708 compatibility through a separate cable or module. A J1939-only tool will not read J1708 data. If you are working on a pre-2000 or early-2000s truck that predates full J1939 adoption, confirm your tool's compatibility before assuming all codes are visible.