Raspberry Pi Emulator Console for the Backseat
Scope of project: After building a Bar-Top Raspberry Pi retro gaming machine I determined that while cool I cant take it around easily as it weighs about 40 lbs and is the size of a large microwave. And while fun for the basement perhaps Arthur would want to play it in the car for the long drives back to his Moms house.
My original plan for this build was based off the Adafruit PiGRRL but I I wanted the ability to play the SNES and Genesis emulators. I figured I would just need to add a couple more buttons and it would be a peace of cake. I thought wrong.
Unlike my other projects I bought almost everything for this build. I used my 10% off coupon for being a pro member with Adafruit, I have to say their support forums are great and the benefit of being an Instructables Pro member was worth it just with the savings on that one order. I chose the the 5″ non touch TFT with HDMI input however in hindsight with the finished project I would have picked a analog/composite display as the driver board and signal wires are easier to route then HDMI.
I wanted to build a Gameboy and wound up with a cyberpunk looking headrest console. But the build was fun and the end result works. I am sure Arthur is going to like playing games instead of sitting for 3 hours in the car. Ill include pictures from the failed project just to show that sometimes things don’t go perfectly and that is OK.
Take a break put it aside then when you come back you may have the fresh perspective to figure out the problem that was driving you insane in the first place.
Oh and I am sure I am going to drive someone nuts as I will switch between Metric and Imperial measurements with equal aplomb. Some things are only mentioned in MM and others are only referenced in inches. I will try to keep it all in millimeters for accuracy but somethings are only sold with inch measurements here in the states.
Shall we get to building? This took me about 3 weeks of tinkering after I scrapped the first 2 handhelds, I started pretty much as soon as I finished the bartop.
*Further note* The finished console is a full raspberry pi computer. With the wireless keyboard and mouse, and the little 802.11n wireless chip. I can exit emulation station using the controller or keyboard then boot to a shell or X to join wireless networks get on the internet or code. As everything is sealed in carbon fiber and plastic the wifi is needed to load ROM’s and updates.
Step 1: Materials Used and Tools Required
- Raspberry Pi B+ -$40 https://www.adafruit.com/products/1914
- 5 Inch TFT with mini driver HDMI – $60 https://www.adafruit.com/products/1928
- Pelican 1050 dry box – $15 Amazon http://goo.gl/zL13tV This link is for a blue one
- 3W class d Amplifier. – $6.70 Amazon http://goo.gl/3GCFBW
- Velcro Velstretch strap – $$8.50 Amazon http://goo.gl/IksPzs
- 4 pack Mini SPST 0.5-Amp Momentary Switch Normally Open. – $4 4-Pack may not be needed for your build
- USB SNES controller -$10 Amazon http://goo.gl/UjzRF5
- 270 degree HDMI flat port savers $2 each Monoprice or http://goo.gl/bLfZBj
- 270 degree right angle port saver monoprice or http://goo.gl/Z5sYP2
- 1ft HDMI cable $4 https://www.adafruit.com/products/2197
- Industrial 3M foam mounting tape – $7 Autozone or $5 amazon http://goo.gl/Unw0Oe
- small 802.11n adapter $12 https://www.adafruit.com/products/814
Materials used from stock on hand
- 2 speakers from a laptop
- desolder braid
- 1mm x 300mm x 100mm woven carbon fiber sheet. -$10 Hobbyking.com
- USB power pack from my solar charged phone charger build.
- wireless keyboard and mouse
- Razor saw
- Coping saw
- Aluminum straight edge
- 2 bar clamps
- Rulers, squares, compass, protractor, divisor
- Graph Paper with 5mm spacing between lines
- .5mm mechanical pencil and .5mm black pen
- CA glue
- #11 Exacto Knife
- Digital Calipers
- Scratch Awl
- Soldering Iron
- High Temp Hot Glue Gun
Safety Equipment. N100 Face Mask or respirator suitable for Carbon Fiber particulates & Safety glasses.
This is super important. Carbon Fiber gives off extremely fine particulates when shaped with power tools.
It will trash your lungs and your eyes so protect them and make sure you clean up with a damp rag when you are done working with it.
I wore a dust mask and I was still blowing black snot the following morning. Sorry if that is a image you didn’t want to think about but hey you only got 2 eyes and 2 lungs may as well protect them.
Step 2: A plan never survives the first encounter…
See that nice wood panel above in the pictures?… yeah… The finished wood case was too big for Arthur to hold. I went back to the drawing board and decided on a SNES controller for it is the right mix of button layout for all the classic systems and it was smaller then the 6 button genesis controller. Since I was going for a external controller I decided that a pelican case would be cool for the housing and would look nicer then a wooden box strapped to the headrest.
The only reason I am keeping this step in here is to show off my fancy carpentry and that i was able to reused the template and my plan for the display for the carbon fiber face plate.
As we all know a bit of forethought to the function of a handheld will make or break the device. The Gameboy and Game Gear were super comfortable to play and one could use one for hours with out any adverse effects. The PS Vita on the other hand is a torture device. I really wanted to like it but no matter what I added to the vita I still wound up with numbness and cramps.
I was going to pay homage to the Gameboy but the 5 inch TFT that I chose changed the profile from the 3.5″ Pie plate. The larger screen would have made the MAMEBoy profile a bit too wide.
To make the plans of the case I went old school. I broke out the pencils pens and paper, grabbed my rulers and went to town. I will eventually get around to scanning my drawings if someone wants to make a wooden one.
Step 3: Software Side.
Since I am using the software image from my Bartop I am linking to its software configuration here. http://www.instructables.com/id/Raspberry-PiCade-B…
Using the win32diskimager I wrote my backup image from the bartop to this card so for detailed directions on how to configure the controls The steps are the same to manually assign controls or after you copy the image to the card you can edit the Retroarch config with the following mappings under input player 1
Open leafpad then open home/pi/RetroPie/configs/all/retroarch.cfg
Select+Start will exit the ROM
Select+LB will save
Select+RB will load save states
Scroll down in the retroarch.cfg to this code:
input_player1_joypad_index = 0
input_player1_b_btn = 2
input_player1_a_btn = 1
input_player1_y_btn = 3
input_player1_x_btn = 0
input_player1_l_btn = 4
input_player1_r_btn = 5
input_player1_start_btn = 9
input_player1_select_btn = 8
input_player1_l_y_plus = -1
input_player1_up_axis = -1
input_player1_l_y_minus = +1
input_player1_down_axis = +1
input_player1_l_x_minus = -0
input_player1_left_axis = -0
input_player1_l_x_plus = +0
input_player1_right_axis = +0
input_enable_hotkey_btn = 8
input_exit_emulator_btn = 9
input_enable_hotkey_btn = 8
input_save_state_btn = 4
input_enable_hotkey_btn = 8
input_load_state_btn = 5
Download your base image This is going to be about a 1GB or larger file so while it is downloading you can format and get your SD card ready for writing the image. The most current version at the time of this writing is V2.3 http://blog.petrockblock.com/retropie/retropie-dow…
The second piece of software is the SD Association card formatter utility, this will ensure that the SD card is properly formatted to the SD association standard. This may prevent possible card corruption however I don’t know for certain. My thought is that if the standards org recommends it then it is the best practice. I have had better luck with this utility then the windows format utility for SD cards. https://www.sdcard.org/downloads/formatter_4/
The last piece of software to download is the Win32DiskImager I downloaded my copy directly from source forge as they don’t seem to put any junk in their download. This utility will serve two purposes the first is to write the image to the card. And the second is to create a backup ISO once you have it configured the card to your liking. http://sourceforge.net/projects/win32diskimager/
I installed the win32diskimager using Win7 compatibility as administrator for it to work properly.
After you have written the image to your SD card insert it in your Pi and Boot it with a network connection keyboard monitor and mouse.
The software image downloaded above will boot to emulation station press F4 when it states that you do not have a input configured to drop to the terminal.
If you are using a physical network cable you can run the following in the terminal window if not startx and manually start your wireless connection then open a terminal utility.
The final steps are to Expand the file system to use the entire drive,
You will need to perform option 1 to expand the file system to use the whole card.
Then option 8 for advanced options to configure the memory split to 256.
At this time you can perform a software overclock by selecting the desired level of overclocking, however remember overclocking is at your your own risk you may void your warranty.
I cannot be held liable if you Burn your Pi.
Step 4: Carvin the Carbon
The plate that I had I was extremely lucky with. It is the remnant of a 300mm x 100mm plate. and it just so happened to be the exact width and length I needed for the Pelican case. Unfortunately with test fitting everything I had to remove the inner rubber liner from the case so I will loose my waterproofing but it will still be super durable.
For the plate to work properly I needed to cut a panel out for the viewable area of the the display. I used the sketches made for the wooden face plate to give a template for the monitor. One thing to note To safely work with the cutter and dies I used a face mask eye protection and covered the plate with blue painters tape on both sides to prevent scratches. Carbon/epoxy dust will go everywhere so make sure you have a shirt on that you don’t mind getting stained.
After taping off the plate and marking my cut lines I started at the middle and worked my way to the corners using a reinforced cutoff wheel with my Dremel tool turned to its fastest RPM let the speed do the work don’t force the tool. If you don’t get a straight enough line you can switch over to a fine grinding wheel to even out your cuts. A light touch is the key.
After cutting the display I slowly ground the corners round to match the radius of the inside edges of my case. Lots of trial and error then when I slipped on the last corner I ground a cable pass through for the coiled charge cable and the controller cable.
I drilled 2 holes for the power switch and a as of yet unprogrammed momentary button on GPIO25
For more detail: Raspberry Pi Emulator Console for the Backseat