How to measure RSSI between two router nodes in a network?


I am trying to use an Xbee gateway as a coordinator node to measure RSSI or link quality between two nodes within the network. For example, if I have nodes A, B, and C, I want to measure RSSI from A to B, B to C, and A to C.

So far, I haven’t been able to figure out how to do this from one controlling node. I could get A to send a packet to B and then measure B’s RSSI, but with the mesh network there doesn’t seem to be a way to tell A to directly send a packet to B.

Does anyone know of a possible solution for this? I know it is possible as XCTU can do it.

which XBee products are you working with and what firmware version is installed?

I am using XB24-ZB with firmware version 21A7 for coordinator API and version 23A7 for the router API.

With that product, the best you can do is to use the loop back cluster ID and the ATDB command. Just understand that you will not be able to tell if the data packet is being sent via a hop or not and that the value you get will be from the last hop to your node sending the data packet.

Could source routing be used to ensure that that the last hop is from the node that is being tested for RSSI?

No source routing can’t be used for this. The closest item would be the Neighbor table look up for the LQI. Unfortunately, the LQI function does not provide valid data and most likely will not as Digi is still waiting for a Fix form Ember for that.

Now if you were using the XBee ZB SMT modules, then you could use the LQI for what you want.