Blog
Recent Posts
SAE J1939 Programming with Arduino - BAM Session (SAE J1939/21)
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Test items include: Basic function Timing controlThe initial test of the BAM session requires only one ECU, in this case I am using the full protocol running on the Arduino Mega 2560 [...]
SAE J1939 Programming with Arduino - Sending and Receiving Messages
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Proving the capability of the most basic task of sending and receiving regular 8-byte (CAN) messages must be seen as an unnecessary test, since that had already taken place in previous chapters. Things change, however, with the transmission and reception of J1939 [...]
SAE J1939 Programming with Arduino - Claiming Address With Contending Node
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Now let’s have the two nodes compete for their addresses, since they both use the same preferred source address. For that purpose, it is important to consider which node starts up first, and the test results will demonstrate the difference.Test #1: Mega [...]
SAE J1939 Programming with Arduino - Proof of Concept
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Naturally, with the impression that the Arduino hardware is a far cry away from commercially available, industrial solutions, some doubters may challenge even the point that the Arduino software is up to the task of running a full SAE J1939 protocol stack. [...]
SAE J1939 Programming with Arduino - Program Structure
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. As with every Arduino application, the initialization of data and the J1939 protocol takes place during the setup() function, while the actual application resides in loop().setup() - The j1939.Init function is mandatory to operate ARD1939. You also need to set the preferred [...]
SAE J1939 Programming with Arduino - Functionality Settings
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Overall, the sketch supports three versions of the ARD1939 protocol stack, two for the Arduino Uno (ARD1939-Uno and ARD1939-Uno/TP) and one for the Arduino Mega 2560 (ARD1939-Mega). ARD1939-Uno – For the sake of saving memory resources, this [...]
SAE J1939 Programming with Arduino - ARD1939 Implementation
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. I provide the ARD1939 (SAE J1939 Protocol Stack for Arduino) “as is,” i.e. I provide the entire project (Arduino Sketch). In order to copy and customize the project, use the “Save As” function in the Arduino’s IDE. I had contemplated creating an [...]
SAE J1939 Programming with Arduino - ARD1939 Function Overview
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The programming of every serial communication (such as RS232, CAN, Ethernet, just to name a few) should follow a very simple sequence:1.Initialization2.Read data3.Write data4.Check statusThese four function calls should be everything a programmer needs to access the serial protocol, and there is no reason [...]
SAE J1939 Programming with Arduino - Visual Studio Code
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. While programming the Arduino can be exciting (especially since everything works so smoothly), the real fun comes when you can extend the Arduino’s reach to a PC running Windows. Note: My apologies to all Mac and LINUX users for bringing a Windows programming [...]
SAE J1939 Programming with Arduino - J1939 Data Traffic Simulation
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. In a previous project (see chapter SAE J1939 Simulation Example) I demonstrated the simulation of SAE J1939 data traffic. However, the messages in that example were transmitted within a certain frequency. In the following, we will transmit messages according to user input. As before, [...]
Loading... Please wait...
