• Mon. Feb 19th, 2024

DIY Game Controllers

Homemade hardware to take your gaming experience to the next level!

Free Button Box app – For Sim Racing and Gamers

buttonbox launcher web - Button Box


Here is another option to turn your Android device into a button box with basic functionality. The best part? It’s free and open source, you can check out the ButtonBox GitHub repository here. Compared to some of the paid options we have looked at before this one is fairly barebones.

ButtonBox Android app portrait mode.
Button Box Android app portrait mode.

One major shortcoming of this app is the fact that it will only let you remap the buttons to 0-9 and A-Z. No combos, F-keys, or even arrow keys which is a pretty major weakness. In addition, the layouts you see either portrait or landscape is the entirety of the customization you get with this app, so no moving buttons around, changing their order, or changing how they appear. Also, this repository hasn’t seen a commit since 2019 so I wouldn’t count on further development from its creator.

On the other hand, seeing as how the whole thing is open-source and written in java one of the easier programming languages to pick up. Forking the thing to add what you want shouldn’t be too difficult if you were so inclined.

Below is the text of the app’s readme file.

Button Box is an app for gamers to control their sim or game experience through the phone by simulating keyboard inputs. Simply attach it to your existing gaming hardware and peripherals for extra buttons and controls at your fingerprints.

Download the server here: https://github.com/MohammadAdib/ButtonBoxServer/releases

ButtonBox app landscape view.
ButtonBox app landscape view.

The following is taken from the readme file for the ButtonBoxServer application.

Button Box Server

ButtonBox server for the companion Android app: https://github.com/MohammadAdib/ButtonBoxApp

  • Make sure all devices are on the same network. ButtonBox uses UDP to connect the devices together
  • Download the latest ButtonBoxServer.jar file (from https://github.com/MohammadAdib/ButtonBoxServer/releases) and make sure you have Java installed.
  • Open a terminal, and navigate to the folder with the jar file. (cd Downloads for most people)
  • Run the command java -jar ButtonBoxServer.jar and open the app on your phone.

It should look similar to this:

The server running from command prompt on Windows.
The server running from command prompt on Windows.



Default key bindings

  • A/B/X/Y are mapped to their respective keys (pressing them is the same as pressing those keys on your keyboard)
  • The red +/- buttons are mapped to Q and W respectively.
  • The yellow +/- buttons are mapped to E and R respectively.
  • The blue +/- buttons are mapped to T and Y respectively.

Long pressing on the button allows you to choose a new key binding. Key bindings are unique, meaning you cannot have more than one button bind to a key.

How it works

Button Box uses UDP to connect the devices together. The app has a built in repetitive 10 second heartbeat to check for connectivity with servers. Auto-discovery is possible as both the app and server have a UDP client and server passing ack’s back and forth.

For simulating key presses, a java Robot is used.

Future development

Future plans to expand this might include integration with real-time telemetry from games like Assetto Corsa


If all you need is the ability to hit one of 10 different keys without fiddling with your keyboard this app is perfect for you. If you need expanded functionality, macros, multiple key presses, or anything other than 0-9 & A-Z then this app is not going to be suited to your needs.

If you need more than just the basics, we highly recommend you see our post on the Sim Dashboard app.

Here is a really good-looking app which you should avoid MATRIC.

Or you could turn your android device into a full-fledged game controller with another free app.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.