Arduino USBHost Library


The USBHost library allows an Arduino Due board to appear as a USB host, enabling it to communicate with peripherals like USB mice and keyboards. USBHost does not support devices that are connected through USB hubs. This includes some keyboards that have an internal hub. This library is compatible with Arduino Due only.


The USBHost library and associated functions are experimental. While it is not likely the API will change in future releases, it is still under development. *The USBHost library is distributed under the General Public License version 2 (GPL2) as published by the Free Software Foundation. Any sketch that uses the library needs to be open-sourced under the GPL2 as well.

Related Functions


Mouse Controller

The MouseController library enables communication between a connected USB mouse and the Due.

MouseController Functions

Keyboard Controller

The KeyboardController library enables communication with a connected USB keyboard.

Keyboards that connect through an internal USB hub will not work. This includes most Apple keyboards that have been tested.

KeyboardController Functions

Based on the reference originally written by Arduino Community, and