Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,738,368 Members 51,991 Now Online
XDA Developers Android and Mobile Development Forum

Google ADK vs Arduino ADK vs Sparkfun IOIO vs ADK Shield vs ?????

Tip us?
 
AdamOutler
Old
(Last edited by AdamOutler; 1st December 2011 at 07:42 PM.)
#1  
AdamOutler's Avatar
Recognized Developer - OP
Thanks Meter 9555
Posts: 5,175
Join Date: Feb 2011
Location: Louisiana

 
DONATE TO ME
Default Google ADK vs Arduino ADK vs Sparkfun IOIO vs ADK Shield vs ?????

Alright, so I'm kinda up in the air. The ADK is very interesting to me and from my understanding it is total mobile device side processing with the Arduino/ADK/IOIO acting as a slave. I'd like to play with this feature which was introduced at Google IO and first included in Android 2.3.4 but I don't know where to start.

So, let me explain what I'd like.. I'd like to build a robot powered by my phone. I want to plug in my phone and drive it around the house. I can work out most of the details on this project myself, however, I'd like to get the most bang-for-buck as possible. I don't want this to be a strictly ADK or IOIO device. I'd like to be able to repurpose it later.

The Open Hardware Acessory Development Kit
Aka Google ADK or Google's IOIO (Pronounced Yo-Yo). At a cost of $400, i imediately said screw that.. I'm not paying $400 for what is practically a finished project and not really a development board. No way, no how... I'm looking for the same functionality without paying the same amount as a new Android device.



I am looking at 3 different devices. The Sparkfun IOIO, The Google ADK or the ADK Shield for Arduino. I already own an Arduino Mega 1280 so I'm up in the air as to upgrade with a shield or go with a dedicated device.


The IOIO from Sparkfun
http://www.sparkfun.com/products/10748
This IOIO seems to be the cheapest, full device available. Costing only $50. It would seem that it is strictly designed to plug in to USB-OTG on a device and there is no USB for the computer meaning it can only be used as a slave device?



The Arduino ADK
http://www.google.com/products?q=Arduino+adk&hl=en
This device is based on the Arduino Mega 2650 platform. This would be an upgrade from my current MEGA 1280. Costing $75, it seems to be a fairly decent development board with the additional benefeit of ADK/ioio functionality.



USB Host Shield for Arduinohttp://robosavvy.com/store/product_i...9/currency/USD
The USB Host Shield for Arduino seems to be a pretty good bet. At only $32, it will add the proper USB interface to an Arduino and allow ADK functionality. I'm worried about incompatibility on this Arduino Shield as I only have an Arduino Mega 1280 and not the faster 2650 platform.




I want to make a good choice here.. I'd like some help. I've never worked with ADK/ioio. AT&T has not even officially upgraded my device to 2.3.4 yet.


So, here's my questions:
  1. Will the ADK work properly with a 1280 and a shield?
  2. My understanding, correct me if I'm wrong, the ADK uses server and client side processing and is more for communication between the two devices, while the ioio method is direct slave-only control of the device?
  3. Is there any advantage to buying the official Google ADK other than receiving a pre-fabricated shield with lights and buzzers?
  4. Which one would you go with and why? Do you know of any better options for interfacing Android?
Flash with Odin on Windows, Linux and Mac. Use JOdin3, Available in a web browser or offline
Check out my developer pages. Add me to your circles on Google Plus.
Wanna see the longest Linux BASH script ever made? click here.
The Following 2 Users Say Thank You to AdamOutler For This Useful Post: [ Click to Expand ]
 
djfoo000
Old
#2  
Senior Member
Thanks Meter 25
Posts: 239
Join Date: Jan 2010
I'm not a programmer, and quite a noob in arduino. I've thought about connecting Android to my Arduino UNO and the method with most freedom seems to be via bluetooth. Was planning to follow the stuff on this site: http://amarino-toolkit.net/

I have yet to start that project though.
 
cellfreak
Old
#3  
Senior Member
Thanks Meter 9
Posts: 115
Join Date: Aug 2003
Thumbs up The Arduino ADK

I just picked up a Arduino ADK. Spent a few hours messing around with a RGB LED. My Motorola Photon would never connect due to the 2.6.32 Kernel. The 2.3.4 was right but the Kernel needs to be 2.6.35 to be an accessory.
Great board just not for the Photon. Will be getting the UNO and a WI-FI shield. And pick up a handfull of RGB LED Matrix, for a wifi driven LED message board.

