Please log in.
Before you can vote, you need to register. Please log in or create an account.
Computer: PDA: Accessory
USB Inverter Smart-Cable   (+4, -1)  [vote for, against]
Allow smart but physically incapable USB devices to act as USB hosts

I have an old iPaq. I have put linux on it. Neat! Except it has basically no I/O, so isn't much fun. I want to plug USB peripherals into it, but it was not designed for this. Its USB port works in device mode only.

Some smart gadgets are starting to ship with USB-OTG ports which allow them to work as hosts *or* devices: you can plug keyboards, hard drives etc. into these, as well as plug them into PCs. This is fun, but needs special hardware to work: a kernel upgrade is not enough to turn a traditional USB device into a USB-OTG device.

However, a smart cable with two USB host controller chips embedded within it, along with an appropriate kernel module on the device, could be used as a work-around for devices which cannot physically work in host mode.

As soon as the smart cable plugs into a device, it starts groping around the bus to see what it's been plugged into, just like a PC would. The iPaq (or whatever) responds to the groping by announcing itself to the smart cable that it is a device which has the special smart-cable kernel module installed, and that if they cooperate together, the two can achieve great things.

The host cable and device now have two-way communication, and can talk to one another, just like a hard drive and PC can talk to one another. The smart cable is the controller, the iPaq is still the device. Nothing special yet.

The smart cable's second USB controller chip is now fired up, and the iPaq creates a virtual USB bus in its device hierarchy, using its special kernel module. Whenever data or bus commands occur on this virtual bus, the iPaq encodes the data and communicates the encoded signals to its USB daddy: the smart cable. The smart cable then decodes these data, and turns them into real USB signals on its second bus.

This is all transparent to the rest of the linux system and end user which simply see a new USB bus in their device hierarchy. Now you can plug a keyboard or disk into the other end of the smart cable, and use it as a normal USB device, from your USB device.

This needn't be clunky: USB controller chips are very small now and you could get two in a cable with scarcely any increase to the volume. Although, there'd need to be a battery in the cable if your external USB devices can't power the bus.
-- idris83, Mar 26 2011

http://www.youtube....watch?v=QzhnhNJiFpg [FlyingToaster, Mar 27 2011]

An interesting device which appears to use the USB-host-in-the-peripheral approach http://www.coolcomp...php?products_id=717
...although it doesn't seem to go as far as to have an inverted USB port. [idris83, Jun 04 2011]

Sounds 100% like a software problem. Since your hardware is already capable of making sense the USB bus which is inherently bidirectional you should be able to simply implant drivers that change the way the device sees and records data. Then you need to externally power the usb cable. I have seen software hacks that turned music playing usb sticks into other sorts of things with new bios.
-- WcW, Mar 26 2011


O rly. That's interesting.

In which case, why has nobody (AFAIK) written a host- mode driver for the iPaq's USB port? Perhaps it has an obscure chipset that would require reverse-engineering, and there is simply not enough interest to do this.

If that's the case, a smart-cable like this could still be useful, as no-one is ever likely to bother writing the driver for such an obscure gadget. Yet only one new kernel module would have to be written for linux to support the smart cable and it'd work on any device.
-- idris83, Mar 27 2011


and another one
-- FlyingToaster, Mar 27 2011


Yes, I too have seen devices that supposedly cannot work in host mode but later get coerced into doing so. Most notably the Nokia N900: I was on the verge of buying one back when they were released until I read an official notice from Nokia in their forums stating that it definitely could not support OTG or host mode and that it never would as it is physically impossible. So I got a droid instead. Then a few months later, what do you know..? Someone got the N900 working as a USB host. So what [WcW] says may be entirely true.

OTOH, there are lots of devices that I have not seen working in host mode, including the specific model of iPaq I have. Even if it is theoretically possible, you're at the whim of some hacker delivering the goods.

So, I'd still buy a USB inverting smart cable for the devices which haven't been hacked yet (if they ever will be).
-- idris83, Mar 27 2011



random, halfbakery