Arduino CAN Bus Interface

Posted on Feb 5, 2014

Implementation of CAN for use in aircraft. The protocol is called CAN-FIX and is a part of the MakerPlane Open Source Airplane project. You can get more information on CAN-FIX here. The idea for this project is to build an Arduino shield that will let it communicate over the CAN bus. I had some Microchip MCP2515 and MCP2551 (CAN Controller and CANTransceiver, respectively)

Arduino CAN Bus Interface
Click here to download the full size of the above Circuit.

laying around so I decided to make my own little Arduino shield so that I could quickly try out some ideas. I started with the little ProtoShield that Sparkfun sells. I also had some header material laying around so just getting the PCB without the rest of the kit worked for me. An easier answer may be to get the full ProtoShield Kit. This will give you some buttons and LED`s to play with too. My intention for this particular device is to use it as a generic USB<->CAN converter. Once I have that working, I`ll have a CAN interface for a computer and could use the same code with an Arduino Mini, or something similar, to interface to a Beagleboard, Rasberry Pi or other SBC. The circuit is pretty simple. It`s just an SPI interface to the MCP2515 CAN Controller IC. This IC handles all of the low level details of the CAN protocol. Things like timing, arbitration, error detection etc are all offloaded to this IC. I purposely made mine similar to the CAN Shield that Sparkfun sells. The pins are the same but I choose to use a 20MHz ceramic resonator instead of the 16MHz oscillator that`s on the CAN Shield. The only reason I did that was because I had some. It might make it work better at higher bit rates too but I haven`t tested any of that to know. There are a couple of CAN Shields out there and they all have basically the same interface to the Arduino so this means that we should all be able to use the same software with all of...

Leave Comment

characters left:

Related Circuits

  • New Circuits



    Popular Circuits

    PWM DC Motor Speed Control
    MIDI Output with Arduino
    Geiger counter
    pierce xtal oscillator circuit
    thermometer circuit using lm335
    Numeric water level indicator- liquid level sensor circuit diagram with 7 segment display
    Domestic Seismic Alarm
    Enhanced Alarm
    Delaying the release of DC relay circuit
    555 constitute an ultrasonic transmitter circuit diagram
    Thyristor cascade speed control circuit
    Elderly lost alarm circuit