Original URL: http://www.theregister.co.uk/2010/02/10/droid_usb_hack/

USB hack connects Droid to printers, video cams, and more

Any device Linux can tap...

By Dan Goodin

Posted in Phones, 10th February 2010 06:13 GMT

A reverse engineering expert has disclosed a way to make his Motorola Droid host USB-enabled devices, a hack that allows the smartphone for the first time to directly connect to printers, video cameras, TV tuners, and a wide variety of other peripherals.

The modification was devised by Mike Kershaw from Kismet and Mike Baker of OpenWRT and shared with the world by Chris Paget, a new Droid owner and chief hacker for reverse engineering firm H4RDW4RE.

Using a charging cable that plugs into a car's cigarette lighter, a micro-USB cable, and a USB extender cable, he devised an improvised micro-dongle and connector cable. Getting the Droid to work with a Linux-enabled USB device is as simple as turning the smartphone off, connecting the cable to the host and peripheral and turning the Droid on. As soon as the Motorola logo disappears, you'll need to unplug the micro-dongle.

Once your Droid is booted - voila -it should now work with the device. You can even pull up a terminal and look at dmesg to see the usual kernel notifications that appear when new USB devices are connected.

To be sure, the Droid isn't the most robust of USB hosts. To change peripherals, you'll need to reboot the smartphone. What's more, leaving the micro-dongle plugged in too long causes the port to get stuck supplying power to devices but not actually recognizing them.

Or as Paget put it in an email: "The capability is now there but it'll take a while to realise it - I haven't even managed to mount a USB key yet."

But the simple mod opens a whole new world to the Droid, since the smartphone will be able to work with hundreds of devices that up to now have been off limits. And besides, the hack is likely to get better over time.

"Hopefully the drivers are sufficiently open-source that these are easy bugs to squash, and that dynamically switching between host mode and peripheral mode won’t be too hard to add either," Paget writes. Pictures and additional details are here. ®