Timesync and BLE mesh functionalities not working together on nRF52840-DK board

Hello,

Our application is to create BLE mesh network with multiple nodes, each node is having sensor. Each node will send sensor value and timestamp over the mesh network and there is a mobile application connected with one destination node which is collecting all information for further analysis. For timestamp, it is required to synchronized the time value in milliseconds in all the mesh nodes. So all nodes are having same timer value.

nRF Connect SDK version: v2.2.0

Hardware: nRF52840-DK Evaluation board

For BLE mesh, we are taking reference of ble_peripheral_lbs_coex example (available in samples\bluetooth\mesh\). It is working fine with multiple nodes in standalone.

To synchronize the time, we are using Timesync example same as mentioned in one of the post ( Wireless timer synchronization among nRF5 devices ). It is working fine with multiple nodes in standalone. 

Now, as per our requirement we need both as single application so we integrate time sync code into BLE mesh example code and compiled successfully. After integration, we are observing MPSL_TIMESLOT_SIGNAL_BLOCKED message continuously on serial terminal and time synchronization is not working. During this, mesh packet is able to transmit and receive on the mesh nodes.

We increased BLE mesh scan interval from 30 ms to 2000 ms. After this, Timesync is started working but BLE mesh stopped working.

Is there any way to work both functionalities(BLE mesh and Timesync) simultaneously? or is there any other way to synchronize the time(in milliseconds) on all the nodes over mesh?

It would be highly appreciated if we could get some response.

Thanks !!!

  • Hello Andreas,

    Thanks for your detailed response. We are working on it.

    Thanks & Regards !!!

  • Happy to help! 

    Let me know if it works out for you

    Kind regards,
    Andreas

  • Hello Andreas,

    We have integrated all 3 functionalities, Time Synchronization + node communication over BLE Mesh + BLE peripheral, and tested with 5 nrf52840 DK boards on the field. We have tuned the BLE scan and advertisement interval for all 3 functionalities and it started working. Now, we observed some of the limitations during so much testing on the field, mentioned below. We tested with 5 DK boards; the distance between each node is 10 meters.

    1. Time synchronization takes random time to get synchronized with all 5 nodes. As per our testing, we observed a minimum time of approx. 1 minute and a maximum time of approx. 5 minutes. Maximum time can be beyond 5 minutes. This is not acceptable in our case.

    2. Sometimes mesh packet takes more time to travel from 1st node to 5th node.

    To overcome these limitations, we are thinking of 2 different solutions and we need your suggestions.

    1. Run BLE and Zigbee concurrently on the nRF52840 chipset. Time synchronization and BLE peripheral will be run on BLE and node communication will be run on Zigbee. We know that Radio is going to share between 2 protocols but we feel that Zigbee will be active only during node communication, not like BLE mesh.

    2. Run the BLE stack on the nRF52840 chipset and run the Zigbee stack separately on another nRF52840 chipset. In this case, 2 chipsets are required on a single system.

    We prefer to go with solution number 1. Please share your thoughts.

    Looking forward to your response.

    Thanks & Regards !!!

  • Hi,

    Glad to hear that you managed to implement the features you wanted even though the results weren't satisfying

    iotracking said:
    1. Run BLE and Zigbee concurrently on the nRF52840 chipset. Time synchronization and BLE peripheral will be run on BLE and node communication will be run on Zigbee. We know that Radio is going to share between 2 protocols but we feel that Zigbee will be active only during node communication, not like BLE mesh.

    I recommend you to have a look at the multiprotocol support page at https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/protocols/multiprotocol/index.html as well as the Zigbee light switch sample section regarding BLE multiprotocol support https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/zigbee/light_switch/README.html#multiprotocol-bluetooth-le-extension-assignments 

    The Multiprotocol page should tell you about some items to consider while the lastly mentioned sample should showcase how this is done in a ZigBee application in practice. Depending on the criteria your application needs, you may find this option to be suited to your application.

    iotracking said:
    2. Run the BLE stack on the nRF52840 chipset and run the Zigbee stack separately on another nRF52840 chipset. In this case, 2 chipsets are required on a single system.

    I'm not too familiar with this configuration so you might have some more luck by raising the question in a new ticket but my thoughts are that you will need to use some coexistence such as https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/mpsl/doc/cx.html to avoid interference. Note that the link I posted is for multiple radios but only with one application/SoC

    Let me know if this answers your initial questions and please 

    Kind regards,
    Andreas

  • Hello Andreas,

    Thanks for your detailed response.

    I have some queries regarding Zigbee mentioned below.

    1. Does nRF connect SDK support Star or Mesh network topology for Zigbee protocol? I didn't find any information about star topology.

    1a. If NCS supports Zigbee mesh then it will be a similar case that we have implemented with BLE and BLE mesh concurrently. Am I understood correctly? If not, then how Zigbee mesh is different than BLE mesh?

    2. Do we need a Zigbee coordinator to manage the ZigBee network? Will Zigbee coordinator implementation be handled by nRF52840 chipset i.e., Flash and RAM memory?

    We will try the example that you mentioned and will let you know if we have more queries.

    Thanks & Regards !!!

Related