This project was to create a portable gaming system that could also double as a portable computer. The goal was to create a console that was functional as well as aesthetically pleasing. I use what I learned with 3D modeling to make professional looking cases to house my circuits. I went with a chamfered look on top to avoid it being a solid brick. The hand holds are also narrower regions and from the side make the device look significantly skinnier. A line around the entire device breaks up the thickness evident in previous revisions. The back hole is the air intake which flows out the top vent. The trigger buttons are angled to fit hand better. Buttons were constructed using tactile components behind a stripped fa?ade this is because I had no way of creating the silicone bouncing layer most controllers have today. So instead of shorting a PCB to register a button press I'm just pressing a tactile button underneath. To get more bounce out of the mainly used buttons ABXY I bought them as a entire unit that just fits into the holes.

Inside is a Raspberry Pi 3 that holds a Broadcom BCM2837 processor (ARM architecture) installed with a software called Retropie. This comes preloaded with developers emulators to run many classic games. It also comes with EmulationStation which is responsible for the nice graphical front end. I also installed pixel to get to a more familiar desktop environment. The Raspberry Pi interfaces with the 7-inch touch screen on the front to display the GUI. Buttons are wired to a microcontroller and finally to the motherboard so games can be played. Thermals are controlled by bringing air in through an intake located on the back. The air is directed past heat sinks on the processor and graphics card, this then goes through the fan and into a duct system that routs the exhaust out of the top of the device.

On the top there are two USB ports for external serial communication (mouse, keyboard, extra controllers). There is also a 5 LED indicator (blinks randomly on boot, battery level indicator, volume indicator, screen brightness) as well as the ON/OFF button (press once for battery level). Using the button sequence select+up will turn on the LED to full brightness to be used as a flashlight (it's blinding!). On the bottom there is a micro USB used to charge the internal 10,000mAh battery which runs the whole show. The battery is wired to the source and gate of a PMOS transistors, when you turn the device on the battery to gate disconnected and the gate is now shorted to ground through a 1M ohm resistor turning it to the ON state. Power down sequence is done by holding the top ON/OFF button which fires an interrupt after being held for 5 seconds to enter the shut down sequence. There is a 3.5mm headphone jack which cuts power from internal speakers and redirects it through this port when in use. Lastly there is an HDMI out port on the bottom which disables the 7-inch touch screen and redirects the video and audio to the new source. On the front we have all the buttons and touch screen. A neat feature is the “home button” which takes the user back to a main screen to choose what console and game to play by internally sending a signal to the Pi to mimic shorting of start and select. Volume is controlled by the two tactile buttons which increment and decrement the volume through a daemon running called "triggerhappy" which follows the script I wrote to send the correct gain adjustment to amixer. Brightness is controlled similarly by holding select + the two tactile buttons this time adjusting the value in /sys/class/backlight/rpi_backlight/brightness. The LED indicator is controlled solely by the Teensy microcontroller. Debounce for the buttons is written into the software. 

My future plans for this device are to have secret “Easter eggs” where you can hold certain buttons on boot to enter the CLI or Linux GUI instead of the default emulation software. I also want to make hardware shortcuts for changing settings rather than plugging in a keyboard and typing the command. I also want to develop an audio card to filter out the high frequency pop that occurs before the start of each game and unify the dB gain between each console. Lastly I want old arcade games to be able to be played vertically to get the most vertical screen space. This would mean physically turning the device sideways using the right analog as your directional (everything would be adjusted 90 degrees CCW) and ABXY as any of your buttons. 

In hindsight I wish I did the HDMI out port with a PCB instead of a 
pre bought female wall mount. This would have saved on a lot of space in actuality I had to tuck the cable in a spiral to avoid cutting it and re-soldering the 19 wires. I am torn about going with a smaller battery because the cell height was my limiting factor in the thickness of the entire device. However, reducing this would negatively impact my battery life. 

In total this cost me around $350 to make. This does not include the raspberry pi I broke trying to shave down the size... Still happy I tried it out. It was a fun summer project to see if I could make it as compact as possible while at the same time fitting a lot of cool features inside. 

Jul 27,2018
1,158 viewsReport item
  • Comments(2)
  • Likes(5)
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
    View More