issue on reboot and rejoin in zigbee, maybe related to nvram:

issue on reboot and rejoin in zigbee:
We are developing our product and using NRF52840 on both the zigbee ZED and ZC sides.
Now we met problems in the reboot and rejoin feature.
1) Although the zboss stack provides the nvram saving/erasing API, for example
"zb_void_t zb_set_nvram_erase_at_start(zb_bool_t erase)",
"void zb_nvram_clear(void)",
However, we found that if we do not clear/erase the nvram, and then the software
will crash/freeze inside the zboss stack, no matter it is at the ZED or ZC side.
The same phenomenon is described in another post here, by someone other developer
in another developer:
devzone.nordicsemi.com/.../nrf52840-pca10056dk-zigbee-examples-keep-rebooting-with-zboss-error
This crash happen almost everytime after reboot if we do not clear the nvram,
and we think it is because the zboss stack will then init with wrong/messy data in nvram.

2) Because of the above nvram problem, the ZED node cannot start with zigbee network knowledge
of the last time, in this case, the ZED after reboot will not initiate any 'Rejoin',
since it forgets the information of the previous connection.
Then this will make the ZED not able to automatically get the connection back after reboot,
for example when we change the battery of the ZED and thus reboot.

3) Again, because the above nvram problem, the ZC using NRF52840, if it reboot instead, it will
forget its previous PAN-ID, and then the ZED using NRF52840 will not do rejoin process,
this seems to be because the ZC's PAN-ID will change (even though the ext PAN-ID do not change.)
On the contrarary, 3rd party ZC after reboot will have the same PAN ID and ext PAN ID as previously,
and our ZED using NRF52840 will have no problem to automatically initiate Rejoin process and succeed.

All in all, it seems that because of the nvram problem, it cause lots of barrier for the Rejoin process.
Please let us know how to solve the NVRAM issue.

BR

Parents Reply Children
  • previously we are using NRF5 SDK V15.3.0 (seems to be zigbee v3.1.0), and in the update we use NRF5 SDK v16.0.0 (seems to be zigbee v4.1.0).  Both version has the problem, that we have to erase/clear nvram after reboot otherwise crash/halt. However erase nvram will make them forget information of previous connection (PAN ID etc)

  • Did you test using Zigbee SDK v4.2.0? I am not sure about 4.1.0, but there was an NVRAM issue/bug in v3.1.0. It is at least fixed in v4.2.0. Would it be a lot of work to test it using that version to see if your issue is still present?

    Best regards,

    Edvin

  • Actually it is really a lot of work for us to verify on v4.2.0 instead of v4.1.0, because we have our own virtual OS and then the NRF driver and zboss are integrated into that with customization, it would take us days or weeks to upgrade. 

    So, do you think the problem we mentioned above is solved by the fix in v4.2.0? what is exactly the issue? 

  • Hello,

    I just know that there is one NVRAM bug that was fixed in v4.2.0, although it looks like this applies to when the node that tries to rejoin is a child node, and can no longer reach the parent node. Whether or not this affects your issue, I don't know.

    But you are saying that whenever you reset a node, regardless of it's role (ZC/ZED), it fails during startup? Where? In zboss_start_no_autostart()?

    You are mentioning PAN-ID a lot. Does it remember the wrong PAN-ID? Or does it not find any PAN-ID? 

    ArthurChen said:
    we have our own virtual OS

    I am not sure what this means. Is the issue that you are seeing something that we/I can reproduce using a couple of DKs? Do you see it in our default example projects?

    ArthurChen said:
    zboss are integrated into that with customization

    What kind of customization is this? Does it mean you have a custom zboss library that differs from the one in our SDK?

    Best regards,

    Edvin

Related