Gamepads Bluetooth: Blueretro + Arduino / Conversor AE: Pruebas, experiencias y resultados.

* Para saber como emparejar los Dualshock3, ir al final del post.

Venimos de estos dos hilos, pero que todo está muy mezclado

Hilo de @puga hilo_mando-bluetooth-en-xbox_2445234 y el hilo de @superfenix2020 hilo_mandos-bluetooth-modernos-en-xbox_2475836

Vídeos de @davidx

Vídeo 1

Vídeo 2

He montado tres prototipos, uno con esp32 + level shifter + arduino pro mini (es como el nano pero sin conector USB) el otro con esp32 + level shifter + arduino pro micro El precio no se va mas de unos 12€ por unidad. En el último utilizo el extinto conversor comercial psx2xbox.
Para flashear los arduinos he usado un programador USBasp, es parecido al USBtiny, ya que vía el USB que llevan incorporado tanto el nano como el pro micro, no se deja flashear bien los fuses. Al arduino pro micro parece no afectarle el tema de los fuses y no he visto diferencias de flashear vía su USB nativo..

Nuevo 20/11/2033 La solución final!!!!!
Vídeo 3


Conexionado del programador USBasp a un Arduino Pro Mini, también es válido para el Nano / Pro Micro y muchos mas. Las dos primeras fotos no son mías.

Imagen

Imagen

Esta si son mías

Imagen

Imagen

Prototipos:

En todos los casos el ESP32 (30 pines) esta flasheado con el firm v1.83 hw1 Blueretro playstation de darkcloud

Imagen

Prototipo 1: esp32 + level shifter + arduino pro mini

Hay dos hex, el suministrado por davidx que le fue suministrado por el propio scener Dimitris Lagos y el otro que he compilado directamente de las fuentes de su github

Resultados con el hex de davidx

Pros: Funciona la vibración, probado con un mando original de XBOX Series s/x y Gamesir T4 Pro en modo Swicht

Neutro:**** Los gatillos están mal mapeados, los gatillos inferiores están mapeados como los botones Black y White. Los gatillos superiores está mapeados como lo que normalmente serian los gatillos inferiores. Se puede cambiar desde la configuración de Blueretro

Contras: Reinicia la consola al conectarlo por primera vez. Los thumbsticks / pinchar las setas no funcionan. El IGR se hace de rogar y en según que apps / juegos / emus es casi imposible hacerlo.

Resultados con el hex que compilado

Pros: Funciona la vibración, probado con un mando original de XBOX Series s/x y Gamesir T4 Pro en modo Swicht

Neutro: Los gatillos están mal mapeados, los gatillos inferiores están mapeados como los botones Black y White. Los gatillos superiores está mapeados como lo que normalmente serian los gatillos inferiores. Se puede cambiar desde la configuración de Blueretro

Contras: Reinicia la consola al conectarlo por primera vez. thumbsticks / pinchar las setas no funcionan. Es inestable, es como si pulsaras varias veces el mismo botón. El IGR se hace de rogar y en según que apps / juegos / emus es casi imposible hacerlo.

El primer hex de davidx es mejor. No entiendo como no está actualizado en el github

Imagen

Imagen

Imagen

Prototipo 2: esp32 + level shifter + arduino pro micro

Es el que propone davidx pero con algunas modificaciones, esp32 + level shifter + arduino pro micro. El fichero.hex es el proporcionado por davidx.
No le quito el diodo, personalmente creo que lo correcto es usar level shifter para la adaptación de lógicas de distinto voltaje, eso queda a gusto del consumidor.

Pros: IGR funciona correctamente, no se reinicia la consola a la primera al conectarlo. thumbsticks / pinchar las setas funcionan correctamente. El mapeado de los gatillos es correcto . Menos cableado y mayor simplicidad que el prototipo 1

Neutro:

Contras: No funciona la vibración

De los dos prototipos con conversor vía Arduino, el prototipo 2 es el mejor.

