Nowadays, USB Type-C ports and connectors are becoming common across a wide range of electronic devices, peripherals, and accessories; although USB Type-A still claims a major share in this category.

Particularly, many desktops and laptop manufacturers primarily provide USB Type-A connections in many parts of the world.

 
USB versions and data transfer speeds

Now, USB has been evolved over several generations — starting with version 1.0 to (as of this writing) version 3.2. The major differentiating factor between the different USB versions, apart from socket design and power I/O, is the rate of data transfer. Going by the trend, a higher version number generally implies a higher rate of data transfer.

USB 1.0: Data Rate — Up to 187.5 kB/s (Low Speed); 1.5 MB/s (Full Speed)
USB 2.0: Data Rate — Up to 60 MB/s
USB 3.0: Data Rate — Up to 625 MB/s (SuperSpeed)
USB 3.1, 3.2: Data Rate — Up to 1.25 GB/s; 2.5 GB/s (SuperSpeed+)

If you have a USB Type-C device, it fully supports the USB 3.1 & 3.2 specifications, which provides one of the fastest modes of data transfer, enabling a host of functionalities, including Gigabit Ethernet, 4K screen mirroring and more.

But external storage devices, like flash drives or external hard disks, often come with a regular Type-A connection. And to ensure that you get high-speed data transfers from your USB storage, not only do you need a USB 3.x compatible device, the USB host controller installed on your computer must be 3.x as well.

USB Type-A is usually cross-compatible; if a USB 2.0 device is plugged into a USB 3.x port (or vice versa), the connection will automatically be downgraded to USB 2.0. So, the hardware limitations of one component (host or device) also limit the data transfer speed of the other.

In this article, we’ll help you to identify the version of USB supported by your host controller (on your computer) as well as that of the USB accessory (flash drive, data transfer cable, etc.) you’re trying to connect.

 
Identify the USB version by color code

USB Type-A host controllers and devices usually follow a certain color coding on their connectors to indicate the USB version they support. The most common color indicators for USB devices are as follows.

Identify the USB version by color code

Blue USB Connector — USB 3.x

Most USB devices that we see these days would have a blue colored plastic body on the connector face. The color indicates that the device is USB 3.x compatible. These are one of the fastest USB devices available today, offering data transfer speeds between 5 – 20 Gbps.

Red or Yellow USB Connector — Sleep & Charge

Some USB devices may come with a red or yellow plastic body on the connector face. These connectors do not indicate any particular USB specification, but rather point towards a specific feature.

Red or yellow USB connectors always supply power, regardless of whether the host is inactive, standby or sleep mode. These connectors are usually found in laptops and desktop computers and are useful for charging external USB devices, such as smartphones.

White or Black USB Connector — Older Generation USB

During earlier generations of USB devices, a white USB connector would signify a USB 1.x compatible device, while a black connector would signify a USB 2.0 device. In modern times, though, this color coding seems to be no longer distinctively followed.

For instance, nowadays, you could easily come across USB devices that are black or white in color, but in fact be fully compatible with USB 3.x. The only color codings that seem to hold true consistently are those for the Blue and Red/Yellow indicators.

Thus, we need a different way to distinctively identify the different generations of USB devices, and one sure-shot way of doing so is to plug the device into a computer and let the operating system reveal it for you.

 
Identify the USB version from System Report or Device Manager

You may also identify the USB version supported by the USB host controller on your computer or the device, by looking at the System Information provided by your computer’s operating system.

Here’s how to find out the USB version supported by your USB controller and/or the device.

 
Determine USB version on Mac

  1. Click on the Apple logo in the top-left corner of the screen.
  2. Go to About This Mac and click on System Report in the Overview tab.
  3. In the System Report screen, scroll and click on USB under Hardware section on the left pane.
  4. The USB Device Tree on the top will show all the different USB Controllers available on the Mac.
  5. Click on a device under one of the USB controllers to know more about its specifications in the bottom part of the window.

Determine USB version on Mac

Among the specifications, you should find the Speed attribute, which would indicate the USB version your device is currently operating on (Up to 480 Mbps for USB 2.0, up to 5 Gbps for USB 3.0 and so on).

 
Determine USB version on Windows

Windows detects most USB devices as Generic by default in Device Manager. As such, it’s difficult to determine the specific USB version and its transfer speed from Device Manager, or any other tool that comes packaged with Windows out of the box.

Microsoft does, however, ship a tool called USBView along with the Windows SDK that’s quite helpful in determining the detailed features of a USB Device.

USBView’s UI shows a tree structure similar to Device Manager, showing all the connected USB hubs and devices. When you select a particular device, its details are available on the right side.

Among other details, the bcdUSB field displays a hexadecimal number that indicates the highest USB version supported by the device, in a packed-decimal format:

  1. 0x0100 = USB 1.0
  2. 0x0110 = USB 1.1
  3. 0x0200 = USB 2.0
  4. 0x0300 = USB 3.0

In addition, you can also view the actual speed supported by the device in the Device Bus Speed field:

  1. Low Speed  : <= 1.5 Mbps (USB 1.0+)
  2. Full Speed : <= 12  Mbps (USB 1.0+)
  3. High Speed : <= 480 Mbps (USB 2.0+)
  4. SuperSpeed : <= 5.0 Gbps (USB 3.0+)

But, USBView is really a tiny application, and in order to download it from the official website, you’ve to at least install the entire Debugging Tools package of the Windows SDK, which is quite large in size.

If you’re not willing to download the entire Debugging Tools package just for installing USBView, the source code for the standalone app can be found on Microsoft’s GitHub repository. Quite thoughtfully, a third-party developer has created an executable program based on the same, with minor changes.

You can download USB Device Tree Viewer from the third-party developer’s website and run it directly. The program looks and feels quite similar to the original USBView program and also shows the bcdUSB field, from which you can figure out your USB device’s version based on the same hexadecimal values mentioned earlier.

Alternatively, there is another third-party app, called USBDeview, which allows you to similarly see the details of connected USB devices:

Determine USB version on Windows

  1. Download and install USBDeview from Nirsoft’s official website.
  2. Launch the app. It will show all the details of the connected USB devices.
  3. To simplify the view, click on View menu and go to Choose Columns.
  4. Now, click on Deselect All button and select the Device Name, Description, Device Type, Connected and USB Version columns.

The USB Version column is the one that you are looking for.

So now you know different ways to identify the USB version of a controller or device, from both hardware and software perspective. Was the information provided useful? Let us know in the comments below.