Hello, I'm currently building a zigbee end device using the Zigbee Template example on the nRF5340DK but I am having issues regarding rejoins. My Zigbee Coordinator(ZC) is a 3rd party legacy Zigbee device that doesn't seem to support rejoin requests. Every rejoin request sent from the ZED is denied with "PAN Full" from the ZC. The "PAN Full" is not accurate since I'm only using one ZED (the nrf5340dk). I am using the Zigbee Template from the Zigbee R23 Add-on also for context.
As a result, I'd like to just completely restart Zigbee on the ZED whenever it is rebooted or leaves the network. Then join the ZC network again like it's the devices first time joining. This seems like something that should be supported but I haven't quite figured it out yet. Below are some the methods I've tried:
- Call zb_set_nvram_erase_at_start( ZB_TRUE)
- This seems like it should at least fix the scenario where the ZED sends rejoin requests after reboot. However, when I add this, I still see the ZED sending rejoin requests from it's short address
- Call zb_bdb_reset_via_local_action after leaving network
- This appears to reset the entire device. My ZED is doing other tasks in addition to Zigbee, so I don't want to completely reset it.
- Disable ZIGBEE_TC_REJOIN_ENABLED w/ Kconfig
- I haven't seen a noticeable effect from this except that is leads to a build error in zb_nrf_platform.c on the following line since ZIGBEE_TC_REJOIN_ENABLED is no longer defined:
- zb_secur_set_tc_rejoin_enabled((zb_bool_t)CONFIG_ZIGBEE_TC_REJOIN_ENABLED);
- I haven't seen a noticeable effect from this except that is leads to a build error in zb_nrf_platform.c on the following line since ZIGBEE_TC_REJOIN_ENABLED is no longer defined:
Please let me know if I'm on the right track with any of these methods, or if there is a separate way to achieve my desired behavior. Thanks
Edit: Upon looking at some more documentation of zb_bdb_reset_via_local_action() it seems like this is what I am looking for. However, when I add a zb_bdb_reset_via_local_action(0U) to the code, I see "E: ZBOSS fatal error occurred" printed to the console and the device repeatedly reboots. Is there any more information on where I should add this call for it to work correctly?