Description: The implementation of the Controller Area Network (CAN) for aircraft applications is referred to as CAN-FIX, which is part of the MakerPlane Open Source Airplane project. This project aims to create an Arduino shield that facilitates communication over the CAN bus. The design utilizes Microchip MCP2515 and MCP2551 components, which are the CAN Controller and CAN Transceiver, respectively. The creator repurposed a ProtoShield from Sparkfun and utilized existing header materials to develop a custom Arduino shield for rapid prototyping. Although a full ProtoShield Kit could provide additional features like buttons and LEDs, this version focuses on serving as a generic USB to CAN converter. Once operational, the device will enable a computer to interface with CAN, and the same code can be adapted for use with an Arduino Mini or similar single-board computers (SBCs) such as Beagleboard or Raspberry Pi.
The circuit design is straightforward, employing an SPI interface to connect to the MCP2515 CAN Controller IC, which manages the low-level operations of the CAN protocol, including timing, arbitration, and error detection. The design closely mirrors Sparkfun's CAN Shield, maintaining pin compatibility but opting for a 20MHz ceramic resonator instead of the 16MHz oscillator utilized in the original design. This choice was made based on available components and may potentially enhance performance at higher bit rates, although this has not been empirically tested.
The shield's design allows for compatibility with various CAN Shields, as they share a similar interface with Arduino, facilitating the use of common software across different implementations. Notably, the MISO, MOSI, and SCK lines were connected to the six-pin ISP programming header due to the unique configuration of the Arduino Leonardo, which does not expose these signals to the standard headers. This approach is intended to ensure functionality across different Arduino models, although testing has not been conducted on other types.
The schematic includes an MCP2515 positioned to the right and an MCP2551 at the top center. A DB-9 connector, repurposed from a serial cable, connects to pins 2 and 7. The design also incorporates a small pushbutton switch on the proto board, with two holes connected to ground used to secure the serial cable. Additionally, an LM34 temperature sensor is included to provide an analog input for testing the CAN-FIX software. The assembly features two rows of female headers for the ISP interface, constructed from modified single-row headers due to the unavailability of dual-row components. Overall, the circuit is designed to be simple yet effective for testing and development purposes.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) 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 them. After all an SPI interface to the MCP2515 seems to be the most popular way to do CAN communication anyway.
One thing about my shield that is a bit odd is how I actually tied in the MISO, MOSI and SCK lines. Since I decided to try this with a new Arduino Leonardo which has some differences in where these signals are located. They don`t bring them out to the headers any more, so I connected them to the six pin ISP programming header.
This should work regardless of which type of Arduino used but I haven`t tried it on another type. In this shot you can see the MCP2515 to the right and the MCP2551 in the top center. The DB-9 connector is just one end of a serial cable that I had lying around (You can`t see it in this picture, but it`s on the other end of that thick black cable). I just cut one end off of it and found pin 2 and 7 for use here. There is a pad on the proto board for a small pushbutton switch. I used two of those holes (the ones tied to GND) as place to solder some wire and hold the serial cable.
There are probably better ways. The transistor looking thing to the left is an LM34 temperature sensor. I threw it on there so that I`d have something analog on the board to use when I`m playing around with the CAN-FIX software. In the above image you can see the two rows of female headers that I used for the ISP interface. I didn`t have any two row female headers so I just cut a couple of single row headers and jammed em together.
The advanced credit card, referred to as the "microcontroller super card," incorporates numerous innovative enhancements. The initial step involved verifying the code and subsequently uploading it to the Arduino board. The developed code enabled a counter to increment from 0...
The logic power and CAN signals enter through pins 3 to 8 of connector N4. These CAN signals are routed to the MCP2551 CAN physical layer integrated circuit (IC), designated as U5. The transmit and receive pins of the microcontroller...
The layout control motherboard is designed to facilitate the management of various sections of a layout. It features a microcontroller that connects to the MRNet bus and multiple slots for inexpensive control and sensor boards. All control and sensor boards...
When starting with Arduino, one often accumulates more Arduino boards than RS232 or USB ports available on the computer. Therefore, it is more practical to use an external signal level converter rather than placing it directly on the Arduino board....
An attempt at an Arduino guitar pedal. The guitar signal feeds through a PT2399 delay circuit, modified to include a JFET preamp phase. The delay circuit has Echo and Delay knobs. From there, it feeds into an optoisolated-Arduino-5V preamp, and...
To set up the circuit, a resistor is required; a value of 200 Ohms is suggested, with a supply voltage of 3.3V. The resistor should be connected to the power line and grounded. The data line must be connected to...
Displays are always beneficial. Until now, only 7-segment displays have been demonstrated for showing numbers using minimal resources. However, for displaying text or images, a simple LCD screen is required. There are basic LED screens available that operate on serial...
The term Arduino refers to a system of components that includes the board, the microcontroller, the bootloader, and the programming environment. It is designed to simplify the complexities associated with microcontroller programming. At the core of the Arduino board is...
A circuit utilizes a keypad, a servo, and several LEDs, connected to an Arduino Uno. The objective was to integrate all components onto a single PCB, effectively creating a custom version of the Arduino. Upon startup, the red LED is...
We use cookies to enhance your experience, analyze traffic, and (if you allow) serve personalized ads.
By clicking Accept All, you agree to our use of cookies.
Learn more