Joypad OS es un firmware para placas de microcontroladores (RP2040, ESP32-S3, nRF52840) con el cual puedes fabricar un adaptador tanto alámbrico como inalámbrico para controles de videojuegos.
Podrás conectar estos controles USB y Bluetooth:
Xbox
- Xbox Original (Duke/S-Controller)
- Xbox 360 (cableada e inalámbrica con adaptador)
- Xbox One (todas las revisiones)
- Serie Xbox X|S
PlayStation
- PlayStation Classic Controller
- DualShock 3 (PS3)
- DualShock 4 (PS4)
- DualSense (PS5)
Nintendo
- Mando Switch Pro : compatibilidad total con vibración.
- Mando Switch Pro 2 : compatibilidad total
- Joy-Con Grip : Dos Joy-Con en modo de agarre.
- Joy-Con Single – Soporte para Joy-Con individual
- Adaptador para GameCube – Adaptador oficial de Nintendo GameCube (4 puertos)
- Mando de GameCube de NSO – Mando de GameCube para Nintendo Switch Online
8BitDo
Mandos inalámbricos:
- Controlador PCEngine 2.4g
- Controlador M30 de 2,4 GHz (Genesis/Mega Drive)
- Controlador Bluetooth M30
- Controlador NeoGeo
Adaptadores USB:
Otros controladores compatibles
- Logitech Wingman Action Pad – Classic PC gamepad
- Sega Astrocity Mini Controller – Arcade stick
- Hori Pokken Tournament Controller – Fight stick
- Hori Horipad – Generic Hori gamepads
- Google Stadia Controller – USB mode
- Generic DirectInput Controllers – Most D-input gamepads
- Generic HID Gamepads – Standard USB HID joysticks
Consolas compatibles
| Modo | Descripción |
|---|---|
| SInput | Modo compuesto predeterminado: funciona en la mayoría de las plataformas. |
| XInput | Compatible con Xbox 360 |
| DInput | Entrada directa genérica |
| PS3 | PlayStation 3 |
| PS4 | PlayStation 4 (puede requerir autenticación mediante paso directo) |
| Switch | Mando Pro de Nintendo Switch |
| Xbox original | Xbox original (XID) |
| Xbox One | Xbox One (en desarrollo) |
| PS Classic | PlayStation Classic |
| Teclado/Ratón | Emulación de teclado y ratón |
| Adaptador GC | Modo adaptador de GameCube |
| XAC | Compatibilidad con el mando adaptativo de Xbox |
| PCE Mini | PC Engine Mini |
También lo puedes soldar directamente a los pines a las consolas:
- 3DO
- Dreamcast
- GameCube
- GBA
- N64
- Neogeo
- PCEngine
Crear Adaptador USB Alámbrico

Podrás conectar todos los controles antes mencionados con su respectivo cable USB para ello requieres:
Raspberry Pi Pico

O RP2040-Zero / Raspberry Pico Mini

Adaptador USB Tipo A Hembra a DIP PCB 4 Pines

Y Cable 26AWG (Cable Dupont) o 28AWG o 30AWG (Cable Kynar)
Soldar los cables a los puntos que muestra el diagrama






A mi me agrada mas la RP2040-Zero por pequeña puedes imprimir en 3D esta carcasa, se ajusta perfecto:
https://www.printables.com/model/835816-ogx-mini-case


Configurar el Firmware
Descargar el Firmware
Ve a la pagina https://github.com/joypad-ai/joypad-os/releases y descarga joypad_2.1.0_usb2usb_rp2040zero.uf2 para RP2040-Zero o joypad_2.1.0_usb2usb_pico.uf2 para Raspberry Pi Pico, ten en cuenta que:
* 2.1.0 es la versión esta puede ser mayor
* usb2usb indica la configuración será de USB a la consola a puerto USB donde se conectara el control mediante cable.
Configúrala con el Firmware
Presiona el botón BOOT mientras la conectas a la computadora, esta la reconocerá como una memoria USB


Si ya has usado ese RP2040-Zero o Raspberry Pi Pico / W en otro proyecto o lo has conseguido de segunda mano lo puedes dejar como recién salido de la fabrica y borrar cualquier configuración usa universal_flash_nuke.uf2 lo puedes descargar en https://github.com/Gadgetoid/pico-universal-flash-nuke/releases arrastra y/o copia el archivo .uf2 a RPI-RP2, se reiniciara el dispositivo

Arrastra y/o copia el archivo .uf2 correspondiente a tu Raspberry Pi y listo…

