The developer's resource for computer interfacing, especially USB, serial (COM) ports, mass storage, and embedded networking. (Formerly

Home > USB Central > USB OTG and Embedded Hosts

USB OTG and Embedded Hosts

Every USB communication is between a host and a device. Devices can't communicate with each other directly. (An exception is USB 3.0's crossover cable for SuperSpeed host-to-host communications.) But not every USB host is a complete, general-purpose desktop or notebook computer.

The On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification defines requirements for embedded systems that function as USB hosts, including USB On-The-Go (OTG) devices, which can function as both a device and as a scaled-back host (but not both at the same time).

My Code | Chips | Other Code | USB OTG

The USB On-The-Go webpage has the specification and other information.


USB CompleteUSB Embedded Hosts: The Developer's Guide is available. Details.

My Code


BeagleBone Getting Started Guide

Linux code for accessing USB devices.

Guide to using Eclipse to Cross-compile for the BeagleBoard-xM and other embedded systems.

Access USB Devices from a Linux USB Embedded Host (article)

.NET Micro Framework

Touch screen data logger project with flash drive and serial-port GPS interface. Uses the .NET Micro Framework and a ChipworkX board from GHI Electronics.

Program Small Devices with Big Abilities (my article about using the .NET Micro Framework)


Chips with built-in support for host functions

The Vinculum II from FTDI is a programmable microcontroller with an embedded host controller and an API for accessing devices. The VNC1L (Vinculum I) is a host controller that supports a command set for accessing USB devices via a UART, SPI, or parallel interface. From FTDI. Embedded USB Design By Example is a free ebook from John Hyde and FTDI.

The ALFAT chip contains a host controller and built-in support for accessing mass-storage devices, HIDs, printers, and more. Microcontrollers can communicate with the ALFAT over a UART, SPI, or I2C interface. From GHI Electronics.

.NET Micro Framework modules with USB host support from GHI Electronics.

Microcontrollers with USB host ports

Cypress Semiconductor. Search the site for "USB host".

Freescale Semiconductor, Inc.

Microchip Technology PIC24 and PIC32 series.

USB host interface chips

Broadcom Limited (acquired PLX Technology)

Maxim Semiconductor MAX3421E.

Embedded PC

The BeagleBoard has a high-speed OTG port and can run Linux and Windows Embedded.

Other sources for embedded PCs with USB host hardware are Digi International Inc. and EMAC, Inc.


The AVR USB project is creating a software-only USB stack for Atmel's AVR devices and a matching driver for GNU/Linux.

Nucleus RTOS includes real-time software components for USB hosts and devices. From Mentor Graphics.

HCC Embedded has embedded-host and OTG stacks.

MCCI has embedded-host and OTG firmware.

Micro Digital has the smxUSBD USB Host Stack.

On Time Software's RTUSB-32 is a USB host protocol stack for embedded systems with full source code available.


Understanding USB On-The-Go by Kosta Koeman (EDN).

USB On-The-Go Basics. From Dallas Semiconductor/Maxim.

USB On-The-Go: a Tutorial. From Philips Semiconductors. (PDF)

USB Multi-Role Device Design By Example by John Hyde. (PDF).