Ben Heck's Multi-System Retro Controller

alavy110
منتشر شده در 20 فروردین 1397

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. Last chance to Win Ben Heck’s Lunch Box Dev Kit: http://bit.ly/2e5b24l


Visit the Ben Heck Page on the element14 community: http://bit.ly/2eynf0Y


Enroll in the NXP WaRP7 RoadTest: http://bit.ly/2eq1Bw9


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 will include the WiFi module, a battery, a charge jack for the batter, and it will be self-contained. The receiver unit will be powered off of the console because all consoles have 5V somewhere on their plug. They begin by creating the console controller. Once they have that working they’ll build the receiver and test it on the consoles.


Felix wires up a shift register test. It has 16 lights and two 74HC595 shift registers. 75HC595 shift registers can create multiple outputs from a few lines of I/O. The shift registers are going to be what connects to the controller and acts as I/O buttons. Controller buttons pressed or not result in a zero or one to the shift register.


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. Although, he probably needs only one he tries using two to make it six button compatible with the Sega. Turns out it’s much easier to just hack a 6 button controller.


Felix steps in to help with LUA scripting but the team hit a snag with the programming. Fortunately, designing the enclosure is a lot simpler thanks to Autodesk Fusion 360. After a lot of testing, soldering, and hacking apart a Sega controller, the team puts together the ultimate gaming controller!

دیدگاه کاربران