10.3 J1939 Datalink Testing, Fault Diagnostics & SPN/FMI Codes

Key Takeaways

  • Physical layer resistance testing across Pins C (CAN_H) and D (CAN_L) of the SAE 9-pin Deutsch connector must be performed with vehicle batteries disconnected or after all modules enter sleep mode; a reading of 60 ohms confirms normal bus termination, while 120 ohms indicates an open backbone or missing terminating resistor.
  • Under normal operating conditions with the ignition ON, CAN_H measures approximately 2.6V to 3.0V DC to chassis ground, CAN_L measures approximately 2.0V to 2.4V DC to chassis ground, and their sum equals approximately 5.0V DC.
  • SAE J1939 Diagnostic Trouble Codes (DTCs) consist of four standardized fields: Suspect Parameter Number (SPN, identifying component/circuit), Failure Mode Identifier (FMI, defining fault type), Occurrence Count (OC), and Conversion Method (CM).
  • Standard FMI definitions include FMI 3 (Voltage Above Normal / Short to High Source), FMI 4 (Voltage Below Normal / Short to Ground), FMI 5 (Current Below Normal / Open Circuit), and FMI 9 (Abnormal Update Rate / Missing Communication Frame).
  • Unlike legacy SAE J1587/J1708 (operating at 9600 baud using UART hardware and MID/PID/SID/FMI fault structures), SAE J1939 operates up to 52 times faster (250 kbps or 500 kbps), providing real-time powertrain control and deterministic bus arbitration.
Last updated: September 2026

10.3 J1939 Datalink Testing, Fault Diagnostics & SPN/FMI Codes

When a heavy-duty data network experiences an electrical fault, the symptoms can range from an illuminated check engine telltale to total vehicle paralysis—an engine that will not crank, an automated transmission that will not engage gear, or an instrument cluster whose gauges freeze or display dashed lines ("---"). Because modern commercial vehicles rely on multiplexed networks for primary powertrain control, technicians must approach datalink diagnostics with methodical electrical precision. Guessing or haphazardly replacing control modules is expensive and ineffective. Technicians preparing for the ASE T6 certification must master physical layer testing using a digital multimeter (DMM) at the standard diagnostic port, understand the diagnostic trouble code (DTC) architecture governed by Suspect Parameter Numbers (SPN) and Failure Mode Identifiers (FMI), and recognize the operational differences between SAE J1939 CAN and legacy SAE J1587/J1708 systems.


Diagnostic Interface: The SAE 9-Pin Deutsch Connector (HD10-9-1939)

The primary diagnostic interface for heavy-duty commercial vehicles is the circular SAE 9-pin Deutsch connector located inside the driver's footwell beneath the dashboard. Standardized under SAE J1939-13, this heavy-duty connector provides service tools with access to battery power, chassis ground, high-speed J1939 CAN links, and legacy communications.

                      SAE 9-PIN DEUTSCH CONNECTOR FACE VIEW

                                  (Top Keyway)
                                      ╭───╮
                                  /     ▲     \
                                 /   (A) (B)   \
                                |  (J)     (C)  |
                                |  (H) (E) (D)  |
                                 \   (G) (F)   /
                                  \           /
                                      ╰───╯

    PIN A: Battery Negative (-) / Ground       PIN F: J1708/J1587 Datalink (+)
    PIN B: Battery Positive (+) (Unswitched)   PIN G: J1708/J1587 Datalink (-)
    PIN C: J1939 CAN_H (High - Yellow Wire)    PIN H: OEM Proprietary / CAN2_H
    PIN D: J1939 CAN_L (Low - Green Wire)      PIN J: OEM Proprietary / CAN2_L
    PIN E: CAN Datalink Shield (Drain Wire)

Type I (Black) vs. Type II (Green) 9-Pin Connectors

Technicians must distinguish between the two generations of the 9-pin connector:

  • Type I (Black Connector Shell): Standard on pre-2016 commercial trucks. Rated exclusively for 250 kbps communication. Center Pin F has a standard diameter pin cavity.
  • Type II (Green Connector Shell): Mandated on commercial trucks manufactured since 2016 to support 500 kbps (SAE J1939-14) high-speed networks. The green housing features a keyed, smaller-diameter center Pin F. A Type II green scan tool cable can mate with both black Type I and green Type II truck receptacles, but an older black Type I cable physically cannot plug into a modern green Type II port, preventing obsolete 250 kbps scan tools from communicating with high-speed 500 kbps trucks.
