RunTheTests
/

USB Device Inspector

Read a USB device's descriptors — identifiers, class, interfaces and endpoints.

How this talks to your device

You pick a device from the browser's own chooser and the page reads its descriptors: vendor and product identifiers, the USB class it claims, the version it speaks, and the tree of configurations, interfaces and endpoints beneath. Class codes are named from the USB-IF assignments, and vendor IDs from a table of the manufacturers common enough on a desk to be worth naming — anything unlisted is shown as a number rather than guessed at. The device is opened but no interface is claimed and no vendor-specific control transfer is issued: claiming an interface detaches whatever driver currently owns the device, and sending an unknown control request to unknown hardware is not something a general-purpose inspector has any business doing. Devices already claimed by an operating-system driver will refuse to open at all, which is normal for keyboards, mice and storage, and the descriptors read at enumeration are still shown.

What the results mean

Vendor and product ID
The two numbers that identify a device to the operating system, and what a driver matches on. The pair is what you search for when hunting a driver or a datasheet.
Device class
What kind of device it claims to be. A zero here is normal and means the class is declared per interface instead, which is how composite devices — a headset that is audio and HID at once — describe themselves.
Interfaces and endpoints
An interface is one function of the device; endpoints are the channels data flows through. A printer typically has one interface with one outbound endpoint; a webcam has several.
Opened: refused
A driver on your system already owns the device. Expected for anything the operating system has a class driver for, and not a fault.

Common problems and fixes

The device does not appear in the chooser
Some devices are hidden from WebUSB by the browser — HID devices and mass storage are blocked for security reasons, since a page with access to a keyboard could read keystrokes. Try the HID or serial tools for those classes.
The device appears but refuses to open
An operating-system driver has claimed it. On Windows this is common and largely unavoidable without replacing the driver with WinUSB, which is a decision with consequences beyond this page. The descriptors shown are still accurate.
The manufacturer shows as not reported
Many devices leave the string descriptors empty, particularly cheap ones. The vendor ID is still meaningful — the USB-IF assigns those, and searching for it will name the company even when the device does not.
Nothing works in Firefox or Safari
Neither implements WebUSB and neither has announced plans to. Chrome or Edge on desktop are the options; iOS does not support it in any browser.

Frequently asked questions

Why will it not show me the serial number?

Because there is no good reason to and several bad ones. A USB serial number identifies a specific unit, it is warranty-sensitive, and inspector output is exactly the sort of thing people screenshot into a forum thread when asking for help. That a serial is present is the diagnostically useful fact; the value is not, so it is withheld here and excluded from the exportable summary.

Can a website really read my USB devices?

Only the one you explicitly choose, and only while the page is open. WebUSB has no enumeration API at all — the browser runs the chooser and hands over exactly one device. It also blocks entire classes outright: keyboards, mice and mass storage are unreachable no matter what a page asks for, because access to them would be a keylogger or a file reader.

Why does it not read the values from the device?

Because there is no general way to know what a read means. On some hardware a control transfer changes state, resets a counter or triggers an action, and a generic tool has no way to tell those apart from a harmless status read. Enumerating structure is safe on anything; poking endpoints is not, and the consequences would land on your hardware.

What is a composite device?

One physical device presenting several functions at once — a headset that is a speaker, a microphone and a set of buttons, or a printer that is also a card reader. It shows up as a device class of zero with several interfaces, each declaring its own class. Seeing several unrelated interfaces here is normal rather than a sign of anything wrong.

More in DevTools