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.

Initial Investigation

The failure mode of these devices seems to be mostly the same from what I’ve seen, they all get stuck on a “please stand by…” screen during boot, there has been some success in getting past this however, some people had success with replacing the CR 2032 battery inside, some peoples mysteriously started working again, and more recently as covered by Your Geek Fix here https://youtu.be/YW0sLODW9-U?si=MxcHrdV9U6ZFE-J_ there was some success getting it working by replacing the MCU (ATMEL ATSAM 9635) completely, so repair wasn’t completely unfeasible.

The unit I got my hands on already had some attempts at repair and even came with an extra MCU so it’s fair to assume most of the usual fixes had already been attempted. Looking inside we’re able to identify a bit more about how this thing was designed, the system is designed around the aforementioned Atmel ARM based MCU, a Silicon Labs WT32i to provide the bluetooth audio and a display that appears to be the InnoLux ZJ050NA-08C 640x480 TFT-LCD.

Decisions

So, I could spend some time trying to repair this thing but at best it would only ever be as good as it was to start with, a glorified bluetooth hands free device, and who even makes phone calls any more? The good thing about this device, and what everyone clamoured for when it was released was the promise of having a real working Pip-Boy on their arm, and I am no stranger to that desire. To that end, given the work I’ve already done as part of my Building the Pip-Boy 2000 Mk VI series, maybe I could instead use this device as the basis for something bigger and better than the original, after all, technology has come a long way in the 8+ years since the original device was announced, and I probably have more budget than the original manufacturer.

Reverse Engineering

The first step to making something out of this is to understand what I’ve got to work with, the display is the main thing I want to retain and as I previously discovered this is likely the InnoLux ZJ050NA-08C of which I managed to find a datasheet for, the key thing I wanted to understand was the pin assignments and if they were fairly standard, as it turns out yeah it’s a pretty standard 50 pin RGB connection. My plan here was to connect it to a Raspberry Pi Zero 2W, which is apparently now my go to for Pip-Boys, so I got my hands on an RGB LCD HAT for the Pi which I believe was originally supplied by Waveshare, I also picked up another of the same display both for cheap on AliExpress.

I had some mixed results with the LCD on the Pi, I started out using the display and HAT that I got on AliExpress and did some of the initial investigation using a Pi4, I started at the deep end and dug out all of the timing characteristics from the datasheet and started plugging them into the Linux devicetree and thought I was onto a winner, I had the display displaying something albeit flipped and kind of red and blurry.

Eventually I had some completely accidental progress, I’d taken one of the SD cards I’d used in a different Pi with a completely different display and for whatever reason, the screen actually displayed reasonably well, after going back to the drawing board and trying a completely different set of configurations, some hours of digging through the source code and just general trial and error, eventually I got something working.

Interfacing

The next thing to understand will be the buttons, dials and lights and how I can make use of them with the Pi, I already have some experience doing this kind of interfacing since building the PCB for the Pip-Boy 2000, so all I really need to understand here is what switches are present and how I might go about making use of them.

The main dial on the Pip-Boy 3000 is the menu dial for selecting STAT, INV, DATA etc. and in this device that’s been implemented in a rather simplistic way, the clicking of the dial etc. is just sprung plastic and then a copper spring drags across exposed contacts on a PCB as a rudimentary multi point switch, there’s a 6-pin JST-PH connector coming off it, 1 pin as the common rail and then a pin for each menu position, easy.

The top dial here is used to switch between the sub menus and has a 3-pin JST-PH which lead me to believe that this was probably a rotary encoder of some sort, I was able to prove this with an unnecessarily elaborate test bed and an oscilloscope.

There’s also a microphone and small loudspeaker inside that were originally part of the bluetooth hands free setup, as of right now I’m not sure how I’ll make use of these, the speaker I’m fairly confident I’ll hook into the Pi and use it for radio etc. but I’m not sure if the microphone is required. Part of this original audio system is also the small front dial which has what I believe to be a 100k potentiometer behind it that I figure was part of the amplifier circuit for basic volume control, I’ll keep this in mind when it comes to making use of the loudspeaker as it probably makes sense to continue to use that as an analogue volume control rather than add analogue input to the Pi.

The rest of the connections inside are then just basic push buttons and LEDs that I can re-use for controls, power switches and indicators etc. There’s also a USB 3.0 type B socket on the base that I’ll likely use at the least for power, but potentially I could also use this for USB OTG connection to the Pi Zero to get serial access etc. if required.

Now that I’ve understood all the interfaces and the display, the next step will be to prototype connection to all the interfaces and being to assemble the basic functionality. Following on from that if all goes well maybe that will lead into another PCB design, please stand by…