Pin DesignationStandard Wire ColorElectrical Circuit FunctionDiagnostic Voltage / Resistance Spec
Pin ABlackBattery Negative / Chassis GroundGround reference (0.0V DC; < 0.2V drop to battery negative)
Pin BRed or YellowBattery Positive (+12V or +24V DC Unswitched)Full battery source voltage (12.4V – 12.8V key off)
Pin CYellowSAE J1939 CAN High (CAN_H)~2.6V – 3.0V DC (Key ON); 60 Ω to Pin D (Key OFF)
Pin DGreenSAE J1939 CAN Low (CAN_L)~2.0V – 2.4V DC (Key ON); 60 Ω to Pin C (Key OFF)
Pin EBare / DrainCAN Cable ShieldChassis ground reference / drain (isolated from vehicle loads)
Pin FOrangeSAE J1708 / J1587 Drive (+)Legacy serial data link (resting voltage ~3.5V to 4.5V DC)
Pin GBlueSAE J1708 / J1587 Drive (-)Legacy serial data link (resting voltage ~0.5V to 1.5V DC)
Pin HOEM OptionProprietary Sub-Bus / Secondary CAN2_HSecondary powertrain or chassis CAN high
Pin JOEM OptionProprietary Sub-Bus / Secondary CAN2_LSecondary powertrain or chassis CAN low

[!CAUTION] Terminal Damage Warning: Never force standard multimeter test probes directly into the female sockets of the 9-pin Deutsch diagnostic connector. Multimeter probe tips are significantly larger than the mating male pins; forcing them into the sockets will permanently splay (spread) the female spring terminals, causing intermittent scan tool dropouts. Always use a dedicated Deutsch breakout box or calibrated Deutsch terminal test pins.


Physical Layer Resistance Diagnostics (Key OFF / Power Removed)

The most foundational test of an SAE J1939 datalink is measuring bus termination resistance using a digital multimeter set to the Ohms ($\Omega$) scale.

Mandatory Pre-Test Conditions:

  1. Switch the Ignition OFF: Wait at least 2 to 5 minutes for all onboard microprocessors to complete their power-down routines, store freeze-frame parameters, and enter sleep mode. Alternatively, disconnect the main battery negative cable or turn off the master battery disconnect switch.
  2. Never Measure Resistance on an Energized Circuit: An ohmmeter operates by injecting a tiny calibrated current (microamperes) into the circuit and measuring the resulting voltage drop. If the vehicle ignition is ON, active CAN transceiver voltages (2.5V to 3.5V) will flood the meter, producing wildly inaccurate fluctuating readings and potentially damaging the multimeter's internal resistance circuitry.

Step-by-Step Ohmmeter Testing Procedure:

Connect the multimeter test leads across Pin C (CAN_H) and Pin D (CAN_L) at the 9-pin diagnostic connector:

+-----------------------------------------------------------------------------------+
|             DMM OHMMETER RESISTANCE DIAGNOSTIC MATRIX (PINS C TO D)               |
+-----------------------------------------------------------------------------------+
  Reading Across Pin C & Pin D   Electrical Diagnostic Meaning & Fault Condition
  -----------------------------------------------------------------------------------
  58.0 Ω to 62.0 Ω (Nominal 60 Ω) Normal Bus Termination (Both 120 Ω resistors intact)
  118.0 Ω to 122.0 Ω (Nominal 120 Ω) ONE Resistor Missing / Open Backbone Trunk Line
  0.0 Ω to 5.0 Ω (Dead Short)     Direct Short Circuit Between CAN_H and CAN_L Wires
  Infinite / O.L. (Open Circuit)  BOTH Resistors Missing / Diagnostic Harness Severed

1. Normal Reading: 60 Ohms (58 to 62 $\Omega$)

Indicates that both 120-ohm terminating resistors are intact, connected in parallel across the bus, and that the main backbone harness has continuous continuity between the front and rear of the vehicle.

