yashsingh1/xdaforums huggingface dataset:
[Hardware Hacking General] AdamOutler:
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_info.php/products_id/1859/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:

Will the ADK work properly with a 1280 and a shield?

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?

Is there any advantage to buying the official Google ADK other than receiving a pre-fabricated shield with lights and buzzers?

Which one would you go with and why? Do you know of any better options for interfacing Android?
[Hardware Hacking General] djfoo000:
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.
[Hardware Hacking General] cellfreak:
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.

[YOUTUBE]CSstDT0e55k[/YOUTUBE]

[YOUTUBE]AYSp6_lb9GU[/YOUTUBE]

The Green LED is using the built in resistor. It flashes in time with the SMT LED on the board.

[YOUTUBE]EUBSMTKOArY[/YOUTUBE]
[Hardware Hacking General] AdamOutler:
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.
[Hardware Hacking General] mikel.canovas:
IOIO seems great. From their site, it seems like it has plenty of potential
[Hardware Hacking General] cellfreak:
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.
[Hardware Hacking General] AdamOutler:
Why did you return it? The ADK does more than Uno right? As far as I understand, you just downgraded?
[Hardware Hacking General] ytai:
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:

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.

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).
[Hardware Hacking General] AdamOutler:
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?
[Hardware Hacking General] cellfreak:
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.
[Hardware Hacking General] AdamOutler:
Well, yeah, but that's just a kernel upgrade right?

http://xdaforums.com/showthread.php?t=1262123

If you grab an ICS build, you can get 3.0 kernel.
[Hardware Hacking General] kindlefirexda:
Honestly, I don't have much experience with this since I don't even have an Arduino board yet.

However, if you want to get a board locally, go with the Arduino. They sell them now at Radio Shack.

I intend to get one as soon as I can and experiment with it on my Kindle Fire.
[Hardware Hacking General] jtdogblue:
I was also interested in this. I think it would cool to fly a rc plane with a phone hooked up, using the camera for live video feed and a laptop to send flight controls through 3g link.. Heck, you could even use the accelerometer as a gyro, the magnetic sensor for orientation, and gps for coordinates. If 3g were to drop, the plane would switch to gps guided autopilot until it gets reception.

I've since scrapped the idea, since it would probably be easier for me to get a HAM license and do all that with my own rX/tX stuff.
[Hardware Hacking General] AdamOutler:
Arduinos at radioshack are Duemillenova style. They are the basic modeland wont do anything with Android. You need the ADK. It can be obtained online for $80.

I have one, but i havnt had time to play with it.
[Hardware Hacking General] fox0001:
Great～！I want to get IOIO now~
[Hardware Hacking General] blorgggg:
I've been working with the Mega ADK for a while, and it is true, there is SOOO much stuff you have to wade through on the Eclipse/Android side, and the Arduino/C++ side before you can get the thing to do basic stuff (like control a servo without the official demokit sheild)

So to recap (and correct me if I am wrong) here are the pro's and cons of the IOIO and the ADK

IOIO

Pro's - Just code in android! Quick simple access to all the pins available on the board.

Accepted by more devices?

Con's - no division of processing power

ADK

Pro's - just send commands to arduino, and have the arduino's processor take on extra tasks, (maybe if you are doing a bunch of High end computer vision stuff, and fancy motor control, you would want to split the task load?) Full control over how you program the board itself.

Con's- byzantine sample code to wade through. Fewer Android devices support this?

So it seems like, unless you need really high end performance, the IOIO is the way to go!
[Hardware Hacking General] AdamOutler:
You forgot a few. There's more cons to the ioio and pros to the ADK.

ioio cannot function on its own. ioio is simply an output device.

adk is easier to program than android, the device can function on its own and then pass data to the Android. ADK can function as a stand-alone USB device that can be plugged into a computer as well.
[Hardware Hacking General] jams90:
hi i wonder if i can stick a bluetooth dongle on my Arduino Mega Adk and comunicate wirelessly with android..

