
Construyendo un Hitbox Casero 🕹️🛠️
Mi experiencia construyendo mi propio Hitbox utilizando GP2040-CE e impresión 3D.
Esta vez decidí alejarme un poco de la programación pura para adentrarme en el mundo del hardware. Como desarrollador, siempre he tenido curiosidad por esta área; sentía que para ser un profesional más completo, necesitaba no solo comprender cómo funciona superficialmente, sino construir algo físico. Así, encontré el proyecto perfecto para empezar: construir mi propio Hitbox. 💡
¿Qué es un Hitbox? Es un control tipo Arcade que sustituye la palanca tradicional por botones de movimiento. Puede incluir macros, funciones personalizadas y perfiles de botones. Suele ser muy valorado en la comunidad de juegos de lucha como Street Fighter o Tekken. 🥊
Este proyecto me resultó fascinante porque combina la ingeniería de hardware con los videojuegos, y me encantaba la idea de utilizarlo para jugar Super Smash Bros., que juego con frecuencia. Este artículo no pretende ser un tutorial paso a paso, sino una guía técnica basada en mi experiencia por si decides construir el tuyo. 🎮
Para mi proceso, fue de gran ayuda este tutorial:
Si bien no lo seguí al pie de la letra, proporciona una base sólida sobre la construcción del dispositivo.
Firmware: El Cerebro del Proyecto 🧠

Para este proyecto utilizaremos el firmware GP2040-CE. Es una solución de código abierto compatible con PC, PS3, PS4, PS5, Xbox One, Steam Deck, Android y, lo más importante para mí, Nintendo Switch. (¡Y sí, confirmo que funciona en la Switch 2!) 🚀
Un punto interesante de este firmware es su excelente tiempo de respuesta (input lag). Si te interesa el rendimiento, puedes consultar los resultados de las pruebas de la comunidad. ⚡
Entre sus características técnicas destacan:
- Soporte para pantallas OLED. 🖥️
- Gestión de LEDs RGB. 🌈
- Remapeo dinámico de pines posterior al flasheo.
- Documentación exhaustiva y una comunidad muy activa**. 👥**
Materiales y Componentes 📋
En el video de referencia se utiliza una Raspberry Pi Pico. Sin embargo, esta requiere un adaptador para conexión USB-C (ya que el modelo original usa Micro-USB). En mi caso, opté por un clon del Waveshare RP2040-Zero. Es más compacto e incorpora USB-C de forma nativa. 🔌
Te dejo aquí el enlace del que yo compré. Si prefieres otro, revisa la lista oficial de soporte.
Lista de componentes:
- Microcontrolador: RP2040 (en mi caso, clon del
Waveshare RP2040-Zero). - Switches: 12 interruptores de teclado mecánico (según tu preferencia táctil). ⌨️
- Pulsadores: 5 botones auxiliares para menús. En el video recomiendan estos de Amazon. Si no encuentras, puedes buscar estos otros de AliExpress, pero necesitarás unas tapitas.
- Pantalla (Opcional): Yo compré esta en AliExpress. Si buscas otra, verifica la compatibilidad aquí.
- Cables: Puedes ocupar un cable UTP que ya no ocupes. El alambre sólido es perfecto para esto. 🧵
- Herramientas: Estaño, pasta térmica, cautín y, fundamentalmente, un multímetro (tester) para verificar continuidad. Te ahorrará dolores de cabeza buscando cortos. 🔍
El Case 📦
El diseño está pensado para impresión 3D.
Nota importante sobre materiales: Si imprimes en PLA, ten cuidado: a temperaturas superiores a 50 °C el material se deforma. Te dolería mucho ver cómo se arruina el Hitbox que tanto te costó construir solo porque lo olvidaste dentro del carro en un día soleado. ☀️ Para evitar desastres, te recomiendo usar PETG, que soporta mejor el calor ambiental.
En el video se muestra cómo orientar cada pieza a la hora de imprimir. Los modelos STL los puedes encontrar en Printables. Fíjate bien cuál eliges, ya que hay variaciones (sin pantalla o con direccionales tipo teclado).
Si utilizas los pulsadores genéricos de AliExpress, descarga el STL de las tapitas en este proyecto; busca el modelo: Tactile Switch Button.
Flasheo del Firmware 💾
Para cargar el firmware en el microcontrolador:
- Ve a la sección de descargas.
- Descarga el firmware para tu placa (en mi caso para
Waveshare RP2040-Zero). - Conecta la placa manteniendo presionado el botón
BOOT. - La PC la reconocerá como una unidad USB.
- Arrastra el archivo
.uf2. - La placa se reiniciará sola y el proceso habrá terminado. 💥
Montaje y Soldadura 🧩
Esta es la parte más delicada. Cada switch y pulsador tiene dos pines: uno va conectado a Tierra (GND) y el otro al pin GPIO correspondiente. ⚠️
Tip: Puedes realizar una “cadena” de tierra soldando todos los pines GND entre sí para ahorrar cable y mantener el interior limpio.
Mi error con la pantalla (I2C): La pantalla OLED usa el protocolo I2C. Yo, ingenuamente, la soldé a los pines 28 y 29 porque me resultaba más fácil. Error. El protocolo I2C requiere pines específicos que soporten esa interfaz por hardware.
Consulté el Pinout del fabricante:
Como puedes ver resulta que el 28 y 29 no soportan I2C. Tuve que desoldar y mover los cables a los pines 26 y 27. Quedando mi conexión de la pantalla de la siguiente manera:
- VCC -> 3.3v
- GND -> GND
- SDA -> GP26
- SCL -> GP27
Para la distribución de botones, utilicé el siguiente esquema como referencia:
En la documentación sobre el cableado verás nombres como S1, S2, B1, B2. Estos corresponden a un sistema genérico de botones. Si tienes dudas sobre a qué botón corresponden según tu consola, revisa aquí: Button Mapping.
Al final, luego de pelear con los cables, quedó así:
No es mucho, pero es trabajo honesto.
Configuración del Hitbox ⚙️
Aquí viene lo divertido. Conecta el Hitbox a la PC mientras presionas S2 (que en la configuración de Switch suele ser el botón +). Abre tu navegador y entra a http://192.168.7.1. 🌐
Web Configurator de GP2040-CE
Pasos clave:
1. Input Mode En Settings > Input Mode Settings, elige tu consola. Yo seleccioné Nintendo Switch. Guarda y reinicia.

