A Raspberry Pi Arduino Add-On Board – The RasPiO Duino

RasPiO DuinoThe RasPiO Duino fitted to a Model B

A Raspberry Pi Arduino board? That’s right! If you’ve ever dreamed about a device that could include the best features of both of these devices – well you may have just stumbled across your next purchase!

Alex Eames from RasPi.TV has sent me a preview version of his upcoming RasPiO Duino board, which adds an Arduino chip to your Raspberry Pi via the GPIO – and lets the two boards talk to each other. Yep – you can write programmes that use both of the devices at once!

Now I’m new to Arduino – really new. In fact, this board is the first time I’ve even seen an ATmega chip. I was keen on trying out Alex’s design as I wanted to see if you can use something like this to learn Arduino, rather than buying a dedicated board such as the Arduino Uno

Read on to find out more about the board, my experience setting it up and running my first ‘Sketch’…

Why Would You Want Both?

Having no prior experience with Arduino, this was my first question. It’s a natural reaction if you haven’t used an Arduino before as, like me, you won’t understand the differences and unique benefits of the Raspberry Pi and Arduino boards.

What the Raspberry Pi is good at:

  • Generally better with software projects
  • Can run a full operating system
  • Powerful GPU/CPU (SoC) + relative amount of RAM
  • HDMI/USB/Ethernet/Audio connectivity
  • Large storage options – using a larger SD card and/or USB drives
  • Easy Internet Connectivity

What Arduino boards are good at:

  • Generally better with hardware projects
  • Real-time – more precise and reliable timing than the Raspberry Pi
  • Analogue Inputs/Outputs
  • Almost instant boot
  • Simpler in operation – turn on/off without shutdown

So you see – combining the power and features of both of these boards would give you all of these benefits in a single device…

Enter The RasPiO Duino

To make this little collaboration of devices a lot easier for us regular folk to get involved with, Alex Eames has designed the RasPiO Duino. It’s an add-on board for the Raspberry Pi that includes an ATmega328 chip – the same thing popular Arduino boards use.

RasPiO Duino bag

The bagged RasPiO Duino (Prototype)


The RasPiO Duino comes in kit form for you to have some fun with initially. So even if your coding is terrible, at least you had a giggle building it right? I’m a fan of kit-form add-on boards – I find it very rewarding looking at a finished board soldered using your own hands.

What’s In The Box?

Well it comes in a bag actually, I just like that phrase. Rather than writing a huge list (there are a lot of parts!), here’s the contents of the bag all laid out:

RasPiO Duino parts

There’s a bit of soldering involved, but nothing too taxing

Soldering all those parts was great fun, and none of it was fiddly or lacking space. Here’s the underside of my finished board:

RasPiO Duino Soldering

Some pretty ‘Average’ soldering…

Features

Clearly the main feature here is the ATmega328 that gives us that Arduino goodness that we crave, however Alex gave some good thought to the rest of his board for practical use.

ATmega328

The party piece – the ATmega328


All of the relevant pins from both the Raspberry Pi and ATmega chip are broken out – three times in fact! The PCB has space for the included female and male headers, and also leaves you with additional pads for direct soldering (or more headers).

The board also comes with jumper sections for connecting the various pins to let the two boards talk to eachother (and other things I haven’t quite worked out yet):

RasPiO Duino Pins

All of the Raspberry Pi and Arduino pins are broken out


At the bottom of the board is a small prototyping area in the breadboard format that we all know and love. Despite being a small section of pads, there’s enough room here for LEDs, segment displays, voltage regulators, ICs and more. This is one of my favourite features:

RasPiO Duino Prototyping Area

A very handy ‘breadboard style’ prototyping area

Speaking of voltage regulators – there’s a dedicated section for one to be added, and Alex even recommends the right type to use if you need one for your project.

Another smart feature is the optional SMT pads that can be found lurking in various areas of the PCB. If you’re up for the intricate soldering, you can add surface mount LEDs, resistors and capacitors to make a really smart looking board.

Set Up

