connecting Arduino to iPaq or handheld via USB.

Hi,

I've got a project that used a iPaq 3600 to display data from an arduino. The iPaq has an old-fashioned COM port that 'talks' RS232. Interfacing the arduino to this was relatively simple and worked fine, (a simple TTL level converter did the trick).

I want to re-vitalise this project but the iPaq has died and is now obsolete. All the newer handhelds / palmtops that I have access to have USB ports only.

My understanding of USB comms is pretty shaky, (please correct me here if any of this is wrong) I believe all USB device combinations work as slave and master (or 'host') combinations, when I program an arduino from a PC the PC acts as 'master' and the arduino acts as a 'slave'. The new handheld has a 'Mini B' USB connector on it that means (I think) that it must act as a USB slave, but not as a master. As far as I know two USB slaves can't talk to each other. I've experimented with an arduino USB host adapter, (and have persuaded the arduino to accept input from a keyboard and a mouse), but I'm really no closer to knowing how to communicate with anything more complicated. Just to clarrify, the current project works (ok, did work before the iPaq died), the arduino generated and processed data and streamed it serailly to the handheld, the handheld (using windows CE) ran a dot net C# application that displayed the data that the arduino generated. The handheld does not attempt to talk back to the arduino. The only thing that needs to change is the communication between the two devices.

The USB interface seems to complicate things. Doing it the 'old fashioned' RS232 way seemed quite simple - the arduino pumped data out of one of it's ports, and the handheld just read the data in one byte at a time, each device could be pretty much 'blind' to exactly what the other device was so. However, USB seems to require that each device has to know what the other one is before they'll talk to each other.

So, my questions are...
is what I've written correct, or have I completely misunderstood how USB works?
is this do-able?
if so, has anyone done it?
if so, have they published how they did it?

Any guidance or advice appreciated!

Thanks