Long(ish) Distance Communication

I've done some brief research, but I'm looking for a way to reliably get data in/out to a computer around 20m (~60ft) away. This is far beyond the USB spec, but I was wondering if using one or more USB hubs/repeaters would do the trick.

I have to say, I don't like that idea too much, so I was wondering if anyone had experience with serial line drivers? could I put one in between the tx/rx lines between an arduino mini and the mini-USB adapter?

So anyone with idea/experience with this or other ideas let me know.

This is far beyond the USB spec, but I was wondering if using one or more USB hubs/repeaters would do the trick.

Yes. There's a device commonly called a "USB active extension" that is nothing more than a one port bus powered USB hub on the end of a 5m (the maximum allowed by spec) cable. We have used two or three of these to get from a ceiling mounted projector back to a computer sitting in a corner.

Another long-haul USB option is a pair of devices that convert the signals from USB to something else and exchanges them over cat 5 cable. A bit more pricey, but a bit longer haul, too (100m or better, IIRC).

I was wondering if anyone had experience with serial line drivers?

Lots of folks, as this is the way the majority of computer communications used to be done. There are specs on the cable for rs232 (EIA232 might be a more correct designation for the spec), but for 60' you can get 9600 baud on just about any old wire, using appropriate line drivers/receivers like the MAX232 family.

could I put one in between the tx/rx lines between an arduino mini and the mini-USB adapter?

You'll need one at each end.

I've built a few Arduino-based boards of my own design, and I use the MAX232 when I need true rs232 connectivity. Works great.

-j

RS485 may help you. It is a serial protocol like the RS232 but with better distance support.
As mentionned in this thread, take a look to MAxim's MAX489 RS485 drivers.

Yes. There's a device commonly called a "USB active extension" that is nothing more than a one port bus powered USB hub on the end of a 5m (the maximum allowed by spec) cable. We have used two or three of these to get from a ceiling mounted projector back to a computer sitting in a corner.

Another long-haul USB option is a pair of devices that convert the signals from USB to something else and exchanges them over cat 5 cable. A bit more pricey, but a bit longer haul, too (100m or better, IIRC).

Hmm. If I could do with 1 repeater it could work, but I don't like the idea of having to use 4 or 5, both cost wise and elegance wise...

Lots of folks, as this is the way the majority of computer communications used to be done. There are specs on the cable for rs232 (EIA232 might be a more correct designation for the spec), but for 60' you can get 9600 baud on just about any old wire, using appropriate line drivers/receivers like the MAX232 family.

could I put one in between the tx/rx lines between an arduino mini and the mini-USB adapter?

You'll need one at each end.

I've built a few Arduino-based boards of my own design, and I use the MAX232 when I need true rs232 connectivity. Works great.

This sounds more like what I'd need. I've looked at the datasheet, and it seems that on each end, I just hook up the R1in/T1out as needed. seems simple enough. Do I need to do anything special in firmware, or will the standard Serial.print commands work as needed?

anyway, thanks a lot for your help.

RS485 may help you. It is a serial protocol like the RS232 but with better distance support.
As mentionned in this thread, take a look to MAxim's MAX489 RS485 drivers.

thanks. I looked into that as well, but I think it may be overkill for now.

Do I need to do anything special in firmware, or will the standard Serial.print commands work as needed?

No. All the MAX232 (or any other rs232 transceiver/level converter) does is to convert TTL 0V and 5V signal levels to RS232 10V and -10V signal levels, and vice versa.

The Arduino mini and FTDI chip (on the mini adapter) wouldn't care if you took those signals and converted them to rs232 levels, or rs422 (like 232, but with differential signalling for more distance), or even lasers and fiber optic cable, so long as it gets converted back to 0/5V TTL at the other end. :slight_smile:

-j

Do I need to do anything special in firmware, or will the standard Serial.print commands work as needed?

No. All the MAX232 (or any other rs232 transceiver/level converter) does is to convert TTL 0V and 5V signal levels to RS232 10V and -10V signal levels, and vice versa.

The Arduino mini and FTDI chip (on the mini adapter) wouldn't care if you took those signals and converted them to rs232 levels, or rs422 (like 232, but with differential signalling for more distance), or even lasers and fiber optic cable, so long as it gets converted back to 0/5V TTL at the other end. :slight_smile:

-j

Yeah I understand that much. Another question that just popped up, can I just use 1 max232 and interface with the FTDI chip? or does the extra max232 on that end accomplish something that the FTDI doesn't?

Yeah I understand that much. Another question that just popped up, can I just use 1 max232 and interface with the FTDI chip?

No, the FTDI chip expects TTL voltages and levels. If you use a MAX232 one one end to change to rs232, you need another on the other end to change back to TTL.

-j