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.
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 Designation | Standard Wire Color | Electrical Circuit Function | Diagnostic Voltage / Resistance Spec |
|---|---|---|---|
| Pin A | Black | Battery Negative / Chassis Ground | Ground reference (0.0V DC; < 0.2V drop to battery negative) |
| Pin B | Red or Yellow | Battery Positive (+12V or +24V DC Unswitched) | Full battery source voltage (12.4V – 12.8V key off) |
| Pin C | Yellow | SAE J1939 CAN High (CAN_H) | ~2.6V – 3.0V DC (Key ON); 60 Ω to Pin D (Key OFF) |
| Pin D | Green | SAE J1939 CAN Low (CAN_L) | ~2.0V – 2.4V DC (Key ON); 60 Ω to Pin C (Key OFF) |
| Pin E | Bare / Drain | CAN Cable Shield | Chassis ground reference / drain (isolated from vehicle loads) |
| Pin F | Orange | SAE J1708 / J1587 Drive (+) | Legacy serial data link (resting voltage ~3.5V to 4.5V DC) |
| Pin G | Blue | SAE J1708 / J1587 Drive (-) | Legacy serial data link (resting voltage ~0.5V to 1.5V DC) |
| Pin H | OEM Option | Proprietary Sub-Bus / Secondary CAN2_H | Secondary powertrain or chassis CAN high |
| Pin J | OEM Option | Proprietary Sub-Bus / Secondary CAN2_L | Secondary 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:
- 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.
- 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.
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:
+-----------------------------------------------------------------------------------+
| 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 Code | Official SAE Definition | Electrical / Physical Meaning | Real-World Diagnostic Example |
|---|---|---|---|
| FMI 0 | Data Valid But Above Normal (Most Severe) | Mechanical over-range condition; sensor is electrically good | Engine coolant temperature exceeds 230°F (severe overheating) |
| FMI 1 | Data Valid But Below Normal (Most Severe) | Mechanical under-range condition; sensor is electrically good | Engine oil pressure drops below 8 psi at idle under heavy load |
| FMI 2 | Data Erratic, Intermittent, Or Incorrect | Sensor signal is noisy, out of calibration, or dropping pulses | Wheel speed sensor air gap too wide; intermittent tooth count |
| FMI 3 | Voltage Above Normal, Or Shorted To High | Circuit shorted to +5V reference or +12V battery power | Coolant temp signal wire rubbed through against alternator output |
| FMI 4 | Voltage Below Normal, Or Shorted To Low | Circuit shorted to sensor return or chassis frame ground | Oil pressure signal wire rubbed through and contacting engine block |
| FMI 5 | Current Below Normal, Or Open Circuit | Broken conductor wire, disconnected plug, or burned coil | Fuel injector solenoid harness unplugged or harness broken open |
| FMI 6 | Current Above Normal, Or Grounded Circuit | Internal short in solenoid coil or load shorted to ground | Engine brake master solenoid coil shorted internally to its casing |
| FMI 7 | Mechanical System Not Responding Properly | Module commanded mechanical movement, but travel was not detected | VGT turbocharger nozzle actuator ring mechanically stuck from soot |
| FMI 8 | Abnormal Frequency, Pulse Width, Or Period | Timing frequency error or improper digital waveform | Camshaft position sensor reluctor ring wobble or missing teeth |
| FMI 9 | Abnormal Update Rate | Network Communication Timeout: Expected cyclic CAN message not received | TCM stops receiving expected torque control frame from ECM |
| FMI 10 | Abnormal Rate Of Change | Parameter changing faster than physically possible | Fuel tank level sender jumping from full to empty in 100 ms |
| FMI 11 | Root Cause Not Known | Unidentifiable composite or internal electrical fault | Transceiver failure or complex internal actuator fault |
| FMI 12 | Bad Intelligent Device Or Component | Internal microprocessor failure, RAM/ROM error, or internal checksum | Internal ECM microprocessor watchdog timer or EEPROM checksum failure |
| FMI 19 | Received Network Data In Error | Frame received, but checksum/CRC invalid or payload invalid | Central 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 Attribute | Legacy SAE J1587 / J1708 Protocol | Modern SAE J1939 CAN Protocol |
|---|---|---|
| Physical Transceiver Hardware | Standard EIA RS-485 serial transceivers | High-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 Comparison | Baseline legacy speed (1x) | 26x to 52x faster than J1708 |
| Wiring Physical Interface | Twisted pair (typically Orange Drive + / Blue Drive -) | Twisted pair (Yellow CAN_H / Green CAN_L) with 60 Ω termination |
| Diagnostic Connector Pins | Pins F and G on 9-pin connector (or 6-pin Deutsch) | Pins C and D on 9-pin connector (HD10-9-1939) |
| Message Arbitration Method | Collision detection with random back-off delay | Non-destructive bitwise arbitration (CSMA/CR) |
| Diagnostic Fault Code Format | MID (Module), PID (Parameter), SID (Subsystem), FMI | SPN (Suspect Parameter), FMI, OC (Occurrence Count) |
| Operational Application | Low-speed driver information, slow gauges, diagnostics | Real-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.
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 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?
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?