Thanks for the MegaJoy info, but I need to know how to push my changes onto the Leo, The Leo doesn't have an ATmega8u2 to flash the new descriptors on to, how do I flash the changes onto the Leo's 32u4? All I did when setting it up was upload a sketch with the IDE set to LeoJoy mode, I've tried this with modified files, but I don't get any changes to the joystick I see
Ah, yes. You’ll need to muck around in the leojoy USB code itself. The relevant code is in LeoJoy->hardware->leojoy->cores->leojoy, and you’ll want to start playing around with that stuff. I think all you’ll have to modify will be the HID report descriptor and the Joystick_:: functions (like Joystick_::sendReport), which are all in HID.cpp. But, you might need to poke around in USBDesc.h, USBAPI.h, and maybe (but probably not) USBCore.h and .cpp. Good luck! I’d definitely start with adding another 2 axes to the basic LeoJoy implementation, then if you need more, consider poking around with adding a second logical controller. But at a certain point, the cost of buying an Uno (which will take MegaJoy! straight) is totally worth not spending like 20 hours fighting with USB stuff.