Joy2PS2 Mini V3

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Responder
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Joy2PS2 Mini V3

Mensaje por spark2k06 »

Os presento una nueva versión mejorada de Joy2PS2. Un formato mas pequeño, todo tecnología trhouth hole y con el chip atmega 168 en socket para un reemplazo fácil o para ampliar al 328 en caso de que el firmware en un momento dado se quede pequeño para la versión 168:

Imagen

Al disponer de cables PS/2 macho y hembra, es posible conectar varios en cascada para jugar a tantos jugadores como se quiera... en tal caso, cada cual debería llevar mapeado en su firmware una combinación de teclas distintas para no interferir con el resto de jugadores. En el futuro, y dependiendo de la aceptación y adopción que pudiera tener este invento, la configuración de los mapas podría llevarse a cabo mediante la EEPROM, y con un programa de linux/windows, poder definir las teclas para cada uno y guardarlo en su EEPROM, de manera que ésta sea cargada al conectarse.


Por otro lado, y aquí es donde se encuentra la verdadera mejora respecto a las versiones anteriores, el cable PS/2 hembra permite conectar un teclado PS/2 convencional al mismo tiempo sin ningún tipo de conflicto gracias al diodo que lleva integrado que, combinado con el transistor MOSFET es posible activar y desactivar la bidireccionalidad del mísmo por software. Para éste propósito he actualizado el firmware, de manera que justo en el momento de enviar un scancode por el puerto PS/2, se anula la bidireccionalidad... y una vez enviado se vuelve a permitir, con ésto no sólo consiguimos evitar que haya conflictos con un teclado externo, sino que éste seguirá pudiendo ser inicializado y por tanto será posible usarlo con el core de PC/XT del ZXUno. Si ésto sucede, estaría el problema de que el joystick no se habría cambiado al set 1 de scancodes, pues bien, también lo he resuelto aprovechando el combo del modo shift (BUTTON 1+LEFT), para que, ademas de deshabilitar la escucha de comandos (que así está por defecto para evitar conflictos a la inversa), el joystick cambie entre el set 1 y el set 2 de scancodes sin requerir inicialización para ello.

El firmware de este proyecto está pensado sobre todo para el uso con el ZXUno, gracias a la implementación diversos combos para controlarlo al completo, mas información aquí, sin embargo, como ya he ido mostrando en varios vídeos del foro ZXUno, éste puede ser usado sin problemas en dispositivos que acepten teclado PS/2 como puede ser un PC, o incluso también con USB sin ningún tipo latencia aparente, gracias a este adaptador de PS/2 a USB, también probado y funciona perfectamente incluso en la Mist.

Principales ventajas de usar Joy2PS2 en lugar joystick del ZXUno:

1. Emula el teclado y siempre puede mapearse como se necesite (de momento recompilando el firmware para ello, aunque la tipica de OPQA-SPC-M es la que está por defecto). Practicamente la totalidad de cores del ZXUno permiten el uso de teclado en los juegos, y los que faltaban, ya me encargué de modificarlos para que también se pudiera... porque mi objetivo inicial con este proyecto siempre fue poder usarlo con la mini bartop basada en ZXUno que me estoy construyendo.

2. Jugadores "ilimitados", mediante conexión en cascada de varios Joy2PS2... cada uno debe usar teclas distintas para no interferir en el resto de jugadores.

3. Pocos o ningún juego de Spectrum (que yo sepa) sólo permiten ser utilizados con Joystick de Spectrum, sin embargo sí sucede lo contrario en muchos, que sólo es posible con teclado... precisamente para lo que está preparado Joy2PS2.

4. Joy2PS2 no está limitado al protocolo atari sobre el conector DB9, sino que han sido implementados de forma transparente en el propio firmware muchos otros, como:

MSX (con alguna adaptación física para usar el último botón), Amstrad CPC, VIC 20, Sega Master System, Sega Megadrive de 3 o 6 botones (todos están mapeados), Amiga, ZX Spectrum, y en una próxima actualización, dependiendo de la aceptación y adopción, también NES Famicom DB9, porque requiere un esfuerzo extra para llevarlo a cabo.

He tenido la idea de usar la siguiente caja de un DB15 que venden en Aliexpress bastante económico, que viene bien para quienes no tenemos impresora 3D, aunque no he sido muy bueno calculando el lugar donde llevar a cabo el agujero para que salga el switch del keymapper como se puede observar:

