Find the Right USB Driver from VID & PID
Turn an unknown USB hardware ID into a defensible driver choice on Windows, Linux, or macOS, without treating a database match as proof.
The four-step workflow
Read
Capture VID, PID, revision, and interface IDs.
Classify
Check whether the interface is HID, storage, serial, audio, or vendor-specific.
Source
Use the OS, product manufacturer, or official silicon vendor.
Verify
Confirm the bound driver and test the actual interface.
Start with the NodeLoop USB Device Identifier if you do not yet have the VID/PID.
What VID/PID proves, and what it does not
The vendor ID is a 16-bit identifier assigned to a USB vendor. The product ID is chosen by that vendor. Together they describe the identity reported in the USB device descriptor. They are a strong search key, but driver selection can be more specific or more general.
| Signal | Useful for | Limit |
|---|---|---|
| VID:PID | Vendor and product lookup | IDs can be reused, copied, or changed by firmware mode |
| bcdDevice / REV | Hardware or firmware revision matching | Meaning is defined by the vendor |
| Interface class | Finding an inbox class driver | Composite devices expose several independent interfaces |
| Hardware IDs | Exact Windows INF matching | Treat the strings as identifiers, not a product description |
Read the identifiers on each operating system
Windows
- Open Device Manager and locate the unknown or relevant USB device.
- Open Properties, then the Details tab.
- Select Hardware Ids and copy the most specific line.
USB\VID_1234&PID_5678&REV_0100
USB\VID_1234&PID_5678 Linux
List devices, inspect one descriptor set, then check the interface-to-driver tree.
lsusb
lsusb -v -d 1234:5678
lsusb -t
In lsusb -t, Driver= identifies the driver bound to each interface.
macOS
- Open System Information.
- Select USB under Hardware.
- Record Product ID, Vendor ID, version, and location ID.
system_profiler SPUSBDataType Choose a driver source in the right order
- 1 Let the operating system try first.
HID, mass storage, audio, video, and CDC-style interfaces often use an inbox class driver. Check optional OS updates before installing a third-party package.
- 2 Use the product manufacturer's support page.
Match the product name, hardware revision, operating system, and architecture. A VID match alone is not enough for a safe install.
- 3 Use an official catalog when appropriate.
For Windows, search the Microsoft Update Catalog with the exact hardware ID. For development boards, use the board or USB bridge vendor's official package.
- 4 Verify the package before installation.
Check the publisher signature, supported IDs in the INF or package metadata, release date, OS version, and whether the source is actually responsible for the hardware.
Check the interface class before hunting for a package
USB drivers usually bind to interfaces. One physical composite device can therefore use a HID driver, a serial driver, and a vendor-specific driver at the same time.
| Interface | Typical host behavior | Next check |
|---|---|---|
| HID (class 03) | Usually an inbox driver | Decode the report descriptor if controls are wrong |
| Mass storage (08) | Usually an inbox storage driver | Check media, power, and partition state |
| CDC / serial | May expose a serial port automatically | Confirm the bridge chip and port binding |
| Audio / video | Often class-compliant | Check supported formats and alternate settings |
| Vendor-specific (FF) | No universal class behavior | Find the manufacturer's driver or protocol tool |
When the VID/PID lookup is correct but the device still fails
Bootloader mode
Firmware update and recovery modes often enumerate with a different PID. Identify the device again after its mode changes.
Composite interfaces
The parent device can be healthy while one child interface lacks a driver. Inspect each interface, not only the top-level node.
Cable or power
Enumeration errors, repeated reconnects, and descriptor read failures can be electrical. Try a known data cable, direct port, and adequate power.
Driver is not the root cause
A bound driver does not prove the application protocol, permissions, firmware, or endpoint usage is correct.
Verify the result
- Windows: the device status is clean, the Driver tab names the expected provider, and the hardware ID is covered by the package.
- Linux:
lsusb -tshows the expected interface driver and the kernel log does not show repeated resets or probe failures. - macOS: the device and interfaces remain stable in System Information and the intended application can open them.
- Everywhere: test the real function. Successful enumeration is only the first layer of bring-up.
FAQ
Can a USB VID and PID identify the exact driver?
A VID/PID identifies the vendor and product identity reported by the device, but it does not guarantee one exact driver. Driver matching can also depend on the interface class, revision, compatible IDs, and operating system.
Where can I find a USB VID and PID in Windows?
Open Device Manager, open the device properties, select the Details tab, and choose Hardware Ids. A typical value contains USB\VID_1234&PID_5678.
What does lsusb show on Linux?
The lsusb list includes a hexadecimal vendor and product pair such as 046d:c534. Use lsusb -v -d VID:PID for descriptors and lsusb -t to see interface-to-driver bindings.
Is it safe to download a driver from a VID/PID lookup site?
Use lookup sites to identify hardware, not as a driver source. Prefer the operating system, the device manufacturer, an official silicon vendor, or the Microsoft Update Catalog for Windows.
Primary references
Continue the USB workflow
- USB Device IdentifierProject
Read or search a VID/PID before following the driver workflow.
- HID Report Descriptor ToolTool
Decode HID reports when the device enumerates but its controls do not behave as expected.
- Browser Hardware LabProject
Continue bring-up with WebUSB, WebSerial, and WebBluetooth tools.