Version 10

    element14's The Ben Heck Show

    Join the Ben Heck team every week for amazing hacks! Watch them build and mod community-inspired projects using electronics!

    Back to The Ben Heck Show homepage

    Connect with TBHS
    Featured Bonus Content
    See All Episodes



    The team builds the ultimate retro gaming controller using an ESP8266 WiFi Module, a transmitter controller, and a receiver on the game console. Universal support includes Nintendo, Super Nintendo, Sega, and Atari. What game consoles would you use on your controller?  Let us know in the below!


    Supporting Files

    Click Here

    for access to all the supporting files you will need to replicate this build!


    To make the universal controller wireless they use the inexpensive ESP8266 WiFi Module. It runs on NodeMCU firmware which can be programmed using LUA. Once you write the script in LUA and NodeMCU executes it the controller module and the console module can talk to each other. The controller module is the transmitter and the console module is the receiver.

    The plan is to build a custom controller with two shift registers in it. The shift registers are used to read the buttons.  Each shift register has 8 bits for total of 16 bits. 16 bits are used as there will not be more than 16 buttons. The controller module can shift the data out of the shift registers and into itself which is similar to how a Nintendo controller actually works. Because it reads in 16 bits it does not care what the buttons are for each console, it just gets the data.

    The custom controller then transmits a 16 bit package in one word to the receiver unit. The receiver takes that data and recreates it on its side with two more shift registers. These would be output registers which would be 74HC595 shift registers. Once again each shift register has 8 bits total for 16 bits, and they are going to be 0 or 1. From that point they connect up the console plugs. The way they connect the plugs to these shift depends on what the buttons actually do. After wiring everything up they use a multimeter to determine what button are being pressed.

    They then wire up their controllers to match. Each controller is different.  In the case of the Nintendo and Super Nintendo there is going to be input shift registers to connect to the output shift registers. For the Sega Genesis they’ll need to take apart an old Sega Genesis and hook the pads beyond the chip directly to the output shift registers. One bank of output shift registers, 3 different console inputs.

    The ultimate game controller includes the WiFi module, a battery, a charge jack for the batter, and is self-contained.  The receiver unit is powered off of the console because all consoles have 5V somewhere on their plug. They begin by working on the console controller.  Once they have that working they build the receiver and test it on the consoles.

    Ben maps out the parts to make the video game console on a board using a 3.3 power regulator and a server module that plugs into the74HC595 shift registers. Shift registers are needed to translate as consoles run at 5V while WiFi works at 3V. The 74HC595 input shift registers are the same as the ones used on the controller and they will be used to plug into the Nintendo and the Super Nintendo. He also uses some 74157 quad muxes for the Sega and Atari. Turns out it’s much easier to just hack a 6 button controller.

    After a lot of testing, soldering, and hacking apart a Sega controller, the team puts together the ultimate gaming controller!