Whenever it comes to creating rapid prototypes for new CAN Bus or SAE J1939 applications, my first choice is usually the Arduino Due, a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU.
The Arduino Due combines an easy-to-use programming environment with a vast number of hardware extensions (shields). Don’t get me wrong, I do love programming on a more “professional” level using our embedded systems with sophisticated IDEs and debug probe, but often enough the required hardware is not available. The Arduino concept may have its flaws (such as limited debugging capabilities), but when it comes to rapid prototyping it is almost unbeatable.
Let’s have a look at the Arduino Due board’s features:
- Microcontroller board (Arduino Due) based on the Atmel SAM3X8E ARM Cortex-M3 CPU
- 512 KB Flash Memory
- 96 KB SRAM
- 84 MHz Clock Speed
- 2 CAN ports w/o transceiver
- 54 Digital I/O Pins (of which 12 provide PWM output)
- 12 Analog Input Pins
- 2 Analog Output Pins
When it comes to CAN Bus or SAE J1939 applications, though, the Due misses a mandatory item, namely the CAN Bus transceivers (it shares that short-coming with the majority of off-the-shelf embedded CAN systems). Consequently, we at Copperhill Technologies have developed a Dual CAN Bus interface for the Arduino Due, which comes with the following features:
- 2 CAN ports with three-pin terminal connectors
- Extended input power range of 7 VDC to 36 VDC
- 3 LEDS (Power, CAN Activity Port 1, CAN Activity Port 2)
- CAN Bus Termination resistors switchable per jumper
The available options are:
- Arduino-Based ECU Development Board With Dual CAN Bus Interface
- Dual CAN Bus interface for Arduino Due
- Dual CAN Bus interface for Arduino Due With Extended Power Range
The concept of Arduino Due main board plus Dual CAN Bus interface was designed to allows adding any Arduino-compatible hardware (shield). As an example, the image to the left shows the board with Dual CAN Bus interface plus an Ethernet shield, which obviously can be used to program a CAN-to-Ethernet gateway.
As a matter of fact, I am currently preparing a number of CAN Bus gateway applications, which includes Ethernet, Bluetooth, and WiFi.
Also, check out the available resources, may it be hardware, cables, data sheets, or sample programs:
CAN Shield Resources:
- Arduino Due: Dual CAN Port Test Sketch
- Arduino Due: Dual CAN Port Test Sketch With LED CAN Traffic Indicators
- Dual CAN Bus Interface For Arduino Due: Controlling the LEDs
- ODB2 and CAN Bus Acquisition Libraries
- SAE J1939 Protocol Stack Sketch for Arduino Due
- App Note: ARM Cortex M3 Development Boards Require External CAN Bus Transceiver
- CAN Bus Data Traffic Simulation With Arduino Due
- CAN Bus Bridge (CAN-to-CAN) Application With Arduino Due
Arduino Due Resources:
- Getting started with the Arduino Due
- Download the Arduino Software (IDE)
- Atmel 11057 32-bit Cortex-M3 Microcontroller SAM3X/SAM3A Datasheet (PDF…)
- A Brief Introduction to Controller Area Network
For further information, or in case you have questions, please fee free to contact us through this website.