Recent Posts
Arduino-Due-Based SAE J1939 Programming Kit - Quick Start Reference
Posted by
onUnleash the power of the Arduino Due with ARM Cortex-M3 processor to develop and test your SAE J1939 application, may it be an SAE J1939 to USB protocol converter, an SAE J1939 Bridge, an SAE J1939 data monitor, and many more.
The SAE J1939 Programming Kit comes with many programming samples, including a full-blown SAE J1939 protocol stack (ARD1939). The included SAE J1939 Simulator Board serves as a transmitter and receiver of SAE J1939 data frames (PGNs).
Use the Windows-based JCOM1939 monitoring and simulation software to display, record, or transmit J1939 PGNs, including data request messages. To top things up, the kit includes two books on the SAE J1939 Standard and Arduino Programming for J1939 applications.
The Arduino Due
There are a great number of ARM Cortex M3 developing and prototyping boards available in the marketplace. The Arduino Due is a very popular system that matched my selection criteria, which are low-cost, ease of programming, and great performance.
The Due is the first ARM-based Arduino development board. The programming of the microcontroller is accomplished through the familiar Arduino IDE (Windows, Mac, Linux), keeping the programming as backward compatible to other Arduino systems as possible, thus allowing a smooth migration between processor systems.
The Arduino Due has two USB ports available. The Native USB port (which supports CDC serial communication using the SerialUSB object) is connected directly to the SAM3X MCU. The other USB port is the Programming port. It is connected to an ATMEL 16U2 which acts as a USB-to-Serial converter. This Programming port is the default for uploading sketches and communicating with the Arduino.
- Getting started with the Arduino Due:
https://www.arduino.cc/en/Guide/ArduinoDue - Arduino Due Pin Mapping:
https://www.arduino.cc/en/Hacking/PinMappingSAM3X - Arduino Due Schematics:
https://www.arduino.cc/en/uploads/Main/arduino-Due-schematic.pdf - Atmel SAM3X8E ARM Cortex-M3 CPU Data Sheet:
https://copperhilltech.com/content/Atmel-SAM3X-Datasheet.pdf
The Arduino IDE
The Arduino Integrated Development Environment (IDE) is common to all Arduino boards, including the Arduino Due. However, after installing the IDE (see reference below), you will find that you cannot select the Due from the list of Arduino systems.
First, after installing the Arduino Desktop IDE, you need to add the Atmel SAMD Core (see reference below). In addition, when using the IDE version 1.6.2. or higher (which is very likely), you need to also install the core that supports the Arduino Due. It may sound confusing, but the procedure is fairly simple. Select the Tools menu in the IDE, then Boards, then Boards Manager.
It is highly recommended not only to install the newest IDE version but also check version numbers frequently. This will prevent unpleasant surprises when working/downloading online programming samples that won’t work with older IDE versions.
- Getting started with the Arduino Due:
https://www.arduino.cc/en/Guide/ArduinoDue - Download/Install the Arduino IDE:
https://www.arduino.cc/en/Main/Software - Arduino Boards Manager:
https://www.arduino.cc/en/Guide/Cores
The JCOM1939 Monitor Software
The JCOM1939 Monitor Software is the perfect tool to monitor, record, analyze, and simulate SAE J1939 data traffic. The system works in combination with our SAE J1939 gateways.
This comprehensive and easy-to-use, easy-to-understand Windows software displays not only SAE J1939 data traffic; it also allows to scan the network, simulate an ECU (incl. full node address negotiation features), and respond to data request messages.
For more detailed information, including installation, please refer to:
JCOM1939 Monitor Pro - SAE J1939 Data Monitor, Recorder, Simulator (copperhilltech.com)
SAE J1939 Programming Kit - Quick Start
The next step as described here assumes that you have already installed the newest version of the Arduino IDE and have installed the JCOM1939 Monitor Software.
In a first step, we will load a demo program to the Arduino Due. The demo sketch simulates two sample PGNS, and we will monitor them with the JCOM1939 Monitor.
But first, please refer to our post Arduino Due: Dual CAN Port Test Sketch With LED CAN Traffic Indicators. Download the sketch (zip), decompress it and store into a file folder of your choice (e.g., under Documents/Arduino).
In general, for more programming samples, please refer to the Arduino-Due-Based SAE J1939 Programming Kit - Standard Edition.
After you have loaded the sketch, you should see two LEDs blinking on the Arduino's CAN board, indicating SAE J1939 data traffic.
The second step involves the JCOM1939 Monitor software. We assume, you have connected the JCOM board to your PC and started the software. Please select the COM port associated with the board.
In the section "Filter," select "Pass All."
You should now see the data traffic.
In a next step, just for fun, we assign a name to the PGNs. In the "Filter" section, select "As Defined in Table." The data traffic on the screen will stop. Now edit the PGNs as shown below (hit the "Save" button to submit the entries).
As soon as you hit the "Save" button, you should see the data associated with the edited PGN.
For more detailed information on the JCOM1939 Monitor Software, please refer to JCOM1939 Monitor Pro - User Manual (PDF)...
Last but not least, let me make an important point: We have invested tremendous effort and time in documenting everything the user needs to know and creating numerous programming examples. Please take your time to read the documentation. It will help to get you up to speed and prevent frustration and delays.