Site Information

 Loading... Please wait...

Blog

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 »


SAE J1939 Programming with Arduino - A Brief Introduction to the SAE J1939 Protocol

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The Society of Automotive Engineers (SAE) Truck and Bus Control and Communications Subcommittee has developed a family of standards concerning the design and use of devices that transmit electronic signals and control information among vehicle components. SAE J1939 and its companion documents have quickly become [...]

Read More »


SAE J1939 Programming with Arduino - Debugging Code with Macros

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. While one of the Arduino Uno’s strengths is its ease of programming embedded solutions, it can become increasingly frustrating when it comes to debugging the code. The Arduino IDE provides only very limited, if non-existing, debugging capabilities. The only solution to the problem [...]

Read More »


SAE J1939 Programming with Arduino - Hungarian Notation

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Hungarian notation is an identifier naming convention in computer programming, in which the name of a variable or function indicates its type or intended use. Hungarian notation was designed to be language-independent, and found its first major use with the BCPL programming language. [...]

Read More »


SAE J1939 Programming with Arduino - Special Programming Topics

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Each programmer has his/her own coding style, and I am most certainly no exception. Nevertheless, code should always be written with the following aspects in mind: High level of readability, including plenty of comments (you will have [...]

Read More »


SAE J1939 Programming with Arduino - The CAN Bus Interface

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. While the code as introduced in the previous chapter was well designed and thus is highly efficient, I inserted yet another software layer between the CAN Bus interface and the ARD1939 protocol stack.I wrote the ARD1939 source code in plain C [...]

Read More »


SAE J1939 Programming with Arduino - MCP2515 Function Calls

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. There are further functions, among others, for message filtering and settings masks, and they are worth being checked out for more sophisticated functions, but they are not necessary for simple CAN communication tasks.The implementation of the MPC2515 library is fairly easy: Open Arduino, [...]

Read More »


SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - The MCP2515 Library

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Microchip Technology’s MCP2515 is a stand-alone Controller Area Network (CAN Bus) controller that implements the CAN 2.0B specification. It is capable of transmitting and receiving both standard (11-bit) and extended (29-bit) data and remote frames. The MCP2515 has two acceptance masks and six acceptance filters [...]

Read More »