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.

LAUNCHXL-CC26X2R1: Can't form/join Zigbee mesh network using TI genericapp example apps

Part Number: LAUNCHXL-CC26X2R1
Other Parts Discussed in Thread: FLASH-PROGRAMMER, UNIFLASH, SIMPLELINK-CC13X2-26X2-SDK, CCSTUDIO

I have 2 LAUNCHXL-CC26X2R1 boards and am trying to get them to form a Zigbee mesh network. One board is functioning as the coordinator and running the zc_genericapp example program. The other board is functioning as a router and running the zr_genericapp example program.

I am running both examples basically unmodified other than hard-coding the PAN ID and channel to known values and adding numerous printf() statements for debugging. I have also turned off BDB_COMMISSIONING_MODE_FINDING_BINDING on each side when I call Zstackapi_bdbStartCommissioningReq(). I understand that I will later need to add my own logic to handle various events, etc, but for now I'm just trying to form and join a mesh network.

When the coordinator comes up, it appears to initialize properly - ie I receive a BDB_COMMISSIONING_INITIALIZATION event. When I press BTN1 to start the commissioning process, I do receive a BDB_COMMISSIONING_NWK_STEERING event with status set to BDB_COMMISSIONING_SUCCESS, followed by an event with a BDB_COMMISSIONING_NO_NETWORK status, which I assume makes sense because there are no other networks on that channel. However, just after that I see a BDB_COMMISSIONING_FORMATION event with status set to BDB_COMMISSIONING_FORMATION_FAILURE.

Given that the coordinator seems to fail while forming the network, it's probably pointless to expect the router to successfully join. Nevertheless, on the router side, when I press BTN1 to start the commissioning process, I see a flurry of activity and eventually I get a BDB_NOTIFICATION event with bdbCommissioningModeMsg->bdbCommissioningStatus set to BDB_COMMISSIONING_NO_NETWORK. I do see a lot of activity in my packet sniffer but I don't think that the router is receiving the correct responses from the coordinator to the Association Request packets. On the coordinator side, I see two zstackmsg_CmdIDs_BDB_TC_LINK_KEY_EXCHANGE_NOTIFICATION_IND messages come in.

I am trying to understand what I need to do to get the generic example apps running and connecting to a mesh network. Are there any other variables or #defines that I need to change? Any help would be greatly appreciated.

  • What mode do you use when you call Zstackapi_bdbStartCommissioningReq to form network from your coordinator? Do you use BDB_COMMISSIONING_MODE_NWK_FORMATION?

  • Yes, I'm using the zc_genericapp example basically unmodified so the call looks like this:

            if(ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE)
            {
    
                zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
                Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
            }

    I have also played with taking out the BDB_COMMISSIONING_MODE_FINDING_BINDING bit since my app won't be using it but that doesn't seem to make any difference.

  • If you don't modify anything to original zc_genericapp, can it form network successfully?

  • Hi Grant,

    I experienced no issues when evaluating the ZC & ZR Generic App examples in the SIMPLELINK-CC13X2-26X2-SDK.  The only changes made were to the Primary Channels (24 - 2470 MHz) and PAN ID (0xF00D) in the respective .syscfg files.  Make sure you are using LAUNCHXL-CC26X2R Rev E boards and CCSTUDIO v9.2.  Also, please be sure to erase all device memory using UNIFLASH or FLASH-PROGRAMMER if the boards have been previously programmed as this will erase all NV items.  Otherwise, please provide a sniffer log like the one I've attached for further evaluation.

    zc_zr_genericapp_3.30_SDK.cubx

    Regards,
    Ryan

  • Hi Ryan, I'm using a pair of LAUNCHXL-CC26X2R Rev B boards, which have Rev E chips on them, and CCSTUDIO v9.2.0.00013.

    Interestingly, the behavior changes a bit when I erase the entire flash.  When I do that, the coordinator does get BDB_COMMISSIONING_FORMATION event with status set to BDB_COMMISSIONING_SUCCESS.  When the router tries to join the network, though, it's still getting a BDB_COMMISSIONING_NO_NETWORK status though.  Then when I make a change and restart the coordinator, it will get continue to get BDB_COMMISSIONING_FORMATION_FAILURE statuses when it tries to form the network until I erase the flash again.

    Anyway, here are my working directories zipped up.  The only changes that I've made to the genericapp are to the PANID and channel and to add a lot of printf()'s for debugging.

    ibis-zr_genericapp.zip

    ibis-zc_genericapp.zip

    Here's a capture of what I'm seeing.  (I haven't got Ubiqua so I'm using TI's Packet Sniffer app.)

    ibis_zc_zr_genericapp.psd

    Thanks in advance!

    Grant

  • Hi Grant,

    I've evaluated your projects and they are working as expected without any changes (erasing all device memory before re-programming).  Are you able to get any default projects to form/join a network?  This would appear to be an issue with one or both of your LAUNCHXL-CC26X2R1 Rev E boards.  Do you only have two boards that can be tested or are multiple available?

    Regards,
    Ryan

  • Thanks, Ryan, when you asked about getting other projects to form/join, I went and grabbed a clean copy of a different project and the form/join succeeded!  It turns out that I had added enough printf() statements to the genericapp example to disrupt the timing.  When I strip out the printf()s from the code that I attached, I can form and join the mesh.  I'm considering this issue closed.

    Thanks again,

    Grant