Fondo :
Quiero hacer un controlador personalizado para una XBox. Ya sea destruyendo un controlador existente o creando hardware y firmware desde cero (ish). (Específicamente, el objetivo es hacer un simulador de manejo estilo máquina de arcade con volante, etc., asignado directamente a los botones de un controlador estándar).
Tengo un controlador de Xbox USB sin marca que parece ser compatible con los estándares USB, ya que conectarlo a una PC y usar un rastreador de paquetes USB confirmó que se reconoce como un dispositivo HID y que los datos provenientes de él parecen ser simples y fáciles. sentido.
Mi pregunta: ¿Cuál sería la forma más sencilla de hacer que el dispositivo USB sea desde cero (ish)?
Iba a cortar un controlador existente: desoldar cualquier resistencia variable y reemplazarla con la mía, por ejemplo. para el volante - y lo mismo para los interruptores. Muerto simple. Pero el problema es, entre otros, que la latencia del controlador parece ser bastante pobre , y esperaba mejorarlo.
¿Existen soluciones listas para usar, como Raspberry Pi, Arduino o similares, que, para crear un dispositivo HID:
- Tenga una biblioteca que ofrezca la interfaz de alto nivel más simple para los protocolos USB necesarios, con ejemplos de códigos HID de hello-world.
- Dame una buena latencia (no es difícil, estoy seguro, dado que es un dispositivo HID simple)
- Preferiblemente a través de un lenguaje de programación de alto nivel como Java. (Mi programación en C deja mucho que desear)
- No romper el banco
- Fuera de la caja con más de 6 entradas de ADC (> frecuencia de muestreo de 100Hz, > 10 bits) y algunas entradas digitales
Ideas:
- Raspberry Pi parece una exageración
- Los AFAIK de Arduinos tienen una reputación de ser limitados dado su lenguaje / compilador propietario.
- Normalmente programo microprocesadores PIC de 8 bits, pero he oído que su pila USB es limitada, difícil de usar y generalmente problemática. También probablemente significaría circuitos adicionales; o al menos molestarse con paquetes que no sean DIP, hacer PCB o cualquier otra cosa
- Programe un teléfono inteligente Android antiguo para que actúe como un dispositivo HID. No sé cuál, si alguna versión de SO me permitiría hacer esto sin escribir o modificar una ROM personalizada. Pero la única forma en que puedo pensar en obtener entradas analógicas / digitales sería a través de un módulo bluetooth que se conectaría al teléfono, sin duda, dando una terrible latencia de extremo a extremo.
¡Todos los consejos son bienvenidos!