Configura tu Adaptador
Ve a config.joypad.ai o joypad.raymundopizano.com (versión en español) y sigue los pasos:

Selecciona el modo de salida de tu consola
| Modo | Descripción |
|---|---|
| SInput | Modo compuesto predeterminado: funciona en la mayoría de las plataformas PC’s y Mac. |
| XInput | Compatible con Xbox 360 |
| DInput | Entrada directa genérica |
| PS3 | PlayStation 3 |
| PS4 | PlayStation 4 (puede requerir autenticación mediante paso directo) |
| Switch | Mando Pro de Nintendo Switch |
| Xbox original | Xbox original (XID) |
| Xbox One | Xbox One (en desarrollo) |
| PS Classic | PlayStation Classic |
| Teclado/Ratón | Emulación de teclado y ratón |
| Adaptador GC | Modo adaptador de GameCube |
| XAC | Compatibilidad con el mando adaptativo de Xbox |
| PCE Mini | PC Engine Mini |
Como la conectare a una Nintendo Switch, selecciono ese modo y presiono el botón Guardar y Reiniciar
Para algunos modos muestra la advertencia de que ya no podrás usar la configuración web una vez configurado, tendrás que realizar el proceso desde cero si quieres configurarlo para otra consola, en la ventana emergente de confirmación del modo selecciona el botón Cancelar para que se configure ya que si presionas Aceptar no se cambiara de modo.

Lo desconecto de la computadora y lo conecto al Switch

Pruebo con los controles que tengo a la mano y funciona de maravilla, recuerda que puedes conectar un control Xbox 360 inhalambrico con su adaptador

Crear Adaptador USB Inalámbrico

Usare la Raspberry Pi Pico W https://github.com/joypad-ai/joypad-os/releases y descarga joypad_2.1.0_bt2usb_pico_w.uf2, ten en cuenta que:
* 2.1.0 es la versión esta puede ser mayor
* bt2usb indica la configuración será Bluetooth para los controles al USB de la consola.
Presiona el botón BOOT mientras la conectas a la computadora esta la reconocerá como una memoria USB

Si ya haz usado Raspberry Pi Pico W para otro proyecto o la conseguiste de segunda mano sigue el paso de universal_flash_nuke.uf2
Arrastra y/o copia el archivo .uf2 y listo…

Configura tu Adaptador
Ve a config.joypad.ai o joypad.raymundopizano.com (versión en español) y sigue los pasos. He seleccionado PS4., para este y otros modos muestra la advertencia de que ya no podrás usar la configuración web una vez configurado, tendrás que realizar el proceso desde cero si quieres configurarlo para otra consola, en la ventana emergente de confirmación del modo selecciona el botón Cancelar para que se configure ya que si presionas Aceptar no se cambiara de modo.

Modo de salida de tu consola
| Modo | Descripción |
|---|---|
| SInput | Modo compuesto predeterminado: funciona en la mayoría de las plataformas PC’s y Mac. |
| XInput | Compatible con Xbox 360 |
| DInput | Entrada directa genérica |
| PS3 | PlayStation 3 |
| PS4 | PlayStation 4 (puede requerir autenticación mediante paso directo) |
| Switch | Mando Pro de Nintendo Switch |
| Xbox original | Xbox original (XID) |
| Xbox One | Xbox One (en desarrollo) |
| PS Classic | PlayStation Classic |
| Teclado/Ratón | Emulación de teclado y ratón |
| Adaptador GC | Modo adaptador de GameCube |
| XAC | Compatibilidad con el mando adaptativo de Xbox |
| PCE Mini | PC Engine Mini |
Lo probamos…
Al momento de conectarlo a la consola se encontrara en modo de emparejamiento activo y aceptara cualquier control que este en modo de sincronizar.
Para sincronizar los controles:
- Xbox One / Series S | X presiona el botón Sync hasta que parpadee el botón central
- PS4 presiona los botones Share + PS por unos segundos hasta que parpadee la luz
- Etc., revisa un tutorial para sincronizar tu modelo de control.
Recuerda que para conectar otro control debes de desincronizar y/o apagar el control para que el adaptador entre en modo emparejamiento.


Puedes imprimir en 3D esta carcasa:
https://www.printables.com/model/226610-raspberry-pi-pico-case


También puedes usar placas como ESP32-S3 y nRF52840., yo he usado Raspberry Pi RP2040, Pico y Pico W por populares y accesibles.
Si te gusto 🙃


