I am trying to transmit a bunch of joystick devices over USBIP. One of them is made using an Arduino Uno and UnoJoy to turn its 16u2 serial chip into an HID joystick device. This one transmits great.
The Arduino Micro does not. It's kind of backwards, I expected it to work better since it is designed to be an HID joystick. But I suspect the problem is because it is trying to be a bunch of other things too, like a serial device - the 16u2 firmware modification I have done to the Uno disables its ability to act as a serial device, for example.
Is there a way to get the Micro to similarly stop trying to be a Micro and just be a permanent joystick device?
I uncommented that line, so that CDC_DISABLED was now defined, saved the file, restarted the Arduino IDE 1.8.5, and reflashed my firmware to my Arduino Micro.
IT IS VERY IMPORTANT that you undo the changes to USBDesc.h after, otherwise you will disable the serial communication in any other device you flash with Arduino IDE as well!
Now it only shows up as a USB joystick, nothing else, not an Arduino Micro, not a serial device ready to be flashed. This means it no longer confuses old/obscure devices, like being able to use it as a bootable keyboard on an old PC. Or my case, being able to transmit it over USBIP. It works now!
The downside is that it is now semi-permanent. In order to update my code on the Micro, I will need to flash it using an ISP programmer (I can make one out of an UNO) and the pins on top.
Thanks to this guy for his confusing expert-level instructions, I hope I dumbed them down enough if there's more people at my skill level: