USB Device Test

This test checks WebUSB access and displays the USB descriptors provided by the selected device.

What is WebUSB?

The WebUSB API allows web applications to interact directly with USB devices from a browser. However, not all devices are supported.

This page safely reads the descriptors shared by a device after you grant permission. It does not open interfaces, transfer data, or change device settings.

Which USB Devices Are Compatible?

WebUSB works with USB devices that do not have standard drivers in the operating system. Examples include:

  1. Peripheral Devices Without Standard Driver
    • Custom USB devices (e.g., programmable microcontrollers: Arduino, ESP32, STM32 with custom firmware)
    • USB devices with proprietary protocols (e.g., specialized sensors, non-standard HID devices)
  2. Devices Supporting USB Interface Classes Allowed by WebUSB
    • HID interfaces are protected from regular WebUSB access. Use the higher-level WebHID API for compatible HID devices.
    • CDC (Communication Device Class) — e.g., some USB-UART adapters (though many use OS default drivers)
    • Vendor-specific classes — devices with custom protocols
  3. Examples of Specific Devices
    • Development & Prototyping:
      • Arduino (with WebUSB support, e.g., Arduino Leonardo in WebUSB mode)
      • ESP32, Raspberry Pi Pico (with firmware supporting WebUSB)
      • STM32 (with custom USB implementation)
      • Android devices with USB debugging enabled, using the vendor-specific ADB interface
    • Specialized Devices:
      • USB oscilloscopes, logic analyzers (if no default driver exists)
      • 3D printers, CNC machines (if using direct USB communication)
      • IoT USB devices (sensors, relays, etc.)

Which USB Devices Are NOT Supported?

  • Protected interface classes, including audio, HID, mass storage, hubs, smart cards, video and wireless controllers
  • Devices automatically claimed by OS drivers (e.g., COM ports, keyboards, mice)
  • Secure devices (e.g., YubiKey, banking tokens)

WebUSB requires HTTPS, a user gesture and explicit permission. Browser support is mainly limited to Chromium-based browsers. Printers are not a protected USB class, but an operating-system driver may prevent direct access.