Sae J1939-73 Pdf May 2026

Stored codes that are no longer actively failing but remain in memory. Used for historical analysis.

(Use an authoritative copy of J1939‑73 for exact byte offsets and PGN numbers for each DM.)

If you want, I can:

SAE J1939-73 standard is a critical protocol within the J1939 family, specifically governing Application Layer — Diagnostics

. It defines the diagnostic services and messages (Diagnostic Messages, or DMs) used for communicating between electronic control units (ECUs) in heavy-duty vehicles.

Below is a structured overview of the standard, designed to serve as a foundational "paper" or technical summary of its contents. 1. Scope and Purpose

SAE J1939-73 establishes the mechanisms for diagnosing vehicle systems and components. Its primary purpose is to provide a standardized method for:

Reporting active and previously active faults (Diagnostic Trouble Codes).

Performing diagnostic tests (e.g., sensor overrides, self-tests). Accessing memory and calibration data. Communicating with off-board diagnostic tools (scanners). 2. Diagnostic Messages (DMs) Sae J1939-73 Pdf

The core of the standard consists of defined messages identified by "DM" numbers. Each serves a specific diagnostic function: DM1 (Active Diagnostic Trouble Codes):

Periodically broadcasts fault codes that are currently active. DM2 (Previously Active Faults):

Provides a history of faults that have occurred but are no longer active. DM3 (Diagnostic Data Clear): Used to reset or clear previously active fault history. DM11 (Diagnostic Data Clear/Reset for Active DTCs): Used to clear active faults from the ECU memory. DM12 (Emission-Related Active DTCs):

Specifically for faults affecting vehicle emissions, used for regulatory compliance (OBD). 3. Anatomy of a J1939 DTC

A Diagnostic Trouble Code (DTC) under J1939-73 is a 4-byte value composed of four distinct elements: Suspect Parameter Number (SPN):

Identifies the specific component or system (e.g., Engine Oil Pressure). Failure Mode Identifier (FMI):

Describes the type of failure (e.g., voltage too high, data erratic). Occurrence Count (OC):

Tracks how many times the fault has gone from inactive to active. SPN Conversion Method (CM): Defines the byte alignment for the SPN. 4. Diagnostic Services and Memory Access Stored codes that are no longer actively failing

Beyond simple fault reporting, J1939-73 defines complex interactions: Memory Access (DM14, DM15, DM16):

A "handshake" protocol (Query, Response, Data) that allows a tool to read or write specific memory addresses within an ECU. Binary Data Transfer:

Facilitates the movement of large data blocks, such as software updates or calibration files. Stop Start Broadcast:

Controls the flow of diagnostic information to prevent bus congestion. 5. Connectivity: On-Board vs. Off-Board

ECUs monitor each other. For example, a transmission ECU might monitor the engine ECU's DM1 message to determine if it should enter "Limp Home" mode. Off-Board:

A technician connects a service tool to the vehicle’s diagnostic port. The tool uses J1939-73 messages to request extended data, run tests, or flash new firmware. Conclusion

SAE J1939-73 is the "language" of heavy-duty vehicle repair. By standardizing how faults are reported and how data is accessed, it ensures that a single diagnostic tool can communicate effectively with engines, transmissions, and braking systems from various manufacturers.

Similar to DM1 but restricted to emissions-critical faults (OBD equivalent for heavy-duty). (Use an authoritative copy of J1939‑73 for exact

J1939-73 defines several key Diagnostic Messages (DMs), each identified by a Parameter Group Number (PGN). Notable examples include:

Each DTC in these messages follows a 4-byte structure:

This standardized encoding allows any compliant diagnostic tool to interpret faults across different manufacturers.

The SAE J1939 series is a standard developed by the Society of Automotive Engineers (SAE International) for vehicle bus networks used in trucks, buses, agricultural tractors, and off-highway equipment. It is based on the CAN 2.0B protocol (29-bit identifier).

SAE J1939-73 specifically covers the Application Layer – Diagnostics. Officially titled "Diagnostic Application Layer," this document outlines:

Simply put, if you want to read a check engine light on a CAT, Cummins, or Detroit Diesel engine, you must decode it using J1939-73.


The SAE publishes public overviews of J1939-73 (e.g., SAE J1939 Digital Annex). These lack full DTC tables but cover the basics of message framing.

Warning: Avoid torrent websites or random PDF repositories. Many contain outdated (2000-era) versions where SPNs have been redefined. Using an incorrect FMI table can lead to misdiagnosis and costly repairs.


  • Support DM2 and history buffering:
  • Implement transport protocol for multi-packet DMs:
  • Handle Requests and Addressing:
  • Provide ECU Identification (ISO-style identity):
  • Test with diagnostic tools and traffic generators:
  • Log and timestamp DMs for telematics:
  • Security and safety: