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:
float XBeeS1::getRSSIAvg(char _nodeNum)
float rssi = 0;
Serial.println(_nodeNum); //poll the remote source node to send a signal
if(Serial.available() > 0)
for(i = 0; i < numReads; i++)
rssi += pulseIn(rssiPin, HIGH, 200); //get one reading from the source node
return rssi/numReads; //numReads = 100
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).
Thanks in advance for your help,