Blog
Recent Posts
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 [...]
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 [...]
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, [...]
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 [...]
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 [...]
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 [...]
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 [...]
SAE J1939 - GPS Module - Firmware Update To Support Time & Date And Vehicle Direction & Speed
The jCOM.J1939.GPS device by Copperhill Technologies connects to an SAE J1939 network and reports the vehicle position (PGN 65267) with a five second frequency, according to the SAE J1939-71 Standard. The integrated J1939 protocol stack automatically negotiates a node address in the range of 128 to 247. The GPS data is broadcast by using the global destination [...]