Prop-to-prop serial communication, what distances?
nohab
Posts: 96
Hi,
I would like to connect two Propellers with a two- or three-wire-cable using FullDuplexSerial or SimpleSerial.
In the case with two-wire-cable, one is ground and the other should be pull-ed up with an appriopriate resistor and one Propller at a time "speaking"
In the case with three-wire-cable, one is ground and the other two are directly connected to two Propleller pins.
What distances can be reasonable to communicate over?
Is there a difference in useable distance depending on which solution I choose? (and depending on size of pull-up resistor?)
Other parameters affecting the manageable distance?
·
I would like to connect two Propellers with a two- or three-wire-cable using FullDuplexSerial or SimpleSerial.
In the case with two-wire-cable, one is ground and the other should be pull-ed up with an appriopriate resistor and one Propller at a time "speaking"
In the case with three-wire-cable, one is ground and the other two are directly connected to two Propleller pins.
What distances can be reasonable to communicate over?
Is there a difference in useable distance depending on which solution I choose? (and depending on size of pull-up resistor?)
Other parameters affecting the manageable distance?
·
Comments
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Just a few PropSTICK Kit bare PCBs left!
I know that the Hydra has a two-wire port using an RJ11 jack, with a simple crossover (RX/TX) that uses a 51 ohm resistor on the TX. OldBitCollector has a schematic of this in the Propeller Cookbook:
http://ucontroller.com/Propeller Protoboard Designs for the Beginner.pdf
If you are trying a one-wire communication with a ground, I know that there has been mention of that on the forum as well.
I do not have the Hydra book with me at the moment, but believe that with the Hydra-Net port (mentioned above) that it is capable of hundreds of feet.· There is a cross-talk cancellation as part of the design which is used to keep the communication stable over increasing distance.
[noparse][[/noparse]Edit:] Phil brings up a good point though about distance.·
I haven't tried the Hydra-Net circuit, but have done IR communication with a ProtoBoard to a Lego Mindstorm's USB tower (trying to convince it that it is talking to an·RCX).
Post Edited (trodoss) : 11/11/2008 5:11:26 PM GMT
If the distance is large then you may need some sort of transceiver for sending and receiving the signals. This isn't complicated as in some cases you still use the serial object, but your TX/RX line are wired to a transceiver. The solution I am thinking about would be a RS-485 network style transceiver or RS-232 transceiver.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
www.tdswieter.com
Don't forget (as I almost did!) that the standard is at +-15V too, so I expect that the distances will be substantially shorter at 0-3.3V
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheers,
Simon
www.norfolkhelicopterclub.com
You'll always have as many take-offs as landings, the trick is to be sure you can take-off again
BTW: I type as I'm thinking, so please don't take any offence at my writing style
Post Edited (simonl) : 11/11/2008 9:13:11 PM GMT
http://forums.parallax.com/showthread.php?p=691952
...PS - you can gain much more distance by going with slower communication speeds, and minimizing the transmission wire capacitance... <-- In this case you want shielding, but too much shielding can kill your signal at high speeds.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
http://forums.parallax.com/forums/default.aspx?f=21&m=280663
Sorry, I read your post Computer Geek 101 and it made me laugh. Maybe I am just in a quirky mood.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
www.tdswieter.com
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH - Electronics: Engineer - Programming: Professional
I need to communicate over a distance of 50 feet. What do I need to do to get that distance?"
The speed is not very important, 19200 is just fine (and bottom-limit is as low as 2400)
Robustness, simplicity and low price is most important.
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
Wire gauge will determine the amount of resistance loss over the wire as well as the wire inductance.
The proximity between the wires will·determine capacitance as well as the wire inductance.
Voltage over the wire can also play a role. Generally the lower the voltage the better, because it takes less time to transition on the signal edges. However at a lower voltages, depending on the length of the line, inductive and capacitive effects, a lower voltage can be more difficult to distinguish from noise.
Higher frequencies will have a more difficult time than lower frequencies ... i.e. 2400 baud verses 19200 baud ... start low and work your way up.
Ideally you want to go with a wire that's rated with the lowest capacitance per foot, but consider that this is usually at the cost of less shielding of the wire. Ask yourself "how susceptible is my environment to noise?"
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Presumably it's balanced.
Can the Prop implement anything close to this?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
scheme. http://en.wikipedia.org/wiki/Quadrature_amplitude_modulation
"Can the Prop implement anything close to this?" - Sure... I started working on a variant·of·QAM,·replacing Amplitude with Phase differences same concept as QAM·... Right now I just don't have time to get my head around it to mess with it.
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Full Duplex Serial routine. Try 2400, 4800, etc until it first begins to fail. Then drop the baud rate by a power of two, or half.
The time you spend testing would be an hour or two. Then move on to the next programming issue.
Phil Pilgrim recommended this approach at the beginning of the discussion. What do you want to spend your time on:
Theorizing or solving the problem?
This is my standard empirical approach to problem of this nature; it is a matter of philosophy.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH - Electronics: Engineer - Programming: Professional
Post Edited (Quantum) : 11/13/2008 6:50:52 PM GMT
What type of serial communication are you using? One of the already written serial objects for the Prop?
If so, Nohab, there is your answer.
HA! I mean it has been in operation for a few months. Each alarm "talks" to another alarm on the system to be sure all is well. If one does not talk back, the alarm will go off. So far so good.
@SuperCricket
I'm using "FullDuplexSerial". I tested it with about 500' and it seemed to work right at 9600 baud.
Post Edited (Computer Geek 101) : 11/13/2008 8:39:35 PM GMT
The only wire long enough I found was a telephone type cable (but with 6-conductor, no shield)
It's still on a spool, I don't know if this is bad or good for interference, but I didn't want to unroll it.
The spool was 100m/328feet when it was new. About half is used so it should be 150 feet, probably more.
I connected 3 wires, one for ground and one for data in each direction (but in test only one direction is used), and wrote two small testprograms using FullDuplexSerial) and then started of at 2400. No problem.
I slowly increased the speed and reached 23800 before the first transmission error occured, quite impressive !
I have to do more tests, with unrolled cable and in amore noisy environment, but the margin looks good sofar.
Thanks everyone and specially Computer Geek 101 whose Fire alarm system convinced me to test without extra drivers etc.
-Parsko
Ribbon cable will also work well if you have multiple data paths you can separate each data path with power or GND to minimize any cross talk.
GND
GND
D0
D0
GND
GND
D1
D1
GND
GND
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Post Edited (Beau Schwabe (Parallax)) : 11/15/2008 7:09:29 PM GMT
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Just a few PropSTICK Kit bare PCBs left!