What happens when a Pi meets an Arduino?

A simple example would be, when building a mobile robot, we use the Raspberry Pi to extend its vision and get a nice tiny monitor. Meanwhile, Arduino handle nicely with the motor driving part and delivers fast responses like obstacle avoidance. Because, without the OS, the response time of rapid changes on the Arduino is much shorter. Also the high performance Pi can deals much easily with wireless communications, imaging and running complex algorithm.

Therefore, with the Arduino and Pi together, you get a powerful "brain" and "cerebellum" for your project, at one time.



Raspberry Pi B Meet Arduino Shield Pinout

Fig1: Pi Meet Arduino Pinout

NOTE: The ID-I2C is an EEPROM interface, which is dedicated to connect to external EEPROM, it will test automatically EEPROM devices attached to it when it starts, is used for configuring GPIO and Linux drivers. In theory, it can be used as an ordinary I2C.

Feature Introduction Diagram

Fig2: Feature Introduction

Get Started with Raspberry Pi B Meet Arduino Shield

First of all, let's control a sensor by Raspberry Pi directly with Meet Arduino Shield. '''Note: '''For this tutorial, we assume that you've known the basic knowledge about the Raspberry Pi B . And more details will be focused on how to extend and use more hardware modules and sensors for your Raspberry pi B projects. In this part, we will control the Relay module with Python via Pi's GPIO.

Tools Required

  1. Raspberry Pi B with Ethernet or WIFI connected
  2. Raspberry Pi B Meet Arduino shield
  3. Relay module (or and LED module)

Software Required

  1. Python 2 Installed.
  2. Setup SSH on Raspberry Pi.

If you didn't install python. Please enter the following commands below into LX Terminal via SSH.

root@raspberrypi:/home/pi# sudo apt-get update
root@raspberrypi:/home/pi# sudo apt-get install python-rpi.gpio

Hardware Connection

Fig3: Relay CD

Step by Step tutorial

1. Plug the Pi Meet Arduino shield to the Raspberry Pi B , Which connected with the power and Ethernet.
2. Connect the Relay module(or LED module) to your Pi as the hardware connection shown.
3. Login in your Pi by Putty. Fig4: Login SSH
4. Create a Python example code using nano.

root@raspberrypi:/home/pi# nano

import RPi.GPIO as GPIO
import time


while True:

5. Run the python sample by the command below.And Check the effect. PS: The module is connected to the GPIO 4 matching the software configuration.

root@raspberrypi:/home/pi# python

6. to stop running the python demo. =. = The switching of the relay module create the noise...

Program the Arduino shield using Raspberry Pi B

In this part, we will share how to program your Arduino using Pi. The steps is quite simple what you need is just installing the Arduino on your Pi and run the remote desktop to test it.

Software Required

  1. TightVNC Viewer on your PC
  2. TightVNC on your Pi
  3. Arduino IDE on your Pi

To install the TightVNC on your Pi, please check the commands below.

root@raspberrypi:/home/pi# sudo apt-get update
root@raspberrypi:/home/pi# sudo apt-get install tightvncserver

And to install the Arduino IDE on your Pi.

root@raspberrypi:/home/pi# sudo apt-get install arduino


  1. Connect the micro usb from Meet Arduino shield to the USB host on the Pi.
  2. Launch your VNC server on the Raspberry Pi B .
root@raspberrypi:/home/pi# sudo vncserver
  1. Log in the remote desktop to Pi using TightVNC Viewer.
  2. Launch your Arduino IDE. Open the blink sample sketch. Choose the leonardo as the board connected and open the right port as the picture shown.

Fig2: Arduino IDE and program the shield

  1. Click "Upload" to program it.


Q1. Some general Arduino Problems/ FAQ/ Tips, very good to know.

A. Clike the topic link on DFRobot Forum.

For Q2.ICSP interface pin definition

Q2. SPI devices not working on this expansion shield? I have been working around with the microSD card reader (cod. dfr0229) and this expansion shield. The arduino works great, I even have a lcd display working without any problem, but the SD card reader doesn't seem to work so well, I have connected it to the icsp pins (D4,11,12,13, 5V&GND).

A. Note that the SPI pins of Leonardo are not connected to any of the digital I/O pins as they are on the Uno, they are only available on the ICSP connector. From

For any question/advice/cool idea to share, please visit DFRobot Forum.

New Version Burning Update

More Documentation