J1587 Meaning

An older heavy-duty diagnostic messaging standard used with J1708 networks.

Review status: source-backed medium Last reviewed: 2026-03-11

What J1587 Defines in Heavy-Duty Diagnostics

J1587 is a SAE standard that defines the diagnostic message format for heavy-duty vehicles using the J1708 physical communication layer. While J1708 specifies the electrical hardware (the wire, voltages, and data rate), J1587 specifies the language — how messages are structured, which identifiers are used (MID for module, PID for parameter, SID for subsystem), and how fault codes are formatted. J1587 is to J1708 what J1939 application layer is to CAN hardware.

J1587 defines the fault code format that appears on older heavy trucks: a MID identifying the reporting module, combined with either a PID (for parameter-based faults like oil pressure) or a SID (for component or subsystem faults like a specific ABS wheel sensor), and an FMI describing the failure mode. A complete J1587 fault code reads as: 'MID 136 / SID 21 / FMI 4' (ABS controller / left front wheel speed sensor / voltage below normal).

J1587 Fault Code Format and How to Read It

Reading a J1587 fault code requires three components: the MID (what module), the PID or SID (what parameter or component), and the FMI (what type of fault). If any of these is missing, the code is incomplete. The FMI values in J1587 follow the same definitions as J1939 FMIs — FMI 1 means below normal, FMI 3 means voltage high, FMI 4 means voltage low, etc. The FMI is consistent across both standards; it is the MID/PID/SID portion that is J1587-specific.

On older truck displays that show J1587 codes, the code format may be presented as 'MID 128 / PID 100 / FMI 1' or abbreviated as '128/100/1' depending on the display software. Some displays translate the code to a text message without showing the MID/PID/SID numbers. Recording the numeric code when possible gives the technician more diagnostic information than a translated message.

J1587 in Service Today: Relevance for Current Fleets

J1587 remains relevant for any truck still in active service that uses J1708 communication — which includes a substantial portion of the commercial truck fleet from the 2000s and earlier. Pre-2007 emissions trucks are 20+ years old but many remain in vocational and regional service. Fleets running older equipment need to ensure their diagnostic tools and technicians are equipped to handle J1587 codes from these vehicles.

A common situation in fleet maintenance: a driver reports a code from an older truck. The shop connects a modern J1939 scan tool and sees no codes or reads only partial data. The missing data is from J1708/J1587 modules that the J1939 tool cannot see. Understanding J1587 helps fleet managers recognize when this limitation applies and ensure the correct tooling is available.

J1587 vs. J1939: Looking Up Codes in the Right Reference

The single most important practical point about J1587 vs. J1939: they have separate code references. A J1939 SPN lookup will not return useful results for a J1587 PID code, because the numbering systems are different. PID 100 in J1587 is not the same as SPN 100 in J1939, even if they both happen to refer to engine oil pressure for some manufacturers. Always confirm the communication standard before selecting a code reference.

OEM service documentation for older engines (Cummins pre-2007, Detroit Series 60, Caterpillar 3400-3600 series) includes fault code tables in J1587 MID/PID/SID format. These tables are the most reliable reference for codes from those specific engine families. For non-OEM reference, the SAE J1587 standard document is the authoritative source, though it requires purchase from SAE International.

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

FAQ

What is the relationship between J1587 and J1708?

J1708 defines the physical layer — the wiring, electrical signaling, and data rates. J1587 defines the application layer — the message format, the MID/PID/SID identifiers, and the fault code structure. They work together: J1708 is the transport, J1587 is the language. When people refer to 'J1708 codes,' they typically mean J1587-formatted messages transmitted over J1708 hardware.

Do modern diagnostic tools still include J1587 support?

Many professional heavy-duty diagnostic tools retain J1587 support, often requiring a legacy adapter cable. Fleet service operations that maintain older trucks typically need this capability. Consumer-grade OBD2 scanners do not support J1587. Verify the tool's capabilities before working on trucks from the early 2000s and older.

Is J1587 still relevant for trucks currently in service, or is it only a historical standard?

J1587 remains relevant for any truck still in service that predates full J1939 adoption. While newer trucks do not use J1587, a significant portion of the commercial fleet is old enough to have J1587-based modules that are still generating faults. Understanding which protocol a specific truck uses is part of setting up the diagnostic process correctly.