CAN BUS Shield for Raspberry CanBerryDual ISO V2.1

CanBerryDual ISO Pi V 2.1 is a CAN BUS Shield for RaspBerry Pi. It is an Open Hardware Design. It has two functionalities: a can bus module and an onboard Real Time clock powered by a 12 mm battery CR1216 (Battery is not included). The CanBus is based on a couple of MCP2515 SPI controllers and ISO1050 tranceivers. All functionalities are full integrated in standard linux kernel, so, they can be avaible on fly, or at last recompiling linux kernel to add canbus functionalities. The real time clock is based on DS3231 with internal oscillator I2C controller. It is full compatible with linux too. Using I2C Kernel module, and standard kernel functions, date and hour can be set/get by simple commands. On the bottom side is located an on board battery to guarantee a data autonomy. In chapter hardware there are all informations on principal components, schematics to rebuild and modify RaspBerry PI board. The new board is designed with the Raspberry Hat specification.

Raspberry Boards Compatibility


CanberryDual Iso V2.1 (Bottom view) with Two channels on left and one on right.


CanberryDual Iso V2.1 (Top view) with Two channels on left and one on right.

CanberryDual_Iso V2.1_web

CanberryDual Iso V2.1 Bottom and Top view with Two channels.

It’s possible to order this board on our Partner Shop with a different brand name.

If you have a RPI A or B see the Canberry V1.1 web page.

CanberryDual ISO V2.1 CAN BUS on Raspberry Pi 4.



CanBerryDual Iso V2.1 on Raspberry Pi 3.

The RPI connector exposes two SPI slave select pins, SPI CE0 on pin 24 and SPI CE1 on pin 26. The first is used for MCP2515 channel 1 and the second for MCP2515 channel 2. The same situation is present for the interrupt pins, the first is connected on GPIO22 (pin 15) and the second on GPIO25 (pin 22).


CanBerryDual ISO V 2.1 is composed by three blocks: a couple of CanBus transceiver Isolated and a Real Time Clock. MCP2515 is a stand alone SPI canbus controller full integrated in linux kernel. At the start, the driver was implemented as a block device. Recently it is assumed to be a network module into the kernel. It is supplied by 3.3V from raspberry connector. ISO1050 is supplied by 5V from Raspberry connector insted. So, to match voltage physical level between the two chips, a voltage matching made by R4 and RN4 has been used. There are two SMD Jumpers, JP6 for CAN Bus Channel 1 and JP7 for CAN Bus Channel 2, these jumpers provide the 120 ohm termination for the first and the last device.


There are two galvanic isolated areas, powered by two different R1SE-0505 DC-DC converters.

It’s possible to insert the Raspberry with our Canberry into a Phoenix din enclosure (RPI-BC 107,6 DEV-KIT KMGY – 2202874).

Industrial enclosure canberry

It’s possible to order this board on our Partner Shop with a different brand name.

CanBerryDual ISO Datasheet

Eagle Cad Files

Schematich PDF

CanBerry with Codesys

How to prepare a SD Card with CAN kernel modules (only for expert Linux users).


Download ready to use ISOs (kernel 4.1.7+ for Rpi B2 and B+)

Edit /boot/config.txt modify the following row


Run the following command:

pi@raspberrypi ~ $ dmesg | grep -i can

This is the output:

[ 13.197388] CAN device driver interface
[ 15.375846] mcp251x spi0.0 can1: bit-timing not yet defined
[ 15.382408] mcp251x spi0.1 can0: bit-timing not yet defined


From the output it is possible to observe that can0 is associated to spi0.1 and can1 to spi0.0.

Respect the board shown in figure 1 the interface can0 is located in SPI0.1(X2 connector) and can1 in SPI0.0(X1 connector).

After your raspberry has been booted, go to home directory:

cd /home/pi/

add these lines to the script

ip link set can0 up type can bitrate 1000000
ip link set can1 up type can bitrate 1000000

Run the script:

sudo sh

So the system is ready, then you can use standard canbus command to use the peripheral:

candump can0 -> to monitoring can bus traffic

cansend can0 7DF#0201050000000000 -> to send canbus commands

candump can1 -> to monitoring can bus traffic


cansend can1 7DF#0201050000000000 -> to send canbus commands

To use both interface simultaneously open 2 different telnet sessions.


How to use masks and filters on MCP2515

How to use RTC DS1307Z (DS3231)

Certification Disclaimer


  1. Hello,

    The RTC DS1307Z instruction should be updated with Raspbery 3 Model B and later Rasbian OS information.
    One may need to enable I2C hardware using:
    from terminal: sudo raspi-config
    -select “5 interfacing option”
    -select “P5 I2C”
    -enable it
    Then it works with current instruction.


  2. Hi,
    Excuse me but I am a bit new to this… would it be possible to add a Gps to the pins on top of the CanBerryDual Iso or are the required pins already “used up” by the CanBerryDual iso?


    1. Dear Joachim,
      Send me the required pins of your GPS module, in order to check the compatibility.

      Best regards

    1. The PiCAN2 Duo has a nice header design were the pins can be swapped for longer pins (without soldering) in order to accommodate a Hat on top.

    2. Dear Joachim,
      yes the GPS HAT is compliant with our boards, because it uses only UART Pins. It is possible to solder this Header connector on top
      649-95157-440LF (Mouser order code).

      Best regards

  3. May I ask why you use 5V power supply for Vcc1 ISO1050 and resistors? Datasheet of ISO1050 shows that minimal voltage for Vcc1 is 3V. So when Vcc1 is 3,3V it could be directly connected to MCP2515.

    1. Dear David,
      The DC-DC converter is mandatory for the power supply insulation, in this way an ESD can’t destroy the Raspberry Pi.

      Best regards

  4. Как приобрести Вашу плату в России. Нужно две платы с изолированными выходами.

  5. Hello, very nice board you have here.

    I have just one question – if I use RPi 3 and this card, can I make a simple CAN logger? E.g. that all received frames would be saved on SD card with timestamp for later analysis? I would need to run it over days without intervention.

    1. Dear Syoma,
      it is not possible to build a real CAN logger with an MCP2515 and Raspberry Pi. It is possible to log a CAN BUS with low number of packets, but if you have one with a 90% of busy level , it is mandatory to use a professional logger, like PeakCan or Vector. If you want design a home made CAN Data Loger, it is possible to use a demoboard with a FPGA device.

      Best regards

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.