Thursday, June 19, 2008

How To: Make your own NES USB controller w/ games


Video of finished USB controller

-------------------------------------------------------------------------

UPDATE: 25/MAY/2009

Hi all. Well ive been very busy for the past year and have neglected this blog (and my NES controllers!). Looks like people are still posting here and im getting inundated with emails asking for help with their controllers etc.... Because of this, ive decided to make an online forum so we can all help eachother build these things.

LINK TO NES USB FORUM: http://usbnes.s2.bizhat.com/

I really like the idea of DIY and so far this blog has brought about plenty of ideas that enhance the USB NES Controller or make it easier/cheaper to build. So please, lets all share these ideas on the forum!!!
For those of you who have emails me and I havent replied. I apologise. Please post your questions in the new forum and hopefully either myself or someone else will answer your question(s).

UPDATE: 6/AUG/2008

Hello again!! I was able to get my hands on 10 NES controllers and have ordered in the parts to fit inside them. I should hopefully have 10 of these to sell on ebay in about 1 - 2 weeks. Ill keep everyone posted.


UPDATE (23/7/2008): Ok guys... ive been getting bombarded with requests to make and sell these little suckers. Ill be looking into making a small batch of these soon and selling them on eBay. Ill keep you all informed. If youre interested in purchasing one email me at jaykaye2k9 (at] gmail [dot) com


Ok guys, ive gotten waaaaaaaaay too many requests to make a tutorial on this to ignore. Sorry it took so long. I recently made 3 more controller, each a little different from the other. I may make tutorials on those later. Next NES controller I make will need to be wireless, if someone does this before I do please email me at jaykaye2k9 (at] gmail [dot) com

No video tutorial. Sorry, im not too good with video editing just yet. If any of this tutotial is unclear comment on this and ill try and fix it up.

If you find this Howto useful please leave some feedback! Thanks!

Ok, lets start:::::
-------------------------------------------------------

EDIT: Ive added this dodgy diagram. Hope it helps. There are 3 USB devices inside the controller. The USB HUB (which is the only device with a USB plug on it), a USB thumb drive (2GB in this case) and a USB keyboard controller (which controls the button presses on the controller).



-------------------------------------------------------

The board between the clamps is a keyboard controller. This one I took out of an older model SNES controller I had made many years ago, so its been cut down from its original size. Further cutting down is needed now to fit it into the NES controller cavity.
The long rectangular contacts on the board are the keypress contacts (for when you press a button on the keyboard). A keypress shorts the circuit between one of the contracts on the left of the hole in the middle and another contact on the right of the hole. So if you want to emulate a keypress you need the correct combination of a contact from the left (if you have a look at the sheet of paper, you can see these are labelled A to M) and right (labelled 1 - 13 on the paper).
I made a grid (the sheet at the top) with the X axis A to M and the Y axis 1 - 13. This way I could easily identify which two contacts would give me what output keypress.

The wire coming off the bottom of the board is just a standard USB cable. +5V (usually red), ground (usually black), Data+ and Data- (green and white). Some USB cables have an additional 5th wire for ground or shield, you can safely ignore this if your controller has one.

I tested the keyboard controller out by plugging it into my computer and manually shorting the board contacts to see what output it would give me on notepad.exe and writing it down. It takes long doing it this way but I had no choice as I didnt have the actual keyboard with me to trace the tracks I needed. If you are opening up a keyboard from scratch, then it may be easier for you to just identify the keys you want to use and trace the tracks and test using a multimeter.



-------------------------------------------------------------

The untouched NES controller board. We will be cutting this down later on to make it as small as possible.



-------------------------------------------------------------

Using soldering wick, you will need to remove the IC, 2 resisters and the cable to make working on the board easier.



-------------------------------------------------------------

Board with removed IC, cable and resisters.



-------------------------------------------------------------

Each button on the board has two contacts. Thats a total of 8 buttons and 16 contacts. The NES board is made in such a way that each button has one contact to earth and the 2nd contact is for signal. So thats 8 signal tracks for 8 signal contacts and 1 earth track for 8 earth contacts.

The keyboard you mapped up earlier will have a few common contacts also (the same contact on one side to different contacts on the other side, bringing different results). You need to write down and map out these contacts on the new layout. Make sure you include the common contacts too as this will reduce the amount of wires needed later on.



-------------------------------------------------------------

Ok its getting a little harder now.
The paper underneath the board shows the tracks I need. You will need to cut existing tracks here, bridge tracks together or make new ones. Every keyboard controller is different so its up to you how you do this. Just keep in mind that you need to be 100% on your layout before you go cutting or making new tracks. Also when making new contact points on the board make sure they are out of the way of the buttons that will sit on top of the board. The buttons take up a considerable amount of the surface of the board. If you are bridging tracks use a pair of pliers to squash the solder down to make it as flat as possible. For any extended bridges run your wires behind the board.



-------------------------------------------------------------

You can see in this pic that ive cut up a few existing tracks and bridged other ones. I have also run a couple of wires behind the board. Using a hack saw I cut down the board as much as I could (make sure you dont cut away the hole for the guide, top left to the right of the 'up' button). At this point if you havent made any mistakes with your board modification youre doing well. Using a multimeter test your work and check for shorts.



-------------------------------------------------------------

Final result is 10 wires for my keyboard controller. The ribbon cable I got from an old computer (the IDE cable inside). They are perfect for this sort of work and very easy to find one of these cables).



-------------------------------------------------------------

Soldering the cables to the keyboard controller for a quick test. This is only for testing. Once everything tests fine I pull off the keyboard controller. The final solder required the wires between the two board to be much shorter.



-------------------------------------------------------------

Soldered on a new USB cable. This new cable will be soldered directly onto the USB hub which will be housed inside the controller.



-------------------------------------------------------------

Fitting it together and testing again. Wires much shorter this time and the keyboard controller is glued down to the NES board. The bottom, middle screw that holds the NES case together will go through the hole in the keyboard controller also, making it nice and solid. In this pic you can see the USB wires ive soldered on and also the existing USB cable that ive left in its place for testing, eventually they will be cut off.



-------------------------------------------------------------

These are both USB hubs. The one above is still in one piece. The one below is the one I used many years ago in the SNES controller. Ill be re-using this one. I had butchered the board many years ago but still managed to somehow make 2 of the 4 ports work for this project. The capacitor on the board stands too tall so it has been put on the end of a couple of wires. Depending on the USB hub you buy, you may need to cut it back to make it fit in the controller case. The bottom USB hub in this pic was modified to fit (it looked like the top USB hub before modification). The board is split almost symetrically with the one IC controlling both sides of the board. Each side has 2 ports to it. You only need two ports for this project so the top half of the board has been cut down (and the capacitor removed) and those two ports wont be useable.

You need to cut away parts of the controller case to make the hub fit. Do what you need to do here.



-------------------------------------------------------------

Removed the keyboard controller USB cable and soldered the new wires to the USB hub and test.



-------------------------------------------------------------

Retro-fitting to make sure all sits well.



-------------------------------------------------------------

2GB USB drive. You need to take the USB connector off. BE CAREFUL!!! Ive broken a few of these damn things. Its very difficult to remove all solder without the proper tools, so in this case I just used my knife to cut across the 4 USB contacts and then used pliers to break of the end pins holding it down. This made it easy to remove by simply bending up the connector.



-------------------------------------------------------------

2GB drive soldered onto the HUB and test.



-------------------------------------------------------------

The silver USB hub cable removed and replaced with a black one for more of a classic NES controller look. Everything screwed together and tested.