Site Information

 Loading... Please wait...

Blog

SAE J1939 Development And Prototyping With The Raspberry Pi

Posted by Wilfried Voss on

SAE J1939 Turbo Interface for Raspberry Pi by Copperhill TechnologiesThe Raspberry Pi is a series of small single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and in developing countries. The original model became far more popular than anticipated, selling outside of its target market for uses such as robotics. Peripherals, such as a CAN Bus interface, are not included with the Raspberry Pi. Some accessories however have been included in several official and unofficial bundles.

SAE J1939 and its companion documents have quickly become the accepted industry standard and the vehicle network of choice for off-highway machines in applications such as construction, material handling, mass transportation, forestry machines, agricultural machinery, maritime and military applications. J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy-duty vehicles.

The Raspberry Pi is a great choice when it comes to rapid prototyping, due to its powerful processor combined with a popular operating system. However, in order to develop J1939 applications with the Raspberry Pi, you will need a CAN Bus interface (as I mentioned before, SAE J1939 uses CAN - Controller Area Network - as its physical layer). 

While there are RPi CAN Bus interfaces available in the marketplace, they are designed for basic CAN (e.g. for OBD-2 applications), and implementing J1939 means implementing additional software. Source code for SAE J1939 protocols are available in the market as well, but they are expensive (think several thousands of dollars). Object code or libraries simply do not exist, the reason being that they can be easily copied and re-distributed.

Another caveat is that any code would require extensive tweaking to meet the strict timing requirements of the SAE J1939 Standard, and that timing may suffer when, for instance, the occurrence of a J1939 PGN requires videoing an event (think of a "Door Opened" event in a bus or train).

SAE J1939 Turbo Interface for Raspberry Pi

We at Copperhill Technologies have developed a concept that addresses all those considerations and still provides the ease of programming an SAE J1939 application. Our jCOM.J1939.RPi, an SAE J1939 interface for the Raspberry Pi, incorporates an ARM Cortex-M3 processor with CAN transceiver for use on the Raspberry Pi while allowing the operation with any other RPi-compatible board.

By combining the J1939 port interface, the Raspberry Pi, an SAE J1939 cable, and open-source software libraries, you are ready to go with a powerful turn-key RPi-based J1939 bus solution. 

In order to more efficiently serve automotive applications, the jCOM.J1939.RPi board supports an optional extended input power range of 7 to 36 VDC to power the entire system, i.e. including the RPi itself.

General features:

  • CAN port with three-pin terminal connector
  • Extended input power range of 7 VDC to 36 VDC (optional)
  • 2 LEDS (Power, CAN Activity)
  • Termination resistor switchable per jumper
  • Full on-chip SAE J1939 Protocol Stack according to SAE J1939/21 and SAE J1939/81
  • Automatic CAN baud rate detection according to SAE J1939/16
  • Well documented library and sample code

Supported SAE J1939 features include:

  • Hardware is fully SAE J1939/1x compliant
  • Switchable termination resistor
  • SAE J1939/21 - Data Link Layer
  • SAE J1939/81 - Network Management
  • Setup of Preferred Node Address
  • Adjustable Node Address Negotiation Range
  • Message Filters
  • Full Network Communication incl. Transport Protocol
  • Design Tx Messages Incl. Transmission Rate
  • Configuration of Request Responses
  • Configuration of Request Messages
  • Network Scanner (Creates a list of all nodes in the network)

=> More Information...


Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux

Exploring Raspberry Pi: Interfacing to the Real World with Embedded LinuxExploring Raspberry Pi: Interfacing to the Real World with Embedded LinuxExploring Raspberry Pi is an innovators guide to bringing your Raspberry Pi to life. The book favors engineering principles over a 'recipe' approach to give you the skills you need to design and build your own projects. You will understand the fundamental principles in a way that transfers to any type of electronics, electronic modules, or external peripherals, using a "learning by doing" approach that caters to both beginners and experts.

The book begins with basic Linux and programming skills, and helps you stock your inventory with common parts and supplies. Next, you will learn how to make parts work together to achieve the goals of your project, no matter what type of components you use.

