Skip to main content

PZS Infodump

I made a portable fighting game controller

It’s wireless, has USB-C, works with PC, Nintendo Switch and PS3/PS4. Has hot-swappable, low profile choc switches, is sized 171mm x 73mm and is 17mm high (without buttons and rubber feet). It’s made of 3mm acrylic and stainless steel (for the bottom plate). Thumb button acts as an up button.

PCB and case can be generated from https://github.com/pzsz/smolbox. Documentation is still a work in progress.

Before I settled on the thumb approach, I made another version, with an additional pinky finger button. It allowed for a more compact layout (-12mm depth, 171mm x 61mm):

I posted about it to /r/fightsticks, and I did sell a small batch of them. I recently decided to stop. Preparing boards, soldering, holes threading, laser cutting and assembly consumes time, and I don’t have a lot of it. I recently created a github repository with KiCad and OpenSCAD files for PCB and laser cut cases. As of now, I still have a few pcbs, metal bottom plates and acrylic case parts. I’m happy to sell them, send me an email if you are interested.

I grew up adoring gaming arcades and fighting games like the King Of Fighters, Tekken or Samurai Shodown. Visits to damp caravans with NeoGeo machines were the highlight of family holidays for me. I spent a significant part of my teenage years playing them on various emulators, with a crappy keyboard with almost no rollover. I can do quarter and half circle motions on it with ease.

At some point in my adult life I made myself an arcade cabinet, with real arcade controls. I went with a sanwa stick, and I found it… ok? It doesn’t bounce back to the neutral with force, it just wobbles with gentle push. It was not matching my expectations. I modded it with some more tense springs, but it’s not my preferred controller for fighting games.

Now, with a job, family and a child, I don’t have as much time for gaming as I used to. I rediscovered fighting games again, as they are ideal for 15 minute sessions on a laptop spread here and there.

Keyboard, if it allows pressing multiple keys at the same time, is an acceptable input device for fighting games. But if your laptop keyboard is crappy, you need something else. Arcade sticks are probably the best choice if you want a real arcade experience. But there are some interesting alternatives. Hitbox, or a stickless controller, is one of them.

Coming from a PC keyboard & emulators, mixbox is a natural fit. So I’ve made one. I laser cut some acrylic, connected few cables, and bam, I got this:

And it still is lots of fun! Sanwa buttons are really great - bouncy and with small travel. MX Cherrys blacks, from the time perspective, were not the best choice, they have way too much travel.

Prototype

Anyway, I had a great controller, I had lots of fun with it. But it is kind of bulky. Some time passed, and I stumbled upon this post on reddit:

https://www.reddit.com/r/fightsticks/comments/kvidn5/hitbox_diy/

It was amazeballs. I had to do something similar. I wanted a super-portable compact controller. You know, one for busy people playing tekken in the tube when the pandemic is over. I found rentable laser cutter near me, and I made this:

It was quite small and portable. But it had few shortcomings. Handwriting is a nightmare, and it depended on unhealthy amount of glue

I used kailh gchoc switches, they have a very light spring (20g compared to 50g found in choc linear reds), they have a weird feel, but I do like them.

Pinky version

After using it for a while, I found that the traditional WASD layout is super unfriendly to charger characters in fighting games (I used to play only tekken, for which mixbox layout works like charm, not so comfortable for street fighters). Thumb-based designs need a bit more vertical space than I was willing to use. I wanted to try something with a pinky finger instead.

I spent a weekend trying to make a PCB in KiCad, and it was surprisingly easy to produce one. I designed my very first PCB:

I ordered it at JLCPCB, and within a week (which still amazes me) I got this:

I found a local workspace that rents laser cutter. I designed a parametric case in openSCAD. After cutting the case:

Almost assembled controller with a brooks board inside:

With transparent top panel, next to handwired prototype:

The end result was 18mm high - 3x 3mm sheets, and 9mm of free space inside the box. In order to bring it down, I made a bottom steel plate using Fractory:

Steel plate cut down the height to 16mm.

Prototype on the photos uses a zero-pi brooks board, without wireless functionality. It’s possible to stick the wireless board in both pinky and thumb versions.

Thumb version

Thumb version, slightly larger alongside another revision of pinky PCB:

Here’s an assembled board with battery and antenna.

Without top panel, with gchoc linear switches:

And with banana for scale:

And here’s a steel bottom plate with rubber feet: