Busco compañeros entendidos en Arduino

Buenas.

Busco compañeros que entiendan de Arduino parar crear un adaptador de mandos y volantes multisistema (parecido a CronusMAX y Maxrace F-1 v.4).

El motivo de crear un adaptador es el elevado precio de los adaptadores actuales (55€ el CronusMax) y el poder utilizar cualquier gamepads en cualquier consola, sin importar generación o marca.

Todo el proyecto sería opensource para que cualquiera pueda modificarlo a su gusto.

Muchas gracias.

Saludos.
No soy experto en arduino pero creo que ese proyecto es muy dificil.
Ten en cuenta que cada hardware necesita de un firmware (driver) para que lo "entienda" la maquina (PC, consola para la que quieres adaptar...)

No se si lo que pretendes es hacer un conversor "al vuelo" de datos RAW pero aun asi, CREO, que cuando un periferico se conecta a una maquina, esta ultima tiene que negociar la conexion, envia unos paquetes de datos para identificacion los cuales deben ser respondidos por el periferico. Y luego la maquina tiene que "entenderse" con el periferico. Y claro segun que consola tendrias que averiguar que tipo de comunicacion hay con su respectivo mando, es decir "snifar" el puerto.

Ademas no se si eso de trabajar con datos brutos (RAW data) seria tan facil, ten en cuenta que el protocolo USB trabaja con paquetes, QUIZA deberias decodificar (NRZI) y luego interpretar... vaya usted a saber

¿Tienes algo en mente?¿Has hecho alguna prueba?
Daredevil2 escribió:No soy experto en arduino pero creo que ese proyecto es muy dificil.
Ten en cuenta que cada hardware necesita de un firmware (driver) para que lo "entienda" la maquina (PC, consola para la que quieres adaptar...)

No se si lo que pretendes es hacer un conversor "al vuelo" de datos RAW pero aun asi, CREO, que cuando un periferico se conecta a una maquina, esta ultima tiene que negociar la conexion, envia unos paquetes de datos para identificacion los cuales deben ser respondidos por el periferico. Y luego la maquina tiene que "entenderse" con el periferico. Y claro segun que consola tendrias que averiguar que tipo de comunicacion hay con su respectivo mando, es decir "snifar" el puerto.

Ademas no se si eso de trabajar con datos brutos (RAW data) seria tan facil, ten en cuenta que el protocolo USB trabaja con paquetes, QUIZA deberias decodificar (NRZI) y luego interpretar... vaya usted a saber

¿Tienes algo en mente?¿Has hecho alguna prueba?


Buenas.

Las pruebas que he hecho son con mandos de Megadrive (3 y 6 botones), Saturn, Playstation y Playstation 2.

Sería bueno poder leer los datos que le entran a la consola y al mando, así poder simularlos con la placa.

Una vez terminado se podría publicar el programa para que cualquiera que tenga un arduino se pueda crear su cronomax.

Saludos.
Claro @alonso240 pero imagino que los puertos de Megadrive, Ps1 y ps2 son puertos serie mas o menos estandard.
Pero el tema esta con las nuevas consolas que vienen con USB, y el USB primero que va por paquetes y la comunicacion es bidireccional, creo que hay una negociacion-identificacion previa entre dispositivos.

luego tienes el tema del NRZI, que en definitiva es la forma de enviar los datos serie. Al parecer no envia los 0 y 1 directamente, si no que hace una especie de modulacion para aprovechar el ancho de banda. Igual hay algun script arduino sobre NRZ por ahi, ni idea.

Yo por ejemplo tengo un mando antiguo USB de Wingman, que al conectarlo y reconocerlo windows, le he hecho un sniff con un programita que me he bajado y si que al pulsar cada tecla envia una serie de valores HEX distintos, pero claro, una vez reconocido el mando por el SO, instalados los drivers y tal...



EDIT: Por lo que veo hasta con el cronuxmax hay que emparejar un mando original xbox mediante USB antes de poder emparejar otro, al menos en xbox one. Tambien tienen /tenian problemas con segun que consola al rato.... etc

Yo creo que es un proyecto mas para raspberry y similares que para arduino, tinypic y compañia

A ver si hay algun entendido que pueda echar mas luz sobre el tema porque es muy interesante...
3 respuestas