Test efectuado con el gamepad de Microsoft y la app xbox controller test

Vídeo

Imagen

Foto inferior de Ervin Olvera

Imagen

El hex para el Pro Micro de Ervin Olvera es muy interesante porque en su github está en formato .ino y esto hace factible el poder modificarlo, por desgracia no consigo compilarlo, por mas librerías que instale, siempre aparece un error nuevo. Estoy intentando ponerme en contacto con el, a ver si hay suerte y me muestra la luz.

También he hecho pruebas con el gamepad Pro (original) de WiiU, es sin duda con el que más rápido sincroniza, seguido del gamepad de Gamesir y ya por último el gamepad de XBOX series s/x que es mas puñetero de emparejar.

El talón de Aquiles de todos prototipos con conversor vía Arduino, es el tema que convierten los botones y gatillos analógicos en digitales. Esto puede hacer que según que juegos sean hasta injugables. En los emuladores no vamos a notar nada, ya que no aprovechan está característica.
Haciendo mas pruebas me acabo de dar cuenta que el firm de Blueretro para PSX también hace lo mismo, convirtiendo los botones y gatillos analógicos en digitales

Prototipo 3: esp32 + adaptador psx2xbox de Aliexpress

Imagen

Imagen

Vídeo de Yakara Colombia


Pros: Funciona TODO, nada mas que decir.

Contras: Por desgracia este cacharrito se encuentra totalmente descatalogado y los pocos que se encuentran de segunda mano o de algún stock antiguo tienen precios prohibitivos.

El prototipo3 es el ideal.

Es triste decirlo pero de momento el adaptador chino de hace 14 años es infinitamente mejor que los dos adaptadores vía Arduino aparecidos hasta el momento.

Imagen

Imagen

Para poder comprobar si el problema de la conversión a analógico a digital era problema del ESP32 o de los Arduinos, lo que hice fue montar el tinglado sin el ESP32 y conectarlos a un mando Sony Dualshock2 original.
Si pincho el mando a un adaptador psx2xbox de aliexpress, todo lo analógico sigue siendo analógico. Cuando hago la mismo prueba con el nano /pro mini o el pro micro lo analógico pasa a ser digital.

Imagen


Como emparejar gamepads Dualshock3 con Blueretro

Todos los gamepads mencionados anteriormente tienen un botoncito especifico para emparejar / sincronizar con cualquier dispositivo bluetooth compatible.
El Dualshock3 no dispone de este botón y para poder emparejarlo hay que saber lo siguiente:
Todos los dispositivos bluetooth incluidos el ESP32 tienen un MAC BT única.
Para saber este dato nada mas sencillo que alimentar al ESP32 y sin emparejar mando alguno entrar desde el la/el PC o desde el celular/móvil (como es mi caso) en https://blueretro.io/system.html una vez conectado tiene que salir una ventana como esta:

Imagen

Copiar el tal cual el número que aparece, no el de la imagen!, sino el suyo ;) en este caso el número es el 3C:E9:0E:88:AF:3A no pasa nada si son mayúsculas o minúsculas, no influye. Guardar este número en un TXT ya que siempre va a ser el mismo.
Ahora descargar e instalar en la/el PC el siguiente programa SixaxisPairToolSetup una vez hecho pinchar el Dualshock3 al PC y ejecutar SixaxisPairTool, si no están instalados los drivers del Dualshock3, el mismo programa los instalará, es algo lento. Al final nos tiene que mostrar una ventana parecida a esta:

Imagen

Introduzco mi MAC BT

Imagen

Actualizo con el botón Updade

Imagen

A partir de ese momento el número mostrado arriba es igual que el introducido, salgo y vuelvo a entrar en la app, para confirmar al 100% que el cambio ha sido efectivo.

Imagen

Ahora el Dualshock3 se emparejará sin problemas con nuestro ESP32
Si mas tarde se empareja de nuevo con una PS3 y lo queremos usar de nuevo en el ESP32 habrá que volver a pincharlo en la/el PC y repetir los pasos (ni 10 segundos se tarda)








