How to Connect a Can Bus Reader to a Raspberry Pi

This site contains affiliate links to products. We may receive a commission for purchases made through these links.

A CAN bus which is a controller area network was designed for the computer market. It was designed for the Bosch for the automotive market and the use with EUCs. There is robot communication where this program is commonly used.

The robot communication has changed around a little today and it is found in many other places. The CAN technology can now be found on computers and it can be found on other applications too.

The Raspberry Pi does not automatically connect with the CAN system. The System on the Chip that is used by the Raspberry Pi does not include the CAN controller as part of it. The Linux kernel is able to support the CAN and will include some other drivers including the SocketCan driver. There are some boards or hats that can be used for the Raspberry Pie.

How to Connect a Can Bus Reader to a Raspberry Pi

CAN Bus Model

There is a CAN model that may be used with the Raspberry Pie. It is prevalent and since it does not run on 3.3 V then it can be used with the Raspberry Pie. It is designed to work from the 5V models only. There is an on board microchip that is MCP2515 Can Controller and this can support a wide range of voltage. It can support voltage anywhere from 2.7 to 5.5 V.

There is some help that can be used for the power board. The 3.3 V can be used to cut the tracks and the PCB power from the 5V. if there is an SMD network that 5V CAN Transceiver can be removed and the 3.3V version can be installed. This will help the system run more efficiently.


There are some recommended wiring configurations when it comes to the connectivity and the bus model. Some charts can help a person along the way if they are not knowledgeable in all aspects of the computer. The Raspberry Pi has its groups and volts. There is also the location of the grounds which will make it easier to wire in the CAN bus.

Driver Installation

If there is not an ID EEPROM which can be found on the hat hardware the Linux kernel will not automatically detect the CAN or the interface. It will need to be loaded into the correct driver so it can be recognized by the system. A person needs to enter the location in the setting and will reach the specific setting boot.

A person will need to enter a code so they will help the boo and the configure. A person will open the /boot/ confix.txt file and they will enter a code: dtoverlay= mcop2515-can0, oscillator=800000, interrupt=25.

The oscillator parameter can be set to the actual crystal frequency and this information is found on the MCP2515. The frequency of this can be changed between the two modules and the community that is used can be 16 or 8 MHz. the parameter will specify the Raspberry PI GPIO pin number. It will be able to connect to the other pin.

Checking the System

The default for this driver will use SPI frequency and it can be found on the datasheet. There is a maximum frequency that can be used and this will help the signals meet up with each other. This can allow a person to use flying leads and they will not have to use PCB. If there is not an SPI master that is added by default than the SPI master can be used.

This will allow it to work with the driver. After a person does this they will need to restart the computer. When the computer or other device has turned back on than they should see a message. One message is that the CAN device driver interface is there and there should be a message that the installation process was successful. If this message does not show up the first once thing to do is to check the power source and make sure everything was successful.

Once this has been done the CAN interface can be brought up by entering sudo /sbin/ link set can0 up type can bitrate 50000. This should allow the device to begin and a person will be able to know if they were able to configure things properly.


The CAN bus has some of the high frame rates and some of the drivers may have a little trouble getting it to begin. The kernel process may use as much as 25 percent of the CPU and the system. The spi0 kernel can use an additional 10 percent of the system.

If a person turns on the DMA this will not make a difference and it will not use more or less power. A person does not need to capture every part of the CAN frame. They will only need frames that relate to a specific address. A filter and a mask may be used in some cases. This will help the CAN bus when it is wired in.

CAN- utils

There are some tools that are helpful for debugging and they can be used with the SocketCAN interface. There are some easy to use applications that can be activated or they can be installed. The can dump can be used for packets and filtering. To use this a person will need to log into a disc.

The canplayer can help replay the can log files and will allow a person to have additional access to them. The cansend will allow a person to send a single frame. The cangen can help generate random traffic and this will allow a person to have these features. A person can install these features using Sudo apt-get install can utils for the chance.

The CAN is able to be installed on the Raspberry Pi. This will allow a person to access all of the features even if it was not part of the system. A person can add to the performance of the computer and they can get all of the features of this system.

About The Author