So I recently wanted to capture the video output from an HDMI device. For that I thought I'd tap up eBay and see what was cheap from China at the moment. I found a seller that was selling two different USB HDMI capture dongles - one USB 2 and the other USB 3. Since so many of my ports are USB 3 these days I thought I'd splash out on the USB 3 variant. After all, I surmised the USB 2 one, to get HDMI resolutions and frame rates, must compress the video, and the USB 3 one wouldn't need to - it could give me a raw video feed.
Sure enough a few days later the dongle arrived. And it looked the part. The connector was the pleasing shade of blue you expect from a USB 3.0 device. Plug it in to my PC into a USB 3.0 port and it works. It actually works. Even in Linux!
Then I open it in guvcview to try it out, and yes, I can get 1920x1080 at 60fps from it. But then I notice.... MJPEG compression. Ugh. A quick look at lsusb -t and I know the truth:
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
Yes, it's only running on USB 2. Time for some closer inspection. Out comes the trusty microscope. On the left a proper USB 3.0 connector. On the right this USB "3.0" connector:
Looks like there's something missing there. Yes, it's blue. Yes, it looks like it could be USB 3.0 at first glance, but it's not got any USB 3.0 pins in there at all. They haven't even used a USB 3.0 connector and just not connected the USB 3.0 pins. It's a plain old boring USB 2 connector that they've coloured blue!
The cheek of it!
So the rule is: just colouring something blue does not make it USB 3.0!