NES Pad a USB, Solo para nostalgicos
Lo que vamos a hacer ahora es adaptar el Joystick de NES al puerto USB. Cuando se me ocurrio esta idea de convertir la entrada del joystick de NES a puerto USB, no tenia ni idea de que era un microcontrolador (esto fue hace como 5 años mas o menos). Como yo queria jugar a mi emulador de NES con un joystick ORIGINAL de NES debido a la nostalgia que me generaba jugar a los juegos de mi infancia, busque para ver si podia conseguir algun adaptador. Como no habia, busque en internet un tutorial para transformarlo utilizando un microcontrolador.
El diagrama del circuito y el firmware del microcontrolador no son mios, ya que solo les hice una copia y lo programe directamente. Todos los derechos del Firmware son del autor original (estan en el codigo fuente). Hace poco me di vuelta por su pagina web y actualizo el firmware corrigiendo alguno errores asi que aprovecho y les dejo ese firmware directamente. Lo que yo voy a hacer aqui es enseñarles como armarlo y contarles mis experiencias personales armando este joystick.
Con este Mod, lo que hacemos, ademas de ganar en comodidad (por que es incomodo jugar 2 personas en un teclado), ganamos en feeling. Jugar a los juegos viejos con joysticks super modernos sigue siendo algo desabrido, no es lo que se sentia en aquella epoca, es por eso que la principal ganancia de este tipo de mods es en el Feeling que nos entregaban estos pequeños y simples Joysticks.
PreambuloLa idea de este mod es desarrollar un pequeño circuito electronico que quepa dentro de un joystick de Nintengo de 8 bits y que se pueda conectar a un puerto USB. Para esta tarea vamos a usar un microcontrolador de la marca Freescale (ex Motorola) y el modelo es el MC68HC908JB8. El programa fuente esta hecho en lengua C y esta compilado con el ICC08 de Imagecraft.
El MC68HC908JB8 es un microcontrolador de 8 bits que cuenta con un modulo de comunicaciones USB 1.1 Low Speed que permite la implementacion de dispositivos USB de baja velocidad. Cuenta ademas con 8K de memoria flash y 256 bytes de RAM para su utilizacion.
Nivel de dificultad (1 a 10) = 8 Primero que nada, la lista de ingredientes necesarios para el mod.
Soldador - 1
Placa virgen de pertinax o fibra de vidrio - 1
Cables - Cantidad necesaria
Estaño - Cantidad Necesaria
Virulana - Cantidad Necesaria
Alcohol - Cantidad Necesaria
Percloruro Ferrico - 1/4 litro
Papel satinado o papel de fotografia Glossy - 1
Impresora laser o fotocopiadora
Capacitor smt ceramico case 0805 - 2 x .1u
Capacitor smt ceramico case 0805 - 2 x 22p
Capacitor smt tantalio case B 3528 - 1 x 10u
Cristal smt xt49M-206 - 1 x 6MHz
Microcontrolador MC68HC908JB8JDW - 1
Resistencia smt case 080 - 1 x 10M
Abuela que nos haga la gamba - 1
Paciencia - MUCHISIMA
Aqui les doy el ejemplo para hacer el circuito con todos componentes de montaje superficial. Los que saben un poquito pueden reemplazarlos por componentes comunes y readaptar el PCB.
Una vez reunido todos los compenentes vamos a comenzar, pero antes, les vuelvo a recalcar que antes de comenzar cualquier proyecto tengan en cuenta estos 4 puntos.
1 - Tener la punta del soldador bien limpia (calentar la punta del soldador, una vez caliente utilizar un paño para quitar todos los residuos que tenga la punta)
2 - Calentar muy bien la punta del soldador cuando estemos por utilizarlo
3 - Comprar estaño de buena calidad.
4 - Decirle a la abuela que nos haga gamba y que nos ayude en lo que necesitemosAcotacion:Las puntas de ceramica son las mejores, pero si no tenes un presupuesto tan abultado podes comprar las de larga vida. Si aun asi seguis corto de dinero podes comprar las comunes, pero te aconsejo que tengas una lima a mano para que limes cuando la punta se va desgastando y dejarla siempre limpia y pareja, es un poco tedioso pero es la opcion mas barata.
Manos a la obra.....El esquematico que tienen que seguir es este...
En el esquema se observan 3 conectores: U1, U2 y U3. El primero es el conector para el cable USB, el segundo es donde se conectan los cables originales que salen de la placa del game pad y el tercero es para efecuar la programación del microcontrolador una vez que el circuito este armado.
Cuando el Joystick se conecta a la Compu, esta lo identifica y lo configura para que sea usado. Mientras esto ocurre, el microcontrolador le hara saber a la PC de que se trata, que esta conectado en ese puerto. Aqui es donde el microcontrolador le dira a la pc que el dispositivo que se encuentra conectado es de la clase HID, es un joystick y que tiene 2 ejes digitales y 4 botones con un intervalo de poleo de 10 ms.
Este intervalo de poleo le indica a la PC que tan rapido tiene que leer el puerto para ver si se presiono o no algun boton.
Al ser un dispositivo HID este funciona siendo 100% Plug and Play y no necesita driver alguno.
En cuanto al firmware, lo que hace este micro es revisar las entradas del joystick, y si alguna cambia, coloca el dato de la entrada en un vector de interrupcion para que sea leido por el puerto en el momento preciso. La rutina de interrupcion es bastante grosa, y para entenderla hay que saber como trabaja un puerto USB. Si te interesa leer un poco mas sobre el tema, podes descargarte un libro bien groso desde aqui -->
http://rapidshare.com/files/66885604/USB_Complete.pdf. Segun el autor original del Firmware, esta rutina es una adaptacion de un codigo fuente provisto en la Tarjeta de desarrollo para el JB8 de MCT Elektronikaladen GbR. Mas abajo les voy a dejar todas las cosas necesarias para que funcione esto asi las descargan.
Primero crearemos el circuito impresio. Aqui hay varias tecnicas para aplicar, pero la que yo siempre uso es la del tonner. Utilizando un papel fotografico Glossy o una hoja de papel satinado blanca. Este metodo que yo utilizo es bastante artesanal. Si quieren ver como se hace pueden entrar aqui -->
http://www.5bears.com/pcb.htm , esta en ingles pero se entiende bastante. Si tienen alguna duda de como hacerla, llamen a un amigo que vaya a escuela tecnica o me mandan MP y les saco todas las dudas.
Una vez que hagan su PCB les tiene que quedar algo asi...
Luego procedemos a soldar todos los componentes con sumo cuidado ya que son de montaje superficial y les quedara algo como esto...
Programando el microcontroladorAhora hay que programar el micro para que le de las instrucciones a la pc. Para esto utilizaremos el siguiente diagrama, es un simple grabador de micros que utiliza el modo Monitor que tienen todos los micros de la marca Freescale para poder ser grabados. Este que se ve aqui es una modificacion del propuesto por Freescale para hacer entrar al micro en el modo monitor. Este circuito es sencillo y se puede armar en una protoboard sin ningun drama. El circuito es el siguiente...
Este programador ISP solo andara si el micro es nuevo o si estan sin programar. Si el micro se ha programado antes, hay que usar el circuito de programacion que el fabricante proporciona. Una vez armado este circuito grabador, conectaremos las salidas denominadas DEV1 del grabador en la entrada denominada U3 del joystick. Les quedara algo asi...
Aqui se ve en naranja el grabador del micro
Una vez que este todo hecho, vamos a conectar a la PC el cable USB del joystick y el DB9 del grabador para programar el micro. El programa usado para esto es el PROG08Z de P&E Micro y lo pueden descargar gratuitamente desde su pagina -->
http://www.pemicro.com/ics08/prog08.cfmCuando iniciemos el prog08z por primera vez nos preguntara que dispositivo estamos usando. El nuestro es de Clase 3 y seria del tipo Direct Serial to target w/MON08 serial port circuitry built in. Con el puerto serie en donde fue enchufado a 9600 baudios.
Una vez que el programa se conecte con el micro, nos preguntara el tipo de algoritmo que queremos usar, entonces seleccionamos el 908jb8.08p
Despues vamos a donde dice Specify S Record y nos pedira que busquemos un archivo con extension .S19. Aqui vamos a buscar el firmware que lleva el micro. Este esta en el archivo comprimido que les voy a dejar al final.
Despues vamos a programar modulo y con eso esta listo

