I wanted to build a phoniebox of my own, but I've got two left hands. Looking at all the beautiful examples out there, I got discouraged. In the end, I had a flash of inspiration.
As there may be others without the time or skill to build their own phoniebox, I figured I'd share my results. I still need to finish the actual case, but as I'm leaving on holiday soon I decided to post my experiences so far.
The starting point for my build is a PiCade console. The nice thing about this case is that it comes along with all needed buttons, speaker, proper mounts etc. The only must-have components to add are the RFID-reader and a RaspBerry. I used a spare 3+ for the build.
I used the version without screen as it's a bit more compact & because our toddler tends to toss toys around. I included a Pi-Juice as power source, although you could also put a regular power bank in there or leave out the batteries entirely. I built the case as described in the instructions, only leaving out the joystick to keep room for an RFID-reader. There is still some wiggle-room in the case as-is, so it might be possible to keep the joystick in there.
In terms of software, some minor adaptations were needed. In sequence, I installed:
- Retropie
- Drivers for Pijuice & the Picade hat
- On top of that, the phoniebox one-step installer
The speaker works via the picade drivers (configured in /boot/config.txt). One thing which stumped me for a while were the button pins. Picade maps these to virtual keypresses. I didn't find a way to turn this off. I suspect adapting picade.dts to remove the key mappings might work, but am not familiar enough with Raspbian to do so. Instead, I rewrote the gpio_buttons.py script to read keyboard events instead. This works nicely, although I still need to adapt the code to support sustained keypresses. That shouldn't be difficult at all.
Right now all buttons & the speaker work. I still need to do the following:
- I ordered some cabochons and will stick one on top of the joystick hole. Since the RFID-reader is located directly below the gap, it's a nice visual indicator for my kid ("Hold cards in front of the dragon eye").
- Picade provides a printable template of the console artwork template. I'll print my own version which adds labels to the buttons & some nice artwork.
- Temperature of the Raspberry (3+) seems to run between 45 and 55 degrees. While that's probably okay, I would like to do a bit of cable management to improve air circulation.
- When I get back, I'll tweak the button detection script a bit to support sustained key presses, key combination detection etc. If desired, I can provide my code and a short installation guide.