Hack a Video Game Controller with an Arduino for Greater Accessibility (or Cheating)

Picture of Hack a Video Game Controller with an Arduino for Greater Accessibility (or Cheating)

Everyone loves video games. But it can be difficult to enjoy certain games if you are injured or disabled and don't have the manual dexterity needed to execute fast button combos. Fortunately, we can use an Arduino to send signals to the chip in the controller that simulate the buttons being pressed. This lets you pre-program a series of commands that can be activated by a single button. This could be used to help more gamers enjoy combo heavy games.

Step 1: Open up the Controller Housing and See Where You can Make Connections

Picture of Open up the Controller Housing and See Where You can Make Connections
Every console has a different style of controller. So the exact way that you connect to the controller will depend on the system that you are working with. But in general, most buttons are wired up the same way. The button is a normally open momentary switch. One side of the switch is wired to ground. The other side of the switch is wired to a pull-up resistor and to a pin on the controller's IC chip. When the button isn't being pressed, the pull-up resistor makes the output of the switch HIGH. But when the button is pressed, the switch connects to ground and brings the output LOW. We can simulate the effect of the button being pressed by connecting an Arduino to the switch's output pin and sending a LOW signal to the controller. The controller's IC chip will register this LOW signal the same as if the button had been pressed.

So we need to find a way to connect the output pin of each switch to the Arduino. Open up the controller housing and observe how the circuit is laid out. Look for locations that are connected to the output of the button where it would be easy to solder a wire. If you are lucky, you might find unused through-hole points already on the board. But most likely you will either need make surface mount connects or make your own through-hole connection locations.

On my controller I found that there where large contacts at the output of every button. This was most likely used to compliance testing in the factory. I thought that these would make good points to make connections. To make it easier to connect to these points, I drilled holes in each one to turn them into through-hole connectors. This also made the solder joints more secure.
darman122 years ago
Awesome idea. How in the world did you come up with it? I also think it would be pointless for the person building it. They would have to know how to beat the level in order to write the code!

Nice job, really cool.
DIY Hacks and How Tos (author)  darman122 years ago
I have seen several other people do this mod for xbox controllers. It really is better suited for pre-programming difficult button combos.
Ya, for games like Mortal Combat ;)
Awh I seen, thanks
DIY Hacks and How Tos (author) 2 years ago
Not all run on 5V. But most have the same pull-up resistor setup that sets the output at either high or low state for the microprocessor
Are all the video game controllers the same concerning the 5v to 0volt when buttons are pressed?