GP2040: Firmware Open Source para Joysticks


GP2040: Firmware Open Source para Joysticks

GP2040 es un proyecto de código abierto que transforma un Raspberry Pi Pico en un controlador USB de alta calidad para videojuegos, compatible con múltiples plataformas como PC, PlayStation 3 y Nintendo Switch. Este firmware se ha convertido en una opción muy popular para la comunidad de arcade sticks DIY gracias a su bajo costo, rendimiento excepcional y flexibilidad.

Esquema de GP2040

Características Principales

GP2040 ofrece un conjunto de funciones que lo hacen extremadamente atractivo para proyectos de arcade sticks personalizados:

  • Código Abierto: Completamente libre para modificar y adaptar a necesidades específicas
  • Bajo Input Lag: Uno de los firmwares con menor latencia disponibles (aproximadamente 1ms)
  • Modos SOCD Configurables: Incluye diferentes opciones para manejar direcciones opuestas simultáneas
  • Compatibilidad Multiplataforma:
    • XInput para juegos modernos en Windows
    • DirectInput para juegos y emuladores clásicos
    • Modo Switch para Nintendo Switch
    • Modo PS3 para PlayStation 3
  • Bajo Costo: Solo requiere un Raspberry Pi Pico (~$4-8 USD) más el cableado
  • Configuración Web: Interfaz de configuración accesible vía navegador

Versiones y Variantes

Aunque el proyecto original GP2040 sentó las bases, actualmente la versión más actualizada y recomendada es GP2040-CE (Community Edition), mantenida por la Open Stick Community:

Otras variantes incluyen:

  • GP2040-FightboardV3: Optimizado para la FightBoard de JXK
  • GP2040-PICOBOOST: Para la placa PICOBOOST
  • GP2040-PicoFightingBoard: Adaptado para PicoFightingBoard

Instalación del Firmware

La instalación del firmware GP2040 es sorprendentemente sencilla:

  1. Descarga el archivo .uf2 más reciente desde la página de releases
  2. Conecta el Raspberry Pi Pico a tu PC mientras mantienes presionado el botón BOOTSEL
  3. El Pico aparecerá como una unidad de almacenamiento USB
  4. Arrastra y suelta el archivo .uf2 en esta unidad
  5. El Pico se reiniciará automáticamente con el firmware GP2040 instalado

Esquema de Conexiones

Para construir un controlador básico con GP2040, necesitarás conectar los botones y la palanca según el siguiente esquema:

FunciónPin GPIO en Raspberry Pi Pico
Arriba2
Abajo3
Izquierda4
Derecha5
B1 / □ / Y6
B2 / × / B7
B3 / ○ / A8
B4 / △ / X9
L1 / LB10
L2 / LT11
R1 / RB12
R2 / RT13
Select / - / Back14
Start / + / Menu15
Home / PS / Xbox26
Captura / Share27

Todas las conexiones requieren también un cable a GND (tierra) para completar el circuito.

Configuración Avanzada

Una vez instalado, GP2040 ofrece una interfaz web para configuración accesible de la siguiente manera:

  1. Conecta el controlador a tu PC
  2. Mantén presionados los botones Start + Select durante 3 segundos
  3. El dispositivo se reiniciará en modo de configuración
  4. Aparecerá como un dispositivo de red
  5. Accede a http://192.168.7.1 en tu navegador

Desde esta interfaz puedes configurar:

  • Mapeo de botones
  • Comportamiento del SOCD
  • Opciones de LED
  • Perfiles para diferentes consolas
  • Actualizar el firmware

Test Points del Raspberry Pi Pico

En la parte inferior de la placa Pico hay seis puntos de prueba (test points) que pueden ser útiles para proyectos avanzados:

  • TP1 – Tierra (ground acoplado para señales diferenciales USB)
  • TP2 – USB DM (Data Minus)
  • TP3 – USB DP (Data Plus)
  • TP4 – GPIO23/SMPS PS pin (no usar)
  • TP5 – GPIO25/LED (no recomendado para uso)
  • TP6 – BOOTSEL (permite entrar en modo bootloader)

Ventajas sobre Otras PCB

Comparado con otras soluciones como Brook Fighting Boards:

CaracterísticaGP2040Brook UFB
Precio$4-8 USD (solo Pico)$80-95 USD
Input Lag~1ms~1.5-2ms
Código AbiertoNo
Actualizable
CompatibilidadPC, PS3, SwitchTodas las consolas
InstalaciónDIYPlug and Play

Limitaciones

  • No es compatible nativamente con PlayStation 4/5 o Xbox Series/One (requiere adaptadores)
  • Requiere conocimientos básicos de electrónica para el cableado
  • No tiene autenticación para consolas modernas

Proyectos Destacados con GP2040

La comunidad ha desarrollado numerosos proyectos interesantes usando GP2040:

  • Flatbox: Una caja de hitbox ultra delgada
  • Picoboard: PCB personalizada que integra un Pico con conectores de fácil acceso
  • RP2040 Arcadestick: PCB diseñada específicamente para sticks con el chip RP2040 integrado

Recursos Adicionales