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.

CC2530: ZC doesn't send message 0xCD error

Part Number: CC2530
Other Parts Discussed in Thread: Z-STACK, , CC1352P, CC2652R, CC2538

Hello,

I have a zigbee network with a CC2530 (Z-Stack 1.2.2) device as zigbee coordinator (using zigbee API) and 30 CC2530 (Z-Stack 3.0.1) devices as zigbee router. The routers report periodically some attributes (every 1-2 mins) and they ask, also periodically, if there is a new firmware (OTA Upgrade, every 10 mins with jitter).

I see from a log file that frequently the coordinator can't send the OTA Upgrade response message because the firmware returns the error code 0xCD (nwk no route). But the reports from the router are ok and I can send commands.

On the sniffer, I can see that the response message is not sent, but the coordinator doesn't try to restore the route with a Route Request. In fact the route request messages that I see seem to be not related. I also notice that the coordinator has only 17 neighbors, but all the 30 devices are in 2 meters range.

Anyone can help me to understand this behaviour?

Thanks,
Antonio

  • Hello Antonio,

    Please review the NWK_MAX_DEVICE_LIST, NWK_MAX_ROUTERS, MAX_NEIGHBOR_ENTRIES, and NWK_ROUTE_AGE_LIMIT MACROs in nwk_globals.h to make sure that your ZC has enough RAM memory and expiry time allocated for the association and routing tables of the ZRs.

    Regards,
    Ryan
  • Hi Ryan,
    thanks for the response. I try to change the value of the MACRO you listed:
    - NWK_MAX_DEVICE_LIST: from 20 to 25;
    - NWK_MAX_ROUTERS: from 6 to 25;
    - MAX_NEIGHBOR_ENTRIES: 16;
    - NWK_ROUTE_AGE_LIMIT: from 3 to 8.

    I have not seen improvements. Can you help me to better understand their meanings? There is a document where I can find an explanation for the MACRO I can use in Z-Stack and their relationship with the ZigBee PRO specs?

    For example, the nwkReportConstantCost=FALSE and nwkSymLink=TRUE attributes defined in ZigBee PRO document (3.5.2 NWK Information Base) can help me to fix this issue? And how I can reflect this behavior in ZNP?

    Thanks,
    Antonio
  • Although this Network Configuration page was created for SimpleLink devices (CC2652R/CC1352P), the definitions also apply to the CC2530: dev.ti.com/.../network_configuration.html

    Why was MAX_NEIGHBOR_ENTRIES not increased, as this is the MACRO most likely associated with the issue? I also don't understand the relation between the Zigbee Spec attributes mentioned and the problem at hand.

    Regards,
    Ryan
  • Hi,
    thank you for the support.

    I have not increased the MAX_NEIGHBOR_ENTRIES because, as I told you, I cannot understand well the meaning of MACROs. The other ones seemed to me very little with default values.

    The actual configuration is:
    - NWK_MAX_DEVICE_LIST: 20;
    - NWK_MAX_ROUTERS: 16;
    - MAX_NEIGHBOR_ENTRIES: 22;
    - NWK_ROUTE_AGE_LIMIT: 8.

    With also this configuration, I can't see improvements. I report those Zigbee specs attributes because I search in the documentation when the Route Request messages are generated. In my opinion, the NO ROUTE error is linked with these messages. So I have found those attributes related to the "expired route" and "link cost" notions.

    1. Did you think that the way is to increment the MAX_NEIGHBOR_ENTRIES value? I set 22 because with 23 the compilation stops with memory error. Do you suggest to decrease any other MACRO to get more space?

    2. Do you think the CC2530 8k RAM is enough to support 50 or more routers in a network?

    3. Can the Z-Stack 3.0.2 resolve this issue?

    Regards,
    Antonio
  • 1. MAX_NEIGHBOR_ENTRIES is the max number of neighbors supported in the neighbor table, hence the ZRs which can directly connect to the ZC
    2. It's quite a stretch, the CC2530 ZC RAM limitations are discussed in SWRA635: www.ti.com/.../swra635.pdf
    3. There is nothing listed in the Release Notes that addresses this issue directly but I do recommend upgrading if possible.

    Would you be able to provide the sniffer log that you previously mentioned?

    Regards,
    Ryan
  • Hi, sorry for my late reply. I don't have anymore the old sniffer logs.
    I have read your document and I have found also this document: www.ti.com/.../swra427c.pdf.

    Since I want to grow up my zigbee network, I setup the coordinator and router firmwares with the values in the document. With the MTO routing I fixed the issue: no more 0xCD error.

    Now I see new messages: ManyToOne No RRT and Route Record.

    1. Why "No RRT"? What are the pro and contros of not have the route record table?
    2. The document suggest to start this discovering every 120s. How about to increase? Can I set 300?

    I increased the number of routers to 50 devices but I have found problems while joining. To join all routers I have to:
    - join "n" routers directly to the coordinator (I use n=6);
    - join all other routers to this group (by turn on, pair and turn off the device) one by one.

    If I try to join a device with all routers on, the joining procedure ends after the "Update Device" message. The coordinator doesn't send the transport key (it is NOT pre-configured). If the device try to join the network through one of the 6 "selected" routers, all it is ok. This hanppens when I reach about 25 devices.

    3. It is a "depth" issue? How can I do to fix or better understand this problem?

    From app log file I see some Z_MEM_ERROR (0x10) from coordinator Z-Stack firmware.

    4. Did you think that a report of 120s for the data is quite low? Do you suggest to modify the report time of the routers?

    Thnk you for the support,
    Antonio
  • Hi Antonio,

    Please keep in mind that SWRA427 uses a deprecated and modified Z-Stack image on the ZC in order to run the tests documented.

    1. If you want more information on many-to-one routing protocol please refer to the following: dev.ti.com/.../z-stack-overview.html

    2. This can be changed in ZGlobals.h

    3. Z_MEM_ERROR indicates that there is not enough memory available to store all necessary network information, which is causing the ZC to not add more devices to the network. To start, CONCENTRATOR_ROUTE_CACHE should be disabled but you will continue to experience difficulties with a CC2530. I recommend you upgrade to the CC2538/CC2652R/CC1352P

    4. You can modify if desired based on your design requirements

    Regards,
    Ryan