Button Box
lusmdl·MySimRacingButtonBox·kicad/circuit/circuit.kicad_pcb
About the Button Box PCB
Button Box is an open source AVR/Arduino PCB design by lusmdl, published on GitHub under the MIT license. It is a 2-layer board measuring 49.7 × 53.1 mm, with 20 components from 19 distinct parts.
Its main chip is the ATmega328P-P, from the AVR/Arduino family. By type, the board carries 15 connectors, 3 capacitors, 1 IC and 1 crystal.
From the project
manage a button matrix tailored for sim racing setups. The system uses I2C communication, where the Arduino Micro acts as the master and the ATmega328P functions as the slave
Welcome to the Sim Racing Button Controller repository!
This project is built around an ATmega328P microcontroller, which is configured to manage a button matrix tailored for sim racing setups. The system uses I2C communication, where the Arduino Micro acts as the master and the ATmega328P functions as the slave (Address standard 8). This ensures precise control and synchronization between the components.

Main components on the Button Box
Button Box bill of materials (BOM)
20 components, 19 distinct parts.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | ATmega328P-P | DIP-28_W7.62mm | U1 |
| 1 | Crystal | Crystal_HC18-U_Vertical | Y1 |
| 1 | 4X4 Matrix | PinHeader_2x04_P2.54mm_Vertical_SMD | J1 |
| 1 | 2X2 Matrix A | PinHeader_2x02_P2.54mm_Vertical_SMD | J1.1 |
| 1 | Button 1 | TerminalBlock_Xinya_XY308-2.54-2P_1x02_P2.54mm_Horizontal | J1.1.1 |
| 1 | Button 2 | TerminalBlock_Xinya_XY308-2.54-2P_1x02_P2.54mm_Horizontal | J1.1.2 |
| 1 | Button 5 | TerminalBlock_Xinya_XY308-2.54-2P_1x02_P2.54mm_Horizontal | J1.1.3 |
| 1 | Button 6 | TerminalBlock_Xinya_XY308-2.54-2P_1x02_P2.54mm_Horizontal | J1.1.4 |
| 1 | 2X2 Matrix B | PinHeader_2x02_P2.54mm_Vertical_SMD | J1.2 |
| 1 | Button 3 | TerminalBlock_Xinya_XY308-2.54-2P_1x02_P2.54mm_Horizontal | J1.2.1 |
| 1 | Button 4 | TerminalBlock_Xinya_XY308-2.54-2P_1x02_P2.54mm_Horizontal | J1.2.2 |
| 1 | 2X2 Matrix C | PinHeader_2x02_P2.54mm_Vertical_SMD | J1.3 |
| 1 | 2X2 Matrix D | PinHeader_2x02_P2.54mm_Vertical_SMD | J1.4 |
| 1 | AVR-ISP | PinHeader_2x03_P2.54mm_Vertical_SMD | J2 |
| 1 | I2C | PinHeader_2x02_P2.54mm_Vertical_SMD | J3 |
| 1 | RJ45 | RJ45_Molex_0855135013_Vertical | J4 |
| 1 | Joystick | PinHeader_2x03_P2.54mm_Vertical_SMD | J5 |
| 2 | 12..22 pF | C_0402_1005Metric | C1, C2 |
| 1 | 10 µF | C_1206_3216Metric | C3 |
Button Box design files
The KiCad project lives in the lusmdl/MySimRacingButtonBox repository on GitHub; these links point at the commit this page was built from.
Button Box: common questions
What microcontroller does the Button Box use?
The Button Box is built around the ATmega328P-P, from the AVR/Arduino family.
How big is the Button Box PCB?
The Button Box measures 49.7 × 53.1 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Button Box?
20 components, from 19 distinct parts. The full bill of materials is listed on this page.
Where can I download the Button Box design files?
From the lusmdl/MySimRacingButtonBox repository on GitHub, which has the KiCad layout and the schematic; the links under Design files point to each one.
Can I use the Button Box design in my own project?
Yes, under the terms of its MIT license, which lusmdl chose for the repository.
Can I test firmware for the Button Box without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug AVR/Arduino firmware against it before you order a PCB.
More boards in MySimRacingButtonBox
Similar boards
AVR/Arduino
Magspoof
samyk
35 × 29 mm11 parts2LNo license4.2kAVR/Arduino
Redox keyboard
mattdibi
162.2 × 126.5 mm77 parts2LMIT2.0kAVR/Arduino
Labrador
espotek-org
36.8 × 34.7 mm75 parts2LNo license1.2kAVR/Arduino
ModuleV450
stuartpittaway
30 × 61.4 mm39 parts2LCC-BY-NC-4.01.1kAVR/Arduino
V4
stuartpittaway
30 × 50 mm38 parts2LCC-BY-NC-4.01.1kAVR/Arduino
Discipline
coseyfannitutti
304.9 × 122.8 mm170 parts2LCC-BY-NC-4.01.0k