maandag 28 december 2020

RetroPi Handheld

Many years ago I bought (of my first real wage) an Atari Lynx:

It was the first handheld game console with a color screen, and I absolutely loved it. And I still own it, but every time I pick it up it's a bit disapointing. And that's mainly due to the screen, which was a marvel at the time, but does not really hold up to modern standards. Now there is the McWill upgrade which will replace the screen with a modern high-contrast LCD, but at 100 Euro's that's quite expensive, and actually almost more than the console is worth.

So while I'm still trying to decide if I should do this, it may be cheaper and more fun to try and build a Lynx-like console myself, using a Raspberry Pi.

Yes, this has been done before, and they are comercially available as well, but let's face it: building it yourself is the most fun.

Examples:

Pi Portable Console on Hackaday

GamePi by araymbox

The FreePlay Zero

PiCicle kit, available on Tindie

Well, simply Google 'Raspberry Pi Handheld' and you'll see what I mean. But they all lack one specific feature; the are not designed by me ! ;-)

Let's start with some inventory, and see what I have

First: the screen. It's a 5 Inch HDMI Display, 800x640, with touch controller. This model is probably a bit older, since all the models available today have 4 screw-holes at the corners and mine has none. But this one from Waveshare looks very similar.


5inch-HDMI-LCD l.jpg 

Next: A Rasberry Pi 3 A+. This fits directly to the screen (unlike the RPi Zero), yet is not a bulky as a standard Pi 3 since it lacks the extra USB connectors.

Since the IO pins on the Pi are now difficult to reach, (and because it's easier to interface ), I'll use an Arduino to read the buttons and joystick and simply emulate a USB input device. Someone callling himself 'GAMELASTER' already created a neat sketch for this, including some instructions on how to test and build it. Or maybe use the 'GamePi_Zero' code from the GamePi Zero Instructable, which also contains a great drawing on how to connect all buttons.

Power has to come from a USB Powerbank, since that is the easiest way to get a rechargeable battery in there.

For the D-Pad and Buttons I considered using these standard PCB switches:

Which has as disadvantage that they are very 'clicky', so they will make some noise while playing. Then I came across these:

They are basically the same, but hey have a silicone dome which makes them 'silent'. Not as widely available as the standard ones, but I got them from The Pi Hut.

Connecting the parts

I connected the Rawpberry Pi to the screen, created a SD card with RetroPie and started it up, just to see if it would work. Which it does, although I had to use a 5.2V 2A adapter to get it to boot without 'undervoltage detected' warning. Which indicates that the unit will eventually use quite some power.



And when connecting it to a standard USB powerbank, I get the same problem so that's not a good option either. So I think I'll use a pack of two 18650 cells. When placed in parallel they will provide approximately 19 Wh, which hopefully be enough to power the set for some time. To connect and charge the batteries I used a TP4056 module, which is capable of charging 2 cells.



(Photo taken from ACOPTEX blog)

This will give us 3.7 V, so it has to be boosted to at least 5.1 to be useable. A MT3608 boost converter takes care of that. This unit can deliver 2A, so that should be enough. And it is, once connected to the Raspberry Pi, it boots fine and shows the RetroPie screen.