thumb|The USB On-The-Go logo
thumb| USB Micro-B OTG adapter for connecting a full-size A-type plug into a [[smartphone or tablet]]
USB On-The-Go (USB OTG) is a specification that allows certain USB devices, such as tablets or smartphones, to function either as a host or a peripheral. This enables them to connect directly to other USB devices, such as flash drives, digital cameras, mice or keyboards. USB OTG was first introduced in late 2001.
Unlike standard USB connections, which involve a fixed host (such as a computer) and a peripheral (such as a keyboard), USB OTG allows a device to switch between these roles. For example, a smartphone can act as a host when reading files from a flash drive, but function as a peripheral when connected to a computer.
USB OTG defines two device roles: the A-device, which supplies power and initially acts as the host, and the B-device, which consumes power and begins as the peripheral. These roles can be reversed using the Host Negotiation Protocol (HNP). The initial role is determined by the wiring of a specific pin, known as the ID pin, in the USB connector. The A/B naming convention reflects earlier USB connector types: Type-A connectors were used with host devices, while Type-B connectors were used with peripherals.
In September 2019, the USB Implementers Forum has stopped certifying new USB OTG products because of the introduction of the USB-C standard.
Overview
thumb|upright=1.5|A USB OTG setup involving a number of devices
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. to the Universal Serial Bus (USB) 2.0 specification originally agreed upon in late 2001 and later revised. 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 Supplement to the USB 3.0 specification.
Protocols
The USB OTG and Embedded Host Supplement to the USB 2.0 specification introduced three new communication protocols:
- Attach Detection Protocol (ADP): Allows an OTG device, embedded host or USB device to determine attachment status in the absence of power on the USB bus, enabling both insertion-based behavior and the capability to display attachment status. It does so by periodically measuring the capacitance on the USB port to determine whether there is another device attached, a dangling cable, or no cable. When a large enough change in capacitance is detected to indicate device attachment, an A-device will provide power to the USB bus and look for device connection. At the same time, a B-device will generate SRP (see below) and wait for the USB bus to become powered.
- Session Request Protocol (SRP): Allows both communicating devices to control when the link's power session is active; in standard USB, only the host is capable of doing so. That allows fine control over the power consumption, which is very important for battery-operated devices such as cameras and mobile phones. The OTG or embedded host can leave the USB link unpowered until the peripheral (which can be an OTG or standard USB device) requires power. OTG and embedded hosts typically have little battery power to spare, so leaving the USB link unpowered helps in extending the battery runtime.
- Host Negotiation Protocol (HNP): Allows the two devices to exchange their host/peripheral roles, provided both are OTG dual-role devices. By using HNP for reversing host/peripheral roles, the USB OTG device is capable of acquiring control of data-transfer scheduling. Thus, any OTG device is capable of initiating data-transfer over USB OTG bus. The latest version of the supplement also introduced HNP polling, in which the host device periodically polls the peripheral during an active session to determine whether it wishes to become a host.
- The main purpose of HNP is to accommodate users who have connected the A and B devices (see below) in the wrong direction for the task they want to perform. For example, a printer is connected as the A-device (host), but cannot function as the host for a particular camera, since it does not understand the camera's representation of print jobs. When that camera knows how to talk to the printer, the printer will use HNP to switch to the device role, with the camera becoming the host so pictures stored on the camera can be printed out without reconnecting the cables. The new OTG protocols cannot pass through a standard USB hub since they are based on electrical signaling via a dedicated wire.
The USB OTG and Embedded Host Supplement to the USB 3.0 specification introduces an additional communication protocol:
- Role Swap Protocol (RSP): RSP achieves the same purpose as HNP (i.e., role swapping) by extending standard mechanisms provided by the USB 3.0 specification. Products following the USB OTG and Embedded Host Supplement to the USB 3.0 specification are also required to follow the USB 2.0 supplement in order to maintain backward compatibility. SuperSpeed OTG devices (SS-OTG) are required to support RSP. SuperSpeed Peripheral Capable OTG devices (SSPC-OTG) are not required to support RSP since they can only operate at SuperSpeed as a peripheral; they have no SuperSpeed host and so can only role swap using HNP at USB 2.0 data rates.
Device roles
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:
- USB high speed host controller based on EHCI (a register interface)
- Full/low speed host controller based on OHCI (another register interface)
- USB device controller, supporting both high and full speeds
- Fourth controller to switch the OTG root port between host and device controllers
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.
Targeted peripheral list (TPL)
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.
Plug
thumb|Standard, mini, and micro USB plugs (not to scale). The white areas in the drawings represent hollow spaces. As the plugs are shown here, the USB logo (with optional letter A or B) is on the top of the overmold in all cases. Pin numbering (looking into receptacles) is mirrored from plugs, such that pin 1 on plug connects to pin 1 on the receptacle.
OTG mini plugs
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.
OTG micro plugs
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. <!-- single zip file containing separate documents -->
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 defined
These three states are used in the cases of:
- A charger and either no device or an A-device that is not asserting V (not providing power) are attached. The OTG device is allowed to charge and initiate SRP but not connect. 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. Samsung Android version 3.1 or newer supports USB OTG, but not on all devices.
- Host-powered: Sony Ericsson Xperia pro
- Needs external USB-power: Motorola Droid 4 <!-- please add more devices -->
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.
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.
Backward compatibility
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.
Charger compatibility
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.
