Controller Input Display How To v1.2
EvilAsh25 Mar 12th, 2014 (edited) 1,375 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- I wrote this guide to give step by step instructions on how to make your own controller input display. This setup currently works with NES, SNES, N64, and GCN controllers. First I wanted to give a big thanks to cylon13 for writing the original software for both the Arduino and PC controller display and providing some basic instructions (https://github.com/jaburns/NintendoSpy). You can check out what the final product looks like in some of cylon13's or my video history: (http://www.twitch.tv/cylon13, http://www.twitch.tv/evilash25)
- 3/29/2017 - I had a few requests for the controller skins that I made, here they are: https://goo.gl/QTkL4n
- 2/12/2017 - A small update that I made to the Arduino Firmware: (http://speedrun.evilash25.com/2017/02/controller-input-display-and-arduino.html)
- Components and Equipment needed
- 1) Arduino Uno (http://amzn.to/1SpylBc) you might be able to find this cheaper elsewhere
- 2) USB cable to connect the Arduino to your computer (http://amzn.to/1prgj9F)
- 3) controller extension cable (NES, SNES, N64, or GCN)
- 4) (optional) male/female connectors with 5 pins minimum for easy controller switching
- 5) wires to solder into the controller extension cable to go to the Arduino (the Arduino sockets are very small, so you will need some smaller gauge wire to fit, so it might be best to pickup some wire after you see the socket size)
- 6) wire cutters/strippers
- 7) exacto knife or box cutters
- 8) soldering iron and solder
- 9) electrical tape
- 10) digital multimeter or a cheap continuity tester (http://amzn.to/1WifixE)
- 1) the latest Arduino software (http://arduino.cc/en/Main/Software)
- 2) software to program into the Arduino (https://github.com/jaburns/NintendoSpy/releases look for firmware.ino) Also check out my updated firmware from my blog post above (for NES and SNES only).
- 3) PC software to connect to the Arduino and display the controller (https://github.com/jaburns/NintendoSpy/releases)
- (this is the most time consuming piece, especially if you have never done any wiring/soldering before)
- 1) First you will need to cut your controller extension cable so you can splice into the wires (consider which spot in the extension cable to cut, game system side, controller side, middle) (https://raw.githubusercontent.com/jaburns/NintendoSpy/master/docs/tutorial-images/cut.jpg)
- 2) Use your exacto knife or box cutters to very carefully cut away and peel back the plastic covering on both halves, about 2-3 inches should be good enough
- 3) Use wire strippers to strip back about 1/2 an inch of the plastic covering on each wire (https://raw.githubusercontent.com/jaburns/NintendoSpy/master/docs/tutorial-images/stripped.jpg) In my case I had to carefully use my exacto knife because the wires were too small for the stripper, I rotated the wire against the blade until I could pull the plastic off the end.
- 4) Next you will need to use a digital multimeter or continuity tester to figure out which pin on your controller plugin goes to which wire in the extension cable, make sure to write down your findings. A quick google search of "<system> + controller pinout" should give you the information you need.
- 5) Here are the minimum pins we are interested in for each system (I actually spliced/wired them all in case I needed them, which I found out that I did not)
- NES - Latch, Data, and Clock
- SNES - Latch, Data, and Clock
- N64 - Data and Ground (there are only 3 wires, so it's pretty obvious here)
- GCN - Data and (any non-shield)Ground
- 6) Figure out the length you need between your controller extension cable/Arduino and cut and strip a wire for each wire you are going to splice into.
- 7) Solder each wire back together with your spliced wires, here's what mine looked like when finished (http://imgur.com/a/oeUNp#0) I soldered them this way (instead of end-to-end) because this will provide more strain relief against the small controller extension wires possibly breaking with use.
- 8) After soldering everything back together, test out your extension cable with your game system to see that it still works before proceeding.
- 9) Use electrical tape to tape up each wire separately (http://imgur.com/a/oeUNp#1).
- 10) Again use electrical tape to tape all the wires back together, make sure to tape all the way back up to where the extension cable covering starts (http://imgur.com/a/oeUNp#2).
- 11) (optional) Wire the spliced cables to a connector (http://imgur.com/a/oeUNp#2) to make easy swapping between controllers, you will need the opposite gender connector, pins, and more wires to go to the Arduino.
- 12) Hook up the newly spliced extension cable to your Arduino according to this pinout (http://imgur.com/a/oeUNp#3) or whichever pinout you plan on using, it is changeable in the firmware.ino file.
- Here is what mine looks like all hooked up (http://imgur.com/a/oeUNp#4, http://imgur.com/a/oeUNp#5) note I am using a breadboard here to just jumper the wires over to the Arduino, it is not needed.
- Software and Setup
- (once the wiring is done, hook everything up to your game system and computer, now for the easy part)
- 1) Plug in the USB connector to your Arduino and PC.
- 2) Install the latest Arduino software (http://arduino.cc/en/Main/Software), download the Windows Installer option.
- 3) Once installed, open the Arduino software, you should see "Arduino Uno on COMX" at the bottom right corner if everything is working (http://imgur.com/a/oeUNp#6). If not, you may need to restart and/or replug the USB connector.
- 4) Select File->Open and open the firmware file provided here (https://github.com/jaburns/NintendoSpy/releases look for firmware.ino).
- 5) Now uncomment the option for the operation mode (which controller) you will use (http://imgur.com/a/oeUNp#7). Note I am using a SNES controller here.
- 6) Hit the upload button (right pointing arrow) located just under the 'Edit' menu, this will upload and run the software on the Arduino. It should look like this (http://imgur.com/a/oeUNp#8). Once successfully uploaded, you won't have to upload software again to the Arduino again unless you want to change controller modes.
- 7) Open the NintendoSpy controller input display software provided here (https://github.com/jaburns/NintendoSpy/releases).
- 8) The selection here should be pretty straightforward, select the 'COMX' port that the Arduino is on, select the controller and profile you are using, and hit 'Go'. If everything is hooked up correctly you should see your controller and inputs displaying.
- Special notes
- 1) I found that the N64 display will not work correctly if you have a memory pack plugged into the controller. I haven't tested, but possibly the rumble pack could do this as well.
- 2) For my wiring guide, I moved the GCN signal pin to share with the N64, as I only have one controller plugged into the Arduino at a time and this requires less pins to be wired. This is an easy change to make in the firmware.ino file.
- 1) The most common problem is likely to be wiring, so if the input display isn't working I would double check that
- a) The controller is working with your game system.
- b) The correct pins are wired between your extension harness to the correct pins on your Arduino.
- c) Your PC can see your Arduino on a COM port (i.e. you are able to upload the firmware.ino to your Arduino)
- 2) If you are having trouble getting the Arduino programming software working or getting it to see your Auduino on a COM port, try this guide (file:///C:/Program%20Files%20(x86)/Arduino/reference/Guide_Windows.html) This file is automatically installed on your computer when you install the Arduino Software.
- Change Log
- v1.0 - Initial document
- v1.1 - Added wiring for the CLOCK pins of NES and SNES controllers, as it is now required in the software
- - Updated images to include the CLOCK Pins
- v1.2 - updated a few links, and cleaned up some explanations, added Troubleshooting
RAW Paste Data