2. Open Fault Reading: 120 Ohms (118 to 122 $\Omega$)

Indicates that the ohmmeter is reading only one 120-ohm resistor. This points to one of two physical failures:

  • One terminating resistor is missing, unplugged, or burned open.
  • The main backbone harness is completely severed or has an open connector between the diagnostic connector and one of the terminating resistors, dividing the network into two isolated halves.

3. Short Circuit Reading: 0 to 5 Ohms

Indicates a direct short circuit between the yellow CAN_H and green CAN_L wires. This condition completely crashes the network. Because the differential voltage collapses to 0.0V at all times, no module can transmit a dominant bit. The entire truck datalink will be dead—the engine will not start, the cluster display will go blank or display dashes, and the scan tool will show "No Vehicle Communication Detected."

4. Total Open Circuit Reading: Infinite / O.L. (> 1,000 $\Omega$)

Indicates that both terminating resistors are disconnected or missing, or that the wiring harness between the 9-pin diagnostic connector and the main J1939 backbone is completely severed.

5. Short to Chassis Ground Test:

With the ohmmeter still connected, move one test lead to Pin A (Chassis Ground) and test both Pin C and Pin D individually:

  • Specification: Must read infinite / O.L. (or several hundred thousand ohms of resistance through internal module semiconductor leakage). Any low resistance reading (less than 10,000 ohms, and especially near 0.0 ohms) indicates a severe short-to-ground where the harness insulation has chafed against the chassis frame or engine block.
Loading diagram...
Systematic DMM Physical Layer Diagnostic Flowchart

Physical Layer Voltage Diagnostics (Key ON / Engine Running)

Once the physical backbone resistance is verified at 60 ohms, the technician must evaluate the network under active electrical power. Set the digital multimeter to the DC Volts scale and connect the negative (-) black meter lead to Pin A (Chassis Ground).

Standard Active Operating Voltage Ranges:

With the ignition key ON, active message frames are continuously transmitting across the bus. Because digital multimeters display an averaged (RMS) voltage rather than microsecond waveforms, the meter will display the following characteristic average voltages:

  • Pin C (CAN_H) to Ground: Measures between 2.60V and 3.00V DC (nominal average: ~2.75V DC). This represents the time-weighted average of the line switching between the 2.50V recessive state and the 3.50V dominant state.
  • Pin D (CAN_L) to Ground: Measures between 2.00V and 2.40V DC (nominal average: ~2.25V DC). This represents the time-weighted average of the line switching between the 2.50V recessive state and the 1.50V dominant state.

The 5.0-Volt Summation Diagnostic Rule:

Because CAN_H swings upward by the exact same voltage that CAN_L swings downward, the sum of both average voltages to chassis ground must always equal approximately 5.00V DC:

VCAN_H+VCAN_L=2.75V+2.25V5.00V DCV_{CAN\_H} + V_{CAN\_L} = 2.75\text{V} + 2.25\text{V} \approx 5.00\text{V DC}

+-----------------------------------------------------------------------------------+
|             ACTIVE VOLTAGE DIAGNOSTIC MATRIX (MEASURED TO PIN A GROUND)           |
+-----------------------------------------------------------------------------------+
  Voltage Measured to Ground     Electrical Meaning & Underlying Fault Condition
  -----------------------------------------------------------------------------------
  CAN_H: ~2.75V, CAN_L: ~2.25V   NORMAL ACTIVE BUS: Modules actively transmitting frames
  CAN_H: 2.50V, CAN_L: 2.50V     BUS IDLE: Transceivers powered, but zero messages flowing
  CAN_H: 0.0V, CAN_L: 0.0V       SHORT TO GROUND: CAN wire shorted to frame or unpowered
  CAN_H: 12.0V+, CAN_L: 12.0V+   SHORT TO BATTERY: Harness shorted to +12V/+24V supply
  CAN_H: 3.50V, CAN_L: 1.50V     STUCK DOMINANT: Shorted transceiver driver failed ON

SAE J1939 Diagnostic Trouble Code (DTC) Architecture

