Part Number: LAUNCHXL-CC26X2R1
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?
If my post answers your question, please click on "This Resolved my issue" button to benefit others who have the same issue.
Example to combine rfWakeOnRadioRx into rfWakeOnRadioTx to do TX/RX in the same WOR project.
How to create micro second delay on CC2652R
How to check APS ack in TI Z-Stack
How to detect button hold in CC26x2, CC13x0, CC13x2 SDK.
660 Zigbee devices in the same Zigbee network!
How to setup Mosquitto on Raspberry Pi and make Contiki/Contiki-NG cc26xx-web-demo do mqtt publish to it.
How to connect Contiki-NG cc26xx-web-demo to IBM Watson IoT Platform
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to YiKai Chen:
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;
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.
In reply to Grant China:
If you don't modify anything to original zc_genericapp, can it form network successfully?
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.
To better aid the community, please click on the "This Resolved my issue" button whenever a post answers your question!
In reply to Ryan Brown1:
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.
Here's a capture of what I'm seeing. (I haven't got Ubiqua so I'm using TI's Packet Sniffer app.)
Thanks in advance!
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?
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.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.