Imagen

Quién se anime puede modificar el diseño para usar todo tecnología SMD y sacar una versión Nano que entre en esta otra caja.

Finalmente, todo conectado creo queda bastante bien:

Imagen

Si queréis ver bien en detalle tanto las virtudes como los defectos, aquí dejo las fotos en alta resolución

Los ficheros Eagle se encuentran la carpeta github que he preparado, facilito la lista BOM al final de este post por si alguien se anima a hacer alguna tirada... yo en esto prefiero mantenerme al margen para centrarme y llevar a buen puerto el proyecto Sugarless +2 en el que estoy metido.

El firmware debe ser cargado mediante un programador ICSP como el USBAsp, aquí lo tenéis a buen precio.

Nota. A la hora de programarlo, hay que desactivar el fusible CKDIV8, para que trabaje a 8Mhz en lugar de a 1Mhz, que es la configuración que viene por defecto de fábrica.

Pedido de 3 PCBs en OSHPark por 9,45$ y gastos de envío incluidos.

Listado BOM

Para la versión mini:

Atmega168 DIP x 10 = 1,86€/u

28 DIP Socket x 10 = 0,13€/u

Kit de Caja y conector DB15 breakout x 1 (solo se necesita la caja) = 2,36€/u

Diodo throuth hole x 10 = 0,06€/u

Transistor MOSFET BS170 x 10 (o cualquiera de nivel lógico) = 0,14/u

Para una posible versión nano:

Atmega168 SMD x 10 = 1,08€/u

Kit de Caja y conector DB9 breakout x 1 (solo se necesita la caja) = 2,42€/u.

Diodo SMD x 100 = 0,02€/u

Transistor MOSFET IRLML6344 x 10 (o cualquiera de nivel lógico, éste es válido pero demasiado bueno para su función en este proyecto) = 0,18/u

Elementos comunes para las versiones nano y mini:

Conversor PS/2 a USB = 1,31€/u

Conector DB9 x 10 = 0,29€/u

Switch button 6x6x18mm x 100 (si se encuentran algo mas cortos mejor, < 18mm) = 0,04€/u

1x40 rompibles para crear conectores ICSP x 133 = 0,02€/u

Cable PS/2 Macho - Hembra para cortar y soldar a la PCB x 1 = 2,44€/u
Última edición por spark2k06 el 28 Ene 2018, 16:41, editado 7 veces en total.
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Joy2PS2 Mini V3

Mensaje por spark2k06 »

Ya he puesto el listado BOM al final del primer post.

Edito: Falta por poner el diodo y el transistor MOSFET, en cuanto pueda lo hago.
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Joy2PS2 Mini V3

Mensaje por spark2k06 »

spark2k06 escribió: 17 Ene 2018, 14:25 Ya he puesto el listado BOM al final del primer post.

Edito: Falta por poner el diodo y el transistor MOSFET, en cuanto pueda lo hago.
Ya está todo.
Avatar de Usuario
Lord Raptor !Commodore Amiga
Demonio tercer orden
Demonio tercer orden
Mensajes: 733
Registrado: 15 Oct 2014, 23:41
Been thanked: 18 times

Re: Joy2PS2 Mini V3

Mensaje por Lord Raptor »

Te felicito, muy buen trabajo !!
Nunca está de más este tipo de inventos.

Gracias por la investigación y desarrollo.
...Por ké kuesta más karo pagarse un entierro ke kobrarse una vida ?!
Miembro activo en la demoscene de Amiga desde 1992
Avatar de Usuario
duca750 España - Extremadura
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 2635
Registrado: 28 Ago 2017, 13:14
Has thanked: 385 times
Been thanked: 199 times

Re: Joy2PS2 Mini V3

Mensaje por duca750 »

Grandisimo trabajo. Ya me hixe del zxuno y no lo he probado aun... Tengo delito.
CPC464,CPC6128/GX4000/COMMODORE 64,AMIGA 500/ATARI STFM1024&800XL/ORIC1,ATMOS/DRAGON32/SPECTRUM+, +2,+3,48K,16K/MSX HB501P,101P,201P,MSX HB20P,HB75P,CANON V20,PHILIPS NMS8250,8020&8010&8000/ACORN ELECTRON/THOMSON MO08,MO05/ENTERPRISE 64.
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Joy2PS2 Mini V3