I have to be honest here and admit that I left this kit in my ‘to do’ box for a while, as I really didn’t think I’d have the know-how to set it up, let alone write code for it. 

However – after a couple of decent ales after work one chilly Wednesday evening, I arrived home with a newfound courage and enthusiasm to give it a go.

It was actually very easy – foolproof even. Alex provided me with a set up guide video (not public just yet) which takes you through the process step-by-step. Within 10 minutes of running various ‘wgets’, ‘sudo installs’ and ‘chmods’ – I had the board up and running, ready to code in the Raspberry Pi Arduino IDE.

Arduino IDE on the Raspberry Pi Menu

Accessing the Arduino IDE on the Raspberry Pi is easy

The lesson here – don’t make assumptions!

Arduino IDE On The Raspberry Pi

Once you have the board soldered and software set up, it’s time to go into the Pi’s desktop and use the IDE to send a ‘sketch’ to the RasPiO Duino. 

Arduino IDE Blink Sketch

The sample ‘Blink’ sketch ready to run



Sounds confusing again doesn’t it? Let me explain.

The IDE stands for ‘Integrated Development Environment’ and is the tool you use to write code and then send that code to the Arduino. With a normal Arduino board you would have to plug it into the USB port on your PC to send the code over, but with the RasPiO Duino it’s all done via GPIO.

That may seem a bit odd if you’re used to the Raspberry Pi where we can code directly to the board itself (using nano) and/or use network tools such as SSH or VNC to transfer Python files – but that’s just another difference between the boards.

The code for Arudino is also based on C/C++ – which I believe can also be used on the Pi – but any amateur like myself will have probably only come across Python on the Pi so far. 

Luckily Alex’s video guides you through this process and explains the steps you need to take. He also shows you how to load the example ‘sketch’ (script) to get an LED (included) blinking to test that the board is working correctly.

Raspberry Pi LED Blink

The Blink sketch in action – it’s ALIVE!

Time To Learn

Here’s the slightly frustrating bit. Despite everything I’ve picked up during my time with the Raspberry Pi, I now need to learn how to code with Arduino to get some good use out of this board. There’s no avoiding that part – the more you learn, the more interesting your RasPio Duino projects can become.

Much like the Raspberry Pi, there are loads of blogs, sites, books and other resources on coding with the Arduino, so it shouldn’t take long to start picking up snippets of information to use with this board.

The initial starter ‘Blink’ sketch is great to kick off with, but I wanted to get my RasPiO Duino doing something that the Pi couldn’t. I did a quick Google for ‘Arduino pulsing LED’ and found a good article by SparkFun showing you how to do it – with example code.

Here’s the link and the code below for you to try the pulsing LED project yourself – just make sure you move the LED’s positive (longer) leg to pin 11:

https://www.sparkfun.com/tutorials/329

 const int LED = 11;  
 
 void setup()  
 {  
 }  
 
 void loop()  
 {  
  float in, out;  
 
  for (in = 0; in < 6.283; in = in + 0.001)  
  {  
   out = sin(in) * 127.5 + 127.5;  
   analogWrite(LED,out);  
  }  
 }  


Summary

I’ve had a lot of fun playing with this board this evening. From soldering to using the IDE to getting that first LED blinking, it’s been a great learning experience so far with a lot more to go.

I think that’s almost my summary for this board – an excellent learning tool. I’ve put off the whole Arduino thing for far too long, but this clever add-on has started me off on my ‘Ard-venture’ into a whole new coding language and micro-computer. I’m getting the same buzz as when I received my first Raspberry Pi!

If you’re after one for yourself, I’m sure you won’t have to wait too long. As far as I know, Alex is finishing up his huge HDMIPi Kickstarter campaign, then moving on to releasing his other designs such as this board.

Here’s a peek of one of the more recent revisions…but will this be the final product? I guess we’ll have to wait and see…

RasPiO Revision

A recent revision of the RasPiO Duino…

 

Average Man

Be the first to comment on "A Raspberry Pi Arduino Add-On Board – The RasPiO Duino"

Leave a comment

Your email address will not be published.


*