The companion website provides a full repository that structures all of the code and scripts, along with links to video tutorials and supplementary content that takes you deeper into your project.

The Raspberry Pi's most famous feature is its adaptability. It can be used for thousands of electronic applications, and using the Linux OS expands the functionality even more. This book helps you get the most from your Raspberry Pi, but it also gives you the fundamental engineering skills you need to incorporate any electronics into any project.

  • Develop the Linux and programming skills you need to build basic applications
  • Build your inventory of parts so you can always "make it work"
  • Understand interfacing, controlling, and communicating with almost any component
  • Explore advanced applications with video, audio, real-world interactions, and more
  • More Information...

A Dozen Fiendishly Fun Projects For The Raspberry Pi!

The Raspberry Pi is a series of small single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and in developing countries. The original model became far more popular than anticipated, selling outside of its target market for uses such as robotics. Peripherals [...]

Read More »


CAN Bus And SAE J1939 Recording and Simulation Using the Raspberry Pi

The Raspberry Pi is a series of small single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and in developing countries. The original model became far more popular than anticipated, selling outside of its target market for uses such as robotics. Peripherals (including [...]

Read More »


SAE J1939 Data Stream Recording With Raspberry Pi

The Raspberry Pi is undoubtedly the perfect embedded system to read and record data streams from a vehicle bus. The Linux operating system provides the means of an established file management system, and these days there are multiple choices for the appropriate RPi CAN or SAE J1939 hardware interface. In the following project, I am using the Copperhill [...]

Read More »


SAE J1939 Turbo Interface for Raspberry Pi - Firmware Update

The jCOM.J1939.RPi, an SAE J1939 interface for the Raspberry Pi, is not an RPi HAT in the common sense. The board incorporates an ARM processor with CAN transceiver for use on the Raspberry Pi while allowing the operation with any other RPi-compatible board.By combining our J1939 port interface, the Raspberry Pi, an SAE J1939 cable, and [...]

Read More »


Learn All About The Raspberry Pi3 And What You Can Do With It

The Raspberry Pi 3 is a powerful minicomputer that has gained popularity for its versatility with hobbyists, DIYers, students, and digital engineers. More than just a tiny computer, the RPI is also a microcontroller that can light LEDs, spin motors, obtain sensor input, and much more.This book serves as a beginners guide to the RPI [...]

Read More »


"C" Programming The SAE J1939 Turbo Interface for Raspberry Pi

The jCOM.J1939.RPi, an SAE J1939 interface for the Raspberry Pi, is not an RPi HAT in the common sense. The board incorporates an ARM processor with CAN transceiver for use on the Raspberry Pi while allowing the operation with any other RPi-compatible board.By combining our J1939 port interface, the Raspberry Pi, an SAE J1939 cable, and [...]

Read More »


Raspberry Pi - Interfacing To The Real World With Embedded Linux Through Applying Fundamental Engineering Principles

Exploring Raspberry Pi is the innovators' guide to bringing Raspberry Pi to life. This book favors engineering principles over a 'recipe' approach to provide you the skills you need to design and build your own projects. You will understand the fundamental principles in a way that transfers to any type of electronics, electronic modules, or external [...]

Read More »


Raspberry Pi With Java To Create Innovative Devices That Power The Internet Of Things (IoT)

This book, Raspberry Pi with Java: Programming the Internet of Things (IoT), fills an important gap in knowledge between seasoned Java developers and embedded-hardware gurus, taking a project-based approach to skills development from which both hobbyists and professionals can learn. By starting with simple projects based on open-source libraries such as Pi4J, hobbyists can get immediate results [...]

Read More »


SAE J1939 Turbo Interface Board for Raspberry Pi

A note upfront: The CAN interface board for the Raspberry Pi as described in the following, specifically the firmware code, is under current development. The hardware is ready for production, and the release is targeted for end of February 2017.This post is a follow-up on a previous post Raspberry Pi With CAN Bus Or SAE J1939 [...]

Read More »