Unable to bind Zigbee end devices when using softdevice

Hello Nordic team,

I have a Nordic Zigbee application that uses libzboss.a and nrf_radio_driver_softdevice.a , with Nordic working as a coordinator. With this application, I was able to bind Zigbee end devices such as motion sensor, window sensor etc and able to receive data from them.

Later, I added softdevice s140 to my application as I wanted my application to be able to operate in either BLE mode or Zigbee mode. After adding softdevice, I had to change the radio driver to nrf_radio_driver_softdevice.a. In this new application, there is no change in code with respect to Zigbee functionality. However, I am no longer able to bind Zigbee end devices. Could you please let me know if there are any changes to be done when using Softdevice and Nordic is operating as a Zigbee coordinator?

Regards,

Anusha

Parents Reply Children
  • Hi Andreas,

    Thanks for your response and providing the missed link.

    I went through this link and I don't think all the points mentioned in this page are applicable in my case because there is no switching between protocols and from what I understand from an earlier question posted to Nordic support is that, full radio control is available to whichever protocol is running (in the case where only protocol is active).

    Ref:  Is multiprotocol_802154_config.c required for Zigbee + BLE applications? 

    I will try to figure out the issue while I am waiting for your response.

    Regards,

    Anusha

  • Hi,

    An update from me

    anusha_14 said:
    I went through this link and I don't think all the points mentioned in this page are applicable in my case because there is no switching between protocols and from what I understand from an earlier question posted to Nordic support is that, full radio control is available to whichever protocol is running (in the case where only protocol is active).

    Thank you for reminding me about the previous case for more background information and that we've discussed your project previously. 

    If it is possible it might be easier to redesign parts of your application to be able to use the multiprotocol, but lets investigate this issue first! 

    anusha_14 said:
    In BLE mode, the functionality works fine as I can see that bonding to a device works fine, able to perform GATT read and write, perform scanning and advertising. But in Zigbee mode, the functionality seems to have changed as I can no longer bind a Zigbee end device.

    How far have you gotten in the development? Are you able to for instance do:

    1. Boot up as Zigbee device -> bind ZED -> Everything works as expected -> power cycle
    2. Boot up as BLE device -> perform GATT read and write, scan and andvertise -> everything works as expected -> power cycle
    3. Boot up as Zigbee device -> Binding does not work

    If this is the case, there might be some renmants of the Zigbee device stored in the network that leads for the network to believe that the device is still in the network, and you might have to remove the ZED from the Zigbee network when you power cycle to become a BLE device, so that the network are able to identify the same ZED and reprovision it whenever you power cycle back to a Zigbee device.

    Let me know if this points you in the correct direction and if you have any runtime logs and or Zigbee sniffer traces that you could post here that could indicate what is going on! 

    Kind regards,
    Andreas

  • Hi Andreas,

    Sorry for the very long delay to respond as I was working on other projects during the past few months. Would it be possible to reopen this ticket or do I need to create a new one?

    Regarding your questions, here are my responses:

    1. It can boot up as Zigbee coordinator device and can respond to joining request from ZED but cannot bind.

    2. Yes, it can boot up as BLE device, perform GATT operation, scan and after power cycle also, BLE operations work as expected.

    3. As binding of ZED did not occur itself, this question is not applicable.

    If it helps to debug, I can share Zigbee sniffer logs from two cases that I tried.

    Case 1: Nordic as Zigbee coordinator with only Zigbee support (using libzboss.a and nrf_radio_driver.a) without SoftDevice. I commissioned a ZED (window contact) and the binding was successful. This is the sniffer log: 

    WC_CommSuccess.psd

    Case 2: Nordic as Zigbee coordinator with SoftDevice (using libzboss.a and nrf_radio_driver_softdevice.a). I tried to commission a ZED (window contact) and the binding failed. This is the sniffer log:
    WC_CommFail.psd

    This is the tool that can be used to open the sniffer logs:

    https://www.ti.com/tool/download/PACKET-SNIFFER/01.00.00.0Z

    On comparing the sniffer logs, we can see that the ZED is able to successfully join the network. However, when the coordinator performs finding and binding operation with SoftDevice present, it always goes to timeout with status ZB_ZDO_FB_INITIATOR_STATUS_ALARM and also the NLME indication status is returned as ZB_NWK_COMMAND_STATUS_INDIRECT_TRANSACTION_EXPIRY.

    Note that the source code for binding ZED for both cases (i.e without Softdevice and with Softdevice) is the same.

    Please let me know if you need any other details.

    Thanks,

    Anusha

  • Hi Anusha,

    No worries about the long repsonse time, it happens from time to time :) 

    Preferably I would like you to create a new case for this issue now. Other than that,  I also recommend you to consider to migrate to NCS instead of nRF5 SDK, specially if this is a relatively new project

    anusha_14 said:

    This is the tool that can be used to open the sniffer logs:

    https://www.ti.com/tool/download/PACKET-SNIFFER/01.00.00.0Z

    Also, if you could upload any sniffer traces/logs as .pcaps we can open them with firmware that is not created by a competitor ;) 

    Kind regards,
    Andreas

  • Hi Andreas,

    Thanks for your response.

    As you suggested, I have opened a new ticket for this issue here: Zigbee device binding fails when using Softdevice S140 but works with only Zigbee library (i,e without Softdevice) 

    I have used nrf52840 dongle for capturing the Zigbee traffic and have attached the new logs in that ticket.

    Thanks,

    Anusha

Related