Site Information

 Loading... Please wait...

Arduino-Due-Based SAE J1939 Programming Kit - Quick Start Reference

Posted by Wilfried Voss on

Arduino-Due-Based SAE J1939 Programming Kit - Standard Edition

Unleash 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.

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.

The JCOM1939 Monitor Software

JCOM1939 Monitor Pro - SAE J1939 Data Monitor, Recorder, Simulator

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 (

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."

JCOM1939 Monitor Screen Shot

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).

JCOM1939 Monitor Screen Shot

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.