have anyone try to do this? thanks! i have my motorola Xoom Working with Arduino Mega ADK via USB
[Hardware Hacking General] aaronpoweruser:
i prefer the ioio over the adk cause of all the extra junk needed to get the adk working and if you need complex functions just do them android side. the adk is standalone which is a plus but most applications need to be send data back. but the adk has more liberies available but most of them are easy to write in java if needed. all the adk is is a serial bridge so you would need to write an interface to send data back and forth so as long as your project needs constant communication and you can do basic c and java for the liberies the ioio is a better choice provided your not using crazy shields like gprs

---------- Post added at 12:47 PM ---------- Previous post was at 12:47 PM ----------

the ioio lets you do this with a 2 bt module
[Hardware Hacking General] cooler1182:
ASK

can you explained about USB Host Shield for Arduino n how to work this?? :)

soryy bad english :D
[Hardware Hacking General] :
Rraspberry Pi at $25 - $35?

http://www.raspberrypi.org/
[Hardware Hacking General] Mynasru:
It is possible to do this with the USB-hostshield (wich is using the same chip as the adk). I can't post links yet, so search on google for: "arduino usb host shield bluetooth" it should be the first link.
[Hardware Hacking General] AdamOutler:
Yes, it is possible. however what is the bluetooth reference?
[Hardware Hacking General] Mynasru:
I couldn't find it either.
[Hardware Hacking General] AdamOutler:
Youre doing it wrong. There is no usb host bluetooth shield. You want a usb shield or a bluetooth shield..
[Hardware Hacking General] Mynasru:
you could buy a $5-10 bluetooth module from dx, they work very well with the arduino.

---------- Post added at 12:31 PM ---------- Previous post was at 12:20 PM ----------

I found a tutorial on cirquits@home, it also explains the bluetooth part for the usb host shield. circuitsathome > /mcu/programming/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part-1

(replace > by .com).
[Hardware Hacking General] er.davinder:
have been trying to connect my new shinny Adk board to the phone, but i am been unsuccessful, I've tried many phone like HTC desire HD(4.06), Allwinner tablet(4.03), Galaxy ace (2.3.6)

I was wondering if i can use arduino adk with bluetooth dongle and then connect it to the phone.
[Hardware Hacking General] HardUIKnow:
Hi there,

such an interesting post that i would participate.

I had to play this year with Arduino as our new Education Program requires from students knowledge on fast prototyping solutions about information control.

So as we need to manage an Home Automation controlled by an android device like a tablet or a phone, we looked to a way to achieve this.

We got 2 problems we had to face :

1) Lack of Programming language due to the old education program

2) We need to control the arduino on the fly (aka no need to plug to the device)

I finally choose to go with a Uno or a Mega (if you need much pin) with a bluetooth shield to get it work the easiest way that my students can learn it.

You can control it the android way by using SL4A (Scripting Layer For Android using python) + easy HTML coding page if you don't have the knowledge of Java.

We also choose this way with the goal that we don't need a device plug to the board to control it.

Does anyone had a better solution or had experience to get rid of thoses constrains ?

ps: Please forgive me if i'm not very clear, i'm french and suffer from French people not very used with Shakespeare-speaking :)
[Hardware Hacking General] Quiggers:
As for the complaint about different IDE / languages,

thb, arduino programming is a breeze compared to Java,

the most likely issues are going to be electronic, things like debouncing buttons, current sinking as opposed to sourcing, motor driver chips, interfacing 5v logic and 3.3v logic devices.

A class mate of mine just built a ball maze controller by servo's from an ioio (YoYo) and newer versions of this board have 2 usb ports and can act as a host, it's tidy in the way that everything is in Java but is you can do java then you can do c or wiring etc, its just like putting on a different accent and pretending you're a dame from the deep south
[Hardware Hacking General] mpkasp:
Adk & msp430

I've been doing a lot of searching and I can't find anyone attempting to use the ADK with a generic uC like an MSP430.

Is it possible to communicate to an android application using the ADK and an MSP430 launchpad--maybe using a micro usb to mini usb (of course powering the bus)?