When an electronic control module detects a sensor failure, circuit fault, or communication breakdown, it stores and broadcasts a standardized J1939 Diagnostic Trouble Code (DTC). Unlike passenger vehicle OBD-II fault codes (e.g., P0300), heavy-duty commercial vehicle codes are structured into four distinct mathematical components:

                     SAE J1939 DIAGNOSTIC TROUBLE CODE STRUCTURE

        ┌───────────────────────┬──────────────┬──────────────┬──────────────┐
        │          SPN          │     FMI      │      OC      │      CM      │
        │   Suspect Parameter   │ Failure Mode │  Occurrence  │  Conversion  │
        │        Number         │  Identifier  │    Count     │    Method    │
        │       (19 Bits)       │   (5 Bits)   │   (7 Bits)   │   (1 Bit)    │
        └───────────────────────┴──────────────┴──────────────┴──────────────┘
          Example: SPN 100         FMI 4           OC 3            CM 0
          (Engine Oil Pressure)   (Short to Low)  (3 Times)      (Standard)

1. Suspect Parameter Number (SPN)

The SPN is a 19-bit number that identifies the specific sensor, component, circuit, or computational parameter that has experienced an abnormality. SAE standardizes common SPNs across all commercial heavy-duty engine, transmission, and chassis manufacturers:

  • SPN 100: Engine Oil Pressure
  • SPN 110: Engine Coolant Temperature
  • SPN 190: Engine Speed (Crankshaft RPM)
  • SPN 639: J1939 Network #1 Primary Datalink
  • SPN 1231: J1939 Network #2 Secondary Datalink

2. Failure Mode Identifier (FMI)

The FMI is a 5-bit number ranging from 0 to 31 that defines the precise electrical, physical, or logical nature of the failure. Memorizing standard FMIs is critical for passing the ASE T6 examination and diagnosing heavy trucks:

FMI CodeOfficial SAE DefinitionElectrical / Physical MeaningReal-World Diagnostic Example
FMI 0Data Valid But Above Normal (Most Severe)Mechanical over-range condition; sensor is electrically goodEngine coolant temperature exceeds 230°F (severe overheating)
FMI 1Data Valid But Below Normal (Most Severe)Mechanical under-range condition; sensor is electrically goodEngine oil pressure drops below 8 psi at idle under heavy load
FMI 2Data Erratic, Intermittent, Or IncorrectSensor signal is noisy, out of calibration, or dropping pulsesWheel speed sensor air gap too wide; intermittent tooth count
FMI 3Voltage Above Normal, Or Shorted To HighCircuit shorted to +5V reference or +12V battery powerCoolant temp signal wire rubbed through against alternator output
FMI 4Voltage Below Normal, Or Shorted To LowCircuit shorted to sensor return or chassis frame groundOil pressure signal wire rubbed through and contacting engine block
FMI 5Current Below Normal, Or Open CircuitBroken conductor wire, disconnected plug, or burned coilFuel injector solenoid harness unplugged or harness broken open
FMI 6Current Above Normal, Or Grounded CircuitInternal short in solenoid coil or load shorted to groundEngine brake master solenoid coil shorted internally to its casing
FMI 7Mechanical System Not Responding ProperlyModule commanded mechanical movement, but travel was not detectedVGT turbocharger nozzle actuator ring mechanically stuck from soot
FMI 8Abnormal Frequency, Pulse Width, Or PeriodTiming frequency error or improper digital waveformCamshaft position sensor reluctor ring wobble or missing teeth
FMI 9Abnormal Update RateNetwork Communication Timeout: Expected cyclic CAN message not receivedTCM stops receiving expected torque control frame from ECM
FMI 10Abnormal Rate Of ChangeParameter changing faster than physically possibleFuel tank level sender jumping from full to empty in 100 ms
FMI 11Root Cause Not KnownUnidentifiable composite or internal electrical faultTransceiver failure or complex internal actuator fault
FMI 12Bad Intelligent Device Or ComponentInternal microprocessor failure, RAM/ROM error, or internal checksumInternal ECM microprocessor watchdog timer or EEPROM checksum failure
FMI 19Received Network Data In ErrorFrame received, but checksum/CRC invalid or payload invalidCentral Gateway forwards corrupted or invalidly scaled body frame

