Android Open Accessory

IMHO this is the main issue of Open Accessory. Only a few existing phones will be supported. Even if you have the actual firmware. For all the other phones ADB [url]http://developer.android.com/guide/developing/tools/adb.html[/url] maybe is an alternative. Porting the Microbridge code [url]Google Code Archive - Long-term storage for Google Code Project Hosting. to FEZ should be possible.

My Nexus One runs Android v2.3.4 and Blake’s Example works great. Well done, Blake.

Even if you have custom ROM with the right kernel? I don’t see why rooted phone wouldn’t work. In fact my HTC Incredible already responds to GetProtocol correctly, it accepts SendString requests and switches to accessory mode. It just not report back the right VID after the switch,although it does change PID to correct number. Nothing is coming from pipes though. So, it is half way there.

Microbridge is interesting, I might try it on ChipworkX. Looks like “little guys” as is (mini,panda,etc) are out of question,since ADB communicates through sockets.

VID and PID are vendor specific values. Maybe you have the change these in your code?

Yeah these are inside Android kernel. Waiting for good 2.6.38.x kernel for my phone.

For you guys with the Nexus phones - are they your “regular” phones, or are they the developer carrier agnostic ones Google offers? I attempted to find out how much the latter was, but it seemed like I needed to fork out money to join the “dev club” just to see a price! I would like to get one without becoming an official android dev (just yet).

Google send me Droid for free awhile ago. There was supposed to be a workshop in DC during winter. It was canceled due to a heavy snowfall and that was their “sorry for inconvenience” gift. ;D

Nexus One dev phone price:

http://www.google.com/support/forum/p/android/thread?tid=02cef698f729c6e4&hl=en

@ Architect This is the official Google Statement about the Accessory support.

@ EricH my Nexus One is a regular phone with the Vodafone branded firmware. I needed to root the phone to get an actual Google firmware.

I see what you mean. Basically if you don’t want to root your phone you might be out of luck,even with new models .

Yes, the manufacture has the choice to support Accessory Mode or not.

For the Nexus One, only a temporary root access is needed, no unlocking or touching the bootloader. It’s only needed once to get a official stock ROM on the phone. Here is description, how it works:

Good to know.Vodafone only, right?

Is this the blood referred to in bleeding edge technology? Open source for the bloody few ;D I think I’ll stick with good ole platform independent serial over BT while I meditate on improving my patience.

@ Blake - thanks again for the blood letting.

@ Gus - thanks for giving Blake a nice band aid.

I have uploaded my FEZ - ADB code here:
http://robotfreak.googlecode.com/files/FezBridge.zip

It’s uncompleted right now, it does the initial connect with the phone, but no data in/out at the moment. Because this project is no longer on my priority list (Accessory mode is easier and works for my phone) it maybe helpfull for other users.

Next problem for me is the Android side. I have very low Java programming skills.

ADB works on every Android phone (v1.6 or higher), but the protocol is more complicated than Accessory mode. USB Host is needed on FEZ side. Working sourcecode/examples for Arduimno can be found at:
http://code.google.com/p/microbridge/

Nice! I’ll check it out later tonight.

Edit. I have checked it out ;D

So it is pretty much a placeholder. All it does is spits out standard USB information . No real ADB functionality. Right?

Oh sorry, just seen that this is the wrong example. Very early test. I have just replace it. :-[

hmm, same zip

Glad it works in someone else’s environment. I’m trying to clean the code up to make it more reusable. I’ve separated a lot of code into its own assembly.

I forgot that the N1 got a 2.3.4 push – I have one of those too, and I should’ve tested it.

I bought my Nexus S at Best Buy and popped my SIM from my T-Mobile Nexus One. So I think it’s a “carrier agnostic”. No proof of developer-ness required, I just gave a credit card.

Sigh, this is awesome, but it highlights a critical issue with Android. As much as I love it, it’s very fragmented. It’s annoying that I have a phone I bought in the beginning of 2011, and after 5 months it’s already obsolete enough that there’s a good chance it will never get the proper update for this without me rooting it.

I guess the only way to fix it would be to get the decision to update out of the hands of the OEM.

I don’t look at it as an issue. Of course I would love to have latest and greatest, but it is just not possible. Also I don’t want a company sitting on an innovative idea, waiting while current technology dries out, I’d rather have it out there as soon as possible.

Me too, but I think there is a critical issue with this where the OEM has to actually make a good effort to push an update. Most times, it is simply not in their interest to spend large amounts of money to flex, test and push an update. Instead, I think the OEM should only be responsible for the HAL core with Google pushing the updates. Much like how NETMF is set up.