USB composite device - Xinput and CDC

126 Views Asked by At

I'm trying to emulate an Xinput gamepad on a microcontroller (nRF52). I have configured all the necessary USB descriptors, interfaces and endpoints, and it works. The device is enumerated on Windows as an Xbox 360 controller, I can send gamepad reports to the PC, they are correctly detected, and everything is okay so far.

Now I'm trying to make this device a composite USB device, by adding CDC ACM descriptors and functionality. When I use the Microsoft VID (0x045E) and PID (0x028E), the COM port is not enumerated on Windows, I can't use the CDC interface to communicate. If I use a different VID or PID, the Xinput is not working anymore.

I'm suspecting that these are the Windows drivers, they are ignoring Xinput USB devices that do not use the correct VID and PID.

The goal is to find a way to send some "control" data from the PC to the microcontroller over the USB, ideally via some kind of web-utility.

The questions are:

  1. Is it possible to use Microsoft VID and PID and have the COM port on the device without creating a new Windows driver?
  2. Is it possible to not use Microsoft VID and PID and still have the Xinput functionality?

Anny suggestion is welcome.

Thanks
Best regards
Emir

0

There are 0 best solutions below