I used three resistors with a RGB LED.




The Green LED is using the built in resistor. It flashes in time with the SMT LED on the board.
Check out my Proxycap wi-fi fix
http://www.howardforums.com/showthre...3#post12930663
Check out my Moto Q Photshow
http://forum.ppcgeeks.com/showthread.php?t=8209

Sprint Samsung Galaxy S 4
Acer Iconia A100

Code Name: Celloholic - Cellfreak
First PDA cellphone HTC Walaby in 2003
First Non WM PDA Nokia 9000il 1998
 
AdamOutler
Old
#4  
AdamOutler's Avatar
Recognized Developer - OP
Thanks Meter 9555
Posts: 5,175
Join Date: Feb 2011
Location: Louisiana

 
DONATE TO ME
Quote:
Originally Posted by cellfreak View Post
I just picked up a Arduino ADK. Spent a few hours messing around with a RGB LED. My Motorola Photon would never connect due to the 2.6.32 Kernel. The 2.3.4 was right but the Kernel needs to be 2.6.35 to be an accessory.
Great board just not for the Photon. Will be getting the UNO and a WI-FI shield. And pick up a handfull of RGB LED Matrix, for a wifi driven LED message board.
You won't need an Arduino UNO. The MEGA form factor is compatible with the smaller UNO form factor and the pins are totally compatible. Just get the wifi shield. My understanding is that the Uno would only be a reduction in size and features.
Flash with Odin on Windows, Linux and Mac. Use JOdin3, Available in a web browser or offline
Check out my developer pages. Add me to your circles on Google Plus.
Wanna see the longest Linux BASH script ever made? click here.
The Following User Says Thank You to AdamOutler For This Useful Post: [ Click to Expand ]
 
mikel.canovas
Old
#5  
mikel.canovas's Avatar
Senior Member
Thanks Meter 187
Posts: 707
Join Date: Oct 2010
Location: Chicago

 
DONATE TO ME
IOIO seems great. From their site, it seems like it has plenty of potential
AT&T HTC One X -- LiquidSmooth
===
Google Nexus 7 - Paranoid Android w/ M-kernel
===
Samsung Captivate [SOLD]
<Free 250 mb for Dropbox>

 
cellfreak
Old
#6  
Senior Member
Thanks Meter 9
Posts: 115
Join Date: Aug 2003
Default Return

I returned the ADK. And will be getting an UNO or MEGA. If it comes down to size I'll get a nano with a shield.

Quote:
Originally Posted by AdamOutler View Post
You won't need an Arduino UNO. The MEGA form factor is compatible with the smaller UNO form factor and the pins are totally compatible. Just get the wifi shield. My understanding is that the Uno would only be a reduction in size and features.
Check out my Proxycap wi-fi fix
http://www.howardforums.com/showthre...3#post12930663
Check out my Moto Q Photshow
http://forum.ppcgeeks.com/showthread.php?t=8209

Sprint Samsung Galaxy S 4
Acer Iconia A100

Code Name: Celloholic - Cellfreak
First PDA cellphone HTC Walaby in 2003
First Non WM PDA Nokia 9000il 1998
 
AdamOutler
Old
(Last edited by AdamOutler; 3rd December 2011 at 03:52 AM.)
#7  
AdamOutler's Avatar
Recognized Developer - OP
Thanks Meter 9555
Posts: 5,175
Join Date: Feb 2011
Location: Louisiana

 
DONATE TO ME
Quote:
Originally Posted by cellfreak View Post
I returned the ADK. And will be getting an UNO or MEGA. If it comes down to size I'll get a nano with a shield.
Why did you return it? The ADK does more than Uno right? As far as I understand, you just downgraded?
Flash with Odin on Windows, Linux and Mac. Use JOdin3, Available in a web browser or offline
Check out my developer pages. Add me to your circles on Google Plus.
Wanna see the longest Linux BASH script ever made? click here.
The Following User Says Thank You to AdamOutler For This Useful Post: [ Click to Expand ]
 
ytai
Old
#8  
Junior Member
Thanks Meter 9
Posts: 2
Join Date: Jul 2011
I'm the developer of IOIO, so I won't pretend to be objective
First, there's no such thing as "Google IOIO". Google's board is called ADK. Although the original board cost $400, there have been since many other compatible boards, with the cheapest ones costing about $80 I believe.
There's also IOIO, which I developed and is sold by SparkFun for about $50.

