USB Host Shield
USB Host Shield is an inexpensive ( $25 for the full-sized board and $20 for the Mini variant ) development board designed to be used in embedded applications which require USB Host functionality. The board supports USB 2.0 full/low speed operation. Primary target platform is Arduino, however, it can also be used with any other micro equipped with SPI interface.
This is a summary page for USB Host Shield project that I started in the spring of 2009. The initial goal of the project was to develop Arduino code supporting USB Host controller in order to communicate with USB peripherals, such as keyboards, joysticks and cameras. This goal has been achieved. The shield exists in configurations compatible with 5V and 3.3V Arduino boards. Current revision of the library (r2.0) supports MAX3421E host controllers, general USB functionality, enumeration of up to 44 devices with USB hub support, and MAX3421 GPIO pins access. The following device classes are currently supported:
- human input device (HID)
- USB to serial converters, including CDC ACM, Prolific PL2303 and FTDI FT232
- Google ADK v.1
- PTP with Canon EOS and Powershot extensions, as well as Nikon DSLR cameras
- Bluetooth RFCOMM and HID (Sony PS3. Nintendo)
- Xbox360 controller over wired USB as well as via a wirelss receiver
- Mass Storage Class – USB flash drives, memory card readers, external hard drives/CD-ROMs, smartphones, etc.
Future plans include development drivers for communication devices, such as WiFi and cell phones, and support for other USB Host controllers.
- Hardware documentation – schematics, Eagle CAD files, PCB Gerbers
- USB Host Shield Hardware Manual
- Hardware troubleshooting article
Arduino USB Host Code Libraries
- USB Host Library r2.0 announcement
- GitHub repository
- Legacy USB Host library, stable revision. Also, see this note.
- Development revision of the above
- Richard Ibbotson’s modified USB and PS3 library with extra NAK handling to be used with his PS3 and Nintendo game controller routines
- Cell Phones
- Android Open Accessory
- Human Interface Devices
- Digital Camera Control