Offline
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« on: September 01, 2011, 02:00:05 pm » |
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
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #1 on: September 01, 2011, 02:02:37 pm » |
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
Offline
Brattain Member
Karma: 316
Posts: 35566
Seattle, WA USA
|
 |
« Reply #2 on: September 01, 2011, 02:46:35 pm » |
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
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #3 on: September 01, 2011, 03:00:13 pm » |
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
Offline
Brattain Member
Karma: 316
Posts: 35566
Seattle, WA USA
|
 |
« Reply #4 on: September 01, 2011, 03:08:02 pm » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #5 on: September 01, 2011, 03:13:33 pm » |
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
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #6 on: September 01, 2011, 03:40:51 pm » |
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
Sr. Member
Karma: 1
Posts: 360
I'm 15. I like making things. I like breaking things better.
|
 |
« Reply #7 on: September 01, 2011, 08:06:08 pm » |
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," Alice answered. "Then," said the cat," it really doesn't matter, does it?"
-Lewis Carrol
|
|
|
|
Offline
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #8 on: September 01, 2011, 10:14:05 pm » |
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-descriptionBut 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
Offline
Brattain Member
Karma: 316
Posts: 35566
Seattle, WA USA
|
 |
« Reply #9 on: September 02, 2011, 08:14:57 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #10 on: September 02, 2011, 10:10:52 am » |
That's already been done! http://www.circuitsathome.com/canon-eos-cameras-principles-of-interfacing-and-library-descriptionNext 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
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #11 on: September 04, 2011, 07:39:28 pm » |
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
Sr. Member
Karma: 0
Posts: 360
Arduino rocks
|
 |
« Reply #12 on: September 04, 2011, 11:02:55 pm » |
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
Edison Member
Karma: 4
Posts: 1133
If you're not living on the Edge, you're taking up too much space!
|
 |
« Reply #13 on: September 05, 2011, 01:08:13 am » |
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
Sr. Member
Karma: 2
Posts: 489
Trying to return the love to none logic level MOSFETS
|
 |
« Reply #14 on: September 05, 2011, 03:25:35 am » |
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.
|
|
|
|
|