A modification to your current N64 controller to make it wireless. Based on the Work by micro on the Universal Wireless Retro Controller Click the photo to see a video of the controller in action.
This project could use a lot of work, mainly:
- We could integrate the NRF24L01+ into the PCB boards.
- Add the components of the Micro-LiPo into the main transmitter PCB Board.
- Translate the assembly code into Arduino code to allow the use of smaller micro controllers and possibly 2-way communication.
If you press the A button while powering the N64 controller with the mod, you will set the channel to A, while if you press B, you will set it to Channel B.
Know that if you decide to undertake this project, you are the one liable for any damages or risks that might occur.
All the Components that are needed can be found in the bellow list:
Optionally you could use JST connectors, instead of soldering wires directly to the PCB. I used the PH series.
you need to have an ISP Arduino Programmer, or use any ISP programmer such as the USBasp-Programmer.
Install and set up avrdudess There are tons of write-ups on how to do this.
Print the Receiver's 3D box and Lid, and use two 2.5M screws to hold it down.
Print the PCBs for the Reciever with a SMD microcontroller or Receiver with a DIP microcontroller & the Transmitter
- Populate the Receiver PCB with the appropriate parts (The essential resistors & capacitor can be either SMD or Through-Hole):
- Connect the ISP pins for your desired programmer to the Receiver Board. Hopefully this reference image and the PCB silkscreen will be of some help.
- Program the Board using AVRdudess with the same parameters shown, MAKE SURE THAT THE HIGH BYTE IS 0xDF & LOW BYTE IS 0xEE. If you don't then you might never be able to use that microcontroller again unless you change the crystal
- Solder some wire to the switch and solder the other side to the PCB board's SW connector (It doesn't matter which pole of the switch connects to which pad).
- Cut the N64 plug from the controller, making sure you have some length to route & solder to, I usually keep amount 20cm of cable and cut as necessary.
- Check the fit of the plug to the printed box, some 3D printers make the opening too large or too small.
- Glue the Connector to the BOX.
- Solder the Red wire to the + pad on the connector labelled N64, the black wire to the pad labelled - and the white wire to the pad in the middle of both + & -.
- Attach (or solder) the NRF24L01+ board onto the Receiver PCB.
- Place and glue all the parts inside the 3D printed box (As shown) and screw on the Lid
- Populate the Transmitter PCB with the appropriate parts:
- Connect the ISP pins for your desired programmer to the Transmitter Board. Hopefully this reference image will be of some help (the pins are in the same location as the connector on the Transmitter PCB, the Ground pin is the one that is highlighted)
- Program the Board using AVRdudess with the same parameters shown, MAKE SURE THAT THE HIGH BYTE IS 0xDF & LOW BYTE IS 0xDF. If you don't then you might never be able to use that microcontroller again unless you change the crystal
- Disassemble the N64 Controller.
- Desolder the original blue connector that connects to the cable. (I would strongly advise soldering a JST 4 pin PH female connector as shown in the photo below)
- Check the Size of your switch as around 4.8mm, and proceed to drill a 5mm hole at the button half of the controller (See images), solder some wires to them and screw them onto the controller
- Solder some wires to the 5mm LED and hotglue it into the hole that the old controller wire used to come out of. (Keep a note which wire is positive and which is negative)
- route the wires switch and LED wires to the "Right Hand" area of the controller.
- Remove the 2 lower "Crosses" that brace the buttons, from the bottom half of the controller.
- solder wires to the "Bat" pin and the "GND" pin on the Adafruit Micro lipo.
- Place the Micro lipo at the Right-hand side of the controller, and cut a bit off the corresponding top and bottom half edges to allow the USB charger through.
- Desolder the Pins on the NRF24L01+ and solder wires to each pin, remembering which wire corresponds to which pin.
- leave some length and solder the other side of the wires from step 11 to the Custom board.
- Solder the LED and Switch wires to the Main PCB, making sure the polarity of the LED wires are correct (- pin is Ground, + pin is 3.3V).
- Solder the wires from the Micro lipo, to the Custom board's Bat pins, making sure that the Bat pin solders to the pin marked with a +.
- Solder the wires From the N64 controller board to the custom board, Pin order is VCC (Denoted by the + sign on top), signal wire, and ground.
- Attach a battery to the micro lipo and test the mod. Remember if you press the A button while powering the N64 controller with the mod, you will set the channel to A, while if you press B, you will set it to Channel B.
- If all works button up your device. I recommend routing the battery to the Left hand side of the controller, the custom board to the Right, and feeding the NRF24L01+ into the nook of the expantion slot.
Make sure the polarity of the receiver pins is correct or you risk blowing the N64's power module, or worse, frying the N64 completely. In you connect the Batter pins or the N64 pins to the wrong wires you risk frying you N64 controller. I've tried this mod on reproduction N64 controllers, but it seems they allow some electrical noise that messes us the communication pathways and making it seem like you've pressed buttons you didn't actually press. If you mess with the power pins on the NRF24L01+ you risk breaking either your n64 or the controller, depending on which one was wrongfully connected. However, messing up the data pins of the NRF24L01+ breaks nothing. If the battery is too low, it will keep the LED light on, but might not send any control signals to the receiver.