I'm using a set of XBee series 1 RF modules to determine distance from RSSI. Unfortunately, I see no clear relationship between signal strength and distance, but I know that its NOT related to RF interference (same results in a shielded chamber). So that leaves software/hardware as the cause of the problem

Here's my setup: two nodes are used, where each node is comprised of an XBee S1 RF Module housed on an XBee Shield, which is connected to an Arduino Uno. The source (fixed node) sends a signal to the receiver (blind node), from which signal strength is measured by the receiver and output to the Arduino at varying distances. The source is powered by a 9V Li-Ion Battery, while the receiver is powered via the USB port on a laptop, from which data is read using the Arduino software. The software acquires 100 RSSI values and takes the average to find signal strength at a point as follows:

If not RF interference, does anyone know what else with hardware/software could be causing me problems?

I noticed a paper where Xbee Series 2 transceivers were successfully used to determine a clear relationship between signal strength and distance, so I know its possible (though they use a digi dev board instead of an arduino for the blind node).

In my experiments I still had a good data rate even when RSSI was at a minimum.IE It can be used to measure short distances only.Instead try measuring the RF energy level using the ATED? command.Or retries.Or data rate.Want a snipped of code?

SBright - Thanks for the advice, I had some follow-up questions: I've been using the XBees solely in transparent mode, do you have to set up a network in order to send ATED measurements? How do you initiate a scan, and in what form does the XBee send data to the Arduino?

I created a simple program to perform an energy scan on the default channel 0x0C but I'm getting constant valuesof 54 regardless of where I place the remote node. Do you have an idea of how to properly set up the scan so thatit picks up the power being transmitted by other nodes on the network?

The ATED command scans all the channels. Each channel should give different results around a normal household, and change over time. But not nearly as much as when another XBee transmits. It should go from nearly minimum to maximum when it's nearby.