Links de interés

Github de Dimitris Lagos
Github de Ervin Olvera
Github de davidx
Github de darkcloud
Hola.
Gracias por compartir este experimento con nosotros. Tengo una duda:

- ¿los controles sincronizados se toman como si fuera un control original o uno genérico?


Saludos :)
Genéricos, es decir no se puede usar para Chimp, Restoox, Xblast o cualquier distro linux. Tampoco funciona con LithiumX
Aparte dependiendo como sincronices el gamepad puede que tengas funciones de menos. Por ejemplo tengo un GameSir T4 Pro, si lo emparejas como gamepad android, no tienes vibración, en cambio si lo haces como gamepad Switch si que la tiene.
hal9000 escribió:Genéricos, es decir no se puede usar para Chimp, Restoox, Xblast o cualquier distro linux. Tampoco funciona con LithiumX
Aparte dependiendo como sincronices el gamepad puede que tengas funciones de menos. Por ejemplo tengo un GameSir T4 Pro, si lo emparejas como gamepad android, no tienes vibración, en cambio si lo haces como gamepad Switch si que la tiene.


ya esta lista la v3, es una combinación entre blueretro y ogx360, les dejo link del video https://youtu.be/r4PG4MqMDyg
Sin problema @davidx eso si déjame que pida unos nuevos pro micro ya que los mios ya están muy "tronados" [boma]
Esperando la review :) , Se podría hacer la instalación interna?
Para mas adelante la v3 la hago fijo, que este mes ya me pille los reyes y no me dejan gastar mas.
Interna de dos para los mandos 3 y 4 tiene que quedar de lujo [risita]
narcotic escribió:Esperando la review :) , Se podría hacer la instalación interna?

Por supuesto, peeero el ESP32 si lo encierras dentro va a tener mala "cobertura", así hay que hacer algún invento.
Por ejemplo si va colocado frente al HDD, sería cosa de recortar un poco la chapa.
También se puede usar un ESP32 pero el que no lleva placa, solo el modulo, en este caso hay que buscar los +3,3v en la placa del /de la XBOX
Siempre puedes usar un esp32 con conector de antena y poner una de un portátil en el exterior de la jaula de Faraday
oscarbuxan escribió:Siempre puedes usar un esp32 con conector de antena y poner una de un portátil en el exterior de la jaula de Faraday


o ponerlo fuera de la jaula, total son 5 cables que van al esp32
Encima de los ports 3 y 4 hay un hueco entre lo que es la jaula de metal y la carcasa de plástico, ahí seguro que cabe un ESP32 "solo el módulo". Estoy casi seguro que también la versión de 30 pines, pero sin pines soldados, entra sin tener que tocar la jaula.
Esto no le sirve para los que tengan el mod del display, ya que justamente esa zona es la que aprovechan para esto. Luego si tu XBOX es Crystal puede que te guste que se vea la modificación o puede que no.
Necesito de su ayuda amigo ya probe haciendo la version anterior la que lleva un Rapsberry pro micro y no me funciono, despues hice la de este diagrama :
Imagen

No utileze el diagrama anterior porque no tengo el CONVERTIDOR DE NIVELasi que utilize este :
Imagen

Le dejo de la imagen de como lo he armado a ver si me encuentran el error , lo he programado desde aqui : Programacion de ESP32 y la Pro Micro desde esta app : App para Pro Micro y solo se me queda como en la segunda imagen pero no me contrala nada a pesar de que se sincroniza.

Como me ha quedado.
Imagen

Y aqui asi se me queda pero no me funciona el control :
Imagen

