Android has a little known feature that provides built-in support for USB hardware devices. Provided you have the right adapter, you can plug in a keyboard, mouse, gaming controller, or USB drive and it will just work. This is due to a USB specification called USB On-The-Go (OTG) and it’s an amazing piece of functionality.

My Frankenstein tablet project generated a lot of interest for OTG with Android and I wanted to explore the idea further. I couldn’t find an official list of hardware that would work with Android via OTG beyond some details on the InputDevice class so I figured I should make my own list.

After rummaging through my box of computer hardware and with a little bit of testing I have generated the following list of USB devices compatible with Android.

Tests performed with a Nexus 9 and a Micro USB adapter.

Stay tuned, I’ll update this list with new devices! I would like to test more output devices including a USB monitor.

Overall it seems like most mass storage devices, cameras, and game controllers are compatible. I was surprised at the extent of native support and the prevalence of apps offering third party support.

Android has a ton of functionality when you consider the full list of both Bluetooth and USB devices. Some of the tested USB devices have some questionable usability when there’s a Bluetooth alternative but I’m still amazed that there’s any USB support available.

I thought about my own historical use of my Nexus tablet and I do extend it with external devices quite frequently. My top use cases are as follows: