Lazybox

  • 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.

  • The current code is very rough, but I added support for held keys (for volume up & down). Just for reference, the alpha version is in attachment. Keyboard support requires root access, so I modified one line in phoniebox-gpio-buttons.service:

    Code
    ExecStart=sudo python /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons-picade.py


    It would be nice to also enable Chromecast streaming via catt.   I'll see if I can include that as well.


    Once I'm back from vacation and I have the final small bits of kit, I'll post a detailed how-to with a more robust script.