J1939 Request and Acknowledgement

J1939 Request and Acknowledgement: PGN 59904 and 59392

Most parameter groups in J1939 are transmitted cyclically: engine speed, temperatures or lamp status arrive unprompted at a fixed rate. Some information, however, is only available on request – the DM2 fault memory, software and component identification, or the address assignment of the devices on the network. For these cases SAE J1939-21 defines two parameter groups: the Request (PGN 59904), used to ask for any PGN, and the Acknowledgement (PGN 59392), which a device sends when it answers with a confirmation instead of data. Both are quick to implement. The rules on when a device must respond and when it must stay silent, however, are a common cause of problems between devices from different manufacturers.

Continue reading “J1939 Request and Acknowledgement”

J1939 Diagnostic Messages

J1939 Diagnostics: DM1, DM2 and the Structure of a DTC

Anyone reading out the fault memory of a commercial vehicle, an engine or an agricultural machine inevitably ends up with three abbreviations: SPN, FMI and OC. Together they form a Diagnostic Trouble Code (DTC), and it is transported by the diagnostic messages DM1 and DM2 defined in SAE J1939-73. This article explains how those two parameter groups are built, how to decompose a DTC correctly, and where hand-written parsers regularly get it wrong.

Continue reading “J1939 Diagnostic Messages”