2. Mapeo de Pines (GPIO) En Configuration > GPIO Pin Mapping asignas el pin físico al botón de software. Usa la herramienta GPIO Pin Viewer: es como el console.log del hardware; te permite ver en tiempo real qué pin se activa al presionar un botón.
GPIO Pin Viewer
Recomendación: Asigna un botón auxiliar como
Function. Te permitirá usar atajos (hotkeys) más adelante.
3. La Pantalla
Peripheral Mapping para I2C
Para habilitarla:
- Ve a
Configuration>Peripheral Mapping. - Asigna los pines I2C (si los soldaste como en mi caso serán los pines 26 y 27).
- En
Configuration>Display configurations, marcaEnableen Hardware Options. - Guarda y reinicia. Ahora la pantalla debería funcionar correctamente.

4. Gamepad Settings

Elige cómo se comportarán las direcciones en Settings > Gamepad Settings:
- D-Pad: Ideal para juegos 2D.🎮 En Smash activa las burlas.
- Left Stick: Simula el stick analógico izquierdo.🕹️ Es el necesario para mover al personaje en Smash.
- Right Stick: Simula el stick derecho (útil para los Smashes) 🎯
Configuración Avanzada: Tilts y SOCD 🕹️
En Smash Bros, los botones digitales harían que siempre corras al 100%. Para caminar, el firmware incluye el Add-on Tilt Input. Actívalo en Configurations > Add-Ons Configurations. Al activarlo te permitirá asignar un botón modificador que reduzca la señal al 35% o 65%, simulando la inclinación del joystick. 🚶♂️

