|
With the understanding of the NES hardware, it's now a trivial task to design an adapter for it. The adapter will need some kind of microcontroller to read in the data from the controller and convert it to USB packets. Since I am familiar with (and I have all of the hardware and software debugging tools) the Microchip PIC microcontrollers, I decided to stick with them. However, this could be done with almost ANY microcontroller (it is helpful if it has USB hardware support though). Microchip recently announced a new line of flash programmable PIC microcontrollers with USB support (PIC18F2445 and PIC18F2550). These are the perfect candidate for this project.
After reading the massive datasheet and deciphering the COUTNLESS clock options for this micro, I chose the KISS strategy (Keep It Simple Stupid) and went with a 4MHz ceramic resonator. (Note: If anyone out there reading this is technically minded, you would probably question my choice of a ceramic resonator feeding a PLL, like that in the PIC, particularly with USB being particular about timing, but I assure its fine... don't worry!).
The PIC datasheet says that it needs at least a 200nF capacitor in order to generate a 3.3V reference. Thus, the schematic consists of only the bare minimum parts: a microcontroller, a ceramic resonator (a clock for the microcontroller), and three capacitors. The 100nF and 1uF capacitors help to keep a stable supply voltage and eliminate noise on the supply rails. It is probably possible to get away with only one of these (or none), but for robustness they both should be used. However, the USB specs require that the supply have less than 10uF capacitance to limit the inrush current, so you can't make these caps arbitrarily large.

A list of the parts used in the project can be seen in the table below. All part numbers and prices are from Digikey unless otherwise noted.
Manufacturer |
Description |
Part Number |
Price |
| Microchip |
PIC18F2455 |
PIC18F2455-I/SO-ND |
$9.38 |
| Murata Electronics |
4MHz Ceramic Resonator |
490-1200-1-ND |
$0.57 |
| Panasonic |
100nf (16V) Ceramic Capacitor |
PCC1870CT-ND |
$0.17 |
| Panasonic |
220nF (16V) Ceramic Capacitor |
PCC1874CT-ND |
$0.20 |
| Panasonic |
1uF (16V) Ceramic Capacitor |
PCC1896CT-ND |
$0.57 |
| Any |
Black USB Cable |
|
$3.50 |
| EBay |
Nintendo Controller |
|
$7.00 |
| Zero-Soft |
Printed Circuit Board (PCB) |
Orders Page |
$4.00 |
TOTAL: |
$25.39 |
To make all of these parts easy to assemble and provide some reliability, I designed a printed circuit board (PCB). I have made three or four controllers without the PCB's in the past by just soldering all of the components on the PIC (the through hole version), but this always produced problems. These controllers were unreliable, tempormental, and to be honest, absolutely horrible to solder. The circuit board is the ONLY way to go. Unfortunately, the DIP package won't fit inside the controller on a PCB, so I was left to use surface mount components. (I actually don't mid this at all, once you get used to SM components they are not bad at all). Pictures (not to size) of the PCB's can be seen below. I order these boards in whole panels (hundreds at a time) and they are for sale on the Orders page.
|