El stick que no tiene stick

En la escena competitiva de fighting games (Street Fighter, Tekken, Guilty Gear) los "leverless" o estilo Hit Box están reemplazando a las palancas tradicionales. La razón es simple: pulsar un botón es mecánicamente más rápido y preciso que mover una palanca en un arco. Esta guía adapta el proyecto original de John Park (Adafruit) al catálogo chileno, cambiando el QT Py RP2040 por una Raspberry Pi Pico estándar: el mismo chip RP2040, mucho más disponible localmente y al mismo precio.

Lo bueno: no escribes una sola línea de código. El firmware open source GP2040-CE detecta el RP2040, levanta un servidor web propio en el chip, y desde el navegador configuras todo: mapeo de pines, modo de plataforma (PlayStation, Switch, Xbox, PC), hotkeys, SOCD cleaning. El único trabajo manual es imprimir el chasis y soldar los cables.

Antes de comprar: qué decisiones definen tu mando

No es un proyecto plug and play sin opciones. Tres decisiones que afectan el resultado:

1. Tamaño de botón: 24mm vs 30mm

Los botones de "acción" (puños y patadas, 4 a 8 botones) suelen ser de 30mm. Los de "dirección" (las 4 flechas equivalentes al stick) clásicamente son de 24mm, aunque hay layouts "all 30mm" como el Hit Box original.

Botón arcade translúcido rojo con conectores rápidos, el tipo de botón que usa el mando

En el catálogo MS los botones arcade disponibles son de 33mm. Son ligeramente más grandes que los 30mm estándar pero el feeling es muy similar; solo asegúrate que tu archivo STL del chasis tenga huecos compatibles (33mm o reborde lateral grande). Si necesitas 24mm exactos para las direccionales, hay versiones con resorte más suave que se pueden encontrar en distribuidores especializados, pero puedes hacer el primer prototipo con todos 33mm.

2. SOCD cleaning: la regla más importante

SOCD = Simultaneous Opposite Cardinal Directions. ¿Qué pasa si aprietas la flecha izquierda y la derecha al mismo tiempo?

  • Neutral: nada se registra (más estricto, lo más común para PlayStation tournaments).
  • Last input priority: gana el último apretado (favorito de Smash players).
  • Up priority para arriba más abajo: prioridad arriba (estilo Hit Box original).

GP2040-CE permite elegir cada combinación. Decidir esto antes de tu primera sesión ranked te evita malos hábitos.

3. Modo de input: HID, XInput, Switch, PS3/4

El mismo hardware puede presentarse al sistema como cualquiera de los 8+ tipos de controlador soportados. Al apretar un botón específico durante el boot, eliges el modo. Esto significa que el mismo mando funciona en tu PC, Switch, PS4 y arcade cabinet sin reflashear.

Hardware: por qué Pico funciona igual que QT Py

El QT Py RP2040 de Adafruit tiene el chip Raspberry Pi RP2040 y headers integrados al Terminal Block BFF. La Raspberry Pi Pico estándar tiene el mismo chip RP2040 y más GPIOs disponibles (26 vs 11). GP2040-CE corre nativo en ambos.

Diferencias prácticas adaptando a Pico:

Aspecto QT Py RP2040 (original) Raspberry Pi Pico (adaptación)
Chip RP2040 RP2040 (idéntico)
GPIOs disponibles 11 26
Conexión a botones Terminal Block BFF (atornillable) Soldadura directa o bornera atornillable PCB
Tamaño físico 22 x 18 mm 51 x 21 mm
Precio CLP sin equivalente directo $8.990
Firmware UF2 versión QT Py específica versión Pico oficial

La única molestia: con QT Py el Terminal Block BFF te ahorra soldar; con Pico necesitas soldar los cables directo a los GPIOs o usar borneras KF301 atornillables (más limpio si vas a iterar el cableado).

Cableado: un botón = un GPIO + un GND compartido

Cada uno de los 11 botones (8 de acción más 3 de dirección si sigues el layout Hit Box mínimo, o 14 si quieres layout completo) se conecta así:

  • Terminal 1 del switch va al GPIO del Pico (cualquiera de los GP0 a GP28, evitando el GP25 que es el LED integrado).
  • Terminal 2 del switch va al GND compartido (encadena todos los GND juntos con conector terminal o soldadura directa al pin GND del Pico).

Cables con conectores rápidos tipo faston de 0.11 pulgadas para los terminales de los botones

Cada botón arcade trae dos lengüetas faston: ahí calzan estos conectores rápidos sin soldar, lo que hace el recableado mucho más cómodo si decides reacomodar el layout.

Los LEDs internos del botón (terminales + y -) no se usan en este proyecto. Si quieres iluminación, agrega una tira NeoPixel WS2812 aparte y configúrala en GP2040-CE (soporta efectos LED nativos).

Para encadenar todos los GND en un solo punto sin soldar, un bloque de conexión rápida tipo WAGO es una solución muy limpia: metes todos los cables de tierra a un lado y sacas uno solo al pin GND del Pico.

Bloque de conexión rápida WAGO uniendo varios cables en un punto común, ideal para encadenar los GND

Mapeo por defecto en GP2040-CE para Pico

