Site Information

 Loading... Please wait...

Blog

Arduino Due Dual CAN Bus Development Platform for Rapid CAN Bus and SAE J1939 Prototyping

Posted by Wilfried Voss on

Arduino Due Dual CAN Bus Development Platform for Rapid CAN Bus and SAE J1939 PrototypingOne of the biggest obstacles in CAN bus development is not understanding the CAN protocol itself—it is finding a development platform that lets you move from an idea to a working prototype without spending weeks configuring hardware, writing low-level drivers, or debugging interface electronics.

Whether you are developing an automotive controller, an industrial CAN node, an OBD-II application, or an SAE J1939 ECU, the goal is usually the same: prove the concept quickly and then concentrate on the application itself.

Dual CAN Bus Interface For Arduino Due With Extended Power RangeThat is precisely where the Dual CAN Bus Interface for Arduino Due with Extended Power Range excels.

Unlike generic CAN modules that require additional hardware, complicated wiring, or external CAN controllers, this interface takes full advantage of the Arduino Due’s two built-in CAN controllers. The board simply adds the required CAN transceivers while providing a clean, professional interface to two independent CAN networks. Combined with the Arduino Due’s 32-bit ARM Cortex-M3 processor running at 84 MHz, the result is a remarkably powerful embedded development platform that remains easy to understand and easy to program.

More Than Hardware—A Complete Development Platform

Many embedded development boards stop at providing the hardware. After that, developers are largely on their own.

The Arduino Due platform supported by Copperhill Technologies takes a different approach.

Over the years, an extensive collection of application examples, software libraries, and complete source code has been developed specifically for CAN bus applications. Instead of beginning with a blank project, engineers can start with working software and adapt it to their own requirements.

This dramatically shortens development time for:

  • Rapid prototyping
  • Proof-of-concept projects
  • Laboratory testing
  • Research projects
  • Industrial automation
  • Automotive development
  • Commercial product development

In many cases, developers can have their first CAN messages transmitted within minutes instead of days.

Why the Arduino Due?

Although many newer development boards are available today, the Arduino Due continues to be one of the most practical platforms for Classical CAN development.

It offers:

  • Native dual CAN controllers integrated into the processor
  • 84 MHz 32-bit ARM Cortex-M3 CPU
  • 512 KB Flash memory
  • 96 KB SRAM
  • Large number of digital and analog I/O
  • Mature Arduino software ecosystem
  • Excellent debugging support
  • Simple USB programming

Unlike SPI-based CAN shields, there is no external CAN controller that consumes processor time or complicates the software architecture. The processor communicates directly through its integrated CAN peripherals, providing a cleaner and more efficient design.

Designed for Real-World Installations

One feature that is often overlooked is the board’s extended power input range of 7 to 36 VDC.

Instead of powering the Arduino through USB or an external regulator during development, the complete system can be powered directly from many industrial and automotive power sources.

This makes it particularly attractive for:

  • Heavy-duty vehicles
  • Agricultural equipment
  • Construction machinery
  • Marine electronics
  • Industrial control systems
  • Mobile laboratory equipment

The board also provides jumper-selectable CAN termination resistors and activity LEDs for both CAN channels, making troubleshooting considerably easier during development.

A Library of Ready-to-Run Applications

Perhaps the greatest advantage of the platform is the large collection of proven software examples that accompany it.

These are not merely “Hello World” demonstrations—they solve real engineering problems.

Dual CAN Port Applications

Learn how to configure and operate both CAN controllers simultaneously. These examples provide an excellent starting point for applications requiring communication with two independent CAN networks.

OBD-II Libraries

Develop diagnostic tools, vehicle monitors, and automotive data acquisition systems using readily available OBD-II interfaces.

ARD1939 SAE J1939 Protocol Stack

For engineers developing heavy-duty vehicle applications, the ARD1939 protocol stack provides a practical implementation of the SAE J1939 protocol.

Rather than studying hundreds of pages of the standard before writing code, developers can work from functioning software examples and build their understanding through practical implementation.

The ARD1939 stack also serves as the foundation for numerous programming examples that demonstrate address claiming, PGN transmission, transport protocol handling, diagnostics, and other essential J1939 functions.

CAN Data Traffic Simulation

No vehicle available?

No problem.

The CAN traffic simulation examples generate realistic CAN traffic, allowing developers to test applications entirely on the workbench before connecting to real hardware.

This capability is invaluable during early software development and automated testing.

CAN Bus Bridge

One of the most popular application examples demonstrates how to connect two independent CAN networks.

Possible uses include:

  • Message filtering
  • Message translation
  • Baud-rate conversion
  • Gateway development
  • Data logging
  • Network isolation

Since the Arduino Due features two native CAN controllers, bridge applications become surprisingly straightforward to implement.

SAE J1939 GPS Application

Another example illustrates how GPS position data can be converted into standard SAE J1939 messages, allowing GPS information to be transmitted directly onto a heavy-duty vehicle network.

This project demonstrates how easily additional sensors and peripherals can be integrated into J1939 systems.

J1939 Baud Rate Converter

Many real-world systems must communicate between 250 kbps and 500 kbps J1939 networks.

