Using standard Arduino board as Google’s ADK kit

When Google announced about the Open Accessory Development kit (ADK) in the last Google IO conference, I was really excited since it was based on Arduino boards.

But after the initial bliss went off, I was disappointed for two reasons. First you need an Android phone running Android version 2.3.4 or above. The second reason is that the original ADK kit is not compatible with the plain Arduino board. The downside of this is that all your existing Arduino Shields will not work with that board and not to mention you have to buy a rather expensive ADK kit. Now there is also an Arduino compatible ADK kit, but it is again expensive and it didn’t made sense for me to buy another Arduino board when I already had a bunch of them lying around.

Since it is based on Oleg’s USB Host Shield, I was trying to see if I can build a board with just plain Arduino board and Oleg’s USB Host Shield. It turns out it is possible and with the release of Oleg’s second version of the USB Host Library, it is much simpler.

Things you need

Any Arduino board.

You can use either UNO or Duemilanove. You can also use Arduino Mega, if you have one lying around. The advantage of using Mega is that you will have additional I/O pins.

USB Host Shield

You need a USB Host shield for Arduino. You can use the original shield by Oleg for $40, or you can buy a cheaper clone from sparkfun for $25. I recommend the original one by Oleg, since it doesn’t need an external power supply. If you are going to use Sparkfun’s version you need an external power supply. Also make sure you don’t buy the older version of Sparkfun shield. It has pins marked wrongly and you need to make changes to the library to make it work.

ADK compatible Android phone

You need an Android Phone which is ADK compatible, which means you need a phone which is running 2.3.4 or above. I tested this setup in Nexus S and it is working properly.

Sensors, LED’s, buttons

You would need additional sensors, LEDs or buttons to test the flow. To start with, you can just use some LED’s


Stack the USB Host shield on top of the Arduino board. Connect an LED on pin number 3. Connect your phone’s cable to the USB port of the shield.

Arduino Firmware

Download v2 of the USB Host Shield Library and place it in the library folder of your Arduino setup. Open the demokit_20 example sketch from the /examples folder and upload it to your Arduino board.

Android App

The Android demo app for ADK, can be found under the /app folder of the ADK package. Upload the app to your Android phone.

Testing it

Power on Arduino and connect your Android phone to the other side of the cable. You should see a dialog box, which asks you whether you want to launch the app. Click yes. Once the app is launched you can control the LED connected on pin 3, by moving the slider in the Android app.

Now enjoy your new cheaper ADK kit 😉

Related posts

Tags: , , ,

18 Comments so far

Follow up comments through RSS Feed | Post a comment

  • Mani says:

    Can i get the USB host shield locally here in bangalore? Have you ordered online? Is it safe to order? Totally how much you paid for that?


  • rajrajan e says:


    i am new to android … you mentioned the demo app will be in app folder of sdk release… but it has given with src and mk and soome other files…. pls help me how to make it in eclipse and port into my phone … my mobile has android 2.3.4 version… pls help me

  • Matt says:

    In this example is the arduino the host, or is the android device the host?

  • ADs says:

    can i program arduino with android 2.3.3 (kernel 2.6.35)???
    approximately how much will the entire setup cost except the phone ???

    • Sudar says:

      In Android 2.3.3 you cannot use ADK to connect to Arduino.

      You can however use other methods like bluetooth or USB Host sheield to connect Arduino and Android. It might cost you around $40-$50 for bluetooth and around $20 for USB Host shield.

  • swapnil says:

    Hi ,How can i buy a board in pune by going to shop? I don’t want to purchase it online.

  • Arslan says:

    Hi, I am using Mega ADK and following the help and your tutorial, i am using arduino 1.0.1 with the usb accessory and usb sheild host 2 library. I am always getting the error, “OSCOKIRQ failed to assert”. My project is due in a few days and i have to make it work. I am unable to communicate between arduino and android.

    Please help me out here. I am using google (asus) nexus 7 tablet which is supported by google for android open accessory mode.


  • cncwebworld says:

    thank you for sharing this amazing post ..

  • Alex says:

    Thanks Admin. Very Use Full Blog. Thanks For post because this post is useful me.

  • Karan says:

    Well Working on an IoT based project, hoping this works… Thanks for the share have my fingers crossed will update in while if it works…

  • shashi says:

    Great post on the ADK kit. I will definitely test it.

  • dzone Riya says:

    Great work sir , really helpful article.

1 Tweetbacks so far

1 Trackbacks/Pingbacks so far

Leave a Reply

Your email address will not be published. Required fields are marked *