[!IMPORTANT] Diagnostic Distinction - FMI 9: When an ECU sets an FMI 9 (Abnormal Update Rate) code (such as SPN 639 FMI 9 or SPN 190 FMI 9), the problem is almost NEVER a defective sensor! FMI 9 is a software communication timeout. It indicates that the reporting module was expecting to receive a periodic digital broadcast frame across the J1939 datalink (such as engine speed), but no frame arrived before the timeout clock expired. Focus diagnosis on missing module power/ground, an open CAN backbone branch, or a failed transmitting controller.

3. Occurrence Count (OC) & Conversion Method (CM)

  • Occurrence Count (OC): A 7-bit counter (values 0 to 126) that records the exact number of times the fault condition has transitioned from inactive to active across vehicle drive cycles. A high occurrence count indicates an intermittent wiring fault (such as a wire chafing against a bracket during chassis vibration).
  • Conversion Method (CM): A 1-bit flag defining the memory byte alignment used to interpret the SPN. In modern systems, CM is almost universally 0 (standard alignment).

Comparison with Legacy SAE J1587 / J1708 Systems

Prior to the adoption of SAE J1939 CAN, commercial vehicles relied on SAE J1708 (physical layer) and SAE J1587 (software application layer):

Technical AttributeLegacy SAE J1587 / J1708 ProtocolModern SAE J1939 CAN Protocol
Physical Transceiver HardwareStandard EIA RS-485 serial transceiversHigh-speed ISO 11898 CAN transceivers
Baud Rate (Transmission Speed)9,600 bits per second (9.6 kbps)250,000 or 500,000 bits per second (250k / 500k)
Relative Speed ComparisonBaseline legacy speed (1x)26x to 52x faster than J1708
Wiring Physical InterfaceTwisted pair (typically Orange Drive + / Blue Drive -)Twisted pair (Yellow CAN_H / Green CAN_L) with 60 Ω termination
Diagnostic Connector PinsPins F and G on 9-pin connector (or 6-pin Deutsch)Pins C and D on 9-pin connector (HD10-9-1939)
Message Arbitration MethodCollision detection with random back-off delayNon-destructive bitwise arbitration (CSMA/CR)
Diagnostic Fault Code FormatMID (Module), PID (Parameter), SID (Subsystem), FMISPN (Suspect Parameter), FMI, OC (Occurrence Count)
Operational ApplicationLow-speed driver information, slow gauges, diagnosticsReal-time millisecond powertrain, transmission, and ABS control

Why J1587/J1708 Was Replaced

At 9600 baud, an entire data frame requires tens of milliseconds to transmit. If two modules transmitted simultaneously on J1708, their data collided and corrupted, requiring both modules to back off for a randomized delay. While acceptable for updating dashboard fuel economy numbers, this latency was completely unacceptable for real-time powertrain control (such as requesting an engine torque cut within 5 milliseconds during an automated gear shift, or modulating brake pressure during an imminent vehicle rollover). SAE J1939 provided the blazing speed, deterministic arbitration, and reliability demanded by modern commercial vehicle systems.

Test Your Knowledge

A technician is troubleshooting a no-communication complaint on a commercial tractor. With the ignition switched OFF and all modules asleep, the technician connects a digital multimeter set to ohms across Pin C (CAN_H) and Pin D (CAN_L) of the 9-pin diagnostic connector and measures exactly 120 ohms. What does this reading indicate?

A
B
C
D
Test Your Knowledge

A technician connects a diagnostic scan tool to a heavy-duty truck and retrieves an active fault code: SPN 639 FMI 9. What does this fault code signify?

A
B
C
D
Test Your Knowledge

Technician A says that the legacy SAE J1587/J1708 protocol operates at 9600 baud and uses Message Identification (MID), Parameter Identification (PID), and Subsystem Identification (SID) numbers to report diagnostic fault codes. Technician B says that SAE J1939 CAN was introduced because modern commercial vehicle powertrain and stability control systems require real-time, deterministic communication at speeds of 250 kbps or 500 kbps, which far exceeds the bandwidth capacity of J1708. Who is right?

A
B
C
D