Arduino, an open-source hardware, makes use of the 8-bit AVR micro-controller by Atmel. In order to interface these SBCs to CAN networks, several companies have launched so-called shield expansion modules to be plugged onto the Arduino pin-headers.
THE ARDUINO OPEN HARDWARE PROJECT STARTED AS EARLY AS 2005. Italian students at the Interaction Design Ivrea developed the Arduino grandfather. After the wiring platform was complete, researchers worked to make it lighter, less expensive, and available to the open source community. Nowadays, there are many implementations available. They are not just used by hobbyists. There are many Arduino implementations, which are commercially produced – of course, the price is still low, even lower than for other SBCs. They are available for a fistful of dollars. From a price point of view Raspberry Pi (based on the ARM11 BCM 2835 single-chip processor by Broadcom) is the competition. While Arduino is optimized for hardware projects, Raspberry Pi is designed for software projects without the need to understand electronics. There are also other open SBC projects such as Beaglebone Black (based on an ARM Cortex-8 and the TMS320 digital-signal processors). It started last year.
Shields with CAN controllers
In order to extend the basic functionality of the Arduino hardware, so-called shields are used. These are expansion boards that plug onto the pin-headers. Besides shields with GPS, Ethernet, and tiny LCD display, there are also CAN shields available. Normally, they provide a stand-alone CAN controller and a connector to the bus-lines. Unfortunately, not all of them use the connector pinning as defined by CiA since many years. In some online forums, this is already discussed and some users request to follow the CiA recommendations (e.g. CiA 303-1).
The DEV-10039 CAN shield available from Sparkfun (USA) is equipped with the MCP2515 stand-alone CAN controller and the MCP2551 CAN transceiver by Microchip (USA). The 9-pin Dsub connector is used for the CAN bus-lines. The CAN interface supports data-rates up to 1 Mbit/s. The shield also provides a Micro-SD card holder and socket for the EM406 GPS module. The CANdiy shield by Watterott (Germany) is based on the same CAN hardware, but provides two RJ45 connectors for the CAN bus-lines. In addition, the product provides a prototype area for customer-specific extensions. Seeedstudio (China) offers another CAN shield (SLD0115P), which supports as the other products 11-bit and 29-bit identifiers. It uses also the Microchip hardware and the CAN bus-lines are available on the 9-pin D-sub connector. The pinning is not compliant to CiA 303-1. All the mentioned shields communicate with the Arduino board by means of SPI.
The Obdcan shield by Obddiag provides CAN communication and supports additionally the car diagnostic protocol as standardized in ISO 15765-4. It is intended for reading and writing CAN messages via the vehicle’s diagnostic interface. Therefore it provides an OBDII cable to be connected to the 9-pin D-sub connector. The module in Arduino R3 form factor is based on a PIC micro-controller from Microchip. It features three LEDs indicating that a CAN frame has been transmitted (red) or received (yellow) and that the 3,3-V power supply is on (green).
The first application of CAN shields was to observe the in-vehicle CAN messages. But there are increasingly other use cases: For example model railroads, sailing robots and other tiny robot applications. Students and researchers use the Arduino hardware for their projects. Some industrial designers have started their prototyping with the open-source hardware. However for professional hardware designs, it would be better to have the CAN hardware and interface directly on the SBC.
News and reports