It doesn't seem as though there is any low level hardware documentation on the communication protocol--whether its UART/TTL or something else that I could even bit-bang. I've read this may be possible using CDC drivers--but was hoping to utilize the new ADK libraries on the android end.
[Hardware Hacking General] Mynasru:
you can try to implement soft-usb (like what they did with the avr-series), but I doubt if it is possible to do with the msp430. It is just easier to take a cheap bluetooth-serial module and connect it with your microcontroller. Plus you need less (difficult) code and the android side is easier to program (just bluetooth communication).

you could also use a ft232 like chip to handle the usb stuff.
[Hardware Hacking General] pk2:
Been studying this for half the day looking for a b-day present for my 8 yr. old and keep myself challenged This answers a big one namely, how to make it talk to an android.

- Sounds like an Arduino meg2560 with a cheap BT would do (no). How bout a mega 1280?

- How about with a mega328 (uno R3) with a cheap bt sheild?

For a wired usb system, an IOIO sounds best;

-Same question about boards (mega 328, 1280, 2560, or?)?

-Will using this keep me from doing the usual stuff (turning on lights, motors, etc.) ?

Lastly, it seems at best this finally opens up the android USB port to the outside world. Any way to use the Arduino to make an android look like a Ipod to my car stereo? If so, witch board (+ sheilds) would do?

Regards, PK
[Hardware Hacking General] AdamOutler:
Look up other arduino-android projects and see what they use. or use the ADK or IOIO. I know bluetooth is possible but I don't know how well it works. I know the ADK2 uses it.
[Hardware Hacking General] pk2:
Thanks for the reply. I'm not that crazty about BT either, seems slow & unreliable at best. About another hour of digging after finding this thread, I found this link, which lead to others more evolved. Basically its a name-brand Arduino/ USB/ADK setup for under $50 (E bay Chinese stuff cheaper if you have the time + don't mind quality issues).

It takes a $25 USB shield from one "Geoff" (technicals here) or a Sparkfun variant and a mere, lowely Uno.

The IOIO is $50 plus a $20 Uno (?, or a $40+ mega2560 if required). The eBay Chinese "ADK" USB host cards (IOIO clones ?) are $25 plus required a $40+ mega1280-2560 (Arduino) to work. $80 for a "megaADK" Arduino board.

Don't know much about Arduino programming, here my skills are limited (1 reason for this project) so I didn't quite understand all the early discourse here. It did seemed though that the Google (inspired) ADK setups were most difficult to make do anything(two languages?). Would this cheap little Geoff/Sparkfun with any old arduino, accomplish most of the same as the rest ? with easier programming?

Regards, PK

I think I will pose this basic question elsewhere but this where the complexities of the Google adk stuff came up.
[Hardware Hacking General] AdamOutler:
The ioio requires a device to be connected and all programming is done on the android side.

The ADK can perform autonomous tasks and work with android as well.

IMO, you get more with the ADK style than the IOIO style. ADK will always use Arduino IDE to program the Arduino. Both methods use Java to program the Android. Arduino is easy to learn.
[Hardware Hacking General] pk2:
Are you talking about a self contained board like sparkfuns android-centric Electric sheep? or a shield card like Sparkfuns USB Host Shield on top of an Arduino?..or...

Thanks, PK
[Hardware Hacking General] AdamOutler:
1. Get this http://www.amazon.com/gp/aw/d/B005C...i=YGz6T9rQBoKs2gXZy9WwDw&sa=X&ved=0CFkQgwgwAg

2. Do happy dance

3. Receive board

4. Hack away
[Hardware Hacking General] pk2:
Great, thanks, that's settled.

PK

Did I say it was ultimately to be part of a car PC thing??
[Hardware Hacking General] pk2:
Just of curiosity, can't help muddy up yth issue, whats your take on SMT32 ARM m3 Aurduino compatible boards? They not only have built on USB but some have all sorts of stuff like CAN, micro sd, etc. Some are really cheap to (like this). Seems like an ARM talking to an ARM would be sort of natural.

