Issue with Zigbee flash area

Hello,

we are using nrf52840 with nrf5 sdk for thread and Zigbee v4.2.0. In our application, Nordic is the coordinator of Zigbee network.

We have a counter that is increased whenever Zigbee handler is triggered with event ZB_BDB_SIGNAL_DEVICE_FIRST_START while it shouldn't i.e. no erase flash memory function called at application level. This counter is almost always 0 as expected but sometimes it becomes 1.

When this happens all Zigbee devices in the network aren't reachable any more: they send packets to Nordic which acknowledges them but does not reply when a Zigbee default response is required. It is also impossible to send packets from the coordinator to a device. Zigbee handler is instead called with event ZB_NLME_STATUS_INDICATION and status ZB_NWK_COMMAND_STATUS_INDIRECT_TRANSACTION_EXPIRY.

Nordic is also sending a lot of leave requests with rejoin bit set to end devices that send packets to Nordic itself. Not all accessories that we integrate can manage leave requests.
We have issues also communicating with routers and the issues seems to be solved only when routers send a match descriptor request.

To investigate the issue we reproduce it by erasing Zigbee flash area through zb_nvram_erase(). When this is done, we can see Nordic running a network with same parameters as before (e.g. same PAN ID, Nordic IEEE address, ...). These parameters are stored by application and they are sent to Zigbee stack at startup. But these data aren't enough so we tried to restore also:

  • address list by calling zb_address_update()
  • neighbor table by calling zb_nwk_neighbor_get() and setting all the parameters
  • routing table by writing directly routing_table and routing_table_cnt inside NIB table obtained through ZB_NIB()
  • one encryption key that was read before erasing Zigbee flash area

None of these helped in solving the issue.

Best regards

Laura Manzo

Parents
  • Hi, 

    Please provide the application log from the device.

    Another thing you can try is to read the flash of the device and program it on another device with nRF Programmer. It could be something with the NVRAM being corrupted since the device starts running again after they have erased Zigbee flash. It could also be a buffer leak somewhere, causing them to run out of Zigbee buffers.

    Regards,
    Amanda H.

Reply
  • Hi, 

    Please provide the application log from the device.

    Another thing you can try is to read the flash of the device and program it on another device with nRF Programmer. It could be something with the NVRAM being corrupted since the device starts running again after they have erased Zigbee flash. It could also be a buffer leak somewhere, causing them to run out of Zigbee buffers.

    Regards,
    Amanda H.

Children
No Data
Related