USBDevice: opened property

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The opened read only property of the USBDevice interface indicates whether a session has been started with a paired USB device. A device must be opened before it can be controlled by a web page.



This example is for a hypothetical USB device with a multi-colored LED. It shows how to test that a device is open before calling USBDevice.controlTransferOut to set a specified LED color.

Note: What data can be passed to a USB device and how it is passed is particular and unique to each device.

async function setDeviceColor(usbDevice, r, g, b) {
  if (device.opened) {
    // This hypothetical USB device requires that the data passed to
    // it be in a Uint8Array.
    const payload = new Uint8Array([r, g, b]);

    await usbDevice.controlTransferOut(
        requestType: "vendor",
        recipient: "device",
        request: 1,
        value: 0,
        index: 0,


# ref-for-dom-usbdevice-opened

Browser compatibility

BCD tables only load in the browser