2022-06-14 01:08 AM
I'm trying to develop an application for zigbee for the stm32wb55, but i get some problems when I try to reconnect.
The configuration for the coordinator its the next parameters:
- config.startupControl = ZbStartTypeForm;
- config.extendedPanId = 0x400;
- config.panId = 0x7171;
- config.shortAddress = 0x0000;
- config.networkManagerAddress = 0x7171;
The configuration for the End devices are the next parameters:
config.startupControl = ZbStartTypeRejoin;
config.panId = 0x7171;
config.networkManagerAddress = 0x7171;
config.shortAddress = 0x01;
config.extendedPanId = 0x400;
The first time it performs the connection well. But, when the End Device lose the connection (reboot, or whatever it takes), it cannot recconect to the coordinator. I get the errors in the two pictures. Sometimes it tries to connect to another End Device board and other times tries to connect to 0x0 (coordinator), but it does not seem to work.
I do not know what I'm doing wrong with it, maybe I'm missing some configuration parameters or something more to try to recconect.
Solved! Go to Solution.
2022-07-08 12:23 AM
Hello,
ZbZdoPermitJoinReq message has to been sent from the coordinator to allow permit join for an extra amount of time.
Best Regards
2022-07-07 02:32 AM
Hello,
Here an extract of AN5506, Zigbee device network joining timeout:
After a device has set up or joining a Zigbee network, the time when another device is allowed to join to this device (coordinator or router for a Zigbee centralized network for example) is fixed.
As a result, after this delay, joining the network for a device is not permitted (Zigbee association permit value). This is also the case when a device is reset after this time.
In order for a device to join a Zigbee network when the permit join timeout is over, the Zigbee coordinator can allow a parent device (for instance a Zigbee router) to permit joining. This is done by sending a ZDO message to parent.
For the coordinator, it can sent a ZDO message to itself to allow permit join for an extra amount of time.
Note: Zigbee persistent data feature can also be used in order to keep stack parameters and be able to reconnect to a network (or setting up) after a reset/shutdown.
In Zigbee application available in STM32CubeWB package, this timeout is fixed to 3 minute.
Best Regards
2022-07-07 02:58 AM
Hello,
But what kind of ZDO message has to been sent from the cordinator? A bind request: ZbZdoBindReq, a permit join: ZbZdoPermitJoinReq, network update: ZbZdoNwkUpdateReq?
Or whatever message that I sent from the coordinator to the Zigbee network should be enough?
Because there are lot of ZDO message options in the libraries.
Thanks,
Pablo
2022-07-08 12:23 AM
Hello,
ZbZdoPermitJoinReq message has to been sent from the coordinator to allow permit join for an extra amount of time.
Best Regards
2022-07-08 12:59 AM
Hi,
I have tried executing the following code every 60 seconds:
struct ZbZdoPermitJoinReqT req;
memset(&req, 0, sizeof(req));
req.destAddr=0xFFFC;
req.tcSignificance = true;
req.duration = 0xFE;
ZbZdoPermitJoinReq(zigbee_app_info.zb,&req,NULL,NULL);
It looks like its working, so, thanks for your answer.
Best Regards,
Pablo
2023-10-01 09:18 AM - edited 2023-10-02 01:49 AM
Hello,
I am facing the same issue as you, and I wanted to know in which part of the code you implemented this code. Also, is the destAddr the PanId of the coordinator? I am using the Zigbee_APS_Coord example. Thank you.
Best Regards,