Regards, PK
[Hardware Hacking General] NiHaoMike:
There's a "Kelly Wu" platform that can be built using little more than a PIC24FJ64GB002. You'll need a Pickit to program it, though.
[Hardware Hacking General] Quiggers:
one thing to watch out for is that the ADK's require android 2.3.4 and above, this is a google ADK requirement and not an arduino issue

so you may have to risk hooking up random electronic devices to a current phone rather than the paper weight running froyo that I had in mind.
[Hardware Hacking General] noface83:
Just another noob

Hi, I'm a noob on ADK platform, but I love creating microcontroller project. I just wondering what is the benefit using ADK shield instead LAN/WiFI shield. When using LAN/WiFI shield we can setup TCP/IP connection to the board and control it using any mobile phone that connect into same network with the board. When I search video about ADK on youtube I see the board can controll by phone (using ADK libs) by USB cable. But I still doesn't have idea about the benefit using ADK instead code the board with TCP/IP and put LAN/WiFI shield on it and control the board wireless.

I got this sample from Arduino website (search "Put your Arduino on-line" on google with quote, I can't post url in this forum :(), it give example how to configure TCP/IP for Arduino board and we can access the board like web page, so we don't need to stick our phone to the board via USB cable.

If ADK support flashing or create logic for board from Android phone, then I just found a reason to start using ADK :D
[Hardware Hacking General] mpkasp:
I'm not aware of what you're talking about when you say "soft-usb" with the "Avr series"..can you expand?

I've used the ft232 IC in some applications--it may be a good way to debug this thing initially but i'd ideally like a bit-bang/uart interface with a uC. Thanks for your help.

---------- Post added at 12:20 AM ---------- Previous post was at 12:11 AM ----------

I just noticed FTDI came out with a new IC a few weeks ago, FT311D, which looks like you can interface any android phone with this to any microcontroller, or even use this as the controller itsself. Kind of interesting, haven't looked too much into it yet.
[Hardware Hacking General] lemorlenny:
Arduino -> IOIO -> Android

Hi,

I'm an ADK beginner but I've created a standalone datalogger on SD card using Arduino and SD shield working on industrial application. Now I would like to periodically connect to Arduino to monitor the IO Pins functionality and make a series of calculations and semi-graphical presentations using the data saved in SD and, eventually, download this data itself on an Android Tablet.

IOIO can't drive SD shield and Arduino it's a bit difficult to connect to Android (I tried), so I though to use IOIO like a bidirectional interface trough Arduino and the Android device, and develop a 'protocol' to drive the Arduino from Android passing trough IOIO.

I don't Mega ADK board and if it can be do all this above without IOIO, but I like the idea to use specialized component for the its specific use.

I don't want use a Windows PC (would be too simple :).

Somebody have experienced about this?

Regards

Paolo
[Hardware Hacking General] Polo96:
Good! Interesting!
[Hardware Hacking General] Adapt0r:
There is significant difference between IOIO and Arduino ADK.

IOIO design is based on 16-bit Microchip processors which are efficient but not as well supported as Atmel used in Arduino. If you have experience on Arduino platform you would need to learn new programming software and get a Microchip's flash programmer. Benefit of IOIO is that it is sold preprogrammed to do typical AD, DA and some other functions under control from the Android application. For simple applications this is very convenient since no IOIO programming is needed. However, as soon your needs go beyond preprogrammed functionality you would need to dive into new environment and it might take some time.

Everyone makes his own choice but for me Android/Arduino ADK is the best at this point because of almost unrestricted flexibility and great software availability. I can extend my Arduino projects with Android ADK with less efforts compare to IOIO.

Good luck!
[Hardware Hacking General] MrKalach:
I was also interested in this. I think it would cool to fly a rc plane with a phone hooked up, using the camera for live video feed and a laptop to send flight controls through 3g link.. Heck, you could even use the accelerometer as a gyro, the magnetic sensor for orientation, and gps for coordinates. If 3g were to drop, the plane would switch to gps guided autopilot until it gets reception.
[Hardware Hacking General] Splendor_09:
Very hard to answer :mad: