Pages: [1] 2 3   Go Down
Author Topic: XBee Shield to make slow universal USB Extender  (Read 3738 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 547
Posts: 45959
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.
Logged

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 547
Posts: 45959
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
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.
Logged

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Using this to be a Host on the camera side?
http://www.sparkfun.com/products/9947
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

0
Offline Offline
Sr. Member
****
Karma: 1
Posts: 360
I'm 15. I like making things. I like breaking things better.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Alice asked the Chesire Cat, who was sitting in a tree, "What road do I take?"
The cat asked, "Where do you want to go?"
"I don't know," Ali

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 547
Posts: 45959
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
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.
Logged

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anyone else?  Familiar with PTP and Arduino?
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 360
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Edison Member
*
Karma: 6
Posts: leet
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Chester, UK
Offline Offline
Sr. Member
****
Karma: 2
Posts: 489
Trying to return the love to none logic level MOSFETS
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
Logged

If your system involves lethal voltages/life critical/flamable elements - you probably shouldn't need to ask.
The Arduino != PC.

Pages: [1] 2 3   Go Up
Jump to: