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.

ZigBee end devices cannot join to an existing network

Other Parts Discussed in Thread: Z-STACK, CC2530

Hello guys,

Need your professional help on this one, since I'm very rusty in ZigBee and I need to help a friend.
The issue we are observing is at some point we cannot add new, or previously removed EDs to an existing network.
Attached is a log portraying this issue (ubiqua format and wireshark format).

The setup is as follows:

  • ZC - is a cc2530 ZNP cc2530, running modified z-stack 1.2.2a, and connected to a Linux machine
  • 4 ZRs - based on a third party HW, running ZigBee HA compliant stack (configured to accept up to 6 routers and 14 ZEDs)
  • 1 ZED - based on a custom PCB with cc2530 SoC, running z-stack 1.2.2a.44539 (modified sampleLight project),
    NV_RESTORE is disabled.

Test case and my observations are as follows:

  • ZC and 4 ZRs have formed a network (PAN 0xE04C). It was established a few days ago.

  • There are no other EDs that are powered, or in joining the network, but a single ED under test,
    with MAC_ADDR == 00124B0004E0062E and NWK_ADDR == 0x9DBD.
    Also, please note that the same ED was once part of the network (before it was reprogrammed).
  • Pressing on ZED's push button calls ZDOInitDevice(0), which initiates "beacon request" (packet #8).
  • In response to this "beacon request" all the ZRs, including ZC, replied with beacons (p#9 to 10). By inspecting
    packets #9 to 13, it can be seen that both Router Capacity and end Device Capacity fields are set to 0.
  • No matter how much times we restarted the ED, the result was the same (for the obvious reason)
  • At some point later, we have decided to power cycle one of the routers, MAC ADDR == 000B520000005AB8,
    NWK ADDR == 0x62D3. The power cycle took place slightly before the timestamp of p#3198,
    where p#3198 is a "link status" message issued by the power cycled router.
  • Right away, p#3199, ED sends another beacon, however at this time, the same ZR sends a beacon with
    Router Capacity and end Device Capacity fields set to 1 (p#3201), while all the other Rs are still at 0 capacity.
  • From this point on ED issuing "association requests" (such as in p#3203), however, it seems like it
    joins the network only 13 seconds after the first "association request" (p#3267 - at this point the code execution
    hit a breakpoint in IAR, under case ZDO_STATE_CHANGE: if (zclSampleLight_NwkState == DEV_END_DEVICE),
    which means device has joined to network).

My questions are as follows:

  1. How come ZC and ZRs are in full capacity, even if there are no active and devices, nor additional routers? Are we
    missing something obvious here?

  2. What is the procedure (a ZNP command if you like) to delete entries from children table?
    Shouldn't it be managed automatically by the Stack?

  3. Why it took almost 13 seconds to ED to finally join the network?

Any pointer will be highly appreciated.

2016_02_07-Dev_not_joining_log.zip