Press "Enter" to skip to content

CAN Bus Programming With The Arduino Due

CAN Bus Programming With The Arduino Due

By Wilfried Voss

Published by
Copperhill Technologies Corporation
21 Mohawk Trail – PMB 264
Greenfield, MA 01301

Table of Content

  • 1 Overview
    • 1.1 Controller Area Network
      • 1.1.1 Introduction
      • 1.1.2 CAN Interface Hardware
      • 1.1.3 CAN Bus-Based Higher Layer Protocols
        • CANopen
        • SAE J1939
        • DeviceNet
    • 1.2 The ARM Cortex M3 Processor
  • 2 The Arduino Due
    • 2.1 System Description
      • 2.1.1 CAN Hardware Interface
        • Breadboards
        • CAN Breakout Board by SKPang Electronics
        • CAN Breakout Board by Waveshare
        • Dual CAN Bus Interface With Extended Power Range
    • 2.2 The Arduino IDE
      • 2.2.1 Arduino Web Editor
      • 2.2.2 Arduino Web Editor

This is a work in progress…

About This Book

The purpose of this book is to give the interested engineer or hobbyist a head start on the technology involved with Controller Area Network (CAN) using the Arduino Due with its ARM Cortex-M3 processor.

While this book’s focus is on the development of functional CAN Bus applications, it also serves as a great example of rapid prototyping. All hardware components as used in this book, namely the processor board and the CAN bus interfaces, are off-the-shelf products, and the programming environment (IDE) is not only a free download; it is also widely used and well documented.

Nevertheless, this book needs to reference a number of aspects that are impossible to explain in all detail in one book (besides the fact that detailed technical literature on these topics already exists). They are:

  • Controller Area Network and higher-layer protocols such as CANopen, DeviceNet and SAE J1939.
  • The ARM Cortex-M3 Processor
  • The Arduino Due

All these aspects are explained to a degree that fits the ultimate purpose of this book, the quick and easy Controller Area Network (CAN) prototyping with the Arduino Due. The book, however, contains multiple references to websites and technical literature for the reader who is interested in more detail.

From The Author

It is not too long ago that I re-discovered an old love, embedded programming, by working with an inexpensive, yet surprisingly versatile hardware system, the Arduino Uno. I started with a simple project, Controller Area Network (CAN) prototyping, and from there on I worked my way into higher hardware levels. I used the Arduino UNO and the Mega 2560 for a full SAE J1939 protocol implementation, and I am now working with the most versatile of all embedded processors, the ARM microcontroller family, specifically the ARM Cortex M3.

In the following, I will address the aspects of Controller Area Network (CAN) prototyping using a fairly inexpensive, yet extremely versatile ARM Cortex M3 system, namely the Arduino Due.

The sample applications I chose appeared to be the most versatile, since they cover the most important aspects of a CAN Bus project in regards to performance and flexibility. The programming samples I provide can be easily modified to serve a great number of different applications, may they be for automotive or industrial applications.

About The Author

I am the author of the “Comprehensible Guide” series of technical literature covering topics like Controller Area Network (CAN), SAE J1939, Industrial Ethernet, and Servo Motor Sizing. I have worked in the CAN industry since 1997 and before that was a motion control engineer in the paper manufacturing industry.  I have a master’s degree in electrical engineering from the University of Wuppertal in Germany.

During the past years, I have conducted numerous seminars on industrial fieldbus systems such as CAN, CANopen, SAE J1939, Industrial Ethernet, and more during various Real Time Embedded And Computing Conferences (RTECC), ISA (Instrumentation, Systems, and Automation Society) conferences and various other events all over the United States and Canada.

I had the opportunity of traveling the world extensively, but settled in New England in 1989.  I presently live in an old farmhouse in Greenfield, Massachusetts with my red-haired, green-eyed Irish-American wife and our son Patrick.

Contact The Author

Despite all efforts in preparing this book, there is always the possibility that some aspects or facts will not find everybody’s approval, which prompts us, author and publisher, to ask for your feedback. If you would like to propose any amendments or corrections, please send us your comment. We look forward to any support in supplementing this book, and we welcome all discussions that contribute to making the topic of this book as thorough and objective as possible.

To submit amendments and corrections please log on to the author’s website at and leave a note.

Please understand that I cannot and will not respond to any project-specific questions. As much as I do like to help and communicate with other engineers, I simply don’t have the time. My apologies!

Download The Code

All code examples are available as a download from this website, i.e. they are embedded in the corresponding project pages.

The code examples represent free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

The code examples are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Copyright © 2018 by Copperhill Technologies Corporation, Greenfield, Massachusetts

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without the prior written permission of the Publisher.

Limit of Liability/Disclaimer of Warranty

While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties or merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss or profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.


All referenced brands, product names, service names and trademarks are property of their respective owners.




© 2018 Copperhill Technologies Corporation