Musings on the Raspberry Pi
I recently acquired a Raspberry Pi, the £25 computer which is the brainwave of various UK industry luminaries, most famously including David Braben, the author of 8-bit classic 3d-space-shooting trade game Elite. I have a few thoughts about how it’s delivered, what it costs, who it might be aimed at, and what might be done to improve things for level 2.
The Raspberry Pi arrives as a naked circuit board about the size of a box of what we in the UK call fags. This always amuses Americans, but Americans are of course easily amused, albeit for an extremely short duration. The circuit board has as many connectors on it as you could reasonably hope for in a computer – two USB ports, stereo jack, Ethernet port, micro-USB power input, HDMI out, and composite video out. There’s even something called a GPIO which is a bunch of pins which you can connect “things” to that do “stuff”, but that’s for very clever propeller head types who understand electrickery, and not programmers like me.
Of the USB, Ethernet and stereo jack, we shall have nothing much to say. Or indeed the GPIO thing. They are as they are and I dare say no improvements could be made on them. The other outputs represent some rather odd thinking.
HDMI is the future! HDMI is awesome! VGA is dying! … but unfortunately, HDMI is only available on the very latest monitors and newer TVs. So we’ve got a £25 computer, and the theory is that you’re supposed to pick up and use some existing mouse, keyboard and monitor that you’ve got, probably gathering dust in the spare room, to save you a pile of cash. Except, of course, your monitor only has the usual D-shaped SVGA input. Everyone I know has a spare SVGA monitor lying around. Not a single one has a spare HDMI capable monitor. A few people quite likely have monitors with DVI-D input, but I have a feeling that like mine it is already in use as the main PC monitor. The solution in my case was to buy an HDMI cable and a brand new HDMI-capable monitor. £115 vanishes.
Then there’s this thing about HDMI not exactly being reliable, like SVGA is. In my case, all I got was a black screen on startup. It could have been any number of things but fortunately I’ve got quite a diagnostic mind and I’m not 12 years old, like many of the prospective owners of the Pi are purportedly meant to be. Suffice it to say it took me an entire evening of Googling around to discover that you had to create a text file with HDMI configuration parameters in it to get the monitor to actually display anything. This is fun… for various values of “fun” which unfortunately lie somewhat outside my comfortable parameters. You see, I spend all day, every day, trying to figure out why the fuck stuff doesn’t work properly. I was rather looking forward to plugging in the Pi and tinkering with it straight away, but I didn’t even get that far. I had to wank about fiddling with it just to get a fucking picture. Yes, that made me cross.
A nice touch but pointless. Almost all composite-input devices likely to be found around the home are now rightfully in landfill and those that aren’t are generally massive and not the sort of thing you generally want cluttering up a spare corner of a small room. Not only that but they tend to be Jurassic power-guzzling dinosaurs and prone to going on the blink. The other day I spent a happy afternoon coding in CRT distortion effects in the new version of Ultratron. So anyway: composite output – might as well have saved the money on providing this output, no-one in their right mind needs or wants it who is going to own this device. Yeah, even you. You’ve got a spare old SVGA monitor in the garage too haven’t you? Throw that old black-and-white portable telly in the skip.
Micro-USB Power Input
Er… why? I’ve got about 20 different adapters lying around my house, all with sturdy jacks, providing voltages anywhere between 3v and 12v. I literally have a box full. I expect mostly everyone else does too, because over the last 30 years, nearly every widget you’ve bought came with its own. I bet amongst them all you’ve got a 5v DC input you could have already used. Well, it doesn’t matter, you can buy the flimsy microUSB input instead for another £5.
Supplied without an SD Card or software
Now, here’s probably the most controversial thing I’m going to say about the Pi. As it comes, it won’t actually switch on or do anything, even if you’ve got the spare keyboard, mouse, and shelled out £85 for a monitor and cable. You also need to get yourself a 4GB SD card to put on some firmware and an OS. Although this process is trivial, and the cost is nothing to worry about (literally, the price of a bag of peanuts), it’s completely unlike my first experiences of computing.
My first real computer was a Vic-20, back when they first came out. It cost quite a lot of money – a lot more in fact than all this Pi stuff has come to in real terms – but: I plugged it in to the telly, switched it on, and tuned the TV using the twisty analogue knob. And there it was: a BASIC interpreter, 3583 bytes of RAM free (though 2 went missing immediately somewhere). It came like this out-of-the-box. I could get coding on it within seconds. It’s this plug-and-play appeal that turned so many people off of PCs for gaming and on to games consoles in the first place and represents exactly why software engineers are so derided by mostly every other engineering principal.
Built to a Price, But What Price And Why?
So the Raspberry Pi commands all sorts of cool headlines like “a computer for just £25!” mostly because it sounds, well, cool. Except I’ve spent £200 on mine in total, which coincidentally is about what my Vic-20 cost me albeit in 1982 money. That’s clearly beyond typical pocket money for today’s cash strapped youth who of course absolutely, completely need mobile credit and, er, whatever it is that teenagers spend money on. Drugs I expect, as they can’t easily get booze any more.
About £165 of that cost was the monitor, keyboard and mouse; the keyboard and mouse were really just me being slightly extravagant (I have an awesome tiny Cherry ultra-compact keyboard), but the monitor… well, that was annoying, really, as I could have used one of several other devices kicking about the house if the Pi ditched its HDMI and composite outputs in favour of something more befitting its status as a cheap toy that is meant to be attached to stuff you have lying around gathering dust.
So with the Pi only about 12% of the total cost of the whole setup, why exactly is it designed like this? Why is it built to meet a £25 price point when a few bob here and there would barely change the overall cost but vastly improve the whole experience? Who buying one of these things actually gives a fuck that it’s £25 and not, say, £40? I really have no idea.
It would appear that there have been engineers involved in the market research. Oh dear.
No-one buying computers cares that it costs £25 or £35. Especially when you have to buy a bunch of other things to make it work anyway, and then waste an evening trying to get it to boot. There are of course a few electronic engineering types having gentlemen’s accidents over the GPIO port and that’s great, but I seem to recall that the Pi was all about getting a generation of kids into computing as we used to know it, back when we had Spectrums, 64s and Amstrads. The problem is that price was only a small factor in the choice of whether we owned one of those home computers back in the day, yet it seems to have been absolutely the driving factor in designing the Pi.
What I’d Do To Make Me Happy
Were I to think about the successor to the Pi, apart from the usual guff about making it a bit faster and giving it more RAM through the inevitable march of progress (nabbing the chip out of a Galaxy S II would just be incredible), I’d ditch HDMI and composite out in favour of a technically obsolete SVGA connector. I suspect the cost would be as near as identical as to make virtually no difference to the prospective buyer’s financial situation – as we’ve already established, the cost of a Pi is only actually a fraction of the total cost of actually using a Pi. Not only would this mean you can use that old Dell monitor, it’d also work, unlike the HDMI port, which doesn’t.
Secondly, I’d supply the Pi with a 4GB SD card plugged in to it already, with an OS on it, that boots. In fact I’d probably consider wedging the thing inside a keyboard casing with a trackpad and then you’ve literally got something just like one of those home computers of old, the spirit of which the Pi is attempting to capture. If you sold the bundle of things ready assembled for under £100 you’ve got a no-brainer for any prospective parent thinking about getting one for his or her geeky kids.
Lastly I’d switch from using microUSB power input to a standard 5v DC power input. And then I’d supply the device with one anyway, in the box.
The choice of Linux as an OS is unfortunate but a bit of a necessity given there’s bugger all alternatives yet. Linux is incredibly complicated. Just look at the BASIC interpreter command prompt startup of a Vic-20 compared to the Pi. Eek. This isn’t really going to help a new generation of geeks get in to programming; it’s likely to make them think, this is just too much effort for too little gain. Well done for creating the sort of barrier to entry that filters out all but the most heavily bespectacled and introverted propellerheads but is that really what we need? I believe that the barrier should be as low as absolutely possible in order to hook people into fiddling before people need to get into the nuts and bolts. Look at Mac OS. It’s got Unix underneath but even an idiot can use it after switching it on. I think the Pi is going to need something like that.
Anyway, more ramblings about the Pi later, as I get to grips with the horrors of Linux and C programming (Python! You must be joking). Eventually I’m hoping to get some Java code running on it.
You might think I’m being a little negative about the Pi so far. Actually I’m having a reasonable amount of fun tinkering with it; my fears are really more meta-fears; I suspect that the Pi will turn off more people from software engineering than it will turn on, supplied as is. It is the very raw roots of modern computing. Unfortunately those roots are ugly, messy, nasty, clunky things; and one of the chief reasons I don’t use Linux as my main OS, and also one of the main reasons I use Java as my weapon of choice.
Talking of Java, seeing a bit more of an effort to support Java on the device wouldn’t go amiss. After all, it’s very, very likely that Java is what they’re going to be actually exposed to in higher education. Not Python.