Instead of designing such a gateway from scratch, developers can begin with a working reference implementation and customize it to meet their specific requirements.

Build Your Own Application Instead of Reinventing CAN

The greatest value of the platform is not the hardware itself.

It is the fact that developers do not have to begin every project from zero.

Whether your objective is to create a CAN gateway, an ECU prototype, a diagnostic tool, a CAN analyzer, a J1939 controller, or an industrial monitoring device, there is a strong chance that a closely related application example already exists.

That allows you to spend your engineering time developing your product rather than repeatedly solving the same low-level CAN communication problems.

An Ideal Platform for Learning and Professional Development

The Dual CAN Bus Interface for Arduino Due is equally suitable for experienced embedded engineers and developers entering the world of CAN bus networking.

Its straightforward hardware design, mature software ecosystem, and extensive collection of practical examples make it one of the easiest ways to understand CAN bus programming through hands-on experimentation.

Instead of reading endless protocol specifications before writing your first line of code, you can begin with proven software, observe a working system, and then extend it into your own application.

For rapid prototyping, proof-of-concept development, and even commercial embedded products, this combination of hardware, software, and practical examples provides a development environment that remains difficult to match. More information...

Developing SAE J1939 Applications with ARD1939 and Copperhill Technologies Hardware

One of the challenges of developing SAE J1939 applications is finding a protocol stack that is both affordable and flexible enough for prototyping, education, and custom embedded projects. To address this need, we developed ARD1939, a portable C++ SAE J1939 protocol stack that serves as the software foundation for many of our development projects and examples. Originally [...]

Read More »


Raspberry Pi CAN FD and 10BASE-T1L: Building Industrial IoT and Embedded Networking Solutions

The Raspberry Pi has become one of the world’s most popular embedded computing platforms. It is inexpensive, powerful, runs a full Linux operating system, and supports countless programming languages and development tools. Yet many engineers quickly discover a limitation when they move from software development into real-world industrial applications. The Raspberry Pi provides Ethernet, USB, Wi-Fi, Bluetooth, [...]

Read More »


Raspberry Pi CAN Bus and LIN Bus Interface: CAN FD Development Made Easy

The Raspberry Pi has evolved far beyond its educational roots. With modern multi-core processors, generous memory, Linux support, and an enormous software ecosystem, it has become one of the most capable embedded computing platforms available today. When combined with a CAN and LIN interface, the Raspberry Pi transforms into an excellent development platform for automotive, industrial [...]

Read More »


ESP32-S3 MicroPython Programming for CAN Bus and NMEA 2000

The embedded systems world has traditionally been dominated by C and C++, but over the past several years another language has been gaining remarkable momentum: Python. More specifically, MicroPython has become one of the most attractive development environments for engineers who want to prototype and deploy embedded applications quickly without sacrificing access to the underlying [...]

Read More »


CANPico V2 with Raspberry Pi Pico WH: Build Connected CAN Bus Applications with MicroPython and Wi-Fi

Have you ever wanted to build a smart system that sends data to the cloud, responds to remote commands, or monitors equipment in real time? With the CANPico V2 featuring a pre-installed Raspberry Pi Pico WH, those ideas can become working prototypes in hours instead of weeks. Combining industrial-grade CAN Bus hardware, integrated Wi-Fi, and the [...]

Read More »


Building a Classical CAN to CAN FD Gateway with ESP32-S3: A Powerful Migration Platform for Next-Generation Networks

As CAN FD (Flexible Data-Rate) continues to gain adoption across automotive, industrial, agricultural, and heavy-duty vehicle applications, many developers face a common challenge: How do you connect legacy Classical CAN networks with newer CAN FD systems? One practical solution is a protocol gateway that can receive messages on one network, process or translate them, and transmit [...]

Read More »


CAN Bus Troubleshooting with the PiCAN HATs: Why the Board Is Probably Not the Problem

The PiCAN product line has become the go-to CAN Bus interface solution for Raspberry Pi developers, system integrators, educators, and industrial engineers worldwide. From entry-level CAN Bus connectivity to advanced dual-channel CAN, CAN FD, GPS/GNSS integration, RS232, RS485, and real-time industrial networking, PiCAN boards combine robust hardware design with seamless Raspberry Pi integration. Whether you [...]

Read More »


Why CAN Bus Is One of the Most Reliable Communication Systems Ever Created

When engineers design communication systems for vehicles, industrial machinery, agricultural equipment, marine electronics, and embedded control systems, reliability is often more important than raw speed. A lost message in a music streaming application may go unnoticed. A lost message containing engine speed, brake status, steering angle, or hydraulic pressure can lead to equipment malfunction, downtime, or [...]

Read More »


Why the Teensy 4.1 Triple CAN-Bus Board with Ethernet Makes an Excellent CAN Data Logger

Modern vehicles, industrial machines, marine systems, and agricultural equipment generate enormous amounts of CAN bus traffic. Capturing, storing, and analyzing this data is essential for diagnostics, performance monitoring, predictive maintenance, fleet management, and product development. While there are many commercial CAN data loggers available, they often suffer from one or more limitations: High cost Limited customization Proprietary software Restricted storage [...]

Read More »