This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Routing problem after rejoin

Other Parts Discussed in Thread: CC2430

I have a ZigBee system with one ZC (ZigBee Coordinator, an Integration Associates DAUB-DK1) and one ZED (ZigBee End Device, based on CC2430 and Zstack). My problem is that if I restart the ZC application, it no longer knows how to route a message to the ZED – even though a successful Beacon and Rejoin session has been carried out.

The “funny” thing is that the ZC accepts the rejoin request and returns a Rejoin Response with status “Success” to the end device, although the ZC has restarted and doesn’t know anything about the ZED. But when the ZED the requests Binding, apparently the ZC isn’t able to route the response back to the ZED. After a normal “join” it all works fine. Anyone has an idea about what I’ve done wrong? I have Daintree traces of both join and rejoin sessions. If anyone will look at it I’ll be happy to mail it.

  • This question is interesting to me.  I am using a TI CC2480 that has the ZStack embedded within it.  The CC2480 has a small API to communicate with it over an SPI bus.  I cannot monitor the join process through this API.

    Are you able to determine this ["ZC accepts the rejoin request and returns a Rejoin Response with status “Success” to the end device"] via the ZStack API or is it the Daintree tools that are helping you figure this out.

    I have also been having some rejoin problems.  The first thing that helped me was to select only a single channel.  I believe that when I restarted the Coordinator it had been picking a different channel on restart.  The second thing that helped me was to use the following to rejoin the network:

    void zb_StartRequest(void)
    {
      uint8 val = (ZCD_STARTOPT_RESTORE_STATE | ZCD_STARTOPT_AUTO_START);
      zb_WriteConfiguration(ZCD_NV_STARTUP_OPTION, 1, &val);
      zb_SystemReset();
    }

    instead of the ZB_START_REQUEST message.

    I call the zb_StartRequest function after completely resetting the CC2480 to a default state, resetting, then configuring it to the way I want it.

    However, I still sometimes have Routers that cannot rejoin the network, unless I also reset the Coordinator.

  • Hi Jeffrey,

    Thanks for your reply.

    First: The Rejoin Response w/ status "Success" is seen on the Daintree trace.

    Secondly: Well, the problem occurs when I restart the ZC, and that one is not using the Zstack. I don't have the source code for it - I only access over an USB port via a DLL - so there is no way for me to implement your suggested solution into the ZC. I only use one channel (ch 11) and the devices do communicate (Beacon and Rejoin appears to be OK).

    My question more goes on: Is it OK that the ZC accepts a rejoin request although it just has restarted (no NV restore) and consequently doesn't have any knowledge about the rejoining ZED.