USBDevice

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

The USBDevice interface of the WebUSB API provides access to metadata about a paired USB device and methods for controlling it.

Properties

USBDevice.configuration Read only

A USBConfiguration object for the currently selected interface for a paired USB device.

USBDevice.configurations Read only

An array of device-specific interfaces for controlling a paired USB device.

USBDevice.deviceClass Read only

One of three properties that identify USB devices for the purpose of loading a USB driver that will work with that device. The other two properties are USBDevice.deviceSubclass and USBDevice.deviceProtocol.

USBDevice.deviceProtocol Read only

One of three properties that identify USB devices for the purpose of loading a USB driver that will work with that device. The other two properties are USBDevice.deviceClass and USBDevice.deviceSubclass.

USBDevice.deviceSubclass Read only

One of three properties that identify USB devices for the purpose of loading a USB driver that will work with that device. The other two properties are USBDevice.deviceClass and USBDevice.deviceProtocol.

USBDevice.deviceVersionMajor Read only

The major version number of the device in a semantic versioning scheme.

USBDevice.deviceVersionMinor Read only

The minor version number of the device in a semantic versioning scheme.

USBDevice.deviceVersionSubminor Read only

The patch version number of the device in a semantic versioning scheme.

USBDevice.manufacturerName Read only

The of the organization that manufactured the USB device.

USBDevice.opened Read only

Indicates whether a session has been started with a paired USB device.

USBDevice.productId Read only

The manufacturer-defined code that identifies a USB device.

USBDevice.productName Read only

The manufacturer-defined name that identifies a USB device.

USBDevice.serialNumber Read only

The manufacturer-defined serial number for the specific USB device.

USBDevice.usbVersionMajor Read only

One of three properties that declare the USB protocol version supported by the device. The other two properties are USBDevice.usbVersionMinor and USBDevice.usbVersionSubminor.

USBDevice.usbVersionMinor Read only

One of three properties that declare the USB protocol version supported by the device. The other two properties are USBDevice.usbVersionMajor and USBDevice.usbVersionSubminor.

USBDevice.usbVersionSubminor Read only

One of three properties that declare the USB protocol version supported by the device. The other two properties are USBDevice.usbVersionMajor and USBDevice.usbVersionMinor.

USBDevice.vendorId Read only

The official usg.org-assigned vendor ID.

Methods

USBDevice.claimInterface()

Returns a Promise that resolves when the requested interface is claimed for exclusive access.

USBDevice.clearHalt()

Returns a Promise that resolves when a halt condition is cleared.

USBDevice.controlTransferIn()

Returns a Promise that resolves with a USBTransferInResult when a command or status operation has been transmitted to the USB device.

USBDevice.controlTransferOut()

Returns a Promise that resolves with a USBTransferOutResult when a command or status operation has been transmitted from the USB device.

USBDevice.close()

Returns a Promise that resolves when all open interfaces are released and the device session has ended.

USBDevice.isochronousTransferIn()

Returns a Promise that resolves with a USBIsochronousInTransferResult when time sensitive information has been transmitted to the USB device.

USBDevice.isochronousTransferOut()

Returns a Promise that resolves with a USBIsochronousOutTransferResult when time sensitive information has been transmitted from the USB device.

USBDevice.open()

Returns a Promise that resolves when a device session has started.

USBDevice.releaseInterface()

Returns a Promise that resolves when a cliamed interface is released from exclusive access.

USBDevice.reset()

Returns a Promise that resolves when the device is reset and all app operations canceled and their promises rejected.

USBDevice.selectAlternateInterface()

Returns a Promise that resolves when the specified alternative endpoint is selected.

USBDevice.selectConfiguration()

Returns a Promise that resolves when the specified configuration is selected.

USBDevice.transferIn()

Returns a Promise that resolves with a USBTransferInResult when bulk or interrupt data is received from the USB device.

USBDevice.transferOut()

Returns a Promise that resolves with a USBTransferOutResult when bulk or interrupt data is sent to the USB device.

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
USBDevice
61
79
No
No
48
No
No
61
No
45
No
8.0
claimInterface
61
79
No
No
48
No
No
61
No
45
No
8.0
clearHalt
61
79
No
No
48
No
No
61
No
45
No
8.0
close
61
79
No
No
48
No
No
61
No
45
No
8.0
configuration
61
79
No
No
48
No
No
61
No
45
No
8.0
configurations
61
79
No
No
48
No
No
61
No
45
No
8.0
controlTransferIn
61
79
No
No
48
No
No
61
No
45
No
8.0
controlTransferOut
61
79
No
No
48
No
No
61
No
45
No
8.0
deviceClass
61
79
No
No
48
No
No
61
No
45
No
8.0
deviceProtocol
61
79
No
No
48
No
No
61
No
45
No
8.0
deviceSubclass
61
79
No
No
48
No
No
61
No
45
No
8.0
deviceVersionMajor
61
79
No
No
48
No
No
61
No
45
No
8.0
deviceVersionMinor
61
79
No
No
48
No
No
61
No
45
No
8.0
deviceVersionSubminor
61
79
No
No
48
No
No
61
No
45
No
8.0
isochronousTransferIn
61
79
No
No
48
No
No
61
No
45
No
8.0
isochronousTransferOut
61
79
No
No
48
No
No
61
No
45
No
8.0
manufacturerName
61
79
No
No
48
No
No
61
No
45
No
8.0
open
61
79
No
No
48
No
No
61
No
45
No
8.0
opened
61
79
No
No
48
No
No
61
No
45
No
8.0
productId
61
79
No
No
48
No
No
61
No
45
No
8.0
productName
61
79
No
No
48
No
No
61
No
45
No
8.0
releaseInterface
61
79
No
No
48
No
No
61
No
45
No
8.0
reset
61
79
No
No
48
No
No
61
No
45
No
8.0
selectAlternateInterface
61
79
No
No
48
No
No
61
No
45
No
8.0
selectConfiguration
61
79
No
No
48
No
No
61
No
45
No
8.0
serialNumber
61
79
No
No
48
No
No
61
No
45
No
8.0
transferIn
61
79
No
No
48
No
No
61
No
45
No
8.0
transferOut
61
79
No
No
48
No
No
61
No
45
No
8.0
usbVersionMajor
61
79
No
No
48
No
No
61
No
45
No
8.0
usbVersionMinor
61
79
No
No
48
No
No
61
No
45
No
8.0
usbVersionSubminor
61
79
No
No
48
No
No
61
No
45
No
8.0
vendorId
61
79
No
No
48
No
No
61
No
45
No
8.0

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/USBDevice