Detect Host Device on USB

1 post / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Right now I'm designing a game controller, I got it working on PC, and am now getting it to work with the Nintendo Switch(which I have working, just need to remap buttons in correct order).

The problem is, to work on the Switch, I need to use a VID/PID of an already existing controller that works on it.
Those bastards decided only certain devices can work on it, but then again, its most likely they aren't being bastards, and are just doing it because a controller may not have correctly sequenced buttons, or may not have all the required buttons needed to reliably use.


Now that is all fine and dandy for when its connected to the switch, it just says "USB" and nothing else, but when my controllers are connected to the PC, I'd like them to show my VID/PID, and not another companies.

Not only that, but I'd like to get it working on other systems as well, which I assume have the same requirements.


I've actually already googled this and found out there isn't really a built in standard way to do this, but someone on stack mentioned this.

However, some security reserchers presented (or did they found such things in the wild?) attack scenarios with badusb devices that detect the host OS by some timing and protocoll uniquenesses to trigger slighly focused attacks.

Now if Nintendo ever created a new version of their system, this could easily change, so I don't see how that could be reliable at all.


I have 2 ideas which I'd like to be last resort if in any way possible.

Idea 1 is add a switch/rotary encoder where the user could select which system they want it to work on.

Idea 2 is to contact Nintendo/Microsoft/Sony, and get them to register my VID/PID, which I assume would be very costly.


I don't have high hopes for this, but I figured I have nothing to lose by asking. There are smart people here, so maybe it isn't practically impossible.