DIY Project

Sim Racing Button Box DIY — Build Your Own with Arduino and SimHub (2026)

Pushbuttons, rotary encoders, addressable LEDs — and it costs less than €50. This is the no-fluff guide to building your own sim racing button box from scratch using an Arduino and SimHub.

If you've been sim racing for a while, you know the feeling: your wheel has a few buttons, but it's never enough. Pit limiter, radio, MFD, pit menu navigation — before you know it you're fumbling over voice commands or taking your hands off the wheel at the worst possible moment.

A dedicated button box solves all of that. And here's the thing — you don't need to spend €200+ on a commercial unit. For around €30–50, you can build one yourself using an Arduino and SimHub, the free software that handles all the heavy lifting. No soldering experience required, seriously.

This guide walks you through every step: picking the right board, wiring everything up, configuring SimHub, and getting it working in your favourite sim. Let's get into it.

What Is a Button Box and Why Build One?

A button box is a separate controller — usually mounted somewhere within reach — that gives you quick access to functions you don't want to hunt for on your wheel. Think of it as a cockpit control panel.

Most button boxes include:

If you're just getting started and want to understand what gear you're working with, check out our guide to the best direct drive wheels for beginners — it covers how button boxes integrate into a full rig.

💡 Good to know: SimHub is completely free for personal use, supports virtually every sim racing title, and handles button mapping, LED effects, and display output — all without writing a single line of code yourself.

The Parts List — Everything You Need

Here's the complete shopping list. Prices are approximate and based on typical 2026 European pricing — shop around and you'll find deals.

Component Quantity Est. Price
Arduino Leonardo or Arduino Nano Every (ATmega32U4) 1 €12–18
Arcade-style pushbuttons (24mm, with LED) 8–12 €8–15
Rotary encoder (KY-040 or similar) 1–2 €2–4
WS2812B addressable LED strip (5V) ~20 LEDs €3–5
Jumper wires / Dupont cables (M-M, F-M) ~40 €2–4
Perfboard or breadboard for prototyping 1 €2–4
Micro-USB cable (data-capable) 1 €3–5
Optional: 3D printed case (STL files online) 1 €0–10
TOTAL ~€30–50

Why Arduino Leonardo or Nano Every? You need a board with a native USB HID interface — one that shows up as a gamepad/joystick to Windows without additional drivers. The Leonardo and Nano Every (ATmega32U4) both do this out of the box. Avoid the standard Arduino Nano (CH340 chip) — it won't enumerate as a joystick.

SimHub Setup — Download and Add Your Device

Head to www.simhubw.com and download SimHub. Installation is straightforward. Once it's running, here's how to add your Arduino:

  1. Click the Add new hardware button (or go to Settings → Hardware)
  2. Select Arduino (Generic HID) from the list
  3. Choose your board type — Leonardo or Nano Every
  4. SimHub will flash the board with its firmware automatically — you don't need to write any code

⚠️ Important: The first time SimHub flashes your Arduino, it may need to install the HID driver. Give it a moment. If it doesn't work on the first try, unplug and replug the USB cable, then try again.

Once flashed, you'll see the SimHub dashboard with your buttons and encoder inputs listed. Click each one to assign a keypress, button number, or axis. Everything maps here — you don't need to touch Windows gamepad settings at all.

Wiring — Pushbuttons, Rotary Encoders, and LEDs

Here's the text-based wiring diagram. The principle is simple: each pushbutton connects one leg to GND and one leg to a digital input pin. When the button is pressed, the pin reads LOW.

// === PUSHBUTTON WIRING === // Each button: one leg → GND, other leg → digital pin (e.g., D2, D3, D4...) // Internal pull-up is handled by SimHub firmware. // Arduino Leonardo pin mapping (example): Button 1 → Pin 2 (GND common) Button 2 → Pin 3 (GND common) Button 3 → Pin 4 (GND common) Button 4 → Pin 5 (GND common) Button 5 → Pin 6 (GND common) Button 6 → Pin 7 (GND common) Button 7 → Pin 8 (GND common) Button 8 → Pin 9 (GND common) // === ROTARY ENCODER WIRING (KY-040) === Encoder CLK → Pin A0 Encoder DT → Pin A1 Encoder GND → GND Encoder VCC → 5V (only if encoder has VCC pin — otherwise leave) // === WS2812B LED STRIP === LED DIN → Pin 11 (or any PWM-capable pin) LED 5V → 5V (external 5V supply recommended if >10 LEDs) LED GND → GND

Tips for clean wiring:

Uploading the Arduino Sketch — SimHub Generic Firmware

You don't need to write an Arduino sketch from scratch. SimHub includes a pre-built firmware specifically for generic Arduino boards. Here's how to load it:

  1. Open the Arduino IDE (download from arduino.cc if you don't have it)
  2. Go to Tools → Board and select your board (Leonardo or Nano Every)
  3. Go to Tools → Port and choose the COM port your Arduino is on
  4. In SimHub, navigate to Settings → Hardware → Arduino Generic HID
  5. Click Upload Firmware — SimHub handles the compilation and upload automatically

That's it. No coding, no libraries to install. The firmware enumerates all your inputs and makes them available in SimHub's dashboard.

// NOTE: This section is for reference only. // You do NOT write this code — SimHub generates and flashes // it automatically when you click "Upload Firmware". // If you're curious, the firmware enables: // - Pin change interrupts for button debouncing // - Quadrature decoding for rotary encoders // - Neopixel/WS2812B timing for LED strips // - Native USB HID gamepad emulation

Testing and Troubleshooting

Once everything is wired and the firmware is uploaded, test in SimHub's hardware test view:

One of the most common issues is a floating input — a pin that reads random values when nothing is connected. SimHub's firmware uses internal pull-ups, but poor ground connections will cause phantom presses. Solder or use a proper crimped connection, not loose breadboard jumpers for the final build.

Upgrade Ideas — Where to Take It Next

Once you've got the basics working, the sky's the limit. Here are some natural upgrade paths:

If you're building out your first rig and want to think about the bigger picture before adding peripherals, our sim racing pedals buyer's guide covers what to prioritise — spoiler: a good loadcell pedal set will transform your driving before any button box will.

Wrapping Up

Building a sim racing button box with Arduino and SimHub is one of the most satisfying DIY projects in sim racing. The total cost is roughly what you'd spend on a single mid-range game, and the payoff in immersion and control is immediate. You don't need to be an engineer — if you can follow a wiring diagram and plug in a USB cable, you can do this.

Start simple with 6–8 buttons and one encoder. Get it working, learn how SimHub maps inputs, and then expand from there. By the time you're done, you'll have something that's genuinely yours — and you'll understand exactly how it works.

Got questions? Hit us up in the comments below.

Disclosure: Driver Labs is reader-supported. Through qualifying purchases we may earn a small commission at no extra cost to you. This article contains no paid placements.