As anyone who follows my Twitter or Google+ will have seen, this year, for Hallowe’en, I attempted to make a fully functioning Pipboy-3000 to accompany my half-assed Vault Suit from the year previous. The idea was simple enough, take a Raspberry Pi, write some visually interesting Python, stick it, a battery and a screen on my arm and hey presto. The execution was obviously not as straight forward, but I was committed.
The first steps into the project came from playing around with the Open Street Map data. I fetched the XML with a simple Python script and used Pygame to render some lines for each of the paths and nodes. It was trivial enough but looked pretty good.
The software stayed mostly as just a map for most of the project. A random internet stranger jumped on the project and sent me a pull request which improved my scanlines and added some visual authenticity to it. This combined with the code now pulling the actual amenities and buildings from around Belfast, made the map look pretty cool. Next I started getting together the components for the hardware itself. The screen was an appallingly cheap car reversing monitor, with a resolution of 480×272, but it was thin and accepted RCA input so I was happy.
For the actual interaction with the software I looked at the in-game Pipboy’s operation. It had three main components, the illuminated primary section buttons on the front panel, the sub-section control dial on the left, and the up and down scroller just beside the screen. There is also suspected to be a 4th control on the back of the glove, but I decided to ignore that for this build.
I started writing the GPIO routines for controlling the primary sections, and prototyping the LED and momentary switch setup required for this. I had never done any GPIO or even really any electronics (since school), so it was slap-dash and very trial and error.
I bought a Pi Cobbler from Adafruit to assist with the prototyping and it was a godsend. Allowing me to have all the GPIO pins, labelled, going straight into the breadboard.
I was cheap and stubborn and didn’t want to buy self-contained illuminated/LED buttons, so found a cheap hacky way to mount LEDs loosely over the momentary switches and got a pretty functional, if incredibly fragile LED button. Needless to say these turned out to be a stupid idea and in the final build I moved the actual buttons to the top of the frame.
For the mould itself I was stumped. I had absolutely no idea how I was going to contain all this. At this point I had only a few weeks to Hallowe’en and I was even asking the Farset Labs directors if they could get me access to a vacuum former. Thankfully a co-worker suggested Polymorph. I never knew this stuff existed and it turned out to be the most fun I’ve ever had with a tub of white pellets in my life.
If you’re unaware of the substance, it’s a polymer that becomes very pliable and fuses with itself when immersed in water heated above 62°C. Then when it cools it becomes as rigid and tough as nylon. I immediately started playing with it and prototyped the main two components of the physical build, the bracer and faceplate (seen here with the screen in-situ).
It took a few more tries to get used to the stuff and although I think it is amazing, it’s definitely not the ideal tool for this kind of modelling, but for prototyping I can’t recommend it enough as it is cheap (enough) and reusable.
Now I had pretty much all the components ready (although the software was still iffy), so it was time to start the final build. For reference, it was now 2 days before the Hallowe’en party I was building this for.
The picture below shows the first compilation of all the components into the final casing. This was before the LED buttons gave up the ghost and had to be redone.
At this point I realised I had almost completely forgotten about powering the damn thing. The Raspberry Pi was asking for 5V 700A (min) and the screen was expecting to be in a car, so it was asking for 12V 1A (but would accept pretty much anything between 10 and 15). Thankfully I got my hands on a couple of high-voltage (3.7-4.2V) AA-form li-ions. With 3 of them I was to expect a range of ~10V to 13V. The screen was happy with this, but I ran it through a 5V regulator for the Pi, which worked, but was not great for battery life. I chopped up a few cables, attached them to my makeshift power board and we were mobile.
This is an internal shot is from around that time, with the repositioning of the buttons to the top. (WARNING TERRIBLE WIRING PRESENT).
All that was left was some final painting and finishing and we were there. I took this opportunity to tune the software, adding more sections, world map, local map, radio(!) and even the foundations of a twitter client. It was at this point, whilst testing the newest software additions, that my shoddy wiremanship (it’s a real word, ok?) led to the demise of the entire project. A loose wire shorted the power board and managed to set the screen on fire… 2 hours before the party.
Thankfully everything else survived, the Pi and components, I even branched and modded to software to operate its sound effects and radio stations blind, but it wasn’t good enough. I was heart broken and went to the party with it non-functioning. I intend to replace the screen in the new year and see it through to completion, but right now I’m still too sickened by the tragedy.
For now, here’s how I’ll remember the little trooper.
The code (without the last minute hacks for blind operations) is available here. https://bitbucket.org/grieve/pypboy/