Infinty Mirror Hitbox

Having competed in fighting games for a long time, I noticed that the best players always had custom controllers. That got me wondering what separated good hardware from great hardware - and how much of that came down to design. I decided to build my own not just to compete, but to understand what makes a really great product.
 
The result was a controller made of acrylic that was 8 times faster than my existing controller. I used LEDs and a one-way mirror to create the infinity effect shown in the pictures.
 

I built the infinity mirror using acrylic for the frame, a 7.4V power supply, buck converter, 72 WS2812B LEDs, and mirror coating. A friend of mine owns a CNC machine and was happy to lend a hand. He actually made the CNC machine himself, which is super cool.

Because the clear acrylic used for the top was so thick, the snap fits on the buttons wouldn’t work. We considered friction-fitting them, but counterboring the holes was the right thing to do. This way, the buttons wouldn’t pop out accidentally.

Preliminary wiring

For the brains of the stick, I went with the Raspberry Pi Pico. It’s tiny, has plenty of GPIO pins for buttons, and costs just five bucks. It’s so cheap, you’re losing money by not buying one. 

It also defaults to a 1 ms / 1000 Hz polling rate, meaning the host checks for inputs 1,000 times per second. For comparison, an Xbox controller polls at just 125 Hz. 

To put the numbers into perspective, 125 Hz translates to about 4 ms of input delay on average, while 1000 Hz comes out to just 0.5 ms. That’s the difference between inputs feeling late and inputs feeling instant.

Mirror coat applied

For the mirrors, I coated the acrylic surfaces with a thin layer of soapy water, and laid mirror film on top. Then, using a credit card, I squeegeed out the water from underneath. I let the result sit overnight so the moisture-activated adhesive could work its magic.

View with the top off

I used an LED controller to send custom animations to the lights. Each LED is individually addressable, which allows for sweet animations like chasing and fading. Getting the animations to flow naturally took work - but the result is a controller that feels alive in your hands.