Tuesday 24 July 2012

First Look at the GPIO Pins

One of the things that excites me about the Pi, is the ability to use the GPIO pins to control external devices.  Now I don't have much of an electronics background so this is all going to be pretty new to me.  I thought a good place to start was the article in the second edition of MagPi (the Raspberry Pi magazine which is an excellent read and I think compulsory reading if you are interested in the Pi).

Back in 2011 when I first got interested in the Pi project I thought I'd try and learn some basic electronics and so bought these from Amazon*:

Checking the components list I found my electronic kit had everything I needed.  All I needed now was a way to connect to the header pins on my Raspberry Pi.  According to the article I needed female to male jumper wires.  Now this was Sunday evening and I didn't want to order them off the internet and have to wait for them to arrive.  I wanted to start playing right then!  So I thought I'd go down to Radio Shack (a mere 5 minute walk from my house) and see if they had them...

Well, following my Radio Shack visit I have two pieces of advice for you.  Firstly if you want the sales assistants to leave you alone in Radio Shack then hang out in the electrical components section.  I'm sure if I had been looking at mobile phones I would have had multiple people ask if they could help me, as it was I got a pointer to the area of the store I needed as I walked in and then while I searched through draws of components for a good twenty minutes, nobody asked me if they could help.  Next time I'm in there looking at phones and someone asks if they can help me, I'm going to make sure I have a nasty electronics question ready for them.

But anyhow after twenty minutes of searching I couldn't find any jumper wires, so instead settled on these which I figured I could attach to the ends of wires I already had and then attach to the pins:

Which brings me to my second piece of Radio Shack advice: These are NOT the right parts!  As it happens I have managed to use them to hack a solution out of, which will do for now, but it's not one I'd recommend so I'm not going to go into the details of it here.  When I have a more permanent solution I will let you know.


I hooked up the circuit, following the digram from the magazine and fired up the RasPi.  Nothing went pop and there was no black smoke so all good so far.  Then I pressed the button and still no black smoke, but the faint shining of the LED; looks like I got it right!

Next step was to get was to install the GPIO drivers.  Now I hadn't yet connected my Pi to the internet, but no problem I just took my USB pen drive from my Pi and used my notebook to download the required file to the pen drive before returning it to the Pi. Then followed all the instructions without problem, until:

sudo python setup.py install

At which point I get an error message about not being able to download a requirement.  Looks like my Pi needs the net after all.  So I do actually have a network cable, the only issue with it is the length.  So the router gets pulled out from behind the sofa and into the middle of the room and then moving the Pi away from the monitor a bit gets the whole thing to reach.  Plugging the cable in makes some new lights light up on the Pi and then rerunning the command above works.

Next step is to create my Python program.  I manage to create the text file using the right click menu then using open with, I find my OS has a python editor pre-installed, nice!

I type in the code carefully as per the magazine, go to run it and get:

"Unexpected Indent"

What!?!  Python cares about how I lay out my code?  Python reads whitespace? Surely not?  But yes, indeed Python does care about indentations. Interesting...  I do see why this could be a good thing to enforce a standard coding style, but it worries me that there is code that I cannot see.  But removing one of the tabs from the line "<tab><tab>if mybutton == False:" fixed the problem and I had a working program which I was controlling with an external switch.

This is something I have been interested in doing for many years and have never even come close with any of my previous computers.  With the Raspberry Pi, I have a working prototype in a single evening.  Impressive stuff!

Tuesday 17 July 2012

My Pi has Arrived!

My Pi is here!  Very exciting.  So looks like I did everything right with the SD card, as it all booted up without issues.  Pictures of my board are here.

My two initial observations were just how small the thing actually is (I know I knew it was the size of a credit card, but it still seems amazingly small when you actually have it in your hand) and the second was how strangely satisfying it is to have a machine which boots to a command prompt.  Though I must admit I did spend a few minutes staring at said command prompt wondering: now what?

A little bit of digging in the wiki found the startx command and I booted into the GUI in no time.  So in terms of the accessories that I had, they all worked with no problems at all, just plugged them in and I was away.  I think I need to change the local to recognise it is a US keyboard, but thankfully I still remember where all the keys are supposed to be so didn't bother changing it at this point.

I didn't have loads of time to play with it this evening, so had a quick go with scratch before calling it a night. Didn't seem to be able to get any sound going, so that is probably the next thing I need to look at.  And for some reason I couldn't work out how to clear the stage in scratch.  But anyway I will leave you with my very first scratch program output:

Monday 16 July 2012

Final Preparations

My Amazon order arrived on time and all looks good.  I will say that the keyboard looks better on the web than perhaps it actually is.  In reality it is what I would expect for the price: nothing amazing but perfectly functional.

