With the new wired mode on the Switch for Pro controllers, I finally dug up my old BeagleBone Black and managed to coax it into getting a USB traffic dump of the Pro controller wired to the Switch.
- All communication is USB interrupt based, no control transfers outside of descriptor stuff.
- Poll rate is 125Hz, just like your normal USB controller. EDIT: It appears to fluctuate in report speed, and hovers around 75Hz. You get one 8ms between packets then 2-3 of 16ms between packets. Kinda weird.
- The magic key to start it is "80 02", although I also see a "80 04" very soon after that. Replicating it on a PC didn't require both though. Maybe for selecting which player # it is?
- There are periodic packets from the host, which appear to be sent every 100ms or so. Some appear larger than others and probably include haptic data.
- WARNING: The HID descriptor does not match the data in the controller payload at all. My guess is it's just the Bluetooth HID descriptor c/p over. Because of that, if you enable the controller on Windows by poking that enable interrupt packet with your favorite USB tool, Windows will go crazy trying to interpret the packets it gets. I now have this on-screen controller keyboard I don't know how to get rid of.
Last edited by Toad King,