Blog
Recent Posts
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 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 [...]
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 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 [...]
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 [...]
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 [...]
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 [...]
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. [...]
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 [...]
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 [...]