. Luego de eso, es necesario que conectemos los cables del nintendo para probarlo. Para esto vamos a desoldar los cables del joystick que estan en la plaqueta y los vamos a soldar del otro lado, con el cuidado de respetar los colores.
Luego recortamos los cables y los soldamos a la placa del adaptador, colocamos pegamento al reverso de esta y la fijamos en su lugar...
Finalmente, para ensamblar todo, en la tapa del control de Nintendo es necesario hacer espacio para que la carcaza cierre correctamente, para esto hay que recortar un soporte de plastico...
Colocamos la tapa en su lugar y ¡listo!:Podemos verificar el funcionamiento del adaptador conectandolo al puerto usb de la PC y entrando al Panel de control -> Dispositivos de juego. Aparece en la lista como "Nintendo Controller". Al seleccionar Propiedades aparece una ventana como la que se muestra a continuacion en donde se pueden presionar los botones y verificar visualmente el funcionamiento del adaptador.
Al diseñar con el bus USB se utilizan las herramientas de diagnostico del consorcio USB para comprobar la implementacion del protocolo de comunicacion usado en el bus USB. Especificamente yo utilice el USBCV R1.3 que lo bajan de aqui -->
http://www.usb.org/developers/tools/Bueno gente, eso es todo y aqui les dejo el archivo con el esquematico, el codigo fuente, el firmware, el PCB, la serigrafia y el programador.
http://rapidshare.com/files/319965456/Joystick_de_NES_a_USB.rarMIRROR POR SI CAE EL DE RAPIDSHARE:
http://www.megaupload.com/?d=4LZKJ7PVSaludos