Linux – Is it possible to change a USB’s enumerated descriptors (from the OS side) after plugging it in

arduinolinuxusbusb device

I don't mean as in change the descriptors built into the device, but the descriptors that the OS has enumerated. Can this be done from the OS side without touching the USB device?

For example, can I plug in a default Arduino UNO scripted to send keyboard keystroke signals, then in the OS side of things (Linux in my specific case, but I'd like to know about Windows and OS X too) change the descriptors so that the OS can interpret the device as (for example) a keyboard without ever having to modify the DFU firmware of the Arduino directly?

Best Answer

Cypress semiconductor has a line of products that do this. They call it "re-numeration". I'm not sure how feasible this is with other devices, but here is an article explaining the process that might help: http://www.cypress.com/?id=4&rID=26981

Related Topic