Here's a retro hand-held gaming console I built with my son. It uses an Arduino micro-controller, a small LCD screen, push-buttons, a 3D printed case and home-grown "PC" board. It's really pretty easy to solder and put together. My son & I wrote two games and a drawing program for it. See the video for a quick demo. Enjoy!
Here's the parts list for the magpi itself:
In addition you will need the following tools:
Soldering iron, flush cutters for trimming wires after soldering, wire-strippers, needle-nose pliers to bend wires into place, hot-glue gun.
You will also need an FTDI adaptor to program the Arduino Pro Micro. I use this one from Sparkfun: https://www.sparkfun.com/products/9873
The case and PCB were printed on a PrintrBot Jr (v2) at .3mm layer height. The PCB and top case don't have any support material so they are pretty easy to print. The case bottom has a bunch of support which needs to be cleaned out. Message me if you are having trouble printing something, and I will get my son to help you. He's a pro.
Please note that if you are using Slic3r 1.0.0RC2 it might create support material too close to the upright walls of the case. We had to go back to an earlier version of Slic3r for it to work. You might be able to use skeinforge.
If you don't have a 3D printer, check the "3D print my thing" subreddit and someone will probably be able to print this for you much more cheaply that the big commercial 3D printing services. You can also try makexyz.com.
This project was and experiment for me in making a 3D printed mounting board for the various parts instead of having to have a standard PC board with the etching done. It felt like there were few enough connections that it would be pretty easy to solder with just plain wire as long as there was a decent support layout. The important thing was to get all the buttons in a fixed place so they wouldn't move around as you use the magpi. Because printing small bore holes is tricky (i.e. not precise) with our Printrbot Jr. V2, what I did was leave the very bottom layer of the print solid and then drill holes through it with a 1/16" drill bit (see photo). After you drill the holes insert a buttons an make sure the seat well.
Clean out the support material in the top case. Start by passing a utility knife around the perimeter to clear the support material from the edges. Use needle nose pliers to pry up the support material. Be careful when pulling out the support material not to snap off the button backing supports. You may need to use a flat-head screwdriver to scrape off the last bits of the support material. This is most important in the areas where the battery, charger, and Arduino go so they fit. (See photos).
The top and bottom case are designed to snap together. It's a tight fit, so you may need to use a utility knife to trim the parts a bit so they fit. It's also a good idea to fit the LCD over the printed pins that go into the holes on the LCD circuit board to make sure they fit properly. You may have to trim them just a bit too.
Here is the wiring diagram for all the electronics. In the subsequent steps I've described how put it all together so you probably don't even need the diagram because you should be able just to follow the instructions and look at the photos. In designing this I tried to choose pins to make the wiring as easy as possible, but of course other pin-choices are possible, you'll just have to modify the pin mappings in the magpi software.
I've assembled two different magpi's and my son has assembled a third, and we've done it differently each time, so feel free to assemble things in what ever order makes most sense to you. For example it might work better to solder all the wires to the Arduino first and then solder them to the buttons and LCD. Feedback appreciated!
We need to figure out where the Arduino will sit in relation to the LCD so we can bend and cut the wires to the right size. This is a little tricky but not too bad.
At this point, if everything has been correctly soldered, you should actually be able to boot the magpi!
Attach the FTDI adapter and upload the code from the Arduino IDE. You can download the code from github at: https://github.com/zippy/magpi
Follow the instructions in the readme to download and install the dependencies.
When you attach the FTDI adapter, the back-light on the LCD should turn on right away. Once you have uploaded the code, the magpi should reboot and show the splash screen and then go to the game selection menu (see photo). Test the buttons to make sure they all work as they should. If you soldered a button to the wrong pin, it might be easier to change it in software than re-solder.
Now all you have to do is carefully bend the wires over and snap everything together snugly and you should be able to switch it on and play!
Once you have your magpi running, please write some games for it and send them our way. We'll add them to the github repo for everyone to see.