February 13, 2012 By: ElCondor
The USB host function on recent Android phones and tablets, is perhaps the most unspoken yet incredibly useful innovation in recent mobile device development. I remember, a few years ago some developers struggling with connecting a 3.5″ HDD to an HTC Touch Diamond, and see where we landed now: manufacturers are slowly building the USB host function into their phones and tablets. The Samsung Galaxy S2 and Galaxy Nexus were said to be able to host any USB device as long as it doesn’t require any special drivers- so any flash drive and hard disk should be able to connect with those phones. But the USB Host functionality didn’t work at all.
It took Google another update to fix this issue, but many users already reported several problems from crashing applications to not being able to connect a USB flash drive to it. As XDA Senior Moderator Chainfire ironically says:
There are even cases where OEMs advertise USB host support, but the device does not support it at all. It appears as if USB host support isn’t tested by Google or the OEMs when they push out new firmwares and devices at all.
His solution: a tool which diagnoses the USB host functionality on your phone. It basically gives answers to the question: ‘Does my phone have that awesome USB Host function or not?’ What you do need is a USB OTG Cable, a simple flash drive and Android 2.3.1 or newer. Results of the app can be uploaded to an online database – so soon we will have a clarifying list of devices and ROMs and their USB Host capabilities.
Take a look at the thread to download the tool and join the discussion. The apk should not be redistributed.
January 17, 2012 By: Will Verduzco
Ever since the release of the Samsung Galaxy S in June of 2010, enabling USB Host has been a hot topic. While remaining a hopeful situation for a year and a half, success has remained just one or two steps out of reach. Luckily, the tribulations of developer life simply cannot stop the developers of this site from overcoming OEM-imposed device limitations.
Loosely based on a previously released set of USB host drivers that were later adapted to work with the Samsung Galaxy Tab, XDA Recognized Developer sztupy baked his modifications into teamhacksung’s ICS Build 14 kernel. As such, the new kernel will only work with that particular ROM. Currently, only USB 2.0 devices work, precluding the use of USB HID devices such as keyboards and mouses. In the words of the developer:
What is working:
USB 2.0 devices seem to work fine. This includes flash drives, and other accessories like Canon DSLRs. This concludes all USB 2.0 devices I have at home.
What does not work:
USB 1.x devices doesn’t seem to work. This includes almost all HID devices (like keyboard and mice).
Also you will need to power the devices externally, as the phone doesn’t give out power on the OTG connector.
USB device enumeration is also broken sometimes, and it will not re-enumerate mass storage devices after they have been connected. (This means you cannot connect another Android phone as a mass storage device. WM phones are fine though). The built in root hub will never re-enumerate devices, they have to be already connected to the phone when you switch to host mode for them to work.
Do I need a hub to get it working?
No, if you only want to connect one device you can connect it straight to the phone (if you provide it with +5V power). This means you can connect the one end of a Y cable to a power source, the other end to your device and the third end to the phone’s OTG cable, and it will work. On the other hand a lot of things are broken on the S3C’s root hub implementation meaning you will probably get better results and less crashes if you hook up your devices through an external hub.
Looking to get in on the USB Host action on your ICS-powered Samsung Galaxy S i9000? Head over to the kernel thread to get started. Are you an SGS kernel or ROM developer looking to port the patches to your own release? If so, look no further.