Blog
Recent Posts
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 [...]
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, [...]
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 [...]
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 [...]
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 [...]
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 [...]
SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - Serial Interface And CAN Bus Timing Considerations
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The hardware configuration as introduced in this book, namely the Arduino board plus CAN Bus shield, suggests that it may be well suitable for a CAN-to-USB or J1939-to-USB gateway application. However, the Arduino’s USB baud rate is limited to 115,200 baud, which [...]