CAN Bus Prototyping With Arduino Uno - Prototyping Hardware
This post is part of a series about Controller Area Network (CAN Bus) Prototyping With the Arduino Uno.
As I had mentioned earlier, it is assumed that you have some basic knowledge of the Arduino, Arduino Sketches, and Arduino Shields. I will nevertheless take the opportunity of mentioning the prototyping hardware and its variants.
It is important to know that the Arduino, even though perfect for prototyping due to its low price and ease of programming, is not, in its bare form, an industrial-strength solution, not only in terms of environmental specs (e.g. temperature range, etc.) but also in terms of execution speed and memory resources.
Specifically, when it comes to CAN applications at 1 Mbit/sec and high data traffic, the Arduino may reach its limits quickly. There are, however, advanced and yet compatible alternatives to the Arduino as referenced in the following.
In order to develop and test the sample programs (sketches) as shown in this book, I used the Arduino Uno. The hardware consists of an open-source hardware board, usually designed around an 8-bit Atmel AVR microcontroller with 2 KB RAM (working memory), 32 KB Flash Memory (sketches) and 1 KB EEPROM (non-volatile).
These technical specifications are more than sufficient for basic prototyping of CAN applications and the proof of concept. However, to re-iterate the point, with growing demands for execution speed and extended functionality, the Arduino may quickly reach its limits.
Note: All Arduino programs (sketches) as shown in this series of posts were developed and tested with the Arduino Uno. They are, however, directly compatible with the Arduino Mega 2560, which provides increased performance due to higher pressing speed and extended memory.
The ultimate Arduino platform, when it comes to best performance using the Arduino for CAN Bus prototyping, is the Arduino Due. The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU. It is the first Arduino board based on a 32-bit ARM core microcontroller.
However, CAN Bus prototyping with the Arduino Due is a different topic due to some fundamental hardware differences when compared to the Uno or Mega 2560. For more information, see our Arduino-Based ECU Development Board With Dual CAN Bus Interface.