De antemano gracias.
Falta saber donde falla, el ESP32 está bien programado, puedes entrar con el móvil en la configuración?.
El tema de los arduinos pro micro es mas peliagudo, yo mismo tuve que comprar otros nuevos ya que me volvía loco con los que tenia por aquí y no había forma de programarlos.
La cosa es que tengo todo el material pero no he armado nada por estar con otros proyectos.
Tu esquema si que lleva convertidor de nivel, solo que utiliza un modelo diferente.
hal9000 escribió:Falta saber donde falla, el ESP32 está bien programado, puedes entrar con el móvil en la configuración?.
El tema de los arduinos pro micro es mas peliagudo, yo mismo tuve que comprar otros nuevos ya que me volvía loco con los que tenia por aquí y no había forma de programarlos.
La cosa es que tengo todo el material pero no he armado nada por estar con otros proyectos.
Tu esquema si que lleva convertidor de nivel, solo que utiliza un modelo diferente.


Si yo creo que es la programacion podria alguien decirme como lo programo sin usar esa web , ya que he encontrado los archivos para las Pro Micro y ESP32 la Pro micro si se programarlas pero el ESP32 son 4 .bin y no se que parametros se le ponen para cada .bin al programas en el ESP32 FLASH DOWNLOAD TOOL son los siguientes:
BlueRetro.bin
bootlader.bin
ota_data_initial.bin
partition-table.bin

Ya encontre como se hace manual aqui estan las intrucciones : Paramatreos Flasheo ESP32
En este mismo hilo hay vídeos de los primeros prototipos que se flashean con la app y ahí lo podías ver perfectamente. El flasher desde la web facilita muchísimo las cosas para el que no conoce mucho este tema.
@Ismar No se porque pero a mí tampoco me funcionaba usando el mismo level shifter que has usado tú. Finalmente lo cambié por el que se usa en el esquema original y funciona perfectamente
Hola a todos.
Subo una foto de como me funciona a mi.
(El cable VIN del Esp32 va a RAW del Arduino)
Espero le sirva a alguien.
Un saludo

https://drive.google.com/file/d/1B3IrFX ... sp=sharing
dcluzbel escribió:Hola a todos.
Subo una foto de como me funciona a mi.
(El cable VIN del Esp32 va a RAW del Arduino)
Espero le sirva a alguien.
Un saludo

https://drive.google.com/file/d/1B3IrFX ... sp=sharing


Y programaste ambos con que herramientas ?
Hola Ismar.
Para el ESP32 utilizo el enlace web del video ( https://davidxgames.github.io/ESP32-FLA ... retro.html ) para el Arduino el HexUploader que te descargas de la pagina de DAVIXGAMES. ( https://www.mediafire.com/file/qwqbh9cq ... X.rar/file )
Para emparejar el mando ( https://blueretro.io/advance.html )
Un saludo
dcluzbel escribió:Hola Ismar.
Para el ESP32 utilizo el enlace web del video ( https://davidxgames.github.io/ESP32-FLA ... retro.html ) para el Arduino el HexUploader que te descargas de la pagina de DAVIXGAMES. ( https://www.mediafire.com/file/qwqbh9cq ... X.rar/file )
Para emparejar el mando ( https://blueretro.io/advance.html )
Un saludo


Hay disculpa que no te haya dado las gracias por contestar , igual me sigue sin funcionar ya probé desde la web de DAVIXGAMES y a poie metiendo el universal.bin y el PSX.bin y nada quizá de plalno voy a tener que comprar el que dice el diagrama que es este : Convertidor de nivel

El que yo uso en mla foto ya probe meteindole los 5V y sin usar este y nada !!!!
No se si es mas de lo mismo, pero aqui hay otra opcion para mandos inalambricos.
https://www.ogxbox.com/forums/index.php ... ntrollers/
No, para nada, eso necesita un receptor inalámbrico y eso es justamente lo que suple el ESP32
hal9000 escribió:No, para nada, eso necesita un receptor inalámbrico y eso es justamente lo que suple el ESP32


Darkcloud anuncio un adaptador para Xbox ,en venta cosa que no me parece mal teniendo en cuenta todo lo que ha regalado a la comunidad.
24 respuestas