Mensaje por spark2k06 »

Gracias compañeros. A nivel de hardware realmente no tiene misterio alguno, la potencia se encuentra en el firmware. Con esta última actualización que permite controlar la bidireccionalidad del protocolo PS/2 en un teclado externo, podríamos afirmar que a nivel de usuario la experiencia de uso es casi perfecta. Están cubiertos todos los aspectos, incluso quién quiera usarlo en USB con un simple adaptador PS/2 a USB como he comentado, puede hacerlo.

He tratado de ofrecer todas las facilidades en el diseño a nivel económico, tecnológico y práctico para que esté al alcance de cualquiera... de manera que ya sólo queda disfrutarlo :mrgreen:
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Joy2PS2 Mini V3

Mensaje por spark2k06 »

Añado serigrafías en la PCB para facilitar su uso directamente dentro de cajas arcade. De esta manera puede prescindirse del conector físico DB9, soldando los cables del mando arcade y botones directamente en cada pin, y aprovecho para añadir serigrafía de los botones extra en los pines correspondientes del atmega. El diseño propiamente dicho no cambia, sólo añado serigrafias.

Proyecto actualizado en OSHPark para quien quiera hacer un pedido de 3 PCBs con este nuevo diseño directamente desde ahí por 9,45$ y gastos de envío incluidos:

Imagen

Si se quiere usar en cajas con dos mandos arcade se necesitan montar 2 PCBs, y basta con puentear todos los pines de PS2_FEMALE del Jugador 1 con el PS2_MALE del Jugador 2, y usar el PS2_MALE del Jugador 1 para conectar al ZXUno o dispositivo con entrada PS/2 donde quiera ser utilizado (o bien, a un conversor PS/2 a USB para ser utilizado en dispositivos con entrada USB)
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Joy2PS2 Mini V3

Mensaje por spark2k06 »

Reaprovecho este hilo para anunciar una nueva release de Joy2PS2 aquí.
  • Implementación del protocolo de NES Famicom.
Ahora es posible conectar mandos compatibles con Famicom en los puertos DB9, para lo cual será necesario añadir un adaptador como éste:

Imagen

De esta manera es posible combinar mandos Atari y Famicom. Para que el firmware los detecte como Famicom, estos pueden ser conectados antes de conectar Joy2PS2, y conectar este último manteniendo pulsado el botón de Select... o bien, una vez conectados, pasar a modo SHIFT y salir del mismo (con el boton de Keymapper) manteniendo pulsado antes el botón de Select. Si tras salir del modo SHIFT no se ha detectado el protocolo famicom, el puerto o los puertos serán utilizados como Atari/Megadrive, por lo que un mando Famicom en estos no funcionaría, y viceversa, una vez detectado famicom, un mando Atari/Megadrive no funciona en estos puertos... para que funcionen se entra y se sale del modo SHIFT sin hacer nada mas.

A continuación una fotografía de dos mandos, Atari y Famicom funcionando simultáneamente:

Imagen

Y un vídeo de ejemplo:



Si alguien quiere usar este tipo mandos con Joy2PS2 y necesita el adaptador, puede hacer un pedido en oshpark, conseguir un par de conectores macho y hembra y soldarlos a la placa.

Próximamente realizaré los cambios necesarios en el firmware del proyecto Sugarless +2 para añadir también compatibilidad con mandos Famicom en su puerto de Joy2PS2.
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Joy2PS2 Mini V3

Mensaje por spark2k06 »

Preparando el firmware para el sugarless +2, me ha sucedido algo que no esperaba... sin querer he puesto el gamepad famicom sin el adaptador, directo al puerto db9, y funciona! El adaptador no es necesario :-). Os cuento, famicom usa el pin 6 en lugar del 5 para alimentarse con +5v, así que éste es un simple puente para pasar el pin 5 al 6. Pues resulta que el pin 6 para atari lo dejo en pullup, y la corriente proporcionada por el arduino es suficiente para la alimentación del gamepad famicom, con que actualiceis el firmware de joy2ps2 es suficiente para que podáis usarlo.
Responder

Volver a “Proyectos de hardware abiertos”