Please read part one if you missed it!
Planning out what you're going to do is fine and dandy, but this is where all the fun happens. We actually get to build and test stuff in this post!
Figure 1: Final concept for modified controller. |
TOOLS & MATERIALS:
Cause you can't do cool electrical stuff without the right stuff.
The tools you need are:
- TV & Gamecube with Melee
- Multimeter
- Sidecutters
- Precision Tweezers
- Soldering Iron/Station - You'll want to click this link, trust me....
- Sand paper - fine grit (300?)
- Heat gun or lighter
- Gamecube controller
- 7 24mm buttons
- Wire - I use rainbow ribbon cable cause it's neat and automatically color codes your wiring for you
- This and this - You could just solder wire straight to the buttons, but this makes it so that the user can freely move buttons around if they choose to.
- 1.27 kΩ 1% resistor
- 5.62 kΩ 1% resistor
- heatshrink
THE TRIGGER:
We are going to be starting here because it can be a slightly tricky part of a pad hack. We plug our controller into the game console and start a match in training mode (characters and stage don't matter). This powers up our controller. The first thing we need to do is figure out the voltage levels for when the trigger is not pressed, the voltage when we are light shielding, and the resistance of the pot. From the back of the board we can clearly see the right trigger pot and the 3 pins on the front that correspond to it (figure 2). Using the multimeter to measure the voltage at each of its pin, we find that pin 3 is 3.44 volts (VCC), pin 2 is 0 volts (GND), and pin 1 changes as we move to pot so it is the pin that goes back to IC on the board. We also find that when we are not shielding the voltage on the pot is at ground (0 volts), and when we move it just enough to light shield the voltage on this pin reads 0.623 volts.
Figure 2: Controller pcb with potentiometer highlight and pin out marked. |
(R2/(R1+R2))*VCC=VLightShield
R2*3.44/6.9=0.623
R2 = 1.249 kΩ ≈ 1.27 kΩ
R1= 6.9-1.27
R1 = 5.63 kΩ ≈ 5.62 kΩ
In this case we need a 1.27 kΩ resistor and 5.62 kΩ resistor since those are our closest standard 1% resistor values.
We are now ready to build our circuit for the light shield button. We first need to remove the right trigger's pot. Since we don't need to save the pot, I'm just going to use a pair of sidecutters to carefully cut it off the board. I can then use the soldering iron and a pair of tweezers to remove the remaining bits of pins left in the pot's holes.
Figure 3: Schematic of light shield button design. |
Now that the holes for the pot are free we can solder the resistors and 2 wires leading to a button to implement our design from part 1 (figure 3). Figures 4 and 5 shows how we need to connect the resistors to implement our design.
Figure 4: Drawing of how the resistors will connect to the pcb to implement light shield button. |
Figure 5: Soldered light shield circuitry. |
THE BUTTONS:
The all the buttons (except power shield and Z) can be seen on the pcb as black pads in figure 2. This black is a conductive material, and underneath it is copper. One side of the black pads corresponds to GND and the other side runs directly to a pin on the controller's integrated circuit. Using the multimeter we can find that the bottom half of each pad is ground and the top half is our signal the IC reads.
Since we want to solder our buttons in parallel with the existing buttons, we find a place we can solder our wires to the button's copper traces. The way to do this is simple use our sand paper to carefully sand away the black conductive materially on each button's pad. This will reveal the copper pad underneath that we can solder our wires to. NOTE: this copper is very thin, so don't over sand. Figure 6 shows the button pads after I sanded the black material away.
Figure 6: Gamecube controller with button pads sanded to copper and Z and shield buttons removed |
Since all of the buttons connect directly to ground, we can solder our ground wire to just one spot marked in figure 6. Figure 7 shows the controller with all the button and light shield circuitry soldered.
Figure 7: All soldered buttons. |
Since we are detaching the C-stick from the rest of the controller, we need to lengthen the wire used to connect it to the rest of the controller. We also need to further modify the C-stick circuitry to be able to rotate it 135 degrees in the original controller so that it will operate the most naturally in its new orientation on the final controller (up will be up, down will be down, etc.). This means we'll have to cut the awkward leg on the c-stick pcb (figure 8). Figure 9 shows this modification.
Figure 8: Top and bottom of unmodified C-stick pcb. |
Figure 9: Top and bottom of modified C-stick pcb. |
Figure 10: Pin out of C-stick connections on main pcb and C-stick pcb. |
TESTING IT ALL (a.k.a. "Show me your moves"):
The easiest way of testing is to start melee and make sure all our inputs are working properly.
SUCCESS!!!!!
Figure 11: Controller pcb after modifications. Non-conductive hot-glue was used on soldered wires for structural support. |
NEXT TIME:
Watch me stumble around with making a case! Yay for little to no woodworking experience... There's probably a good reason I'm an electrical engineer and not a mechanical engineer...
Part 3 is HERE!!
MUSIC BONUS:
About a year ago my best friend's band released an album. I got to preview another album they plan on releasing soon, and am really excited for it. Give their last album a listen!