Simulator Button Box
While creating a complete DIY racing sim, it was time for a button box.
Goal is to be relatively cheap to make with a 3D printable enclosure.
Features 31 buttons (toggles and momentary).
Thanks to the FreeJoy firmware button box is plug and play.
C clamps for desk mounting.
Components:
- 2x toggle switches with LED - https://www.aliexpress.com/item/1005005545990245.html
- 12x mini push buttons - https://www.aliexpress.com/item/1005009672138666.html
- 4x push buttons 12mm - https://www.aliexpress.com/item/1005007637912547.html
- 2x Metal Switches 16mm with LED - https://www.aliexpress.com/item/1005006389768458.html
- For the metal switches, I got 1 locking and 1 reset. Both with 3 position.
- 2x Rotary switches RS16 - https://www.aliexpress.com/item/1005006108961501.html
- For the RS16, I got two with 1 pole 6 throws. After that I changed one of them for 3 throws.
- 1x Engine Start/Stop, RGB Led Push Button, 3-6V 22mm- https://www.aliexpress.com/item/1005007361580408.html
- 1x Push Button LED, 3-6V, Self-reset, 12mm - https://www.aliexpress.com/item/1005007168217107.html
-1x USB Type C male - https://www.aliexpress.com/item/1005007458786256.html
-1x USB type C female - https://www.aliexpress.com/item/1005009520776828.html
Electronics and Firmware:
I tried 2 different methods for the box.
Battery powers ESP32 based with Bluetooth connection. Due to the lower power from the battery the LEDs were causing delay in inputs.
- Wired connection is better option when LEDs are involved.
So for this project I decided to use FreeJoy firmware: https://github.com/FreeJoy-Team/FreeJoy
You will need one STM32F103C8 micro controller. I got a clone board that works great.
Buttons and switches are connected to a 74HC165 Button expansion board.- This can be purchased or self-made. For 32 buttons you will need 4 shift registers.
Follow the guide in GitHub to do the wiring and the software configuration.
- This can be purchased or self-made. For 32 buttons you will need 4 shift registers.
Note: You can use Pro Micro with button matrix or PCF8575 expansion boards as well.
Hardware for assembly:
-For the front (all black):
4x M4 x 20mm flat head countersunk bolts
2x M4 x 25mm round cap bolts
For the back side:
10x M4 x 20mm flat head countersunk bolts
4x M4 nutsFor the C clamps:
2x M8 nuts
2x M8 60 mm bolts (I used this https://www.aliexpress.com/item/1005007663448347.html)- Mounting the USB type C female jack
2x M2 10mm
2x M2 nuts
2x M3 12mm
2x M3 nuts
Printing:
I separated the back of the box in 2 for easier printing with no supports. Non of the part require supports or rafts.
Print either on its side or flat.
- For the box frame: I switched to a 0.6 nozzle and layer height to 0.35 some faster printing.
Everything else printed with standard 0.4 nozzle and 0.2 layer height. - 3 wall line count and 10%-20% infill.
Assembly:
I did not use any heat inserts. Just screw firmly and it will hold pretty well.
- Back is a bit strange to assemble. You will need to screw the "button-box-back" to the box frame and then screw the C clamps from inside the box.
- "button-box-back-cover" might need some filling to fit. Can be glued if necessary.
- All buttons and switches are on the front plate of the box and can be inserted after you assemble everything else.
- Using USB Type C male and female for extension inside the box.