XBee Shield to make slow universal USB Extender

Can I use an XBee shield to make an extender for USB 1.1? It doesn't matter to me if it's only 100kbps like my existing CAT5. It could be between a PC and camera for example. I'd prefer if it was universal. I'd like to use it with existing software (on PC) and firmware (on camera), so it just needs to pass the data wirelessly. Let's assume timing is not as issue because I already tested it with a 300m CAT5 cable and my software. Is this possible? I want to experiment with the XBee Shield, AND use it for this practical purpose. Is there a better solution? I hope not, because I want to purchase one for fun anyway! Thanks in advance for your help. My level of expertise is beginner for Arduino, but I have my MSEE so we can talk on that level if you prefer. Steve

Is it possible to use an XBee shield to make extender for USB 1.1? It doesn't matter if it's only 100kbps like my existing CAT5. It could be between a PC and camera for example. I'd prefer if it was universal. I'd like to use it with existing software (on PC) and firmware (on camera), so it just needs to pass the data without wires. Let's assume timing is not as issue because I already tested it with a 300m CAT5 cable and my software. Is this feasible? I want to experiment with the XBee Shield, AND use it for this practical purpose. Is there a better solution? I hope not, because I want to purchase one for fun anyway! Thanks in advance for your help. My level of expertise is beginner for Arduino, but I have my MSEE so we can talk on that level if you prefer. Steve

Is it possible to use an XBee shield to make extender for USB 1.1? It doesn't matter if it's only 100kbps like my existing CAT5. It could be between a PC and camera for example. I'd prefer if it was universal.

Anything's possible. Some things are simply a little bit harder.

You're aware, being a EE, that the Arduino is a USB slave device, so it can't make the USB port DO anything. It doesn't even have direct access to it.

I'm new to the world of Arduno. I can't even spell it yet! Is there a board or shield to make it a USB master? Surely you can write a bit of data to the USB port... As a slave?

Is there a board or shield to make it a USB master?

Yes. But, in general, you need to write drivers for whatever you want to master with it.

Surely you can write a bit of data to the USB port... As a slave?

No. You can write stuff to the serial port, which is connected to the USB controller chip on the Ardiuno and which can communicate with a PC via a USB cable.

Instead of writing a driver... There's not an easier way to just repeat everything slower? Like a piece of wire kinda? My CAT5 converter isn't that smart and it works perfectly.

Can I just receive the data, store them in a buffer, then send them out slower on the other end? All I have to do is make the sender slow down or pause. I can resend them blindly. It's serial only one bit of data at a time...

One end is already finished? The Slave side? I just have to pretend to be a Master on the camera side using a serial pin on the Arduino? Pardon my ignorance this is new to me. I guess this is harder than I thought.

Using this to be a Host on the camera side?

It might be possible with a lot of programming and heavy use of a USB host library on one end and a USB device library like LUFA on the other end, but it would be incredibly slow, difficult to program, and would not be universal for all USB devices. There are many other ways of accomplishing this that would work much better...

OK forget Universal. Can you tell me a better option so that I can use the EOS utility software on a PC without wires to the camera? I have a Canon 500D running Magic Lantern firmware.

This would work great without a PC:
http://www.circuitsathome.com/canon-eos-cameras-principles-of-interfacing-and-library-description

But that is not my goal.
Thanks for your time!

Instead of writing a driver... There's not an easier way to just repeat everything slower?

If you aren't a USB Master, the camera you want to talk to won't tell you squat. So, I guess you could repeat that slower. Or faster. Doesn't really matter.

Using this to be a Host on the camera side?

That's the hardware part of being a USB Host/Master. Now, all you need to do is write the software (the driver) to make that hardware work.

That's already been done!
http://www.circuitsathome.com/canon-eos-cameras-principles-of-interfacing-and-library-description

Next step is to tell the EOS software on the PC what it needs to hear in response...
I think this will be very difficult. Ideas anyone? Back to the drawing board?

Why can't I just resend the data from the PC on the other side to the camera?
Ignoring timing and bandwidth, blindly. That's what my CAT5 converter does?
Can I test this theory using the Master hardware above? If I buy it...

Anyone else? Familiar with PTP and Arduino?

I don't know about yours, but most "CAT5 USB extenders" are really just sockets with (maybe) a charge pump on the IO lines to extend the usable length of wire that can be run in between - they don't actually do any processing.

WRT your original question, XBee will probably not run fast enough to suffice for a passthrough USB port via software, seeing as the maximum speed is ~115200 baud, which is ~11.52 kilobytes per second - a far cry from USB 1.1, which (at its lowest speed) is 187.5 kilobytes per second or so.

I agree about CAT5 and your math. But it works for 200-300m. This comes with 100x the allowed delay for USB. The PC and camera are smart enough to slow down on their own to about 20KB/s in my test. Normally they run at USB 2.0 speed. So I'm thinking they would also do it in my case. Do you think it's worth a quick try? How long would it take me to write the code to repeat data from USB slave to USB host and back? I could skip the Xbee part for v1. I'm new to this microcontroller, but experienced in C. Easy to test?

What do you need to control on the camera? If you could do it using the IR remote then you could easily make a IR sender (or buy a commercial device).

My goal was to control everything like EOS utility on the PC thru the 200m CAT5 cable. Without wires. My camera receives IR? I bet the range is much less than 200m. Maybe I should just use the USB Host Shield PTP library 2.0 instead? But then without Canon EOS utility.
http://www.circuitsathome.com/mcu/usb-host-shield-library-version-2-0-released

You're missing the point I was trying to make. Infrared protocol is many orders of magnitude, easier to handle with an arduino. What I'm suggesting is that you use RF but use it to send the relevant IR commands that would then be relayed to the camera over IR.

Seems like you can only trigger the shutter via IR. Maybe focus too? I can also do that with a short wire between the microcontroller and 2.5mm plug on the camera. Correct me if I'm wrong. I'd like to view the pictures remotely!

I think the simplest option would be something like:
http://www.icron.com/products/usb/collateral/WiRanger_datasheet.pdf

Thanks for your ideas. You're on the right track! Except for 2 things both off by an order of magnitude. 300m not 30m would be desired. $30 not $300 would be better. I mean in addition to what I already have. Time to do some coding for my USB shield! Suggestions?