My last preparation task was to get my SD card ready.  I have decided to start off with the debian "squeeze" version from the RasPi website and decided I would use my netbook Ubuntu to write the image (may as well make this a Linux learning exercise at the same time!).  I used the excellent instructions from the wiki (http://elinux.org/RPi_Easy_SD_Card_Setup), which all went well expect that I ran out of disk space on the Linux partition on my netbook, so had to work out where the rest of my hard drive was "mounted" (Not quite sure what this exactly means, something to add to my list of things to learn at some point).  Decided to go for the command line option which worked out fine, but then when we got to re-sizing the flash partitions (http://elinux.org/RPi_Resize_Flash_Partitions) there seemed to be some maths involved, so bottled it and installed GParted which I have to say worked very nicely.  Next time I'll try it command line (probably...)

So I think I am ready for my Pi!

Fingers crossed I did everything right!

Oh and I think I have decided on my first project.  A GPS enabled car computer.  Watch this space for details.

Sunday 15 July 2012

My Background

This post was going to be about my further preparations for the arrival of my Pi, but I realised as I started to think about writing it, that it would make more sense in the context of my background and experience.  The tales and experiences of a power Linux user and a RasPi are going to be far different from someone who has little or no computer experience. (I lie somewhere in the middle of those two camps).

(Having got to the end of this post I realise this may be a rather long winded story to a simple conclusion so if you get bored at any point, feel free to skip ahead to the punchline in the last paragraph.)

I was born in 1981, the year that the BBC micro launched.  I like to say to people I will be the last generation who remembers a world before the internet; before mobile phones; a world before modern electronic technology became such an ingrained part of our lives (though writing that makes me sound old).

I have a niece who is four years old, she lives in London and I live in Boulder, Colorado and we use Skype (obviously with her parents too) to keep in touch.  But to her there is nothing amazing or magic about Skype.  It is just there and it just works.  As when I was growing up running water was always a given (I just turned on the tap and it was there); to today's children, technology is just there (you simply turn on the computer).  Ask me how that water gets to my tap and I'll mutter something about reservoirs and pipes that deliver it to the house.  And too be honest ask me how the internet works and I'll mutter something about servers and pipes that deliver data to my house.

But what I do know more about is things I can do with that data once it gets to me; how to maintain the machines that ensure the connection and I have a deep appreciation about how damn clever the whole thing must be.  "Standing on the shoulders of giants" is something I remind myself of constantly.  Everything that I do is built upon the work and achievements of some truly clever people.

Our first home computer was a Commodore +4 and that was the first computer which I began programming on.  I remember typing in code from magazines and drawing shapes to the screen.  Not long after that the machine gave up the ghost and that was the end of my programming efforts for a while.  Our next machine was an Atari STE which was primarily a gaming machine.  Actually thinking about there is no "primarily" it was just a gaming machine, but I still feel that those games had educational value and I still remember them vividly.  I traded goods between earth and Barnards star; managed cities, theme parks, armies, even entire civilisations; fought German soldiers from world war two and strange edible mushroom creatures in dark underground dungeons with a strange dog and lizard on my team.

After the Atari died we brought our first PC a 486, I can't remember the exact specs, but I got hold of an old version of Visual basic and began programming again.  My secondary school never taught much programming, but the Excel skills I learnt did come in invaluable later in life.  At university I started a course in Mathematics and Computer science with a plan that afterwards I would go into a software development role.  But I found that the CS modules I took were very theoretical and not what I enjoyed about programming and so when at the end of my first year, one of the mathematics lecturers suggested I transfer to the four year master of Mathematics course, I once again left programming behind for a little while.

After university I drifted into accounting (because that is what you did with a maths degree) and quickly realised that wasn't for me.  After that I found a job as a data analyst for Experian UK in Nottingham and as part of that managed to find some programming tasks that I could do.  After a few years I found I was enjoying the programming role far more than the other stuff which at that point was probably about 50-50 percent of my time.  So I decided to look for a full time developers job, which I found in Boulder, Colorado; which is where I have been for the last 18 months and am loving it.

In my day job I code in C++ and C#, I have always been a windows user and although I have thought about looking at Linux in the past, could never quite work out where to start.  When the RasPi began to get close to launching last year I installed Ubuntu on my netbook so I would have some experience.  So in coming back (after a huge and potentially boring detour through my entire life story) to my experiences with Linux: I guess I would summarise my experience as being experienced with coding and computers in general, but relatively new to the whole Unix/Linux world.

Can't wait to start applying the skills I have (and learning a whole lot more) to my brand new Raspberry Pi!

Friday 13 July 2012


OK so with the essential accessories ordered and on their way, time to think about cases.  Not entirely necessary, but I think probably worthwhile to protect my Pi and for the cool factor.

So I thought I would take a look at what's out there.  Obviously I haven't tried any of these out, so no guarantees on quality or functionality, just my thoughts from browsing the websites.

The Lego Case

I had to start with this one because it is so awesome.  Designed by a 12 year old from the UK; open source design from readily available parts: pure embodiment of what the whole Raspberry Pi project is about.  You can get the build instructions from the official Raspberry Pi website here and buy a kit with all the parts (£13.95 ~ $21.72) from the Daily Brick website here.  Although at time of writing they are listing an approximate wait of 1 week.

Downsides - there is no slot for a ribbon cable off the GPIO pins and it doesn't look particularly dust proof from the pictures.  But for sheer cool factor this has got to be a strong contender.

The Metal  Case

Looking for a seriously cool looking, seriously tough aerospace grade aluminum case which actually costs $10 more than the Pi itself?  Then look no further, the Billet Aluminum is the case for you.  Available for sale on eBay at $44.99 or for extra bling you can get it custom engraved with your own design!

Downsides - Cost! and again no slot for the GPIO ribbon cable.  But if you want to show you are not buying a RasPi because it is cheap, but because it is cool, then this could be the case for you.

The Shapeways Options

For anyone who hasn't seen shapeways before it is a site which allows users to upload 3D designs which they will print with a 3D printer and send out to you.  Further more you can then sell these to others.

So there are a number of Shapeways RaspPi cases:

This is just a quick selection of what is available.  My thoughts on them as a whole are:
  1. They seem a little expensive.
  2. I'm not entirely sure what the finish of a 3D printed object will be. (Mainly because I have never held one in the flesh.

The Plexiglass Case

Available on Amazon.com* at $18.50 this case allows you to protect your Pi while still basking in the glory of its beautiful design.  Hinged lid gives you access to your Pi plus we have a slot for the GPIO ribbon cable.

(* - Affiliated link - I will make a commission if you buy through this link.  If you don't like, don't click.)

The Adafruit Case

Similar in design and style to the Plexiglass case, the Adafruit case comes with the pedigree of a well established makers site.  This looks like a well built quality product and coming in at $14.95 one of the cheapest cases we have seen so far.  Again we have a slot for the ribbon  cable and we also have labelled ports.

At the time of writing there is a 1-2 week lead time on this case.

The Built To Spec Case

Another laser cut case, but this time in a sleek looking jet black.  This case come in at the cheapest of the bunch at $12.50 from the BuiltToSpec website.  It's a nice solid looking case, again with labelled ports and the ribbon cable slot. It appears perhaps slightly taller than some of the other cases,but has some definite style and at a price which seems right at home with the Raspberry Pi project.

Again looks like a popular product and at time of writing has a 5-7 business days lead time.

So what am I going to buy?

Right now?  I can't decide.  It seems like there is a lot of choice out there and I'm not quite sure what is going to work best for me.  I think I will wait until I have my Pi in hand and revisit the options at that point.  Maybe I should make my own custom case?


Well my Pi has made it to Kansas, so time to start thinking about what else I am going to need.  I have already assembled the below collection:

Which is a mini mouse which I picked up for $5 somewhere (not the best mouse to use, but it's Red!); a USB pen drive I got for free from a work conference and a USB cable which came from a old Nokia phone I used to own.  I need to check my USB power converters to make sure I have one which will delivery enough current.

My plan for the Pi is to use the USB pen drive to store all my work and files on then have a number of SD cards which I can try different O/Ss on.  That way all my actual "work" will be safe on the pen drive and I can reflash the SD cards as often as I want.

Additionally I think I need the following:

  • A keyboard.  I have a wireless one on my mac, but figured I'd pick a basic wired one to avoid any driver issues and to save having to keep switching the dongle over.
  • A SD card. One will be enough to get me going then I can buy more once I am sure they work.  I can't quite find what the minimum size needed is but I think a 2 Gig one will do me.
  • A USB hub.  With my above USB drive plan I am going to need one more USB port than the standard two that are on the B model.
Time to make use of my Amazon Prime two day shipping!

I ordered the below:

AmazonBasics Keyboard $10.77 AmazonBasics Class 10
4 GB SD Card $5.49
Belkin USB Hub $6.94

(Please not that the above prices are what I paid and not necessarily what they cost now.  If you click the above links and buy anything then I will get a commission which will promptly be used to buy more Raspberry Pi accessories.  If you don't like that then please don't click the links!)

So another $22.75 on top of the $35 I paid for the Pi.  Still looking like a cheap computer to me!

A couple of things to mention:

  • It seemed much more economical to get a 4 Gig SD card than a 2 Gig one.  So I upgraded.
  • After I ordered this lot I saw some comments on the RasPi forum which suggested buying a powered USB hub as the Pi can only supply so much power.  I think I will be OK with my initial setup, but maybe I'll need to upgrade at a later date if I want to start adding extra USB devices.
This lot should be with me tomorrow, look out for a full compatibility report when my Pi reaches me on Monday.

Thursday 12 July 2012

My Pi has shipped!

Exciting news yesterday:  I got my confirmation e-mail from Newark saying my Raspberry Pi has been shipped and will be with me on Monday!  I'm eagerly watching the UPS tracking site and can see that having started its journey in South Carolina; it left Nashville Tennessee this morning on its continued travels west.

Time to take a look at what else I am going to need for when it arrives.  I'm thinking some new SD cards and a new keyboard and I should be good to go.  If I can get my order in with Amazon today it should all be here together on Monday.

So no excuses for my lack of posting here anymore. Although interestingly I have already been approached by two publishers asking if I am interested in contributing to Raspberry Pi books.  I'm not quite sure what they took from my first (rather brief) two posts that made them think I would be a suitable author...