The two most significant differences between the two are:
  1. ADK and its clones would only work on very specific Android devices, while IOIO would work on almost any Android device since Android 1.5.
  2. With ADK you'd have to write both the Android-side (Java) and the Arduino-side (C++) software, and establish a communication protocol between them. You'd have to know both languages and two different IDEs and unless you're doing something very trivial, it will take a significant amount of time to get something working reliably. With IOIO, you just write the Android side. You include a library called IOIOLib in your application, which provides an API that lets you control the IOIO pins and functions as if they were physically connected to your Android. You don't need to care about the fact that there's a separate processor here, communication protocols, etc.

Some possibly less important differences:
  • ADK boards are compatible with Arduino shields. If you want to use one in your application, IOIO will not be a good choice.
  • If you stick a Bluetooth dongle into IOIO instead of a USB cable to the Android, it will communicate wirelessly with the Android. The nice thing is that your application doesn't need to care about it, and you can even switch back and forth while your app is running.

If you want more info, see my blog post. Since I can't seem to be allowed to post links, just Google "IOIO over OpenAcessory" (without quotes).
The Following 9 Users Say Thank You to ytai For This Useful Post: [ Click to Expand ]
 
AdamOutler
Old
#9  
AdamOutler's Avatar
Recognized Developer - OP
Thanks Meter 9555
Posts: 5,175
Join Date: Feb 2011
Location: Louisiana

 
DONATE TO ME
Quote:
Originally Posted by ytai View Post
I'm the developer of IOIO, so I won't pretend to be objective
First, there's no such thing as "Google IOIO". Google's board is called ADK. Although the original board cost $400, there have been since many other compatible boards, with the cheapest ones costing about $80 I believe.
There's also IOIO, which I developed and is sold by SparkFun for about $50.

The two most significant differences between the two are:
  1. ADK and its clones would only work on very specific Android devices, while IOIO would work on almost any Android device since Android 1.5.
  2. With ADK you'd have to write both the Android-side (Java) and the Arduino-side (C++) software, and establish a communication protocol between them. You'd have to know both languages and two different IDEs and unless you're doing something very trivial, it will take a significant amount of time to get something working reliably. With IOIO, you just write the Android side. You include a library called IOIOLib in your application, which provides an API that lets you control the IOIO pins and functions as if they were physically connected to your Android. You don't need to care about the fact that there's a separate processor here, communication protocols, etc.

Some possibly less important differences:
  • ADK boards are compatible with Arduino shields. If you want to use one in your application, IOIO will not be a good choice.
  • If you stick a Bluetooth dongle into IOIO instead of a USB cable to the Android, it will communicate wirelessly with the Android. The nice thing is that your application doesn't need to care about it, and you can even switch back and forth while your app is running.

If you want more info, see my blog post. Since I can't seem to be allowed to post links, just Google "IOIO over OpenAcessory" (without quotes).
I found your blog. I changed the title as there is no Google IOIO.

Ok. So, from what I'm seeing, the differences:

IOIO is a total slave unit that accepts direct inputs over usb from a running application. It's compatible with more devices out-of-the-box. The ADK allows a custom program to be launched for whatever code is running on the AT processor on the device... EMF Reader will launch your EMF app, Robot will launch your Robot app... I think this is a limitation of IOIO right?

Can the ADK emulate the same IOIO functionality where pins are commanded high and low?
Flash with Odin on Windows, Linux and Mac. Use JOdin3, Available in a web browser or offline
Check out my developer pages. Add me to your circles on Google Plus.
Wanna see the longest Linux BASH script ever made? click here.
 
cellfreak
Old
#10  
Senior Member
Thanks Meter 9
Posts: 115
Join Date: Aug 2003
Default ADK

I posted the ADK will not work with the Sprint Motorola Photon. The phone has the wrong has the 2.6.32.9 kernel. For it to be seen by the ADk board it needs the 2.6.35.9 kernel.

Quote:
Originally Posted by AdamOutler View Post
Why did you return it? The ADK does more than Uno right? As far as I understand, you just downgraded?
Check out my Proxycap wi-fi fix
http://www.howardforums.com/showthre...3#post12930663
Check out my Moto Q Photshow
http://forum.ppcgeeks.com/showthread.php?t=8209

Sprint Samsung Galaxy S 4
Acer Iconia A100

Code Name: Celloholic - Cellfreak
First PDA cellphone HTC Walaby in 2003
First Non WM PDA Nokia 9000il 1998

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes