Site Information

 Loading... Please wait...

Blog

SAE J1939 Address Management Messages (Address Claim PGNs)

The following is an excerpt from  A Comprehensible Guide To J1939 by Wilfried Voss. According to  SAE J1939/81, network management procedures are used to “collectively manage the network”.While other higher layer protocols based on CAN Bus do not support dynamic node address assignments per default, the SAE J1939 standard provides yet another ingeniously designed feature to uniquely identify ECUs [...]

Read More »


Guide To SAE J1939 - Parameter Group Numbers (PGN)

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. SAE J1939 is a very ingeniously designed protocol that takes a resourceful advantage of the CAN 29-Bit message identifier. Rather than relying on a myriad of protocol functions, SAE J1939 uses predefined parameter tables, which keeps the actual protocol on a comprehensible level. However, these parameter tables [...]

Read More »


Guide To SAE J1939 - J1939 Message Format

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. The main document describing the J1939 message format is SAE J1939/21 – Data Link Layer. J1939/21 defines the use of the CAN data frame (29-bit identifier, Parameter Group Numbers – PGN, etc.) and the transport protocol functions, i.e. a definition of how messages longer than the standard [...]

Read More »


Guide To SAE J1939 - J1939 Characteristics

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. SAE J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy-duty vehicles.Everything that has to do with CAN is based on maximum reliability with the [...]

Read More »


SAE J1939 Programming with Arduino - Sending and Receiving Messages

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Proving the capability of the most basic task of sending and receiving regular 8-byte (CAN) messages must be seen as an unnecessary test, since that had already taken place in previous chapters. Things change, however, with the transmission and reception of J1939 [...]

Read More »


SAE J1939 Programming with Arduino - J1939 Data Traffic Simulation

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. In a previous project (see chapter SAE J1939 Simulation Example) I demonstrated the simulation of SAE J1939 data traffic.  However, the messages in that example were transmitted within a certain frequency. In the following, we will transmit messages according to user input. As before, [...]

Read More »


SAE J1939 Programming with Arduino - Receiving and Responding to J1939 Request Frames

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. In this following project, we will discover yet another SAE J1939 protocol feature, namely the Request Message (as defined in the SAE J1939/21 standard). As with the previous project, we will need two J1939 nodes, and therefore will need two projects, one to [...]

Read More »


SAE J1939 Programming with Arduino - PGN Range

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Parameters groups are, for instance, engine temperature, which includes coolant temperature, fuel temperature, oil temperature, etc. Parameter Groups and their numbers (PGN) are listed in SAE J1939 (roughly 300 pages) and defined in SAE J1939/71, a document containing roughly [...]

Read More »


SAE J1939 Programming with Arduino - Suspect Parameter Numbers (SPN)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. A Suspect Parameter Number (SPN) is a number assigned by the SAE to a specific parameter within a parameter group. It describes the parameter in detail by providing the following information: Data Length in bytes Data [...]

Read More »


SAE J1939 Programming with Arduino - Parameter Group Numbers (PGN)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. SAE J1939 is a very ingeniously designed protocol that takes a resourceful advantage of the CAN Bus 29-Bit message identifier. Rather than relying on a myriad of protocol functions, SAE J1939 uses predefined parameter tables, which keeps the actual protocol on a [...]

Read More »