My latest projects have been pretty interesting of late. I’ve been playing with the RaspberryPi. For those that don’t know, the RaspberryPi is a little credit-card sized computer designed to be a hackable, simple system similar to the golden age of early micro-computers such as the BBC Micro et al. It hasn’t quite got there yet and it’s still very much in the early stages, but being interested, especially given it’s very low price point of around £20, I decided to pick up one of the development boards.
First of all I decided to buy a simple starter kit from SK-Pang, as having the board laying loose on my desk seemed like a recipe for disaster. The whole package together seems quite nice and after digging around for an SD card and imaging it with a copy of debian, everything seemed to work fine. What I wanted to do first though was get it on my wifi so I wouldn’t have to unplug my main computer to be able to network it. I bought a powered USB hub and a USB wifi dongle and while both seem to work, the RaspberryPi seems to have some power issues – something that’s been bought up on the forums et al I’ve noticed. It seemed that while the RaspberryPi works fine off the independent power supply I provide it, either it or the hub are drawing power on the USB port the hub is plugged into, making the RaspberryPi become a little unstable and not powering the wifi dongle enough for it to complete loading it’s firmware. One solution I’ve seen is to mod the USB cable between the hub and the RaspberryPi to sever the +5v power line, so that there will be no power draw. I’ll give that a go in the future, but until I work around my other issue, there isn’t much point.
The second issue I’ve been having is my SD card. The crappy no-brand 2GB one I had laying around works, but only barely, and constantly causes -110 errors, etc when in operation, if the RaspberryPi will even boot from it at all. It’s extremely temperamental and often has I/O issues. With that in mind, I bought a 16GB branded card and then found to my dismay nothing I had in terms of card readers could even detect it. After finally trying it out in a ASUS eee, I could see it, but it would constantly error, so I presume it was faulty. Until I can get a reliable, working SD card my RaspberryPi experiments are at a bit of a stand still.
However, until I can start playing directly on the hardware again, I plan on working on a custom image in an emulator such as QEMU. I don’t want half the stuff that comes with the standard debian image (such as X windows) as I plan on using the RaspberryPi to play with OpenGLES directly or with network controlled things. I have no use for X as all the graphical stuff I want to do I can run directly on the hardware without it – I’ve been looking at the Clutter toolkit as platform to work with rather than doing everything from scratch.
The RaspberryPi in it’s current state certainly isn’t ready for the faint of heart yet and I wouldn’t say it’s quite at the stage a kid could just pick it up and play with it yet, like they could with a BBC Micro. Making the device a little more robust in it’s handling of SD-cards and/or giving it the ability to boot from USB storage devices would be awesome and make having to deal with crappy SD-cards a non-issue. The power issues are annoying and I think it would be better to either up the overall power on the board and isolate the USB power from the board power with a proper power management/current limiting/etc chip or to just remove power from the USB ports entirely and make them data only, so powered hubs are required. Perhaps both could be done by isolating the power via a jumper on the board allowing you to put the jumper on and use low-powered devices like keyboards directly but being able to remove it and use a powered hub without risk of interference between power from the hub and the board.
It’s a fantastic project though and the few problems it has are annoying but not insurmountable. Until I have some money to spend, I’ll be playing with it software-only in a VM.
The other projects I’ve been working on are test chambers for Portal 2. For the most part I’m just playing without too much of a serious effort towards making the levels actual fun, but I think a couple of the ones so far are definitely entertaining.
First off is Square.
Square is a simple level designed to test out a couple of different, simple ideas. I think it’s one of the better ones out of the first four I made.
The second chamber is Bounce.
Bounce was to test out some ideas with lasers and to use misdirection to throw the player off the trail. Some things you think yo shouldn’t do, you have to in order to succeed.
The third chamber I made was Ups and Downs.
Ups and Downs is a bit ropey. It suffers a bit from not being obvious what you should do, though the clue is in the name to a certain extent. Plays with the concept of having the user backtrack multiple times, running back and forth to be able to get out.
The final chamber as of posting I’ve made is Junction Box.
Junction Box was an experiment in multiple rooms and conditional logic. Using a combination of lasers, switches and folding panels, I was able to make a corridor that changed shape, redirecting you to one room or another based on setting the user could apply with a switch. It has some rough edges, but I think it’s pretty good and succeeds at being challenging and fun.
I also recorded the solutions to each chamber and put them up on youtube, if you find you get stuck on any of them. You can watch them below.