element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Publications
  • Learn
  • More
Publications
Blog Google Android Accessory Development Kit: A First Look
  • Blog
  • Documents
  • Events
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Publications to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: ckraft
  • Date Created: 3 Jun 2011 1:11 AM Date Created
  • Views 1788 views
  • Likes 0 likes
  • Comments 3 comments
  • ckraft:dit
Related
Recommended

Google Android Accessory Development Kit: A First Look

ckraft
ckraft
3 Jun 2011
With the development of the Apple iPad I felt that it could potentially be a great interface for the electronic devices I was experimenting with, such as the Bus Pirate tool from Dangerous Prototypes (http://dangerousprototypes.com/bus-pirate-manual/). Instead of having to source touch-screens and design the control electronics I could buy an iPad and write the interface software to connect it to my custom electronics. I made a cursory attempt to get access to the tools and information required to develop accessories for the iPad but found that, as a hobbyist, it was not an easy process. There are alternative methods to communicate with the iPad but all add additional complexity to the design of the hardware.
Recently during their annual IO conference Google announced the Adroid Open Accessory Development Kit (ADK) (http://www.google.com/events/io/2011/sessions/android-momentum-mobile-and-more-at-google-i-o.html). The details start at the 36-minute mark in the presentation found at the link. Google took a different approach with their design. Instead of restrictive licenses coupled with restrictions on the hardware they went with open hardware and software.
They based the initial ADK on the popular Arduino Mega platform. Coupling the Android platform with a popular development platform for DIY developers means that there is almost no limit to the possibilities that will come from this. The combination means that an ecosystem of unique and unexpected devices will quickly develop. There will probably be a significant number of devices that never grow beyond experimental stages but history has shown that successful products can come from unexpected areas.
The design of the ADK uses a USB device that is running in Host Mode. That means that the accessory device is acting as the “master” instead of the Android device. This is the same way Android devices function when plugged into a computer. It is somewhat backwards from what is expected but it means that Android devices that have USB chipsets that lack Host Mode capabilities can use the accessory kit APIs if they are able to run the required version of the Android OS. The required version is 2.3.4 for phone devices and 3.1 for Tablet devices.
There are already several options available to get started with the ADK. Many of these devices are currently sold out but that will not be for long and there will be boards available from many more sources. Options include boards from RT (http://www.rt-net.jp/shop/index.php?main_page=product_info&cPath=3_4&products_id=1), DIYDrones (https://store.diydrones.com/ProductDetails.asp?ProductCode=BR-PhoneDrone) and Modern Devices (http://shop.moderndevice.com/products/freeduino-usb-host-board).
Seeedstudio (http://www.seeedstudio.com/depot/seeeduino-adk-main-board-p-846.html?cPath=132_133&zenid=2ac938bb9a89fe91123535bd1f8a1a10) has started pre-orders on their board and SparkFun (http://www.sparkfun.com) is also working on a board.
Another alternative is to use a USB Host shield to allow an existing Arduino to communicate with an Android device. One option is from Circuits@Home (http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino), which has updated libraries to make it compatible with the ADK APIs.
In addition to the API code being an open source project the hardware design is open. All the files for the hardware design are available. You can use them to order your own boards and build them yourself or use that as the basis of your own hardware design.
Information on the ADK is available at http://developer.android.com/guide/topics/usb/adk.html. In addition to documentation on the API there is a zip file that contains all the code you need to get started writing ADK applications. The zip file also contains the hardware design and the firmware code for the Atmel AVR Microcontroller used in the Arduino. You can open the hardware design files in Eagle for review or if you want to use them for the basis of your own hardware design.
The API has several methods available for an application developer to work with accessories. You can detect accessories when they are plugged in, you can identify accessories that are already plugged in or you can have a list of specific accessories that your application will work with.
The lower level API functions do a decent job of abstracting the communication with the USB device. From the developers perspective you can use standard file input streams and file output streams. If you are comfortable with Java programming everything is very straightforward.
The progress with the ADK is already impressive. Almost every day something new is coming from the community that is quickly building up. The code is being ported to alternative platforms like the Microchip microcontroller products. Google had a display at Makerfaire (http://android-developers.blogspot.com/2011/05/adk-at-maker-faire.html) showing several interesting devices that were already created.
Do you have any ideas for interesting or unusual Android accessories? What would you build, or would like to see someone build, using the Android Accessory Developers Kit?
With the development of the Apple iPad I felt that it could potentially be a great interface for the electronic devices I was experimenting with, such as the Bus Pirate tool from Dangerous Prototypes (http://dangerousprototypes.com/bus-pirate-manual). Instead of having to source touch-screens and design the control electronics I could buy an iPad and write the interface software to connect it to my custom electronics. I made a cursory attempt to get access to the tools and information required to develop accessories for the iPad but found that, as a hobbyist, it was not an easy process. There are alternative methods to communicate with the iPad but all add additional complexity to the design of the hardware.
 
Recently during their annual IO conference Google announced the Adroid Open Accessory Development Kit (ADK) (http://www.google.com/events/io/2011/sessions/android-momentum-mobile-and-more-at-google-i-o.html). The details start at the 36-minute mark in the presentation found at the link. Google took a different approach with their design. Instead of restrictive licenses coupled with restrictions on the hardware they went with open hardware and software.
 
They based the initial ADK on the popular Arduino Mega platform. Coupling the Android platform with a popular development platform for DIY developers means that there is almost no limit to the possibilities that will come from this. The combination means that an ecosystem of unique and unexpected devices will quickly develop. There will probably be a significant number of devices that never grow beyond experimental stages but history has shown that successful products can come from unexpected areas.
 
The design of the ADK uses a USB device that is running in Host Mode. That means that the accessory device is acting as the “master” instead of the Android device. This is the same way Android devices function when plugged into a computer. It is somewhat backwards from what is expected but it means that Android devices that have USB chipsets that lack Host Mode capabilities can use the accessory kit APIs if they are able to run the required version of the Android OS. The required version is 2.3.4 for phone devices and 3.1 for Tablet devices.
 
There are already several options available to get started with the ADK. Many of these devices are currently sold out but that will not be for long and there will be boards available from many more sources. Options include boards from RT (http://www.rt-net.jp/shop/index.php?main_page=product_info&cPath=3_4&products_id=1), DIYDrones (https://store.diydrones.com/PhoneDrone_Board_p/br-phonedrone.htm) and Modern Devices (http://shop.moderndevice.com/products/freeduino-usb-host-board).

 

Seeedstudio (http://www.seeedstudio.com/depot/seeeduino-adk-main-board-p-846.html?cPath=132_133&zenid=2ac938bb9a89fe91123535bd1f8a1a10) has started pre-orders on their board and SparkFun (http://www.sparkfun.com) is also working on a board.
 
Another alternative is to use a USB Host shield to allow an existing Arduino to communicate with an Android device. One option is from Circuits@Home (http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino), which has updated libraries to make it compatible with the ADK APIs.
 
In addition to the API code being an open source project the hardware design is open. All the files for the hardware design are available. You can use them to order your own boards and build them yourself or use that as the basis of your own hardware design.
 
Information on the ADK is available at http://developer.android.com/guide/topics/usb/adk.html. In addition to documentation on the API there is a zip file that contains all the code you need to get started writing ADK applications. The zip file also contains the hardware design and the firmware code for the Atmel AVR Microcontroller used in the Arduino. You can open the hardware design files in Eagle for review or if you want to use them for the basis of your own hardware design.
 
The API has several methods available for an application developer to work with accessories. You can detect accessories when they are plugged in, you can identify accessories that are already plugged in or you can have a list of specific accessories that your application will work with.
 
The lower level API functions do a decent job of abstracting the communication with the USB device. From the developers perspective you can use standard file input streams and file output streams. If you are comfortable with Java programming everything is very straightforward.
 
The progress with the ADK is already impressive. Almost every day something new is coming from the community that is quickly building up. The code is being ported to alternative platforms like the Microchip microcontroller products. Google had a display at Makerfaire (http://android-developers.blogspot.com/2011/05/adk-at-maker-faire.html) showing several interesting devices that were already created.
 
Do you have any ideas for interesting or unusual Android accessories? What would you build, or would like to see someone build, using the Android Accessory Developers Kit?
  • Sign in to reply

Top Comments

  • Former Member
    Former Member over 14 years ago +1
    I also made an attempt to obtain a MCHP Apple dev kit. In all fairness to MCHP its not their fault how extraordinary the pain in the butt was. It was Apples hoops to jump threw. They required you to have…
Parents
  • Former Member
    Former Member over 14 years ago

    I also made an attempt to obtain a MCHP Apple dev kit. In all fairness to MCHP its not their fault how extraordinary the pain in the butt was. It was Apples hoops to jump threw. They required you to have a lawyer , fully document what you would develop and much more. The Google ADK is the perfect response to the experiance I think we both shared, trying to deal with apple. Great article.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • Former Member
    Former Member over 14 years ago

    I also made an attempt to obtain a MCHP Apple dev kit. In all fairness to MCHP its not their fault how extraordinary the pain in the butt was. It was Apples hoops to jump threw. They required you to have a lawyer , fully document what you would develop and much more. The Google ADK is the perfect response to the experiance I think we both shared, trying to deal with apple. Great article.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • ckraft
    ckraft over 14 years ago in reply to Former Member

    Its interesting to hear you had a similar experience. People could argue that it filters out everyone except the most serious but I really believe that the most amazing things some from unexpected places.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube