The quest
After a long quest, I finally got a working “button-Box” running on my Xbox and my favorite racing game called Assetto Corsa Competizione.
Button Box?
This is a device that emulates a keyboard for usage on the Xbox, you can also connect a real USB keyboard to an Xbox but is large and hard to handle when racing. So a button box is a device with keys you can use when playing (racing with the game).
Why need one?
Because on Xbox you can only configure a few buttons on your controller and cannot map other keys to it. It is a closed ecosystem and does not allow you to map all available buttons on your wheel/controller to specific functions. Even if you buy a high-end wheel, with lots of buttons you can only map a few, most of these knobs and additional buttons are not available on Xbox. (which is a bad thing from Microsoft). PC’s and Playstation do a better job at this.
When you are racing you want to change settings like ABS, brake bias, and Traction control settings when driving. For this, you need (more) buttons to do so. On Xbox this is default hard to do with the limited numbers of buttons on your controller
My solution
I used a Adafruit Macropad RP2040 which you can program to emulate a keyboard via USB. with Python I was able to program it in a way I now can use the built-in keymappings from ACC on my Xbox.
Note: You can create macro’s for any other game that can use “normal” keyboard controls. Example F1, WRC, Project Cars, Forza motorsport and Forza Horizon.
As you can see I can use all the functions now using the button box. The solution is flexible so I can change and add functions and colors on the keys as I want. I can also create menus for other games which use keyboard commands.
With the rotator knob i can switch between different mappings (ingame or for other games).
What did I use to create it?
– Adafruit Macropad hardware -> Link
– Open source software from Github -> Link
— My Github page (incl. marcro files) -> Link
— Create two macrofiles myself for ACC key mapping (easy do to with the open-source software)
Additional link to the adafruit page of the macropad
After uploading the software to the device, just connect it to the Xbox via USB, and all works flawlessly.
The next mini project is finding a way to attach it nicely to my racing seat 🙂
Tested version
Runs on 1.7, 1.8 and the new 1.9 version of ACC on Xbox series X
Disclaimer
Building this and getting it to work is your own responsibility. You need some basic computer skills and understanding to get this working.