Código
Función              GPIO
B1 (Cruz / A)        GP2
B2 (Círculo / B)     GP3
B3 (Cuadrado / X)    GP4
B4 (Triángulo / Y)   GP5
L1                   GP6
R1                   GP7
L2                   GP8
R2                   GP9
S1 (Select)          GP10
S2 (Start)           GP11
Flecha izquierda     GP12
Flecha abajo         GP13
Flecha derecha       GP14
Flecha arriba        GP15

Software: flashear y configurar

Cable USB tipo C a USB tipo A para conectar el mando al PC o consola

  1. Descarga el firmware: en github.com/OpenStickCommunity/GP2040-CE/releases busca la build para Pico (no QT Py).
  2. Modo BOOTSEL: mantén apretado el botón BOOTSEL del Pico mientras conectas el cable USB. Te va a montar un drive llamado RPI-RP2.
  3. Arrastrar y soltar: arrastra el GP2040-CE_x.x.x_Pico.uf2 al drive. El Pico se reinicia solo.
  4. Entrar a config: con el mando ya enchufado, mantén apretado el botón S2 (Start) y toca el RESET o desconecta y reconecta el USB. Va a aparecer un servidor web en http://192.168.7.1 (mando configurando vía USB Ethernet emulado).
  5. Configurar todo desde el navegador: GPIO mapping, SOCD, perfiles, LEDs, hotkeys.
  6. Reboot to controller: botón "Reboot" lleva al modo Controller. Listo para jugar.

Impresión 3D del chasis

Los STL originales (links abajo) están preparados para FDM con PLA. Settings de slicing recomendados (Bambu Studio, Cura o PrusaSlicer):

  • Filamento: PLA 1.75mm
  • Temperatura extrusor: 220°C (boquilla 0.4mm)
  • Altura de capa: 0.2mm
  • Relleno (infill): 15% grid
  • Velocidad: 200 mm/s (Bambu) o 60 mm/s (impresoras más comunes)
  • Brim: 5mm para mejor adhesión de la base ancha

Una versión "PLA grado torneo" más rígida usa 25% infill y soportes solo en huecos de botones. Si quieres un chasis aún más pesado y estable (que no se mueve durante combos), imprime en PETG o agrega una placa de aluminio adhesiva en la base.

Variantes y mejoras

  • Versión inalámbrica total con Pico 2 W: la Raspberry Pi Pico 2 W (RP2350 más WiFi y BT, $15.990 CLP en MS) corre una rama experimental de GP2040-CE con soporte Bluetooth. Útil si quieres jugar en consolas que aceptan controles BT (Switch, móvil con BlueStacks).
  • LEDs WS2812 reactivos por botón: agregando una tira de NeoPixel de 11 LEDs y mapeando cada uno a un botón, GP2040-CE enciende el LED correspondiente cuando aprietas. Visualmente bestial para streamings.
  • Lever switch híbrido: para players que vienen de palanca y quieren transicionar gradualmente, GP2040-CE tiene un "hybrid mode" donde un switch físico cambia entre input de dirección por botones o por una palanca arcade tradicional (Sanwa JLF) conectada en paralelo.
  • Display OLED de status: agregando un OLED SSD1306 I2C a GP4 y GP5 (con el bus I2C compartido), GP2040-CE muestra modo activo (PS, Switch, XInput), perfil de teclas y SOCD configurado. Lujito de torneo.

Personalización para Chile

Componentes equivalentes en stock en MechatronicStore:

  • Raspberry Pi Pico USB-C (SKU N-221) por $8.990 CLP. Reemplazo directo del QT Py RP2040: mismo chip RP2040, más GPIOs, USB-C nativo.
  • Raspberry Pi Pico Micro USB (SKU N-207) por $7.990 CLP. Alternativa más barata si te da lo mismo el conector.
  • Botones arcade 33mm con MicroSwitch, Rojo (SKU C-313V1) por $2.190 CLP cada uno. Para los botones de acción. Necesitas 8.
  • Botones arcade 33mm con MicroSwitch, Azul (SKU C-313V2) por $2.190 CLP cada uno. Variantes de color para diferenciar acción de direcciones.
  • Filamento PLA SunLu 1kg 1.75mm, Blanco, Transparente o Gris (SKU SL-003, SL-014 o SL-017) por $13.390 CLP. Para imprimir el chasis. Con 1kg sobra para 2 o 3 chasis.
  • Cable USB Tipo C a USB Tipo A 1mt (SKU B-101) por $2.190 CLP. Para conectar a PC o consola.
  • Cables macho-hembra 30cm (SKU C-418) por $1.990 CLP. Para el cableado de botones al Pico.
  • Conector Terminal 2 Pines KF301-2 (SKU GC2-1) por $290 CLP cada uno. Bornera atornillable PCB, gran sustituto del Terminal Block BFF de Adafruit. Necesitas varias.

Costo aproximado del proyecto:

  • 1 Pico USB-C: $8.990
  • 11 Botones arcade 33mm: $24.090 ($2.190 x 11)
  • 1 rollo PLA: $13.390
  • 1 cable USB-C: $2.190
  • 1 pack cables macho-hembra: $1.990
  • 12 borneras KF301-2: $3.480 ($290 x 12)

Total: ~$54.130 CLP versus un Hit Box original importado (~$200 USD = ~$190.000 CLP).

Recursos

Versión chilena inspirada en el diseño de John Park, adaptada a Raspberry Pi Pico estándar con componentes en stock local en MechatronicStore.