W3cubDocs

/Web APIs

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.

Instance properties

USBDevice.configuration Read only Experimental

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

USBDevice.configurations Read only Experimental

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

USBDevice.deviceClass Read only Experimental

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 Experimental

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 Experimental

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 Experimental

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

USBDevice.deviceVersionMinor Read only Experimental

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

USBDevice.deviceVersionSubminor Read only Experimental

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

USBDevice.manufacturerName Read only Experimental

The name of the organization that manufactured the USB device.

USBDevice.opened Read only Experimental

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

USBDevice.productId Read only Experimental

The manufacturer-defined code that identifies a USB device.

USBDevice.productName Read only Experimental

The manufacturer-defined name that identifies a USB device.

USBDevice.serialNumber Read only Experimental

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

USBDevice.usbVersionMajor Read only Experimental

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 Experimental

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 Experimental

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 Experimental

The official usb.org-assigned vendor ID.

Instance methods

USBDevice.claimInterface() Experimental

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

USBDevice.clearHalt() Experimental

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

USBDevice.controlTransferIn() Experimental

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

USBDevice.controlTransferOut() Experimental

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

USBDevice.close() Experimental

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

USBDevice.forget() Experimental

Returns a Promise that resolves after all open interfaces are released, the device session has ended, and the permission is reset.

USBDevice.isochronousTransferIn() Experimental

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

USBDevice.isochronousTransferOut() Experimental

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

USBDevice.open() Experimental

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

USBDevice.releaseInterface() Experimental

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

USBDevice.reset() Experimental

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

USBDevice.selectAlternateInterface() Experimental

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

USBDevice.selectConfiguration() Experimental

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

USBDevice.transferIn() Experimental

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

USBDevice.transferOut() Experimental

Returns a Promise that resolves with a USBOutTransferResult 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
NoWebView exposes this interface, but does not support WebUSB. See Chromium bug 933055.
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
forget 101 101 No No 87 No No 101 No 70 No 19.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–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/USBDevice