
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.
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:
- Descarga el archivo
.uf2
más reciente desde la página de releases - Conecta el Raspberry Pi Pico a tu PC mientras mantienes presionado el botón BOOTSEL
- El Pico aparecerá como una unidad de almacenamiento USB
- Arrastra y suelta el archivo
.uf2
en esta unidad - 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ón | Pin GPIO en Raspberry Pi Pico |
---|---|
Arriba | 2 |
Abajo | 3 |
Izquierda | 4 |
Derecha | 5 |
B1 / □ / Y | 6 |
B2 / × / B | 7 |
B3 / ○ / A | 8 |
B4 / △ / X | 9 |
L1 / LB | 10 |
L2 / LT | 11 |
R1 / RB | 12 |
R2 / RT | 13 |
Select / - / Back | 14 |
Start / + / Menu | 15 |
Home / PS / Xbox | 26 |
Captura / Share | 27 |
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:
- Conecta el controlador a tu PC
- Mantén presionados los botones Start + Select durante 3 segundos
- El dispositivo se reiniciará en modo de configuración
- Aparecerá como un dispositivo de red
- 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ística | GP2040 | Brook UFB |
---|---|---|
Precio | $4-8 USD (solo Pico) | $80-95 USD |
Input Lag | ~1ms | ~1.5-2ms |
Código Abierto | Sí | No |
Actualizable | Sí | Sí |
Compatibilidad | PC, PS3, Switch | Todas las consolas |
Instalación | DIY | Plug 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