This content relates to a deprecated version of Mbed

Mbed 2 is now deprecated. For the latest version please see the Mbed OS documentation.

The Universal Serial Bus (USB) is the most widely used bus in today's computer. USB has particularly been designed to standardize connections between the computer and peripherals. For instance, keyboards, mice, USB audio devices, printers, scanners, disk drives or cameras can use the same bus to exchange data with a computer.

A USB host stack has been developed in order to be communicate with USB devices.

Library in Beta!

This library is in Beta. If you have any problems using the USBHost library, please send a bug report at

Import libraryUSBHost

USBHost library. NOTE: This library is only officially supported on the LPC1768 platform. For more information, please see the handbook page.

Boards supporting USB Host

  • LPC1768

Mbed as USB Host


The USBHostMouse class allows to communicate with a USB mouse:

  • read mouse position
  • read buttons state
  • read scroll state

For more information, please visit: USBHostMouse


The USBHostKeyboard class allows to communicate with a USB keyboard:

  • read keycode pressed
  • read modifier pressed

For more information, please visit: USBHostKeyboard


The USBHostMSD interface is used to read/write a USB flash drive.

For more information, please visit: USBHostMSD


The USBHostSerial class uses the USB interface to communicate with a virtual serial port usb device.

For more information, please visit: USBHostSerial


You can connect several devices to your mbed using a USB hub. Hubs are automatically detected by the USBHost stack so no need to change your programs if you are using a hub!

For more information, please visit: USBHostHub

Library in development

This library is currently in development.

  • Currently the stack supports:
    • Mouse class
    • Keyboard class
    • MSD class
    • Serial class
    • Hub auto detection
  • What can be developed:
    • Support of isochronous endpoints
    • Bluetooth class
    • Webcam class
    • ...


It would be great if the USBHost stack development involves several developers. There is plenty of work to be done such as:

  • core modification by adding isochronous endpoint support
  • develop drivers on top of the USBHost stack

Any contribution from the mbed community would be greatly appreciated!

All wikipages