Modo SOCD (Simultaneous Opposite Cardinal Direction): Esta opción te permite configurar cómo reacciona el control si presionas direcciones opuestas. Puedes elegir entre:
- Neutral: Al presionar dos direcciones opuestas, el control no enviará ninguna señal. Es el estándar legal para torneos. ⚖️
- First Win: Se prioriza la primera dirección que se presionó. ⬆️
- Last Win: Se prioriza la última dirección que se presionó. ⬇️
Guardas, reinicias y tendrás que dirigirte a GPIO Pin Mapping para configurar los Tilts
Puedes copiar mi configuración de botones:

Lo que sucederá es lo siguiente:
- Cuando unicamente presiones una dirección la dirección se enviara al 100%.
- Si presionas el botón modificador(
Analog Stick Tilt 1) que en mi caso es el pin 28 junto con una dirección, se enviara la señal análoga al porcentaje configurado para elAnalog Stick Tilt 1, por defecto sera 35%.
Por si mismo el botón modificador no hará nada a menos que presiones una dirección. Si tu quieres puedes asignar también el
Analog Stick Tilt 2que puedes configurar a un porcentaje diferente como al 65% o el que tu desees.
Funciones
Si asignaste un botón de Function, puedes configurar las funciones en Settings > Hotkey settings. Te comparto las que yo tengo configuradas.

En mi caso como tengo varios Perfiles de Mapeo de botones por lo que me resultan útiles las siguientes funciones:
- Next Profile: Al presionar
Function + Acambio al siguiente perfil. - Previous Profile: Al presionar
Function + Bcambio al perfil anterior.
En el caso de Function + Y habilita el D-Pad Digital y Function + X Habilita el D-Pad como Left Analog.
Probando el control

Tan sencillo como conectarlo a tu consola y probar directamente o puedes hacerlo utilizando esta pagina: hardwaretester.com donde puedes verificar que todos los botones y sticks funcionen correctamente.
Cuando las cosas fallan 🔥
Como en todo desarrollo, hubo bugs. Pero aquí los bugs son físicos. Algunos problemas con los que me encontré:
- Botón fantasma (siempre presionado): Casi seguro es un puente de soldadura. El
GNDestá tocando el pin de señal cerrando el circuito. Solución: Revisa con el multímetro y limpia la soldadura. - Botón muerto: Lo más probable es un cable suelto o soldadura “fría”. Solución: Revisa continuidad y refuerza la soldadura problemática.
- El bug del calor: Me pasó que todo bien al empezar a jugar, pero tras jugar un rato, se activaban botones solos. Resulta que dejé exceso de estaño y residuos. Al calentarse el chip, el material se dilataba y hacía contacto. Solución: Limpieza profunda retirando el estaño excedente.
Conclusión
Construir esto ha sido una gran experiencia de aprendizaje, ver funcionando mi propio control es increíble 🤩. No solo entendí mejor cómo funcionan los controles por dentro, sino que también mejoré mis habilidades de soldadura y resolución de problemas de hardware.
Eso sí, la curva de aprendizaje es dura. Llevo horas cayéndome del escenario en Smash porque mi cerebro aún no se acostumbra a los botones en lugar del stick. Si te animas a intentarlo, prepárate para practicar mucho. 💪
¿Te animas a realizar un proyecto así? Si tienes dudas sobre el cableado o la configuración, déjala en los comentarios.
Articulos relacionados
Cómo generar PDFs en n8n con Gotenberg
Integra Gotenberg en tus workflows de n8n para crear PDFs de manera automatizada
Actualizando el blog: De Nuxt 2 a Astro
De Nuxt a Astro: Una migración asistida por IA con Antigravity
Cómo Publicar tu Dependencia en npm: Guía Completa con TypeScript
Deja de copiar y pegar código entre proyectos. Aprende a crear y publicar tu propia dependencia en npm paso a paso