SparkFun Forums 

Where electronics enthusiasts find answers.

All things pertaining to wireless and RF links
By jgillick
#172332
I purchased a pair of 900 XSC S3B xbee pros (https://www.sparkfun.com/products/11634) with RPSMA connectors (from digikey) and a couple 2dBi duck antennas: https://www.sparkfun.com/products/9143. I just did a simple outdoor range testing and only got about 2,000 feet. I was outdoors without any buildings in the way, but there were a few small things between me and the other radio. That's the range expected for indoors or an urban environment....however, I'm going to need something better/stronger/further.

The basic idea for what I'm trying to do is build something to communicate location between two bicycles at Burning Man. There will be an arrow mounted on each bike (mine and my girlfriend's), and at any point one of us can press a button and the arrow will point in the direction of the other. So each bike will need to be constantly transmitting it's location to the other.

Burning man is a temporary camp-city in the dessert that is 5 miles wide with ~60k people. There are no cement structures but many camps, RVs and wood structures. Most camp structures are under 15 feet tall.

How can I make this project work? Should I be using different RF transceivers or antennas?
Last edited by jgillick on Mon Jun 30, 2014 5:17 pm, edited 1 time in total.
User avatar
By Ross Robotics
#172333
I don't see how you are going to use XBee to get location. What you need is GPS.
User avatar
By Ross Robotics
#172335
Don't have much experience with XBee (I will, going to purchase 2 soon). But there are threads here that cover the same subject.
By stevech
#172339
jgillick wrote:I purchased a pair of 900 XSC S3B xbee pros (https://www.sparkfun.com/products/11634) with RPSMA connectors (from digikey) and a couple 2dBi duck antennas: https://www.sparkfun.com/products/9143. I just did a simple outdoor range testing and only got about 2,000 feet. I was outdoors without any buildings in the way, but there were a few small things between me and the other radio. That's the range expected for indoors or an urban environment....however, I'm going to need something better/stronger/further.

The basic idea for what I'm trying to do is build something to communicate location between two bicycles at Burning Man. There will be an arrow mounted on each bike (mine and my girlfriend's), and at any point one of us can press a button and the arrow will point in the direction of the other. So each bike will need to be constantly transmitting it's location to the other.

Burning man is a temporary camp-city in the dessert that is 5 miles wide with ~60k people. There are no cement structures but many camps, RVs and wood structures. Most camp structures are under 15 feet tall.

How can I make this project work? Should I be using different RF transceivers or antennas?
You've got a good choice with the radios. Not much you can do about better antennas since they have to be omni-directional, it seems.
It's all about the extent of non-line-of-sight. So get that antenna on a pole and as elevated as you dare. To get above most clutter. Including the very attenuating human bodies. And foliage.

For battery life, if you are so limited, send position reports only when location changes by several times the GPS circular error probability (RMS) which is about 5 or 10m with a GPS receiver that has a built-in WAAS (http://en.wikipedia.org/wiki/Wide_Area_ ... ion_System) receiving capability. That gets differential correction data form INMARSAT which is a geosynchronous orbit satellite; thus its not far up from the horizon in No. America, meaning you can lose correction data due to trees, terrain, buildings. In my area at 34 deg. latitude, it can be tough. But if you get updates once per 15 minutes, it'll be OK.

Without WAAS, the RMS error will be about 20-30m.

So your position broadcasts can save battery by sending by exception rather than a fixed time interval. Exception might be change in location greater than some number; change in heading, sustained, more than say 30 degrees; change in speed more than x, or t amount of time since last report (for, say, periods of immobility). Big batteries are heavy.

You can also power down the GPS as much as you dare, as GPS receivers take quite a bit of power - like 30mA or so.

If you have a digital compass and a speed sensor (wheel RPM), you can build in a Kalman filter and combine GPS with dead reckoning - for when you get no GPS signal due to tree canopies or buildings.
By jgillick
#172496
Would upgrading the 2.1dBi dipole antenna to a 8 dBi whip antenna help, even in non-line of site operation? I'm thinking of putting a repeater at the top of a 20 foot pole, however, it will still wont always be perfectly line of sight with each devices at all times.
By stevech
#172563
jgillick wrote:Would upgrading the 2.1dBi dipole antenna to a 8 dBi whip antenna help, even in non-line of site operation? I'm thinking of putting a repeater at the top of a 20 foot pole, however, it will still wont always be perfectly line of sight with each devices at all times.
A little RF link budget 101 is needed here. We start with
max clear line of sight distance, longest link
elevation of antennas at each end
transmitter power at weakest node
receiver required signal to noise for a certain frame error rate, from product spec.
standard antenna's gain, at each end
we know freq = 915MHz band

From this we calculate from laws of physics, how much "margin" there will be in line of sight.
That margin (excess received signal strength) is used to offset attenuation from non-line-of-sight (NLOS) situations.
We need to bound the problem in varieties of NLOS situations:
caused by
terrain
foliage
human body
other

We can work it this way then decide what's feasible, if a bit more antenna gain would solve a shortcoming, etc.
The numbers to use for NLOS are somewhat well known, but it depends on your situations.

With some feedback, I'll be glad to help fill in the blanks here.
By jgillick
#172682
stevech wrote: max clear line of sight distance, longest link
elevation of antennas at each end
transmitter power at weakest node
receiver required signal to noise for a certain frame error rate, from product spec.
standard antenna's gain, at each end
we know freq = 915MHz band

From this we calculate from laws of physics, how much "margin" there will be in line of sight.
That margin (excess received signal strength) is used to offset attenuation from non-line-of-sight (NLOS) situations.
We need to bound the problem in varieties of NLOS situations:
caused by
terrain
foliage
human body
other

We can work it this way then decide what's feasible, if a bit more antenna gain would solve a shortcoming, etc.
The numbers to use for NLOS are somewhat well known, but it depends on your situations.

With some feedback, I'll be glad to help fill in the blanks here.
Thank you for offering to help me through this!
  • The max clear LOS will be around 5 miles. Average LOS will likely be between 0.25 - 1 miles.
  • Transmit power: 250 mW from each node
  • Antenna elevation:
    • Each bike antenna will be mounted above the handlebars, roughly 3 feet off the ground.
    • If I add a repeater at my camp, it will be 20 feet off the ground, at the top of a metal extension pole: http://amzn.to/1oVJ1Lx
  • Antenna gain:
    • Current bike antennas are 2.1 dBi. Looking to upgrade to 5+ dBi
    • Repeater antenna will likely be between 5 - 8 dBi
  • NLOS Conditions
    • The burning man map: http://rideshare.burningman.com/view_map/
    • About 50,000 people over 7 square miles
    • In the horse-shoe area of the map the roads are lined with camps. Some tent camps, some trailer/RV camps and others are dome camps. Most are 10 - 12 feet tall and a few go higher.
    • Outside of the horse-shoe area is largely open space dotted with art installations.
I don't need 100% of the packets received. Each transmitting xbee will be sending it's GPS coordinates every few seconds or so. As long as we have received a successful packet within the last minute or two, the coordinates can be considered fresh. The data sent is relatively compact:
Code: Select all
>40.782763,-119.205868
I would like to include an option for one bike to request the other find it. (i.e., one biker hides and presses a button to request the other bike to seek it). This signal would also be sent every few seconds until receiving acknowledgment from the other; so this could have dropped packets as well. This data would be a bit flagged number (that could include other options in the future):
Code: Select all
#10