Offroad: With RSSI one XBee finds the other

I like manuals.

After my first very basic range experiments (see previous blog Bee-Chat) I questioned myself if there is a more accurate way to determine signal strength. Of course there is and you only have to look into the XBee manual.
Search for "RSSI" (RX Signal Strength Indicator) and you will find at least two sections where the RSSI function is described in detail.

For example in AT-mode, which means the XBee is either capable of command or transparent mode, you could type in "hello" then put the XBee in command mode with "+++" and then enter "ATDB". You get a hexadecimal value which "returns the RSSI value (measured in –dBm) of the last received packet". This only works if there is a direct connection, but for the moment this is the case and it does the job.

Very simple distance check
The lower the value the better. 

I got hexadecimal "1A" when laying two XBees side by side. As far as I understand this means -26dBm. I tried some other positions (inside my house) and the value went up to hexadecimal "5C"/ decimal 92 in the corner furthermost away.

This opens a lot of options for future applications.

If you are one of those people who regularly forget where they left their keys, two XBees could help. Or you need any sort of very simple distance meter (yes, radio waves are not that great for accurate distance measurement), proximity sensor or whatever application where a raw value of distance of two things is needed - two XBees would do. A lot of things might be possible with this already embedded function...


  1. XBees And Proximity project http://www.instructables.com/id/Proximity-Sensing-Pocket-Squares/

  2. That looks funny! I think ther is a myriad of possible applications for those little bees in the future.

  3. Hey markus, this looks great. Would you please share your arduino code and give a more detailed version of this blog entry? please send me your answer to cedric. portmann at gmail

  4. Hello androidstuff,

    unfortunately I just did some tests with the X-CTU Software, but I think it's no great deal to read out the values from a coordinator to your Arduino.
    For example you could read the RSSI pin on a connected Arduino and by measuring the pulse you could tell what signal strength it is. In API mode you also get the RSSI value in the frame.
    So there are different ways to get the RSSI value.