Additional Information

Site Information

 Loading... Please wait...

Blog

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

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 some tremendous amount of efforts and time to document everything the user needs to know, and we have created numerous programming examples. Please take your time to read the documentation. It will help to get you up to speed, and it will prevent frustration and delays.

A Beginner's Guide to SAE J1939 Embedded Software Development

Introduction Welcome to my beginner's guide! By opening this page, you have entered the first and probably most crucial stage toward developing your SAE J1939 project: Reading. Over the years, I dealt with many newcomers to the J1939 technology, some of them motivated by great product ideas. Others were thrown into a project because they were [...]

Read More »


Arduino Compatible Industrial Controller Supports I/O Expansion Modules

The open-source ProductivityOpen platform presents all the features of a conventional Arduino plus an industrial controller. The processor circuit of the P1AM-100 Arduino-compatible CPU simulates the Arduino MKRZero microcontroller. The P1AM-100 is compatible with multiple available Arduino MKR format shields, plus the ProductivityOpen shields, and can employ most Arduino sketch programs found on open-source websites. Using the [...]

Read More »


Practical Guides To Mastering Embedded Linux Programming

Mastering Embedded Linux Programming: Unleash the full potential of Embedded Linux with Linux 4.9 and Yocto ProjectThis complete guide shows the technologies and techniques needed to incorporate Linux into embedded systems. The reader will begin by learning about the essential elements that underpin all embedded Linux projects: the toolchain, the bootloader, the kernel, and the [...]

Read More »


Raspberry Pi 4 Step-By-Step Guides To Innovative Linux Projects

RASPBERRY PI 4 COMPLETE MANUAL: A Step-by-Step Guide to the New Raspberry Pi 4 and Set Up Innovative ProjectsThe Raspberry Pi 4 can accomplish a remarkable variety of embedded applications. Amateur technology enthusiasts use Raspberry Pi boards as media centers, file servers, retro games consoles, routers, and network-level ad-blockers, for starters. However, that is just [...]

Read More »


CANopen Library For Linux Based Application Development

The CANopen Magic Pro Library by Embedded Systems Academy is a system supporting customized CANopen based PC applications for quick and easy development without the need to know all details of the CANopen protocol stack. The kit consists of a professional CANopen library along with documentation, a C header file and makefile for gcc. The CANopen library achieves [...]

Read More »


Programming The Atmega328 And The Arduino Uno Board Using The Atmel Studio IDE

The AVR microcontroller by Atmel (now Microchip) is one of the most widely used 8-bit microcontrollers. The popular Arduino Uno board utilizes an AVR microcontroller. It is inexpensive and widely available around the world.This book combines this combination. The authors apply a step-by-step and methodical approach to demonstrate the programming of the AVR chip. Examples are presented [...]

Read More »


Fun Internet of Things (IoT) Projects With Arduino

Arduino is a powerful and very versatile platform used by millions of people around the world to create DIY electronics projects. It can be connected to a wide variety of sensors and other components, making it the ideal platform to build fantastic Internet of Things (IoT) projects on―the next wave in the era of computing.This book [...]

Read More »


Programming Atmel's AVR Microcontrollers, The Chips That Power Arduino

Atmel's AVR microcontrollers are the chips that power the Arduino platform and are the go-to chip for many hobbyists and their hardware hacking projects.  In this book, you set aside the layers of abstraction implemented by the Arduino environment and learn how to program AVR microcontrollers instantly. In doing so, you learn more about the chip, and you [...]

Read More »


SAE J1708 to UART Breakout Board - Programming SAE J1708 Network Access

We at Copperhill Technologies have designed an SAE J1708-to-UART breakout board, and we are in the process of adding it to our e-commerce website. However, what we learned during the development is that the device is in need of some massive software support as I will explain in the following.First of all, to go into [...]

Read More »