This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

S332 stack running concurrent BLE peripheral and ANT connections.

We are using the nRF52832 with S332 v2.0 of the stack. We have recently been testing concurrent operation of a BLE peripheral connection and an ANT bidirectional master. The specifics are listed below:

 

BLE

Connection Interval (min): 24msec

Connection Interval (max): 24msec

Notification period: 250msec

# of notifications enabled: 12

 

ANT

RF Frequency: 2.477 MHz

Message rate: 59.04Hz

Burst transmission of 4 payload packet

 

Using ANTWare II and an ANT USB dongle we monitored the ANT master transmissions first with no BLE peripheral connection to get a baseline. Then we added the BLE peripheral connection concurrent with ANT (allowing our control processor to continue to update data for the radio to transmit via the UART interface). Finally, we halted the control processor from sending data to the radio once both protocols were operating.

 

Case 1: ANT bidirectional master only with transmit data updates from control processor

 

Sniffer produced near-error free (e.g., almost no receive errors) reception of master data

 

Case 2: ANT bidirectional master and BLE peripheral with transmit data updates from control processor

 

Sniffer produced enough errors that very few 4 packet bursts were received

 

Case 3: ANT bidirectional master and BLE peripheral with NO transmit data updates from control processor

 

No discernable difference from performance seen in case 2.

 

Could you advise on the following:

 

  1. Have concurrency improvements been made in S332 since v2.0?
  2. Are there any guidelines that must be followed in order to minimize the impact of concurrent operation?

Thanks!

  • One more data point....Restricting the BLE peripheral connection interval to 100msec significantly reduced the number of EVENT_RX_FAIL events being observed on the ANT sniffer.

  • Typically the "slowest" interval will win scheduling, since that radio event will be allowed to schedule and allocate it's required time in the future first. There is not really a good way to avoid this, other than to change interval, and/or the amount of data in each interval to reduce the occurance.

    Best regards,
    Kenneth

  • HI Kenneth,

    I don't understand your reply regarding the "slowest" interval wins scheduling.  When we increased the BLE connection period from 24 msec to 100 msec, we saw far fewer RX FAIL events on the ANT interface.  This would indicate the smaller connection period has precedence. By increasing the BLE connection period, the higher frequency ANT channel rate has priority.

    Also how do I calculate how long it would take to send a 4 packet burst over the air assuming their are no retries?  

    Thanks,

    Kurt

  • Hi Kurt,

    What I am trying to say is that if you place this on a timeline, and BLE have a interval of 100ms and ANT of 16.937ms, then BLE would always get the 100ms period, while ANT would need to skip specific intervals that collide with the 100ms BLE period. However in this case ANT would still have 5 un-interrupted periods between each BLE period, so that would be pretty good overall for ANT.

    If BLE use 24ms and ANT use 16.937ms, then ANT will collide much more frequently with BLE, and will need to overall skip more periods than when BLE is 100ms.

    Have in mind here that each radio event (ANT and BLE) you may assume is ~5ms, which is why they will collide. 

    With "slowest" I mean the protocol that transmit with the longest period in time between transmissions.

    Best regards,
    Kenneth

  • Are you saying in my example, that the BLE connection will always have priority over the ANT channel because the BLE connection period is larger than the ANT channel period?  If we made the ANT channel period larger than the BLE period, would the ANT  channel have priority over BLE?

    Thanks,

    Kurt

Related