







Got tired of reaching for the mouse, so I built my own Open-Source Button Box. First time soldering!
Hey everyone,
I recently got back into flight sims after a longer hiatus. I was already very happy with my HOTAS setup, consisting of a VKB Gladiator NXT Evo paired with an Evo OmniThrottle or Warthog throttle depending on the situation. However, I still found myself reaching for the mouse or keyboard for certain functions. It was really ruining the immersion. The VKBs are amazing, but I desperately wanted that heavy, satisfying clack of a real toggle switch for some operations.
So, I decided to build my own Button Box to complement my setup.
While I had some background in 3D modeling and Python scripting, I haven't really used those skills in a while—and putting together actual hardware was completely new territory for me.
Over the last few weeks, I:
- Dusted off my CAD skills to design a custom 3D-printed enclosure.
- Looked into C++ to program the Arduino Leonardo (wrapping my head around button matrices was quite a trip!).
- Picked up a soldering iron for the very first time (and quickly learned exactly which end of the iron not to touch).
The Tech & Features: It’s powered by an Arduino Leonardo, handling a mix of heavy toggles, push buttons, rotary encoders, and potentiometers. Since it is recognized as a standard USB HID device, it is treated the exact same way as a joystick or throttle.
My favorite feature I managed to implement: I coded in a "button combo". If I hold down three specific push buttons simultaneously, the box flashes its LED and hot-swaps the On/On toggle switches from standard mode into a pulse mode, sending only a short button press instead of firing permanently. It’s perfect for seamlessly switching between games like MSFS and DCS on the fly, without needing to re-flash the board! The Mode switch also shifts button IDs, so you are able to assign all digital inputs a second time. I use it for a second profile or alternative mapping when needed.
Giving Back (Open Source): I relied heavily on reading old Reddit threads and looking at other people's projects and documentation to figure the hardware and C++ parts out. Because of that, I want to give back to the community. I’ve made the whole project Open Source.
Whether you want to build one yourself, or just want to judge my messy internal wiring and code, you can find everything here:
🔗 Code: Ultimate Button Box on GitHub
🔗 Wiring: Ultimate Button Box on Cirkit Designer
🔗 3D Print Files: Ultimate Sim-Racing & Flight Button Box | Arduino
Let me know what you think! I'm super happy with how it turned out and happy to answer any questions if you're thinking about tackling a similar project. Cheers!