Introduction: Gamecube Controller to Wiimote

Second Instructable. Let me know if anything needs to be fixed.
I did not make the circuit or program. I am just making a guide that shows step by step assembly of how to make a Gamecube to Wiimote controller.

The original page is here:

http://www.raphnet.net/electronique/extenmote/inde...

This guide will convert a regular Gamecube controller into a Wiimote classic controller. It is tested working on Smash Bros Brawl, Mario Kart 8, and many virtual console games. (It will not work for games that do not allow classic controllers). This works for Wii and WiiU.

You do not need to program anything for this guide. The program is already compiled and ready to be flashed to your chip.

Skills Needed:

  • Basic knowledge of microcontrollers
  • Soldering
  • Basic wiring schematic reading
  • How to use a multi meter
  • How to strip wires
  • How to probe pins

Step 1: Parts Needed

Parts List:
----------------------------------------

  • Atmega168P DIP microcontroller
  • USB AVR programmer
  • 12MHz Crystal oscillator
  • 1.5K Resistor
  • Gamecube Controller. I used OEM, but third party should work as well.
  • Wii Nunchuck. We only need the male wire, so classic controller or extension wire could work too.
  • Small wires.
  • PCB
  • Breadboard. This makes it much easier to test before putting into a controller.

Tools:
-----------------------------------------

  • 3 Prong screw driver. GC and Wii controllers need this to open them.
  • Wire Stripper
  • Wire Cutter
  • Soldering Iron & Solder
  • Needle nose pliers (makes it much easier to place and move wires on breadboard)
  • Dremmel or cutting tool. (chip will not fit into unmodified controller.)

Step 2: Prepare Wires - Outside Controller

To test the circuit, I made it outside the controller.

  1. Cut off the Gamecube wire close to plug. Leave at least 2 inches from plug.
  2. You will need the GC controller and plug in the next step.
  3. Cut off Nunchuck wire close to Nunchuck. This is your wire for the finished controller.
  4. The Nunchuck can be trashed. Keep the wire/plug.
  5. The GC has five wires inside. Untwist them.
  6. Do the same for the Nunchuck wires.
  7. Any copper or plastic filler in the wire can be cut out.

Step 3: Probe Wires - VERY IMPORTANT

I found out the hard way that wire colors mean nothing on GC and Wii wires.

Using 2 silver OEM GC controllers, I had different wire colors with different pinouts.

Because of this, you need to probe the wires on GC AND Wii ports.

  1. Connect alligator clips to one end of multi meter.
  2. Connect other end of alligator clip to one GC wire.
  3. Note the color of wire in notepad.
  4. Set MM to continuity.
  5. Put other MM probe into Male GC plug.
  6. Tap each of 6 terminals until it beeps or shows connection.
  7. Mark the color and terminal in notepad. EX: RED = Data
  8. Repeat for every wire in GC plug.
  9. Repeat process for wiimote plug.

My Example: (DO NOT assume this is right. You can fry the controller if wrong)

  • GC (OEM):
    -----------
  • red = gnd
  • white = data
  • blue = gnd
  • green = 3.3v
  • yellow = 5V (rumble)
  • Wii Nunchuck (OEM):
    --------------
  • Red = 3.3V
  • White = GND
  • Yellow = SCL
  • Green = SDA

Step 4: Flashing the Hex File to Atmega168

6 Pins must be connected from chip to usb programmer. Check the pictures for reference.

  • MISO
  • SCK
  • MOSI
  • Reset
  • 5V
  • GND

I used a usb programmer to flash my chip. This means that a compiled hex file is sent from the computer to the chip. No actual programming needs to be done.

The HEX file be downloaded here: (right click save target as...)

http://www.raphnet.net/electronique/extenmote/exte...

This is a firmware that will tell the chip how to handle all signals.

All Atmega chips need fuse bytes. Don't worry about what they do, just know that this design needs:

  • high byte = 0xDF
  • low byte = 0xDF
  • Extended = 0x01

Your chip flashing program should have an option to set these fuses. I used ProgISP on my system.

When you have it flashed, you are ready to start bread boarding.

Step 5: Breadboarding

I will assume you know the basics of using a breadboard. If not, there are many guides for that.
I will also assume that you know how to solder wires.

  • Attach the programmed microcontroller.

  • Plug in oscillator.
  • Start plugging in GC wires and Wiimote wires. Follow the schematic picture.
  • The 3rd picture shows mine plugged in and working.

Test that everything is working. If not double check wire color probes and wiring schematic.

If everything works, its time for the fun part: cramming all that inside the GC controller.

Step 6: Breadboard to PCB

The pictures explain a lot for this.

  • Cut PCB to microchip size.
  • Start wiring
  • Cut off unused parts of board
  • Make board as small as possible to fit inside controller.

Step 7: Prepare the GC Controller

Pictures show process in order.

  1. Open controller.
  2. Remove ruble pack. Cut wires. Trash it.
  3. Dremmel away plastic that held rumble pack.
  4. BE CAREFUL not to Dremmel too far down into the PCB. I did this and destroyed a controller.
  5. Cut GC wires down to about 3 inches. Resolder to board.
  6. Cram PCB and wires inside controller.
  7. Wrap Wii wires around plastic knobs to prevent wire tug damage.
  8. Make sure no wires get pinched when closing it.
  9. Remember the Z button before closing it.
  10. R and L button sliders need to be at top to close properly.
  11. It took me 10 tries to get it all inside, not pinched, and closable.

Step 8: Final Testing + Notes

5 picture overview of the process.

Plug it in and test. If it works, then congrats, you have a GC classic controller!

Common Errors:

  • Check that power and ground are connected properly
  • Is the oscillator connected?
  • Did you flash the correct program and the fuse bytes?
  • Are GC and Wii data wires hooked up to the right pins?
  • Do you have a solder bridge anywhere?
  • Any wires ripped off or pinched?
  • Did you probe the wrong color for wires?