CAN Bus Control

Using OEM components results in a very professional and reliable build, but the complexity goes up immensely as each component must be CAN controlled with custom and unique embedded programming. What I would consider as the most popular and practical of the hobby CAN board solutions are laid out below. Starting from the most basic and ending at the most advanced and powerful of the options.

CAN Hardware Choices

SparkFun: Arduino Uno + CAN Shield

  • Clock Speed: 16Mhz
  • Flash Memory: 32KB
  • CPU: 8-bit AVR
  • CAN Ports: 1

The Arduino Uno with a Sparkfun CAN shield is the most entry level solution. It's actually what I first started programming on to start testing out CAN control of the RX8 cluster. This was mostly due to the great example at cantanko.com where Harry demonstrated that he could successfully control the RX8 cluster with this setup, and even included some of the RX8 CAN database specs and teased some mostly-functional code.

The downsides of this hardware should become pretty obvious when you compare the specs of the other hardware. The main being slow CPU, limited memory, standard arduino reliability, and only 1 CAN port.


EVTV: CANDue

  • Clock Speed: 84Mhz
  • Flash Memory: 512KB
  • CPU: 32-bit ARM
  • CAN Ports: 1

The EVTV CANDue is basically a custom Arduino Due clone with a built in CAN driver on a custom PCB. The Arduino Due is a huge step up from the Arduino Uno with a CPU clock 5 times faster and 16 times the on-board memory. The guys at EVTV really did a great job with this board, and although it only has 1 CAN port its a pretty clean and well designed setup for $99.

If you're looking to control a single component, or possibly a few lesser complex components you know can get along on the same bus, with pretty decent reliability then this is your solution. Don't expect rock solid automotive qualified OEM performance out of this, but if you're not controlling safety critical tasks it should more than meet your needs.

As one would expect, complexity scales with capability, but the guys at EVTV have done a tremendous job at documentation, software development, and tutorials. There are some absolutely brilliant minds at EVTV and this enables someone with moderate/high embedded programming skills to use and expand upon the capability of these tools. They've even developed PC/Mac software to use with this board to help reverse engineer and monitor CAN buses.


EVTV: Arduino Due + CAN Shield

  • Clock Speed: 84Mhz
  • Flash Memory: 512KB
  • CPU: 32-bit ARM
  • CAN Ports: 2

Although the EVTV CAN shield was created by the guys at EVTV before the CANDue, I still feel that its a bit more superior, at least from the capability side. Its not the fully integrated solution of the CANdue board, but adding a shield to the Arduino Due isn't really such a bad solution as the 100+ header pins secure the two boards together pretty well.

The shield has two high speed CAN ports, a Single Wire CAN (a low speed GM spec CAN bus), and a NTC themal sensor input. With added thermal sensor support as well, its pretty obvious that this board was specifically designed to control the Chevy Volt HV cabin heater. If you're looking for a board that can drive the Chevy Volt heater, this is your easiest solution. This should also work pretty well if you want to gate (change or delete some of the messages that get sent to/from a) component or control a few simpler components. 


Texas Instruments: TMS570LC43 Hercules Launchpad

  • Clock Speed: 300Mhz
  • Flash Memory: 4MB
  • CPU: Dual Core 32-bit ARM
  • CAN Ports: 4
  • Flexray: 2
  • Ethernet: 1
  • Hardware UART (SCI/LIN): 5
  • ISO26262 Safety Rating: ASIL D

The arduino platform is great for so many hobbyist projects, but when it transitions into safety critical applications its no longer the right tool for the job. The Texas Instruments TMS570LC43 board transitions from hobbyist level and into the realm of true professional. 

Not only is this board automotive qualified, it's ASIL D rated. ISO26262 is becoming the universal spec for automotive safety and reliability levels and ASIL D maxes out the scale. Below is a brief excerpt from the documentation that outlines some of these ASIL D hardware features.

The TMS570LC4357 device is a high-performance automotive-grade microcontroller family for safety systems. The safety architecture includes the dual-core lockstep CPUs with ECC-protected caches and dual VIMs in lockstep. The device has Built-In Self Test (BIST) logic for the CPU, the N2HET coprocessors, and for on-chip SRAMs. The device supports ECC protection on the L1 caches, L2 flash, and SRAM memories. The device also supports ECC or parity protection on peripheral memories and loopback capability on peripheral I/Os. 

Didn't catch most of that? Each bit takes some research just to fully understand the safety built into this board, but summed up this is a dual core chip with each core running independent, but back-checking with each other every cycle to ensure that they agree and no errors occurred. Even the clock and memory are checked for errors. This is truly a board that you can rely on for safety critical steering and acceleration applications.