I recently acquired one of the rare, albeit flawed, Fallout 4 Deluxe Bluetooth Edition Pip-Boy 3000’s that were originally supplied by ThinkGeek and as I understand it were limited to 5000 units worldwide. Seemingly these units were flawed from day 1 and lots of people had issues with them failing, the one I acquired was one of these defective units, but I took it on board with the mind that one way or another I’d make something of it.
Having good hardware is only good if you can interface with it, this past phase of the construction has been trying to work out the best way to interact with my software using the PCB I created previously.
Architecture
To better understand the approach it’s worth first talking about the physicality of how this all connects together so we know where to start when it comes to writing code.
The board is based around an MCP23017 GPIO expander connected via I2C, all the buttons and rotary encoder are on bank A of this chip. In my case this is then connected to a Pi Zero 2 W via the I2C breakout on the back of the HyperPixel display, this adds a little bit of added complexity as the I2C on the HyperPixel display as it turns out is I2C over GPIO, but more on that later.
Finding the right hardware is one thing but all of this is for naught if there isn’t software to actually bring all of this functionality to life.
Companion App
The obvious first choice for software when it comes to creating a Pip-Boy is the companion mobile app that was used alongside Fallout 4 on release, the developers did a great job replicating the in game UI and the built in demo mode was perfect for prop use. If you’re not using a phone though then that’s a bit more challenging, especially if you want to start customising things a bit more and using your own input controls.
At this stage I had a working PipBoy, the screen was fine, I had working buttons, the software was fine, but it wasn’t perfect and I had some ideas about how I could make things so much better.
When I switched to using the HyperPixel screen all of my GPIO connections were now used up so if I were to continue using the buttons the way I was doing I was going to have to come up with another solution. Luckily the screen has an i2c connection on the back of it and after some research I discovered I could get a breakout board that had I/O expansion over i2c using a PCF8574 chip, so I bought an Adafruit breakout board and started to prototype how it would all connect up.
One of the key aspects of each PipBoy iteration I’ve worked on has been the element of having working buttons and dials, so after finding the appropriate display for the job, the next most important thing was to find appropriate buttons and dials and to integrate them with the software in a way that is functional.
Looking at the game model there are a few main controls, there is the dial in the top right located next to the 3 main navigation buttons (STAT, ITEM & DATA), below that there is a dial and rocker switch for the radio. Elsewhere on the device there’s a button on the very top and then a light that may also be a button on the front of the holotape deck. In my recreation the radio buttons are already an apspect of the radio module made by The Wand Company, so that’s already taken care of, the main buttons we’ll need to make use of for navigating the user interface are the 3 navigation buttons and the dial.
By far the most difficult part of this build has been sourcing a display screen, at the time of writing this I’ve tried maybe 4 different displays. The display should be an old 4:3 ratio CRT, but of course the game has taken some liberties with the reality of cathode ray tubes, given the physics involved steering electron beams with magnets, the tube of a canon Pip-Boy would have to travel right through the wearers wrist.
This development log is going to act as a record and self documentation for the path I’ve taken to create a somewhat working Pip-Boy over the past decade.
This isn’t exactly my first Pip-Boy project, like many others I also previously had the Fallout 4 collectors edition into which I jammed an old smartphone and had running the Fallout 4 companion app and that sat on my shelf as a display piece for years, that is until the phone battery exploded, it wasn’t exactly designed to be on charge with the screen on 24/7/365.