Site Information

 Loading... Please wait...

Blog

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 »


SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - Arduino Programming (Sketches)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The implementation of either one of the introduced CAN Bus Shields and the corresponding CAN Bus sketches went surprisingly smooth when paired with the right library software. Note: All Arduino CAN Bus/SAE J1939 sketches as explained in the following include the [...]

Read More »


SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - SAE J1939/13 Off-Board Diagnostic Connector

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. J1939/13 defines a standard connector for diagnostic purpose. It does allow access to the vehicle communication links. The connector is a Deutsch HD10 - 9 – 1939 (9 pins, round connector).According to the official document, SAE J1939/13 Off-Board Diagnostics Connector, the [...]

Read More »


SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - Connecting Arduino to a Real SAE J1939 Network

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. I have successfully tested my Arduino sketches against commercially available SAE J1939 devices with their monitoring and simulation software, but I did not have the luxury of connecting them to a real vehicle (diesel engine). Nevertheless, all sketches should work in the [...]

Read More »