Controller Area Network (or CAN) is a communication protocol used throughout the automotive industry to facilitate communication between low level microcontrollers and sensors. CAN is a robust protocol, as well as being resilient to “noise” (electrical signal interference), easy to implement and straightforward to interface with. The goal of this project was to create a small versatile board based on an Arduino which implements the CAN communication protocol.
Currently, one of the simplest ways to use CAN with an Arduino is with the Seeed studio’s CAN Shield. However, the CAN Shield costs $30, which is quite a high price, and if you add to that the cost of an Arduino UNO, which range in cost from $5 for a clone to $35 for an official board, this becomes a very expensive option.
On top of that, an Arduino UNO with a CAN shield stacked on top of it is quite bulky. All of these concerns were addressed when Adam Hjermstad, one of the team’s electrical engineering students, decided to design the CANduino for our hybrid vehicle.
To keep the CANduino’s size as small as possible it uses surface mount device (SMD) components. The board also features the same CAN integrated circuits (ICs) that the Seeed studio CAN shield uses and has components to step down standard automobile 12V to 5V in order to power everything.
With the design out of the way, some prototyping was done. The prototype uses through hole components and was missing some supporting hardware, but everything else is consistent with the design. Once the design was confirmed as functionally sound, the next steps happened in rapid succession.
First, the circuit design was formalized in Altium Designer software, then the layout and routing was completed. Next, the design was sent for manufacturing. After this, all the required components were ordered. Most were purchased from Digikey, but Microchip was kind enough to provide samples of their CAN controller and CAN transceiver ICs.
Once everything arrived at the team’s garage, the first board was built slowly with intermittent testing. The power supplies were built first, then the microcontroller was added, programmed, and tested. Once this was finished, the CAN ICs were added and CAN communication was tested. Everything was confirmed functional. CAN was tested thoroughly again and all the header pins were retested to make sure they were all routed properly.
This concluded the CANduino project. We plan on using several CANduinos in the vehicle this season: one to control our power distribution box, and another to interface with our vehicle’s accelerometer.