Collect RSSI value from several XBee routers .. how?

Hi, I’m doing some research with the XBee ZB product and I would like to read the RSSI value corresponding to 3 routers located within range for a Device Node, I noticed that each device node can connect only to one parent which I can easily read the RSSI received from this partent via API.

Is it possible to connect to several parents from a device node via mesh networking? Is there any method to read RSSI from several Router Nodes? and if it is possible … How to do it?

Thanks,

Hi andolosy,

The following way you can do it.

The Coordinator should be in the API mode.

Then send API frmae for the AT command ‘ND’ to the coordinator to know the serial number of the routers in the network.

Then send broadcast mesaage from the Coordinator using Transmit request frame.

Then send Remote AT Command ‘DB’ to the each router using there serial numbers noted using ‘ND’ command to get the RSSI value of the each router.

I hope this helps.

Thank you shahrj1988 for the reply, but this is not what I want. I think I need to clarify my question.

here is my situation:

From a device node that lies with in range of 3 router nodes, Is there any method to know the RSSI (at the device node) for each of the three routers?

i.e. for a network consists of the following:

1 coordinator
3 router
1 device node

I imagine I can find a method telling me at the coordinator the following details:

device node -> router 1 RSSI value is 200
device node -> router 2 RSSI value is 120
device node -> router 3 RSSI value is 50

Is this possible?

Hi,

I have already mentioned to using Remote AT command frame with th AT command ‘DB’.

Hi Shahrj,

let me write down my understanding of your suggested solution :

  • Send ND to the coordinator => a list of all nodes in the network is constructed at the coordinator

  • For each discovered router; Send broadcast message with the remote command DB with each router ID to the node device => RSSI of this router received at each replying node device.

based on this scenario I have to send broadcast DB message for each router in the network.

Is this what you mean?

No,

Send Broadcast message as any ascii character, it would be received at every router.

Now DB command need to be send to the perticular router with extended address in the unicast mode, as Remote AT command DB would return RSSI for previously received test data.

But this way if I had several mobile node devices the RSSI returned from the router to the coordinator will not be directly related to each node device unless I iterate through all the device nodes and then collect RSSI from all the routers! if I had 10 routers and 40 mobile device this will take a long time and on the same time if a device node is not visible at one of the routers; the router will return RSSI of another device node it communicated with!

This doesn;t meet my needs, This discussion lead me to an important question:

If I constructed a mesh network, is there a command or a method that can be executed by the device node to tell me which routers are close to it?

Yes,

You can know for each router/ coordinator how many children are there which can communicate to the router/ coordinator in the single hope in the network in this way:

following AT need to be sent to each router/ Coordinator on the network. each router check for ND command for the nodes in one hope only.

Start from the Coordinator.

The following AT command can be sent through AT command frame or Remote AT command Frame from the Coordinator, provided Coordinator is in API mode.

ATBH1
ATND

Then sen the broadcast message for 10- 20 time (Only because, In case of End Device is sleeping then it won’t receive the data). This message would be received by the routers/ end devices in the in the range of one hope only.

Now issue remote DB command to each End Device/ Router.

Hz that sound?

Thank you Shahrj, I will give it a try.