Professional Documents
Culture Documents
GamePi The Handheld Emulator Console PDF
GamePi The Handheld Emulator Console PDF
by araymbox
Intro: main difference between the old one and this are the
This instructable describes the build of a Raspberry analog joysticks and some minor improvements.
Pi 3 powered handheld emulation console - I've
baptized it GamePi. Note:
Please note that English is not my first language. If
There are a lot of similar instructables for such you find any mistakes or something is not clear feel
devices but for my taste most of them are either too free to tell me and I'll try to fix it. Same goes for
big, too small, too complicated or I just do not like the general mistakes.
look.
This is my very first instructable so if you have any
This is the second version of my GamePi device (I suggestions for improvements please let me know.
did not write an instructable for the first one). The
https://youtu.be/x43EZUpVdNg
Make sure you have everything you need for the build. There is nothing more annoying than stopping your project
because you have to wait for some small part being delivered.
You do not have to buy the listed parts and material from the amazon links. These are examples and show the
required properties of the parts.
Parts:
1x Display - 5" Touch-LCD
1x Raspberry Pi 3 Model B
1x micro SD Card - 16GB (size is up to you)
1x Teensy LC
1x PowerBank
12x Soft Tactile Button
2x Tactile Button
1x Digital Amplifier - PAM8403
1x Audio Jack with switch
1x Speaker 1.5W
1x Slide switch
1x USB Female Jack Type A
1x micro USB Female Jack Type B
2x Joystick Breakout Module
1x Potentiometer B103 10K 16x2mm
1x Prototyping PCB
Consumables:
Hex Screws & Nuts (M3)
Torx Screws (M2.5 x 8)
Wires (e.g. LPT)
Primer Spray
Spray Paint
Wood filler (white)
Tools:
Thread Tap (M2.5)
Drill Bits (M2 & M3)
Sanding Sponges
Files
Soldering Utilities
Screw drivers
Drill
Hotglue gun
3D Printer or 3D Printing service ( www.3dhubs.com )
I've designed the case to be as simple and small as 3D printer bed if you rotate it 45 degrees.
possible. There is only the bare minimum of single
parts: case front and back and buttons. I've printed my case with black ABS filament. I like
printing with ABS because I love the post processing
The case front and back fit perfectly on a 20x20cm possibilities. You can sand, cut, paint and most
important you can glue or fix it using acetone. You'll find all needed 3D parts on this thingiverse
design page. I'll keep them on thingiverse to avoid
If you have a 3D printer with a smaller bed or no redundancy.
printer at all you can use a 3D printing service like 3D
Hubs, Thingiverse, Pinshape, etc. to print the parts
for you for some money.
2
3
3D printed parts are not perfect - they have small cracks, holes, bubbles, visible layers, etc. If you want a decent
smooth glossy look you have to take an extra step and post process the parts.
5. Paint:
1. If you're too lazy for sanding sponges: 1. before cleaning the edges
Bosch PSM 200 AES
1. another case design but you get the idea of the paint finish
Here are the steps I've done to make the printed buttons look like they do on the pictures:
Sanding:
Sand all buttons using 240 grit sanding paper.
Sand all buttons using 600 grit sanding paper.
Labels:
Fill the "engraved" labels with the white wood filler using your fingers.
Let the filler dry for 24 hours.
Remove the excess filler using 240 and 600 grit sanding paper.
Finish:
Clean the Parts with a wet cloth.
Spray a thin layer of clear varnish on the buttons.
Let the clear varnish dry for 24 hours.
1. 3D printed buttons without post processing 1. filled the "engraved" labels with white wood filler
2. german wood filler
1. removed the excess filler with sanding paper 1. buttons sprayed with clear varnish
In this step we want to write the button control code to the Teensy LC. The Teensy will register the button clicks
and joystick movement and send the signals to the Raspberry Pi via USB.
Download
http://www.instructables.com/ORIG/FCJ/GJET/JE4KM2YL/FCJGJETJE4KM2YL.ino
…
Now we want to build the controls and connect them to the Teensy.
1 2 4 6 1
2
3
5 3
1 2
After finishing all PCBs you can now assemble the device.
After this step your build should look like the one in the picture.
Display:
1. Connect the display to the raspberry pi according to the display manual (connect GPIO bar, attach
the HDMI connector).
2. Slide the two top "nipples" (see picture) of the display into the two holes in the case top side.
3. Secure the display by screwing to lower two "nipples" of the display to the case.
1 2
5
13 14
15
6
1 12 4
5
7 8
11
6
3 4
9 3
2 10
1. put M3 nut here 1. slide into the holes of the case wall (without screw)
2. put M3 nut here 2. slide into the holes of the case wall (without screw)
3. put M3 nut here 3. screw to case
4. put M3 nut here 4. screw to case
5. put M3 nut here 5. top (a later configuration will flip the output).
6. powerbank electronics 6. bottom (a later configuration will flip the output).
7. action buttons PCB
8. digital cross PCB
9. select button PCB
10. start button PCB
11. raspberry pi
12. Teensy LC
13. right joystick
14. left joystick
15. left shoulder buttons PCB
The following steps describe how the single parts are being connected.
After all wiring steps your device should like the one on the picture.
I like to use the single wires inside LPT cables (or parallel cables). There are 25 wires in such a
cable - they are color coded and they are very cheap.
When soldering I like to apply solder on the wire and on the PCB first. This way it take a little bit
more time but it's easier when working in smaller cases/enclosures.
5
1
2
1 5 2
3
6
4
4 3
We're going to start with the component most of the wires are connected to. In this step you'll need to solder 27+
wires - hurray.
In this step we will wire the amplifier PAM8403, the volume control, the switched audio jack and the speaker.
With this setup you have the possibility to control the volume with the hardware wheel and redirect the sound from
the speaker to headphones if plugged in.
Or -if you want- you can omit the volume wheel and the audio jack. This way you have to control the volume using
a software solution on the Pi. But for now we stick with the full feature setup.
Soldering:
Solder the wires according to the picture.
This setup does not use the audio jack of the Pi in order to save space. Solder the audio wires
directly to the Pi test pads:
audio ground (black line in the picture) is soldered to PP6
left channel (green line in the picture) is soldered to PP25
right channel (blue line in the picture) is soldered to PP26
The amplifier needs 5V power. Solder it to the 5V GPIO pin and the ground pin of the Raspberry Pi
(see picture).
!!! Double check polarity !!!
For the easiest part of wiring we're going to add the external USB jack.
This external USB port in the case is quite useful if you want to add additional peripherals such as a keyboard, a
second controller for player two or something else running via USB.
Soldering:
Well ... connect the USB jack according to the picture.
In this step you should as often as possible check the polarity of your soldered wires.
Soldering:
Connect all components but the battery according to the picture.
Again this setup does not use the micro USB jack of the Pi in order to save space. Solder the wires
from the slide switch directly to the Pi test pads. There are several solder points where we could
feed the Pi with 5V, e.g. the GPIO pins - but we're going to use the first possible point after the Pi's
power USB jack. This way the incoming 5 Volts have to pass a fuse and the Pi is protected if
something bad happens:
the positive 5V wire (red line in the picture) is soldered to PP2.
the negative GND wire (black line in the picture) is soldered to PP5.
Since the hardware part of this project has been finished we can now take a look on the software.
In this step we're going to download all needed software, write the RetroPie image to the SD card, start and
configure emulationstation.
Required Software:
Download the pre-made RetroPie image for the Raspberry Pi (the red "Raspberry Pi 2/3" button).
This is basically the operating system of this console. Of course you can use whatever you want on
the Pi - there are dozens of other solutions.
Download and install 7-zip - a free file de/archiver. We need it to unpack the RetroPie image
archive.
Download and install SD Memory Card Formatter. As the name says this tool formats SD memory
cards.
Download Win32 Disk Imager. We need this tool to write the unpacked RetroPie image to the SD
card.
max_usb_current=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
hdmi_drive=1
display_rotate=2
lcd_rotate=2
1. Insert the SD card into the Raspberry Pi and slide the power switch.
2. Wait until emulationstation shows up and asks you to "Configure Input".
3. Follow the onscreen instructions and map your buttons.
4. Now we are going to configure some basic settings.
Configure WiFi:
1. Connect a keyboard to the external USB port of the GamePi.
2. In the main menu of emulationstation (where you select the systems) select RETROPIE and press
the A button.
3. Select WiFi and press the A button.
4. In the new menu select "Connect to WiFi network" and press the A button.
5. Select you SSID (WiFi network name).
6. Enter your WiFi password using the attached keyboard.
7. Welcome to the internet.
Update RetroPie:
This step take a while - make sure the battery of the GamePi is fully loaded or it could die while updating
(happened to me - not cool).
The updates will be loaded from the internet so make sure you configured the GamePis WiFi.
1. In the main menu of emulationstation (where you select the systems) select RETROPIE and press
the A button.
2. Select "RETROPIE SETUP" and press the A button.
3. In the new menu select "Update RetroPie-Script" and press the A button.
4. Select OK a couple of times and press the A button.
5. Select "Update" and press the A button.
6. When the update asks you if you want to "[...] update the underlying OS [...]" select Yes and press
the A button.
7. Wait for the update to finish - it takes some time 20 minutes in my case.
8. After the update has finished select OK and press the A button.
9. Select Exit and press the A button. Wait for emulationstation to reboot.
If everything went fine you can now close the GamePi case and secure it with 4 M3x18 hex screws.
Congratulations:
Congratulations you've build your own GamePi.
Have fun playing some all time classics.
Show some love and have a nice day.
20-MAR-2018: Corrected slide switch link in the "Tools & Materials" step.
how did you wire the 1 ground location on the arduino, to all the PCBs for the buttons. did you run
multiple wires from the same location to each PCB that needed it?
i didn't realize there was a questions section, thank you for the picture!
Hey hey,
du hast nicht zufällig ab Schritt 6 auf deutsch? ;-D
Gruß Kevin
Incredible job and an excellent first instructable! I never would have guessed that English is not
your first language. Your finished product looks like it could be something off the shelf. I noticed in
the photo of your 3D printer you have some foam labeled "enclosure for printing ABS" how does
that work? I think you could do pretty well offering some of these parts for sale in a kit. I would
certainly buy a kit that came with the buttons already on the PCBs etc. Great work, this is a really
inspiring read! Thanks for sharing!
It's been done in the Ben Heck Show in an overkill way (driving video signal from the GPIOs):
//www.youtube.com/embed/x0EGnydxxf4
Also, you're killing your budget with these HiRes 5 inch screens (800x480 for US$45, excuse me!),
low resolution (320x240) is more than enough, and any Raspberry Pi is already overkill to emulate
games that ran fine on a 4MHz Z80!
ндогонят, why the recommendation against the Pi Zero W? I'm inexperienced with the Zero, but it
seems to have slightly better specs plus wireless capability. I haven't had a need to use the Zero
over the Zero W.
Also, this is not comparable to a PS3. Not only does the PS3 have a lot of games that run on only
it, but this does not have enough buttons to emulate the controller for those games nor does it have
the processing power to run them should you have a ROM for them.
I'm not against the Pi W, it's just it's unnecessary spend for retro games on a portable console.
The mention of the PS3 and the Vita are about giving a price/performance reference point. At some
point, it might be a project on its own to merge (or even... blend!) a second hand large monitor
(say, 19 inches) with a second-hand PS3 all running on LiPos (therefore portable...), so to compare
with a handheld RetroPie. Moneywise, I'm pretty sure the "portable" PS3 wins by far...
Neither of your comments make sense. First, a Zero W is $5 if you can find it in a store, otherwise
$10 (the same as a Zero) direct from Adafruit. For $0 you get wireless connectivity, allowing you to
manage the games loaded on it without needing a USB plug, which I would have happily paid
money for. I think a Zero W would be an excellent choice for this project.
Your second point regarding a "portable" PS3 is outright ridiculous. The amount of weight alone
makes it unportable, but finding enough batteries to power it for a few hours costing under several
hundred dollars is not really possible. Perhaps I am not understanding your comment, but so far
none of it seems constructive.
Thanks for the critics. This build wasn't really much about saving costs.
Good point using a rear view cam monitor - gonna try it in the next (cost effective) build.
I was thinking about a pi zero w in the first place but in another build (
https://www.thingiverse.com/thing:2790453 ) I noticed that PSX game are not running that well - so
I went the the Pi 3.
hey dude your project is awesome!...only that its sounds complex yet very satisfying to make. I
hope to make one of this. Plus I love pokemon gba!
Looks really great. I just assemble a raspiboy kit from 8bcraft, but your gamepi is something I could
do in the future.
Approximately, what is the cost of parts ?
yep, that's the right - somewhere around $160. As I said you can safe a good amount of money if
you get the parts from ebay, aliexpress, or somewhere cheap.
Good point. I have an arduino pro somewhere around - gonna use it in the next version.
was about 160 us dollars when i just picked up everything from amazon, that doesnt count the 3d
printing or screws, paint etc, thats random stuff people will have in varying amounts.
Great write up. Would love to give this a go. Is it possible to add a second hdmi port so you could
potentially plug it into a TV?
easiest way is to swap the used HDMI display with a display which is using the composite video
output of the Pi. So you could use the HDMI port to connected the Pi to your TV.
Wow. The physical part of it is way over my skills, but I am genuinely impressed. How much
battery life do you get when playing?
OK so I measured battery life using a camera filming the Pi while running a SNES game.
The GamePi died after 4,5 hours.
Very nice!
Try using acetone, or a bit of nail polish remover in your post processing. It works wonders.
I tried acetone vapor on another version of the case - but it went horribly wrong. So I stayed with
spray paint and sanding.
Good name! :)
http://cookingcircuits.com/home/thegamepi
Hah, no worries. There are only so many combinations out there. Nice instructable. Very detailed!
This is great! it looks better than any other project I have seen like this! Keep it up!
Video added.
That looks fantastic! I didn't realize it could do so many games and the resoulution on such a small
screen is amazing :D
Thanks for the kind words. I'll try to create and add one this evening.
i was looking to make thos very thing the last few weeks, thank you so much for the information
I've already ordered what i need from amazon. only thin i want to try different is to make the r1 and
r2 buttons shoulder buttons.
This is super cool. Got a RetroPi set up and was awesome playing Pokemon on the TV. But be
cool to have it portable. Thanks for sharing
Kudos, the details in this post are very impressive. Congrats on the fine built.