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

The controlTransferOut() method of the USBDevice interface returns a promise that resolves with a USBOutTransferResult when a command or status operation has been transmitted to the USB device.


var promise = USBDevice.controlTransferOut(setup, data)


An object that sets options for . The available options are:
  • requestType: Must be one of three values specifying whether the tranfer is "standard" (common to all USB devices) "class" (common to an industry-standard class of devices) or "vendor".
  • recipient: Specifices the target of the transfer on the device, one of "device", "interface", "endpoint", or "other".
  • request: A vendor-specific command.
  • value: Vender-specific request parameters.
  • index: The interface number of the recipient.
A TypedArray containing the data that will be transfered to the device. Not all commands require data; some commands can send data just through the value parameter. Check with your device to see what the specific request requires.

Return value

A promise that resolves with a USBOutTransferResult.


Specification Status Comment
The definition of 'controlTransferOut()' in that specification.
Draft Initial definition.

Browser compatibility

BCD tables only load in the browser