(This is a collaboration between myself and my friend and purveyor of fine electronic bits, S.K. Pang)
How would you connect an Arduino to a Raspberry Pi? Just plug it in via USB as you would normally do with an ordinary computer, right? That takes up one of the precious USB ports and while you can use a hub, that takes up more space than the beautifully minimal ‘Pi and just looks ugly. Not a deal breaker per se, but still, unpleasant.
Why would you connect an Arduino to a Raspberry Pi? You probably want to use a shield or two to add extra functionality to your ‘Pi, and really, in this scenario the Arduino is just acting as a proxy between the shield and the ‘Pi. I find this a bit superfluous as the ‘Pi itself has pins and peripherals that can act as their Arduino counterparts.
What makes Arduino great is the ecosystem around it — the countless number of people working on projects, answering questions, writing code and developing shields for it. These all take time and I am sure the ‘Pi community will be as vibrant as the Arduino one as more people receive their units but can we somehow link these two together for extra awesomeness?
Introducing Ponte, our (currently experimental) design that aims to be the “bridge” between the Arduino and Raspberry Pi hardware. It serves two purposes: You can either plug it into an Arduino to link it to your ‘Pi or you can use it to connect Arduino shields to your ‘Pi.
The first case is useful for times when you want to use Arduino to simulate certain things, say for instance creating a behavioural model of another part of the system you are developing and the second case is simply for when you want to extend the functionality of the ‘Pi with add-on Arduino shields. (If you haven’t seen it already, check out Shield List and prepare to be amazed as you browse through nearly 300 existing shields!)
The idea is simple, consequently the circuit itself is not very complicated. With some clever software hackery, we should even be able to use existing Arduino sketches on the Raspberry Pi. There is promising start for that here. (I was actually going to implement this myself but there is no need to reinvent the wheel I suppose)
For those of you interested, here is the current version of the design:
(click thumbnail, receive larger image )
The design files will be released as open source hardware once we are happy with our prototypes but in the meantime we are looking forward to your comments and suggestions. It is 2012, so this is pretty much an RFC in the form of a blog post ;)
Spot any embarrassingly fundamental errors? Should we have picked a better ADC? Do you think the clever power selection/prioritisation bit is actually not that clever? Let us know before we send the gerbers off to the fab next week!
(Probably unnecessary but sort of a ‘just-in-case’ legal bit: Arduino and Raspberry Pi are registered trademarks and this site is not associated with them, so yeah.)