Updates for LQI and RSSI information in the coordinator

Hello.

How often are the LQI and RSSI values in the coordinator updated for a child?

Preferably I would have liked to get some kind of notification every time LQI and RSSI are updated but if that's not possible I guess I will have to poll it with zb_zdo_get_diag_data(). In that case the question is how often it's relevant to call it for an update? Will the ordinary polling from the child update LQI and RSSI internally in zBoss or are those values only updated when there's an actual data transfer?

Speaking of child poll, is it possible to get any information about how long time ago a child polled the coordinator?

Our zBoss version is 3.11.1.5. I know it's old, but it would be kind of inconvenient to update right now.

Regards

/Martin

Parents
  • Hi Martin,

    How often are the LQI and RSSI values in the coordinator updated for a child?
    Will the ordinary polling from the child update LQI and RSSI internally in zBoss or are those values only updated when there's an actual data transfer?

    I was not able to double check this, but since the RSSI and LQI are characteristics of a link and the signal strength, it is plausible that the neighbor table is updated regardless of there being data transferred. This information seems like it should be available in the specification, but unfortunately I did not have the chance to find out today. 

    In that case the question is how often it's relevant to call it for an update?

    This will depend on the polling rate for the child. 

    Just to let you know, I'll be out of office tomorrow. I have asked my colleague to keep an eye on this ticket, but if she's not able to I'll get back to you on Monday. 

    Best regards,

    Maria

  • I tried to simply call zb_zdo_get_diag_data() from a timer and print out the data but unfortunately it seems the LQI/RSSI values aren't updated unless there's active communication. Just the background polling doesn't seem to update the values.

    Might this behaviour be different in later releases of zBoss?

    An answer on Monday is ok. Have a nice weekend.

    /M

  • Hi Martin, 

    Thank you for your patience. I hope you had a nice weekend as well. 

    On the 802.15.4 layer the LQI is measured for every packet, and on the MAC layer the RSSI is measured for every packet, but the measured values seem to only be used by the Zigbee stack when there is active communication as you note. 

    I couldn't find any indication in the ZBOSS release notes that the functionality has changed from v3.11.1.0. I have asked for some guidance internally now. There may be a few days before I get a reply. 

    Side note: I am not able to find documentation for ZBOSS v3.11.1.5 specifically. I don't think this is relevant, but I'm mentioning it in case it is. If you have a link to the version specific documentation, please share if you're able. 

    Best regards,

    Maria

  • Hi,

    Sorry, can't help you with a link. Typically I just dig deep in your SDK, example code and other in-house projects when I try to figure out how an API works. Or I end up bugging you guys with my questions! The documentation is sparse and imo seldom very helpful.

    Please let me know if you find out if LQI/RSSI reporting has improved in later releases. Our "cloud guys" definitely want better diagnostics than I can provide right now.

    Regards

    /Martin

  • Ok, I'll be fine with the documentation I have available. 

    I pinged my internal ticket yesterday, but I have no reply yet. I'll let you know as soon as I get a reply. 

    Best regards,

    Maria

  • No worries. I'll go on vacation today so I might be slow to respond, but I'll try to check in once in a while to see if you've found anything.

    Regards

    /Martin

  • Hi Martin, 

    Hope you are enjoying your vacation!

    I asked the following question internally and got the answer below. 

    Q: Is it possible with ZBOSS to update the LQI and RSSI measurements for background polling packets?

    A:

    Hi, I have some clarification on the topic raised.

    In Zigbee devices, the LQI and RSSI values are buffered in Neighbor Table (see spec Table 3.53 Neighbor Table Entry Format, line "LQI"). These values are updated with each successfully received and forwarded to the ZBOSS stack packet. (note that the 802.15.4 driver filters out, i.e., does not forward to the protocol stack packets with incompatible destination addresses). This means that the frequency of obtaining LQI and RSSI measurements depends on the network activity. If there is no network activity, only "LINK STATUS" packets are periodically sent, and they also refresh LQI, RSSI. By default, "LINK STATUS" packets are sent at 15-second intervals (ZB_NWK_LINK_STATUS_PERIOD)

    I haven't encountered any method in the application level API for configuring a ZC device's notification/immediate reaction to an incoming "LINK STATUS" packet from a child. The zb_zdo_get_diag_data() function used by the customer retrieves data from Neighbor Table and doesn't actively generate any additional transfers to trigger measurement. It provides measured values for the last packet heard. It's not possible to determine the timestamp of this packet.

    Therefore, for monitoring LQI, RSSI, the only available solution seems to be polling zb_zdo_get_diag_data() every 15 seconds. This applies to networks where there is no activity or the type of activity cannot be determined.

    Best regards,

    Maria

Reply
  • Hi Martin, 

    Hope you are enjoying your vacation!

    I asked the following question internally and got the answer below. 

    Q: Is it possible with ZBOSS to update the LQI and RSSI measurements for background polling packets?

    A:

    Hi, I have some clarification on the topic raised.

    In Zigbee devices, the LQI and RSSI values are buffered in Neighbor Table (see spec Table 3.53 Neighbor Table Entry Format, line "LQI"). These values are updated with each successfully received and forwarded to the ZBOSS stack packet. (note that the 802.15.4 driver filters out, i.e., does not forward to the protocol stack packets with incompatible destination addresses). This means that the frequency of obtaining LQI and RSSI measurements depends on the network activity. If there is no network activity, only "LINK STATUS" packets are periodically sent, and they also refresh LQI, RSSI. By default, "LINK STATUS" packets are sent at 15-second intervals (ZB_NWK_LINK_STATUS_PERIOD)

    I haven't encountered any method in the application level API for configuring a ZC device's notification/immediate reaction to an incoming "LINK STATUS" packet from a child. The zb_zdo_get_diag_data() function used by the customer retrieves data from Neighbor Table and doesn't actively generate any additional transfers to trigger measurement. It provides measured values for the last packet heard. It's not possible to determine the timestamp of this packet.

    Therefore, for monitoring LQI, RSSI, the only available solution seems to be polling zb_zdo_get_diag_data() every 15 seconds. This applies to networks where there is no activity or the type of activity cannot be determined.

    Best regards,

    Maria

Children
No Data
Related