The new Android version 3.1 platform introduces Android Open Accessory support, which allows external USB hardware (an Android USB accessory) to interact with an Android-powered device in a special “accessory” mode. This new feature enables any accessory hardware such as robotics controllers; docking stations; diagnostic and musical equipment; kiosks; card readers; digital cameras, keyboards, mice, game controllers and much more to be connected in an “accessory” mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB device. Android USB accessories are specifically designed to attach to Android-powered devices and adhere to a simple protocol (Android accessory protocol) that allows them to detect Android-powered devices that support accessory mode. Accessories must also provide adhere to the charging power.
Early Android-powered devices are only capable of acting as a USB device and cannot initiate connections with external USB devices. With this new feature in 3.1 Android Open Accessory support overcomes this limitation and allows hardware lovers to build accessories that can interact with an assortment of Android-powered devices by allowing the accessory to initiate the connection.
The Android Open Accessory Development Kit (ADK) provides an implementation of an Android USB accessory that is based on the Arduino open source electronics prototyping platform, the accessory’s hardware design files, code that implements the accessory’s firmware, and the Android application that interacts with the accessory. The hardware design files and firmware code are contained in the ADK package download.