The project hardware includes an Arduino, USB Host Shield, LCD display and a Nexus One phone running Android 2.3.4.
The LCD display accessory is implemented using the Android Open Accessory Protocol (like the ADK): an invisible background service is started automatically when you connect the accessory. The service displays a notification of the accessory found, listens for new text messages and starts sending the current time to the accessory for display. You can use your phone as normal while the service is running in the background.
More details, source and photos on my Labradoc project log.
--Philip;
P.S. If you want to get started with creating Android accessories but don't know how to write Android code check out my post on Handbag it's the easy way to get started without writing Android code.
Si:
If you have found a software way around this requirement of Open Accessory, it would be great to know.
Alas, no, I haven't--according the original Google IO presentation I saw this is a requirement of the USB host spec.
I have ended up making an 'no-charging' USB extension lead, which is fine, as long as the phone is well charged.
Nice! I had recalled reading someone mentioning something like that was possible but hadn't actually seen it done.
What's the theory behind why the trick works? I assume it is enough to trigger whatever the phone uses to detect "power" but not enough to actually drain the battery much?
USB Host Shield library r2.0 supports USB hubs so you can use a hub as a power source, see link at the end of this thread -> http://arduino.cc/forum/index.php/topic,64693.0.html I checked with both Nexus S and Nexus One, they work well.