I teach robotics to kids in Hong Kong and started developing this code to make some of our controller projects like this minecraft pickaxe controller we made in class easier. I kind of like it so I've kept developing it.

It runs on Arduino Pro Micro or ESP32 microcontrollers. Basically you just drop the firmware on either of those devices using the Arduino IDE, wire up your buttons and knobs, then fire up the gui and set which inputs relate to which buttons and axes in game.

One quite cool thing it does is let you tether multiple microcontrollers together, so if you want more buttons than the 16 pins a Pro Micro allow, you can connect a second, third, fourth or 255th and they will all send their inputs through the master device to Windows as if they were one.
I use this particular feature to make swappable grips for my joysticks and throttles, as well as to allow more inputs on my button boxes without having to do complicated tricks with button matrices. All the devices work in parrallel so they remember their own settings and work in tandem so
the main microcontroller isn't doing all the work.

The latest feature I added was support for ESP32 microcontrollers which have built in bluetooth, so making a bluetooth controller is now just as easy as a usb one. I mean, you'll probably want to set up a bluetooth controller with a rechargable battery set up so here's an example of a nice simple one that will run for about 10 hours and charges from usb.

The code is freely available under the GNU General Public License v3.0 and you can get it at gitlab.com/realrobots/rr_configurator.

I'm still actively working on it and feedback is appreciated.