What SID Identifies in J1587 Diagnostics
SID stands for Subsystem Identifier. It is a J1587/J1708 diagnostic identifier used alongside MID and FMI to form a complete fault code. While PID identifies a measured parameter (a sensor value like oil pressure or coolant temperature), SID identifies a component, subsystem, or physical hardware element within the reporting module's domain — an actuator, a specific sensor by its physical location, or a hardware subsystem.
SID values are defined in the SAE J1587 standard. Examples: SID 1 might identify an injector for a specific cylinder, SID 21 might identify a wheel speed sensor at a specific axle position on a Bendix or Wabco ABS system. The SID combined with the MID (module type) creates a code that specifies both which module is reporting and which specific component or subsystem that module has detected a fault in.
How SID Differs From PID in Diagnostic Practice
The practical distinction: PID faults are associated with measured parameter values (the ECM measured oil pressure and it was too low — PID 100 FMI 1). SID faults are associated with component behavior or hardware conditions (the ABS controller detected a condition in the wheel speed sensor circuit at a specific wheel position — MID 136, SID 1, FMI 4). PIDs produce a numeric value that the ECM compares against thresholds; SIDs produce binary or qualitative conditions (present/absent, functional/non-functional) that the ECM evaluates.
In practice, ABS and brake system fault codes on older J1708-equipped trucks are almost exclusively SID-based because ABS monitors specific hardware components (wheel sensors, modulator valves) rather than measured parameter values. Engine and fuel system codes mix both PID and SID types: sensor values use PIDs, actuator behavior uses SIDs.
SID on Mixed-Protocol Trucks
Trucks from the early-to-mid 2000s often had J1939 engine ECMs alongside older J1708 ABS systems. The engine ECM reported faults as SPN/FMI codes; the ABS controller reported faults as MID/SID/FMI codes. A diagnostic tool that reads both protocols presented both types in the same fault code list, sometimes creating confusion when a MID/SID code was compared against an SPN reference without recognizing the protocol difference.
The key identifier: if a fault code shows 'MID' or 'SID' in its description, it is J1587/J1708. If it shows 'SPN' paired with a source address, it is J1939. A code showing 'MID 136, SID 21, FMI 4' requires a J1587 ABS fault code reference, not a J1939 SPN lookup.
When a Shop Sees SID in Diagnostic Records
If a driver or fleet manager submits a fault code record to a shop that contains SID codes, the shop needs J1708-capable tools to diagnose those codes. A J1939-only diagnostic tool cannot communicate with J1708 modules to read live data, clear codes, or run component tests. For this reason, older trucks in high-mileage service should be directed to shops that maintain J1708-capable tools alongside current J1939 equipment.
When preparing a fault code record that includes SID codes for remote diagnosis, note the truck's model year, engine family, and ABS module brand — this gives the remote technician the context needed to select the correct J1587 code reference. A SID code without the MID is incomplete: the MID identifies which module the SID belongs to, and the same SID number can mean different things in different modules.
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
Is SID used for physical components while PID is used for parameter values in J1587 diagnostics?
Generally yes. PIDs are used for measured parameters (pressures, temperatures, sensor values), while SIDs typically identify a subsystem or component — an actuator, a sensor by its physical designation, or a specific hardware element. Both are used alongside MID to form a complete J1587 fault code.
Does SID appear on modern trucks that use J1939, or only on older J1708 systems?
SID is a J1587/J1708 identifier and does not appear in J1939 fault codes. On modern trucks using J1939, both parameters and component-level faults are identified through the SPN/FMI system. If a display shows SID, it is communicating J1708/J1587 information from an older or legacy module.
If a scan tool shows MID 128, PID 121, or SID 21, which communication standard is that?
Any code using MID, PID, or SID nomenclature is J1587/J1708. MID 128 identifies an engine module in J1587. The absence of SPN/FMI formatting confirms you are reading an older communication protocol. Use the J1587 code lookup tables (separate from J1939 SPN tables) and a tool that supports J1708 for complete diagnostic access.