Game Controller - The Hitbox
The Hitbox
A little while ago I joined the fighting game society at university, and my friend introduced me to several different kinds of controllers. I realised that the one that suited me most was the hitbox, but unfortunately I couldn’t justify buying one due to the pretty sizeable price tag (~£250). Shortly after, I became aware of slimboxes.
The concept is pretty similar. It’s like a hitbox, but you make it yourself. They were also lighter weight and smaller.
There wasn’t much involved in this project for me to design myself, outside of researching the different parts I would need. A hitbox needs 14 buttons, a chassis, a cable to connect it to something, and then some form of microcontroller to actually run the software.
I decided to use a Raspberry Pi Pico for the project, as it was both small enough to fit in the chassis, and had sufficient computing power. I made the buttons using Kailh Sunset Tactile Choc low profile switches, with 3D printed button tops. The chassis was also 3D printed.
Parts List
- 14x Kailh Sunset Tactile Choc
- 1x Raspberry Pi Pico
- 1x Micro USB to USB A cable (can be easily found, try checking amazon, or ordering with the pico)
- 11x 3D printed normal size buttons
- 2x 3D printed menu buttons
- 1x 3D printed large button
Please find the files for 3D printing here.
Software
I opted away from using my own software for this, and instead decided to use the excellent GP2040-CE. This saved time, as I didn’t have to write the software myself, but it also has an excellent web configurator for selecting the best controller configuration. This is incredibly useful when troubleshooting, which there is a lot of!
Building the Hitbox
The first step is inserting all of the switches into the chassis, and then wiring the grounds together. The ground is then soldered into one of the ground slots on the pico.
The individual switches are then wired into unique pins on the pico, and which pin corresponds to which button can then be set in the web configurator.
See here my completed hitbox: