Standard USB uses a host/device architecture; a host acts as the Host device for the entire bus, and a USB device acts as a Peripheral. If implementing standard USB, devices must assume one role or the other, with computers generally set up as hosts, while (for example) printers normally function as a Peripheral. In the absence of USB OTG, cell phones often implemented Peripheral functionality to allow easy transfer of data to and from computers. Such phones could not readily be connected to printers as they also implemented the peripheral role. USB OTG directly addresses this issue.2
When a device is plugged into the USB bus, the host device sets up communications with the device and handles service provisioning (the host's software enables or does the needed data-handling such as file managing or other desired kind of data communication or function). That allows the devices to be greatly simplified compared to the host; for example, a mouse contains very little logic and relies on the host to do almost all of the work. The host controls all data transfers over the bus, with the devices capable only of signalling (when polled) that they require attention. To transfer data between two devices, for example from a phone to a printer, the host first reads the data from one device, then writes it to the other.
While the host-device arrangement works for some devices, many devices can act either as host or as device depending on what else shares the bus. For instance, a computer printer is normally a device, but when a USB flash drive containing images is plugged into the printer's USB port with no computer present (or at least turned off), it would be useful for the printer to take on the role of host, allowing it to communicate with the flash drive directly and to print images from it.
USB OTG recognizes that a device can perform both Host and Peripheral roles, and so subtly changes the terminology. With OTG, a device can be either a host when acting as a link host, or a link peripheral. The choice between host and peripheral roles is handled entirely by which end of the cable the device is connected to. The device connected to the "A" end of the cable at start-up, known as the "A-device", acts as the default host, while the "B" end acts as the default peripheral, known as the "B-device".
After initial startup, setup for the bus operates as it does with the normal USB standard, with the A-device setting up the B-device and managing all communications. However, when the same A-device is plugged into another USB system or a dedicated host becomes available, it can become a device.
USB OTG does not preclude using a USB hub, but it describes host-peripheral role swapping only for the case of a one-to-one connection where two OTG devices are directly connected. Role swapping does not work through a standard hub, as one device will act as a host and the other as a peripheral until they are disconnected.
USB OTG is a part of a supplement3 to the Universal Serial Bus (USB) 2.0 specification originally agreed upon in late 2001 and later revised.4 The latest version of the supplement also defines behavior for an Embedded Host which has targeted abilities and the same USB Standard-A port used by PCs.
SuperSpeed OTG devices, Embedded Hosts and peripherals are supported through the USB OTG and Embedded Host Supplement5 to the USB 3.0 specification.
The USB OTG and Embedded Host Supplement to the USB 2.0 specification introduced three new communication protocols:
The USB OTG and Embedded Host Supplement to the USB 3.0 specification introduces an additional communication protocol:
USB OTG defines two roles for devices: OTG A-device and OTG B-device, specifying which side supplies power to the link, and which initially is the host. The OTG A-device is a power supplier, and an OTG B-device is a power consumer. In the default link configuration, the A-device acts as a USB host with the B-device acting as a USB peripheral. The host and peripheral modes may be exchanged later by using HNP or RSP. Because every OTG controller supports both roles, they are often called "Dual-Role" controllers rather than "OTG controllers".
For integrated circuit (IC) designers, an attractive feature of USB OTG is the ability to achieve more USB capabilities with fewer gates.
A "traditional" approach includes four controllers, resulting in more gates to test and debug:
Also, most gadgets must be either a host or a device. OTG hardware design merges all of the controllers into one dual-role controller that is somewhat more complex than an individual device controller.
A manufacturer's targeted peripheral list (TPL) serves the aim of focusing a host device towards particular products or applications, rather than toward its functioning as a general-purpose host, as is the case for typical PCs. The TPL specifies products supported by the "targeting" host, defining what it needs to support, including the output power, transfer speeds, supported protocols, and device classes. It applies to all targeted hosts, including both OTG devices acting as a host and embedded hosts.
The original USB OTG standard introduced a plug receptacle called mini-AB that was replaced by micro-AB in later revisions (Revision 1.4 onwards). It can accept either a mini-A plug or a mini-B plug, while mini-A adapters allows connection to standard-A USB cables coming from peripherals. The standard OTG cable has a mini-A plug on one end and a mini-B plug on the other end (it can not have two plugs of the same type).
The device with a mini-A plug inserted becomes an OTG A-device, and the device with a mini-B plug inserted becomes a B-device (see above). The type of plug inserted is detected by the state of the ID pin (the mini-A plug's ID pin is grounded, while the mini-B plug's is floating).
Pure mini-A receptacles also exist, used where a compact host port is needed, but OTG is not supported.
With the introduction of the USB micro plug, a new plug receptacle called micro-AB was also introduced. It can accept either a micro-A plug or a micro-B plug. Micro-A adapters allow for connection to standard-A plugs, as used on fixed or standard devices. An OTG product must have a single micro-AB receptacle and no other USB receptacles.67
An OTG cable has a micro-A plug on one end, and a micro-B plug on the other end (it cannot have two plugs of the same type). OTG adds a fifth pin to the standard USB connector, called the ID-pin; the micro-A plug has the ID pin grounded, while the ID in the micro-B plug is floating. A device with a micro-A plug inserted becomes an OTG A-device, and a device with a micro-B plug inserted becomes a B-device. The type of plug inserted is detected by the state of the pin ID.
Three additional ID pin states are defined8 at the nominal resistance values of 124 kΩ, 68 kΩ, and 36.5 kΩ, with respect to the ground pin. These permit the device to work with USB Accessory Charger Adapters that allows the OTG device to be attached to both a charger and another device simultaneously.9
These three states are used in the cases of:
USB 3.0 introduced a backwards compatible SuperSpeed extension of the micro-AB receptacle and micro-A and micro-B plugs. They contain all pins of the non-Superspeed micro connectors and use the ID pin to identify the A-device and B-device roles, also adding the SuperSpeed pins.
When an OTG-enabled device is connected to a PC, it uses its own USB-A or USB Type-C cable (typically ending in micro-B, USB-C or Lightning plugs for modern devices). When an OTG-enabled device is attached to a USB device, such as a flash drive, the device must either end in the appropriate connection for the device, or the user must supply an appropriate adapter ending in USB-A. The adapter enables any standard USB peripheral to be attached to an OTG device. Attaching two OTG-enabled devices together requires either an adapter in conjunction with the device's USB-A cable, or an appropriate dual-sided cable and a software implementation to manage it. This is becoming commonplace with USB Type-C devices.
BlackBerry 10.2 implements Host Mode (like in the BlackBerry Z30 handset).13 Nokia has implemented USB OTG in many of their Symbian cellphones such as Nokia N8, C6-01, C7, Oro, E6, E7, X7, 603, 700, 701 and 808 Pureview. Some high-end Android phones produced by HTC, and Sony under Xperia series also have it.14 Samsung1516 Android version 3.1 or newer supports USB OTG, but not on all devices.1718
Specifications listed on technology web sites (such as GSMArena, PDAdb.net, PhoneScoop, and others) can help determine compatibility. Using GSMArena as an example, one would locate the page for a given device, and examine the verbiage under Specifications → Comms → USB. If "USB Host" is shown, the device should be capable of supporting OTG-type external USB accessories.1920
In many of the above implementations, the host device has only a micro-B receptacle rather than a micro-AB receptacle. Although non-standard, micro-B to micro-A receptacle adapters are widely available and used in place of the mandated micro-AB receptacle on these devices.21
USB OTG devices are backward-compatible with USB 2.0 (USB 3.0 for SuperSpeed OTG devices) and will behave as standard USB hosts or devices when connected to standard (non-OTG) USB devices. The main exception is that OTG hosts are only required to provide enough power for the products listed on the TPL, which may or may not be enough to connect to a peripheral that is not listed. A powered USB hub may sidestep the issue, if supported, since it will then provide its own power according to either the USB 2.0 or USB 3.0 specifications.
Some incompatibilities in both HNP and SRP were introduced between the 1.3 and 2.0 versions of the OTG supplement, which can lead to interoperability issues when using those protocol versions.
Main articles: USB Battery Charging Specification and USB Power Delivery Specification
Some devices can use their USB ports to charge built-in batteries, while other devices can detect a dedicated charger and draw more than 500 mA (0.5 A), allowing them to charge more rapidly. OTG devices are allowed to use either option.22
Koeman, Kosta (22 November 2001). "Understanding USB On-The-Go". edn.com. EDN. Retrieved 20 June 2017. https://www.edn.com/design/communications-networking/4346710/Understanding-USB-On-The-Go ↩
"On-The-Go and Embedded Host Supplement to the USB 2.0 Specification, Revision 2.0 plus ECN and errata". USB.org. 14 July 2011. Archived from the original on 5 May 2012. Retrieved 18 July 2005. https://web.archive.org/web/20120505091034/http://www.usb.org/developers/onthego/ ↩
Heise, Heinz. "USB-On-the-Go-Specification Settled". Heise.de.[dead link] /wiki/Heinz_Heise ↩
"On-The-Go and Embedded Host Supplement to the USB Revision 3.0 Specification, Revision 1.1". USB.org. May 10, 2012. https://www.usb.org/document-library/go-and-embedded-host-supplement-usb-revision-30-specification-revision-11 ↩
"Universal Serial Bus Revision 2.0 specification". On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification, Revision 2.0 version 1.1a. USB Implementers Forum, Inc. 27 July 2012. Retrieved 26 June 2017.[permanent dead link] http://www.usb.org/developers/docs/usb20_docs/usb_20_061917.zip ↩
"Universal Serial Bus Revision 2.0 specification". Universal Serial Bus Micro-USB Cables and Connectors Specification, Revision 1.01. USB Implementers Forum, Inc. 4 April 2007. Retrieved 26 June 2017.[permanent dead link] http://www.usb.org/developers/docs/usb20_docs/usb_20_061917.zip ↩
"Battery Charging Specification". USB Implementers Forum, Inc. 15 April 2009. Archived from the original on 4 March 2016. Retrieved 23 September 2009. https://web.archive.org/web/20160304115720/http://www.usb.org/developers/docs/devclass_docs/batt_charging_1_1.zip ↩
"KB34983-Support for USB Embedded Host mode on BlackBerry 10 OS version 10.2". Archived from the original on 9 January 2020. Retrieved 12 November 2013. http://btsc.webapps.blackberry.com/btsc/viewdocument.do?externalId=KB34983 ↩
"USB On the Go - HTC Blog". blog.htc.com. Archived from the original on 6 October 2014. Retrieved 30 September 2014. http://blog.htc.com/usb-otg/ ↩
"Samsung Galaxy S II Able To Use Standard USB OTG Cable For USB On-The-Go Access - TalkAndroid.com". www.talkandroid.com. 13 May 2011. Archived from the original on 10 September 2022. Retrieved 11 September 2013. http://www.talkandroid.com/40821-samsung-galaxy-s-ii-able-to-use-standard-usb-otg-cable-for-usb-on-the-go-access/ ↩
"Xperia S USB OTG demonstrated [Video] - Xperia Blog". www.xperiablog.net. 9 March 2012. Archived from the original on 5 September 2013. Retrieved 11 September 2013. http://www.xperiablog.net/2012/03/09/xperia-s-usb-otg-demonstrated-video/ ↩
"Android Issue 738: I hope Android will implement and support the USB host feature". 30 May 2008. Archived from the original on 9 June 2013. Retrieved 30 May 2013. https://code.google.com/p/android/issues/detail?id=738 ↩
"USB Host – Android Developers". developer.android.com. 30 May 2013. Archived from the original on 30 September 2011. Retrieved 30 May 2013. https://developer.android.com/guide/topics/usb/host.html ↩
http://www.gsmarena.com/ Archived 16 September 2017 at the Wayback Machine GSMArena http://www.gsmarena.com/ ↩
http://pdadb.net Archived 10 August 2006 at the Wayback Machine PDAdb.net http://pdadb.net ↩
"Are Micro A USB plugs actually ever used?". Electrical Engineering Stack Exchange. Archived from the original on 10 September 2022. Retrieved 13 August 2020. https://electronics.stackexchange.com/questions/162664/are-micro-a-usb-plugs-actually-ever-used ↩