Some days ago, I took apart my SNES gamepad to connect it to an Arduino. And I was astonished by the fact how simple the electronics inside are. OK, I have to mention that those controllers were manufactured since 1990…
Basically, the gamepad consists only of 12 buttons, 2 resistors, 1 capacitor and 1 IC.
This Gamepad is a model SNSP-005, made in Japan. On the front side there are the Buttons A, B, X, Y, Start, Select as well as the digital D-Pad (Up, Down, Left, Right). There are also 2 shoulder buttons, which distinguishes the SNES controller from its older brother, the NES controller, which only has 8 buttons (A, B, Start, Select, Up, Down, Left, Right).
On the back there are the model number, the Nintendo logo and 5 screws (phillips heads), which have to be unscrewed to open up the controller’s case.
Teardown: The design
When all screws are removed, the back part of the controller’s case can easily be lifted off. Inside is the main PCB (in total, there are 3, but more about this later). It’s a single-sided PCB, the only part on the back of it is the internal connector for the connecting wire, which is held in place by 3 plastic posts to provide strain-relief.
The PCB itself isn’t screwed in place, it’s just held by the case. The PCB’s front side reveals its technology: From one of the connector’s pins, there are conductor paths leading to all 12 buttons, all over the PCB. Those buttons consist of 2 pads of conducting material (graphite?) on the PCB. When a button is pushed, a rubber membrane pushes another conducting pad down to connect the 2 pads on the PCB, closing the circuit.