First and foremost, I'd want to share with you why I'm working on this project. I've wanted to be an electrical engineer for a few years now, and I've been attending classes at FIU (Florida International University) to achieve that goal. With my free time, I became engrossed in the concept of portability (you can learn more about it on this website) Bitbuilt, and ended up building a Wii laptop that I could take with me everywhere I went. It also corresponded to many of the actual engineering skills I was acquiring in class. However, I discovered that, while I enjoyed the feel of my OEM controller, it was really large, and I frequently found myself playing Gameboy games on my phone rather than lugging everything I required to play the Wii laptop. My original goal was to put the controller someplace on the laptop so that it could function as a single unit, and then remove it when I was ready to play, but it quickly became too hard. Then I determined to design the tiniest GameCube controller I could while still maintaining a pleasant form factor.
Because the Gameboy SP was my first Gameboy, I felt it would be the ideal size for a tiny controller. So, with this broad notion in mind, I devised the following objectives for my controller:
Using a pic mini controller, create a full-featured GameCube controller without rumble.
Because 3ds sliders are the flattest joysticks I could find, I decided to utilise them.
To use the contacts from the DS Lite buttons, membranes, shoulder buttons, shoulder tact switches, springs, screws, and the trimmed motherboard.
A dual tactile switch system was used to emulate analogue triggers.
To 3d print the shell after designing it in a CAD application like Fusion 360.
To make the size as tiny as feasible in all dimensions. (the final dimensions were 63mmx63mmx12mm)
Only a smidgeon of hot glue is used!
In order for it to seem decent. The all-black appearance appeals to me.
Finally, I'd want to thank everyone who contributed to the success of this project:
Bitbuilt - Provides a wealth of information regarding portability in general.
GC+ - A gamecube controller emulation was made by one of the community's modders, and it is at the core of the project.
Getting the materials to these projects is arguably the least exciting aspect. Waiting for a part to arrive might throw your schedule into disarray.
These pieces are simply examples of things to look for; you may be resourceful and use anything you can!
Step 1: Create a 3D model
All of the 3D modelling was done in Fusion 360. I don't have a step-by-step for each every extrusion and drawing because this was my first dive into CAD software, and it took a lot of trial and error to get everything exactly perfect.
I spent a lot of time with my digital callipers, measuring the ds lite and the other pieces to make sure I had the tightest fit possible.
Finally, I was able to get it to be 63mmx63mmx12mm in size.
3D Printing (Step 2)
I've provided the STL files that were utilised in this project. I chose not to include all of the screw holes in the model so that I could test fit the pieces and then drill the holes manually with a 1/16 drill bit. This took a bit longer in the end, but it ensured that everything was in perfect harmony.
You should be able to print them with the major flat sides facing down, whether you use your own printer or a 3D printing service, to get the best surface quality on the pieces.
The last two of photos show the shell created using a Form Lab 3 resin printer; you can see how much smoother it is and how much tighter the tolerances are. To complete the professional look, a little logo was laser etched.
Step 3: DS Lite Parts Preparation
I used the iFixit website to disassemble the DS lite since it provides very detailed step-by-step instructions.
The following is a list of the major resources you'll need to scavenge from the DS lite:
Assemble the trigger (bumper, little metal rod and spring)
Buttons made by ABXY with their rubber membrane
The rubber membrane of the D-pad
The rubber membrane on the Start and Select buttons
The clipped clicky tactile switches from the motherboard's shoulder buttons region
All the nuts and bolts
Contacts on the mother board for the ABXY buttons and D-pad
After we've disassembled everything, it's time to hack up the motherboard! You can see what basic form you'll need to cut the pcb contacts from some of the photographs. When slicing up the motherboard, I propose the following procedure:
To acquire the overall square form, use a Dremel (do it further out so you can sand it smooth to the desired shape).
With some sanding or wire cutters, try to remove any components that could come in the way.
Cut out all the notches to fit in the 3D printed shell using files or sandpaper.
Hold the trimmed pcb in the shell and use a 1/16th drill bit to drill through the areas shown in the diagram, passing through both the pcb and the 3d printed portion. This will ensure that the holes are exactly aligned.
In order to utilise one of the slim clicky tact switches that came off the select/start section of the motherboard as our z-button, we'll need to remove one of the slim clicky tact switches that came off the select/start part of the motherboard. I discovered the simplest method is to chop the legs off the tacts with an exceptionally sharp razor blade, as if you were attempting to get your spatula under a pancake and then flip it.
We'll also trim the start and choose membranes to make sure they fit in their proper places.
On my first attempt, I accidentally broke one of the tactile switches, thus I had to swap another tact switch and perf-board. You should be able to cut off the pcb on one of the start/select tact switches and then screw it in like the other button contacts to the 3d model.
Wiring to Trimmed Button Contacts (Step 4)
I soldered the magnet wires to their appropriate test pads using the pinout shown above. If you want to solder to the vias, you may also use a multimeter to test continuity.
You need additionally connect at least one wire to a ground location on the cut pcb.
Scratch off any solder mask that may be obscuring the tented via so that you may solder a firm connection.
Before you start screwing objects into the 3D printed casing, make sure you complete this step.
Preparing Triggers (Step 5)
Following that, I began working on the triggers. The smd tact you removed from the DS lite motherboard should be superglued to the position marked on the right trigger. You'll also need to sand/file that region a lot to make sure the button, membrane, and tact switch have adequate room. This will take a lot of trial and error, but you should finally get a great sensation from the z button!
GC+ Micro Controller (Step 6)
I had never flashed a pic microcontroller before, so this was a completely new world for me. However, in order to fit everything into the compact form factor that I need, this element was critical.
To begin, you'll need to fill the board with the necessary components. We may skip some of the components because the rumbling functionality will not be included in this release. Those are highlighted in red. The remainder of the passive components, such as the pull-up resistors and smoothing cap for the power supply, should be filled in.
It helps to have a hot air station for this, but you may also use a soldering iron with a fine tip or drag soldering with flux. I followed a few of YouTube videos and used the drag soldering approach, which worked out beautifully! Just make sure you wipe up after yourself with some IPA, since the flux might leave some residue.
After you've soldered the board together, it's time to flash the PIC chip! On the bitbuilt website, I followed the procedures below:
https://bitbuilt.net/forums/index.php?threads/how-to-program-your-gc-board.2541/
You'll need to utilise the hex file from this Github repository:
https://github.com/Aurelio92/GCPlus GC+ Github
After you've checked that the board has been properly flashed, you'll need to cut it down to fit in the 3D printed enclosure. The upper right half of the photo I have here has been cropped away; I would not advocate doing so if you guys take on this endeavour.
Step 7: Put it all together
Now it's time to put everything together!
To begin, install the buttons, D-pad, and start button, as well as their respective membranes, on the cut motherboards and secure them using the DS lite's leftover screws.
Then you'll want to add the 3ds caps and Sliders and screw them in as well. Because we'll be soldering to those eyelets, you'll need to clip off the flex pcb from the sliders. You'll also need to sand the main stick slider to make it fit in the overhang where the case-closing screw is located.
If anything appears to be loose, use hot glue to bind it.
Next, we'll screw on the cross bar that sits on top of the D-pad pcb and holds the microcontroller pcb in place.
After that, we'll screw in the little bracket that will allow us to shut the case over the ABXY button board.
The SMD audio jack may then be inserted and secured with a dab of glue. The little bracket is then cemented and screwed into place to keep it in place.
The grey squishy tact switch and the clicky tact switch snipped from the ds lite will be superglued in their respective spots as indicated in the photographs. You'll also want to trim two of the legs to make them as flush as possible.
You'll also need to remove the little post inside the trigger that used to activate the DS lite's switch. There will be some trial and error, but you'll tape it in place until you have the right action, which is a half press that activates the grey squishy switch and a full push that activates the clicky switch.
You may then insert the triggers with their metal rod and spring, just as in the original DS Lite, once you've wired the trigger buttons.
Wiring (Step 8)
After that, it's time to connect all of the contacts to the microcontroller! Because most of the buttons are grounded, connect one end of the switch to ground and the other to the appropriate pin on the microcontroller.
I scraped off some of the solder mask on the ground plain in my final wiring image to offer additional spots to connect to ground. Wire handling is crucial in this situation! Using your tweezers will aid in achieving the cleanest result.
When wiring the contact and determining what each pad accomplishes, go to this page.
Make sure that "L" and "R" are both connected to 3.3V. The 9ne leg of the grey squishy tacts, for example, will be linked to L and the other to 3.3v.
We'll also have to shift the x and y axes to their respective pads because the 3ds sliders' orientation isn't typical. The illustration depicts the standard pinout; however, in our case, we must ensure that:
x-axis on main stick slider -> SY on GC+ pcb y-axis on main stick slider -> SX on GC+ pcb x-axis on c stick slider -> CY on GC+ pcb y-axis on c stick slider -> SX on GC+ pcb y-axis on c stick slider -> SX on GC+ pcb CX on a pcb with GC+
Later, via the Wii homebrew configurator supplied in the GitHub repository, we'll be able to tweak the stick settings.
We're also connecting this audio jack in an unusual method. I chose this approach so that when you plug the custom GameCube cable that we'll be constructing later on, the 3.3v doesn't accidentally short to any of the other lines.
I've also included a photo of my completed wiring so you can see what yours will look like.
After that, you should be able to finish it off with few additional screws from the DS lite!
Custom GameCube Controller Cable (Step 9)
We'll need to make a special connection to attach the controller to our Wii or GameCube because we utilised a headphone jack as the connector.
Getting a low-quality 3rd-party controller or a GameCube extension cord is the simplest option. I had an old GameStop controller that I could reuse, so I cut the wire off and used it.
You want to make sure that the pin out of the GameCube connection is connected according to the following convention:
3.3 volts is sent to the sleeve.
The ground moves to the ring, and the data moves to the tip.
If you want to reinforce the connection even further, you may use electrical tape or shrink wrap!
Configuring the Controller (Step 10)
Because the 3DS sliders aren't the standard GameCube joystick, the designer of GC+ created a Wii homebrew programme to modify the joysticks. I won't go into detail because there is a lot of material out there on Wii homebrew, but basically you'll want to hack your Wii to acquire the homebrew channel, then upload the firmware from GitHub to change the settings.
After that, you should have a completely functional small GameCube controller (without the rumble) that you can use to play anywhere!C