Have your ever seen any of "Ben Hecks" portable console builds? Well if you haven't, he often uses these Chinese Famicom clone consoles. These cloned consoles are often times refered to as NOAC's, meaning NES On A Chip. They are called this because they are a fully functional Nintendo Entertainment System literally on one chip. The best part about the NOAC is that they include a 60 pin famicom game port, which in our case can easily be converted over to a 72 pin NES game port.
I originally got this idea from Kotomi (link below), and figured i would try to do the same thing. My plan was to use the original NES controllers, instead of the cheap super joy ones, which is what i believe Kotomi used. Kotomi's system also incorporated the original Famicom connector instead of the NES connector. In order to use the NES controllers, I would have to convert the NES controller's shift register data into the NOAC's controller chips. So... what better way to do it than with an Arduino!!!!
Step 1: Materials
1. Power Player Unit (or similar)
2. NES 72 pin connector
3. 2 NES controller ports
4. An NES game that will serve as the case
5. An atmega168 (arduino chip)
6. Texas Instrument TLC5940 (you can get these as samples from their site... their free)
7. Some basic parts such as switches, leds, along with a 7805 voltage regulator
8. PCB making stuff (I used the toner transfer method)
9. Basic knowledge of soldering and electronics
10. And most definitely a dremel tool with some bits and cut off discs
11. A multimeter is probably a good idea as well, because you will need it for troubleshooting
Step 2: Disassembly
So once its all apart, start off by locating where the power inputs are. Something that I like to do is to take a picture of the board (or scan), and put it into photoshop and color in the traces according to their use. It's a helpful tip that I like doing, because sometimes when your cutting up a board, you will forget what things went where and things just get crazy.
Once you've found the power connections, I would test to see what voltage the unit runs one. Most commonly it's going to be 5 volts, but just check to make sure. In my case the wall adapter was ouputing 13 volts, but there was a 5 volt regulating circuit on the controller PCB.
The next thing you want to check on, is there or not the player buttons have a common connection. Most of the time they will use ground as the common, but I've seen others. In my case it was ground, which works out perfectly because the TLC5940 outputs only grounded signals to achieve PWM.
Step 3: Testing the button simulator
Connect the TLC5940 as follows. I got this from the basic use sketch that comes with the library.
+5v 19 & 21
GND 22 & 27
GND -WW- 20 (2K resistor goes from pin 20 to ground)
For this part, I just cut the wires on my stock NES controller port and wired them up according to this diagram.
| 1 \
| 2 5 |
| 3 6 |
| 4 7 |
1 = GND
2 = CLK
3 = Latch
4 = Data_Out
5 = +5VDC
6 = N/A
7 = N/A
Now solder some leads on to the button pads of your controller, make sure it's the NON common side of the pads.
Next, you can connect the leads up accordingly.
NES button TLC5940
A OUTPUT 0
B OUTPUT 1
Select OUTPUT 2
Start OUTPUT 3
UP OUTPUT 4
DOWN OUTPUT 5
LEFT OUTPUT 6
RIGHT OUTPUT 7
A OUTPUT 8
B OUTPUT 9
Select OUTPUT 10
Start OUTPUT 11
UP OUTPUT 12
DOWN OUTPUT 13
LEFT OUTPUT 14
RIGHT OUTPUT 15
Finally, connect the system up to the TV, making sure that the arduino and the Power Player share the same power supply or their grounds are connected. Go ahead and test it out. If everything works good, then great! If not, then try to trouble shoot the problem.
1. Test each output with an LED, connecting the long leg to +voltage, and the short leg to the TLC5940 output pins. If they don't work, then check the wiring of the TLC5940
2. If all the LED's turn on when you press a button, then check the wiring on the controller port. This will occur when there are some wires switched around.
3. Also make sure that your Power Player, or Super Joy, or other thing works off of common ground system. Meaning that when the buttons are pressed on the system, they short out to ground.
Step 4: Making the controller board
Download the freeware version: http://www.diptrace.com/download.php
2k Ohm resistor
28 pin ic socket
Once it's all put together, it is time to cut up the Power Player boards. Start by locating the glob top where all the button inputs go into. Then take your dremel tool with a cut off disc, and cut it right out of the board. In my case, I think I made the board a bit small, so I ended up making the player 2 board a bit larger. The problem with making it so small is that when you attach wires, they tend to rip the traces right off the board. This happened to me about 3 or 4 times with player 1, it came to the point where i actually had to chizel a little bit of the black glob away, just to get more copper to solder onto.
Now that the glob top is seperated from the PCB, it is now time to scrape the solder mask off of the necassary copper traces. Use your diagram that you made, or however you chose to remember the pinouts to solder the correct wires to the PCB. Use the diagram ive uploaded to connect the wires. Repeat this same process for player 2.
Step 5: Making the game port connector
2. Then using the same cut off disc, shave the mounting bracket off each side.
3. Then if you choose, you can use some sand paper to smooth it over.
4. Attach wires on each pin that is required by Ben's diagram, which i have attached. (i like using old IDE cables from computers, because they are relatively small guage, and they bend nicely)
5. Next, you have to desolder the crappy Famicom connector from the NOAC.
6. Reconnect all the wires that go to their respective spots on the NOAC.
7. Try it out! put a game in the system, and if it works great. If not make sure that CHR A10 and CHR A11 are flipped.
Step 6: Making the case
Step 7: Putting it all together
The hardest part was to fit the cartridge port in the case. In order to do this I had to hot glue and somewhat put the case together, then i put a game in the port and held it where i wanted it to be. This technique worked good, but had to be done quickly before the glue cooled. Once that was in, I was on the home stretch.
The next part was to put the CPU right between the connector and controller ports, and tack that down with some hot glue. Next i hot glued the controller ports in, along with the AV outputs. Now I had to find a good place to connect the power to, so i chose one of the controller ports. I soldered the power off the switch to the positive on the controller, and the negative does the same. The only thing left to do was to fit the controller board in, and screw the case closed.
The controller board fit right between the ports, and the power switch (intentionally). Making sure as to not crimp any wires, I screwed the case together. DONE!!!!! Finally, I could run over to the TV and test it out.... works like a charm!