Tuesday, 29 March 2016

Raspberry Pi shield design

Sometimes I feel a bit like the late kid to a party. The one who's just got there after everyone else has already got blazing drunk/copped off/filled the kitchen sink with vomit. It's taken me a long time to appreciate there there may actually be a place for the  Raspberry Pi microcomputer. So while I'm just working out what this little box of tricks can actually do, and how to coax it into life using a cobbled mix of PHP and Python, everyone else has already been there, done that and moved on.

But in all honesty - much like my recent foray into the world of Arduino - I've used these platforms because someone else asked me to, not because I wanted to. I can't pretend to be a convert to R/Pi, but it has been fun seeing what's possible with a bit of "creative coding".

Anyway, I've been using R/Pi and Arduino together (double-shudder) to create hardware that can be controlled via a series of web pages on any smart phone/tablet.

Once the software was written, I needed a way of getting the two connected together without leaving a mass of wires and breadboards lying around the place. What I needed was a Raspberry Pi "shield".

I didn't really fancy making a double-sided board, and since the 0.1" pitch sockets would be mounted on the non-etched side of the board, I had to plan for the other stuff (Arduino, sockets for connecting other devices etc) to be surface-mounted. So the etched tracks would be "face-up" with the Arduino (ProMini) mounted on top.

As I didn't have any surface mount sockets for the Arduino, I chopped up some DIP sockets and bent the little legs out to the sides.

Then, placing the Arduino in the sockets, to ensure they remained the correct distance apart, held the whole thing in place and soldered the legs to the PCB.

After fitting a couple of extra sockets in a similar fashion (I couldn't use them "correctly" in the normal through-hole fashion, as putting them on the underside would cause them to clash with the surface of the Pi underneath) the "shield" was pretty much done.

The total thickness of the entire thing is less than 40mm. Less than 35mm if I take that rather unnecessary ICSP header off the Arduino.

The PCB was just drawn freehand in ExpressPCB. With a bit of planning, I'm sure the "shield" wouldn't need to be even as wide as the Raspberry Pi- making it sit nicely inside even the smallest of enclosures.

After weeks of being a bit of a code monkey, it's been a pleasant change to stain my fingernails brown and make my hands smell of ferric chloride again. Less "work" and more electronics stuff please!