Site Information

 Loading... Please wait...

Blog

SAE J1939 Programming with Arduino - Multi-Packet Peer-to-Peer (RTS/CTS Session)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The communication of destination specific (peer-to-peer) multi-packet messages is subject to flow-control. Connection Initialization – The sender of a message transmits a Request to Send message. The receiving node responds with either a Clear [...]

Read More »


SAE J1939 Programming with Arduino - SAE J1939/21 - Transport Protocol (TP)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Even though extremely effective in passenger cars and small industrial applications, the CAN Bus technology alone was not suitable to meet the requirements of truck and bus communications, especially since its communication between devices is limited to only 8 bytes per message. [...]

Read More »


SAE J1939 Programming with Arduino - Multi-Packet Broadcast (BAM Session)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. In order to broadcast a multi-packet message, a node must first send the Broadcast Announce Message (BAM), which contains the following components: Parameter Group Number (PGN) of the multi-packet message Size of the multi-packet message Number of packagesThe BAM message allows all [...]

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 - The Two Elements of the SAE J1939 Protocol Stack

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Any SAE J1939 hardware must support SAE J1939/1x and SAE J1939/21, otherwise they’re useless, because these standards describe the CAN Bus physical layer and the basic protocol features. That part is sufficiently covered (i.e. for demonstration purposes) by our CAN Bus [...]

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 Groups

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Parameter Groups contain information on parameter assignments within the 8-byte CAN Bus data field of each message as well as repetition rate and priority.The following is an example of a parameter group definition as listed in SAE J1939/71: PGN 65262 - Engine [...]

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 »


SAE J1939 Programming with Arduino - The SAE J1939 Higher-Layer Protocol

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Even though extremely effective in automobiles and small, embedded applications, CAN Bus alone is not suitable for projects that require a minimum of network management and messages with more than eight data bytes.As a consequence, higher layer protocols (additional software on [...]

Read More »


SAE J1939 Programming with Arduino - Introduction to Controller Area Network

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Controller Area Network (CAN Bus) is a serial network technology that was originally designed for the automotive industry, especially for European cars, but has also become a popular bus in industrial automation as well as other applications. The CAN Bus is primarily used [...]

Read More »