This is the biggest part of the project, covering assembly of all the pieces and wiring the keys to the playstation 3 controller circuit board.
Cut 42 wires:
There are 17 total keyboard keys and the joystick uses 6 wires. Each button will need two wires (+ and -). The small tactile switch used to make the RESET button also uses 2 more short wires. This brings the total number to 34 + 6 + 2 = 42
Here's the breakdown:
5 red (Group 1 + Positive) [Select, Start, L3, R3, Home]
5 black (Group 1 - Ground)
4 yellow (Group 2 + Positive) [L1, L2, R1, R2]
4 white (Group 2 - Ground)
8 green (Group 3 + Positive) [Triangle, Square, Circle, Cross, D-Pad Up/Down/Left/Right]
8 blue (Group 3 - Ground)
6 joystick wires (one of each unique color to make it easier)
2 extra wires for the RESET button (your choice of color)
Cut them all to ~26 cm length, they'll be cut a little shorter later. The 2 RESET button wires can be a lot shorter.
⚠️ Important! The wire coloring and grouping is chosen here based on the PS3 controller model you use. The one I used (linked in Part 1) has two unique grounds, AKA ground wire groups (I did 3 unique grounds just in case). Thus there are three groups of wires (a + and - in each group).
Wire piles
Using the wire stripper, strip off about 2 or 3mm from one end of each wire. You don't need to strip the other end yet since we'll be cutting those shorter later, so skip it now to save effort.
Pinout diagram; your PS3 board might vary slightly. It will be important to determine which are the common grounds for button groups.
Set 17 of your low profile keys aside. You'll have to solder a positive (+) and negative (-) to each key according to the group, then label the wires using stickers or masking tape.
As shown in the photo below, I used the helping hands station to hold the pair of wires and the keyboard key. I applied solder to each wire, then the keyboard key, and finally soldered the wires to each key pin terminal. Repeat this for each key.
Making sticker labels. If you use multiple wire colors, you don't need to label the (-) wires since you know what they are by color. For example, Black will all be soldered to one paper clip, White to another, and so on.
Now you can carefully feed each wired key through its proper channel and snap the key into place.
You should end up with something like this, seen from the bottom. I also recommending zip ties and hot glue for cable management.
Shown after gluing to base pieces.
The base of the controller is comprised of two parts, "Main Base - Front" and "Main Base - Back". Super glue these pieces together and allow to dry.
Super glue it to the base and hold firmly for 60 seconds, allow to dry.
Solder 6 wires to the potentiometer pins on a PS3 joystick module. You could either use a brand new one (which you can get a pack of 10 for about $9 USD) or desolder the module (only the LEFT!) from the circuit board (difficult).
If you DON'T desolder the Left joystick module, you'll have to disconnect the potentiometers from the board somehow so they don't interfere with the "real" one. Instead of desoldering, an easier way is to simply pry them off with a small flathead screwdriver and needle nose pliers. It is sufficient to remove the metal tracer disc inside as shown below.
While you're here, you should cut off the joystick batons/nubs from the left and right joystick as they won't be needed. The board won't fit in the mount location if these aren't cut off.
⚠️ Important! Do NOT remove or tamper with the potentiometers of the RIGHT JOYSTICK, otherwise the PC will think the right joystick is being pushed permanently. When joystick is center, it's still reporting data to the PC.
Before soldering and clipping off unused pins
Cut or bend off all joystick pins except the 6 potentiometer pins. This is so the module will sit flush on the printed holder piece.
File down any unused pins that are sticking out so it will sit flush. Note: in my build I don't use the joystick click (L3) which is why I'm not attaching wires to these pins. Instead we have L3 going to a dedicated keyboard key directly from the circuit board.
Orient the colors however you want here but the main rule is to ensure that the pins connect to the board in the correct orientation. Easiest way to do this is to look at the joystick module from the bottom and make a diagram. Then just align that with the circuit board when you solder it later. For example:
When we solder to the board later, we're also looking at the board from the bottom, so we don't need to "flip" anything.
Completed module
Super glue the joystick to the plastic mounting bracket, routing the wires through their respective holes.
Next, attach the joystick cap to the joystick baton (it should just snap to it). Then, glue the mount into the front piece as shown below.
Don't glue the back piece on yet. We have to route the home button wires through here before permanently gluing it.
Route the home button wires through the hole and along the channel. Might be best to wait to glue these until the joystick module is fixed into place.
The home button's wires need to be routed up through the joystick module back piece and through the round hole, where the joystick wires also are routed through.
Go ahead and super glue the joystick back onto the rest of the module. Once the glue has set, you can glue the whole thing to the base and hold firmly for 60 seconds. Be sure that the wires sticking out the back don't get squished against the key modules. If you do it right, it should be possible to pull the home key wires taut as needed and then secure them into place.
Now is the time to hot glue or otherwise attach the controller circuit board to the mounting "T". The cable port should be pointing towards the back, and the joysticks should be hanging downwards as shown in the picture.
Note: the palm rest holder is shown in place as a dry-fit, not glued yet.
Cut and bend 3 paper clips and then insert into the holes as shown. These will be the common ground points for the negative (-) ends of the button wires.
Right-click and Open Image in New Tab for enlarged view
GND with Pink Arrows = L1, L2, R1, R2
GND with Red Arrows = L3, R3, Select, Start, Home
GND with Yellow Arrow = Triangle, Circle, Cross, Square, D-Pad Up/Down/Left/Right
Discovering Button Pads
Skip this if your board is 95% or more identical to the above. Make sure you know what your board's common grounds are. You can find this out with a multimeter or a bit of trial and error. When you first plug the board in to a computer via USB, you will notice the LED blinking constantly. You have to press HOME before you can use it, so you first need to find what two points on the board will trigger the HOME button. But to make this easier, plug in the ribbon cable that originally connected to the controller's buttons, and press HOME by bridging the two pads. Now with the controller active, you can put one end to one of the pads, and then take the other end and touch other pads while watching a gamepad tester on your PC until a button lights up. Now you know that ONE of those two points has to be a ground for that button. By trying the pads with other pads you should be able to determine a common ground.
Note that when doing this, you might bridge two points that shouldn't be bridged, and the controller might reset. If this happens you'll have to hit the HOME button again or maybe even unplug it and plug it in again.
Soldering
Add hot solder to all important points on the board: Start, Select, Home, Reset (+ and -), Triangle, Circle, Cross, Square, D-Pad Up/Down/Left/Right, L1, L2, L3, R1, R2, R3. Note your board may differ from the model above.
Starting at one side of the board and working your way to the other:
Cut excess length off a button (+) wire
Strip 2-3mm off the end
Pre-solder the wire
Solder the wire to the corresponding point on the board
Repeat the process for every (+) wire. Along the way, you'll want to also add a bridge between the circuit board ground and the paper clip ground -- do this while you can still access the solder point without burning wires! For example, I started with the Left Joystick 6 wires, then did L1, L2, Reset Button, D-Pad Up, Right, Left, Down, etc... and continued working my way so I wasn't covering the area with wires that I couldn't move.
The paper clips actually make really nice solder points. I recommend coating them in some rosin flux first, then applying a bunch of solder across it. You'll need a grounding "bridge" wire from the circuit board to each paper clip, and then all the common color grounds should get soldered to their appropriate paperclip.
Shown with all points soldered... except the white ground wires and RESET button... Whoops. Had to work that in at the last minute.
I mounted a small tactile switch on the left side to handle the RESET button, with two wires routed through the case to be soldered on to both sides of the reset button. I super glued it in place and then added more hot glue on the internal side to further secure it.
With that out of the way, you can now super glue down the palm rest holder to the base. Make sure none of the wires are getting pinched.
Final result with reset button soldered into place. After this picture I also hot glued the mini USB cable in to place so it couldn't be removed.