Central (9) and Peripheral connections(1- mobile) - baseband scheduling

HI,

  we are working with 

nRF5 SDK v15.2.0
------------------------
Release Date: Week 37, 2018

  Our use-case has a central device, which has 7 to 10 peripheral connected sensor nodes and sends back the calculated values to Mobile using the peripheral interface.

  slave latency - 0

  The connection interval used is 30ms(min 24 units) to 150ms and it always takes 30 ms as a connection interval between nodes and mobile.

  we have a requirement for 100 to 200ms latency to mobile phones. That means all the sensors should send data within 60 to 80ms to the central and the central sends the calculated value in 50ms.

   The connection and data transfer are working and it's stable. But however, we see the packets are sent 1/5 or 1/4 times of connection interval. so the packets are delayed by 200ms to 600ms normally, even in a clean environment. we do not have an OTA sniffer to see what's happening in the air.

   But our assumption is on how the connection interval is allocated on baseband time slots. Since it's always taking 30ms, I think is not possible to give connection intervals with good event length and not overlapping. So we assume the scheduler is allocating and overlapping the intervals and each slot gets changed based on priority and is not preallocated properly. 

  we tried with 40ms,50ms intervals, but in 30ms we got a good reliable connection and data transfer.

   And also we have the time_sync enabled, with is scheduled for 5 seconds and the radio access is low priority based.

   Do you have any configuration to tune this or are we missing something in our understanding of the problem? Please let us know if you need any more info on the same.

Parents
  • Hi Abishek, 

    A sniffer trace is critical to debug this issue. If you don't have a dedicated sniffer you can use one of our nRF52 DK as the sniffer. Please download the sniffer here. It won't be able to track the connection of all 10 peripheral and one phone but you can track one connection at a time and still it can provide a lot more insight. 

    Please provide the information on:

    - Which interval have you configured between the central and the sensor. You mentioned " 30ms(min 24 units) to 150ms and it always takes 30 ms as a connection interval between nodes and mobile." but it's not clear to me what's the connection interval between the central and the sensors. 

    - Please check the event length configuration for each connection. They should be as small as possible matching with the amount of data transferring. Here is an example in the S140 SDS

    - Please try to turn off the time_sync feature to test, just to make sure it's not the timeslot that messing up the connection events. From what I know about the time_sync example the receiver will always stay in timeslot and scanning on the radio. So it's active all the time (when the softdevice is not doing any BLE), not just once in 5 seconds.  If you configure the timeslot at low priority it should be fine, but it worth it to test to double check. 

Reply
  • Hi Abishek, 

    A sniffer trace is critical to debug this issue. If you don't have a dedicated sniffer you can use one of our nRF52 DK as the sniffer. Please download the sniffer here. It won't be able to track the connection of all 10 peripheral and one phone but you can track one connection at a time and still it can provide a lot more insight. 

    Please provide the information on:

    - Which interval have you configured between the central and the sensor. You mentioned " 30ms(min 24 units) to 150ms and it always takes 30 ms as a connection interval between nodes and mobile." but it's not clear to me what's the connection interval between the central and the sensors. 

    - Please check the event length configuration for each connection. They should be as small as possible matching with the amount of data transferring. Here is an example in the S140 SDS

    - Please try to turn off the time_sync feature to test, just to make sure it's not the timeslot that messing up the connection events. From what I know about the time_sync example the receiver will always stay in timeslot and scanning on the radio. So it's active all the time (when the softdevice is not doing any BLE), not just once in 5 seconds.  If you configure the timeslot at low priority it should be fine, but it worth it to test to double check. 

Children
No Data
Related