Imgur user FinnAndersen just created his very own personal retro gaming console. He outlined each of the steps, so if you're feeling particularly handy and want the satisfaction of making one of these impressive custom items yourself, you can.
Originally, he was going to create the entire structure in (still impressive) 3D printing. But he quickly realized that, even if 3D printing allowed for more control and customization of his design, the existing designs were already pretty great. So why reinvent the wheel?
"...when I got one of the knock-off Wii Pro controllers in my hand I realised I probably wouldn't be able to design and create something this sleek and ergonomic.. I held the screen to the top of the controller and then I knew exactly what had to be done!" – FinnAndersen
Since the controllers would need their own source of energy, he needed to find places to put batteries within the console itself. So he began taking it apart and, lo and behold, he found the perfect solution!
"I figured the hand grips of the controller would be ideal places for batteries to fit, and they barely did (I had to cut away some of the joystick boards)." – FinnAndersen
Next, he set up the inner workings. The wiring and power cords would be his next major hurdle.
"Sorting out the power supply system was one of the most annoying parts of this project. I needed a power controller that would seamlessly handle battery charging, battery protection, battery power supply and external power supply...The solution was to use a mini relay to connect the charger input to the RPI when there is external power supplied." – FinnAndersen
He ran into some snags figuring out how to get the indicator lights to respond the way he wanted them to with the new inputs. He then rewired the circuit board in order to make the lights react to the new stimuli.
"Here's how the other ends of those wires connect to the power button and LED outputs on the power supply board...Therefore it was time to go for the brute force method of reading the button states with a Teensy (a mini powerful Arduino) which can act as a Joystick HID when connected to the RPI through USB." – FinnAndersen
He used a car screen since it was capable of responding to the stimuli he wanted and it was accustomed to being powered by a car battery. Like all other parts of this process, he ran into some snags that required some creative thinking.
"Unfortunately this built-in regulator didn't work too well with a 5V input voltage, so I had to bypass it and use another 5v to 3.3v regulator...Originally I used an inefficient linear regulator to do this, but then found it got very hot due to the power it was dissipating (even with a heatsink), and replaced it with a better switching regulator." – FinnAndersen
Next came the audio. He needed to figure out a way to get all the beeps and boops to come out of this custom console when all the parts were wired to a separate audio output. He eventually decided on a USB soundcard, which gave him some issues but ultimately did what he wanted.
"I put analogue volume control wheel in between the soundcard and the headphone jack, and the speakers are disconnected when headphones are plugged in. The speakers are contained within the controller body and the gaps around the analogue joysticks conveniently allow sound to pass through, without having to make any extra holes." – FinnAndersen
Because everything was so condensed, FinnAndersen quickly realized that the parts were overheating in a very short period of time. There wasn't enough ventilation. He had to add something to help move the air.
"I also drilled some holes through the RPi board itself (Where the USB ports used to be) to allow air to flow out from underneath. There is a strip of adhesive foam on the back cover which stops air from taking the easy path straight across to the opposite ventilation holes, forcing it to flow underneath the RPi where the CPU & heatsink is." – FinnAndersen
He ended up using his 3D printer to create a custom holder for his visuals that could easily attach to his controller. The final result is so impressive, it's definitely worth all the hours spent designing and figuring this project out.
FinnAndersen is happy to use this custom controller to catch up on all the retro games he never had a chance to play in his youth (because he was too busy becoming a technology building prodigy, I'm sure).