This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE notification rate

Other Parts Discussed in Thread: CC2640, CC2540

I'm using the SimpleBLEPeripheral and SimpleBLECentral projects (CC2640 chips) to implement notification sending. I'm trying to send 1 notif every 100 ms, but on the Central side, it looks like I'm actually getting a burst of 10 notifs once every second. I feel like either there's a parameter on the Peripheral that queues notifs and sends them once a second, or one on the Central that calls processGATTMsg once a second to handle all built-up messages. Is either guess accurate? Thanks!

  • Hello Michael,
    How did you implement the notifications?
    What is your connection interval?
    Are you able to capture a sniffer log?
    Link to sniffer SW: www.ti.com/.../packet-sniffer. You either need a CC2540 Dongle or a separate device running HostTestApp connected to your pc throgh a com port. If not we can try to figure it out anyways :).
  • Hi Eirik--thanks for the reply. I implemented notifications by writing to the CHAR1 config on connection, then using SimpleProfile_SetParameter to trigger notifs. On the Central side, I added a condition to SimpleBLECentral_processGATTMsg to handle ATT_HANDLE_VALUE_NOTI messages. DEFAULT_DESIRED_MIN_CONN_INTERVAL is 80 and MAX_CONN_INTERVAL is 800 (so 100-1000 ms).
    I don't have a dongle, unfortunately; I set a LED to blink on receiving a notif and measured the output pin with an oscilloscope, which is how I saw the "burst" notification.
  • Hi Michael,

    It is important to make sure that both devices are using a 100ms connection interval. Can you try to set the MAX_CONN_INTERVAL parameter to 800 as well?
  • Hi Sean, do you mean to set MAX_CONN_INTERVAL to 80? The current value is 800.
    On the Central board, MIN_CONN_INTERVAL is 400 and MAX is 800--since DEFAULT_ENABLE_UPDATE_REQUEST is false, does that matter?
  • Yes I mean 80. You should set min and max values on both central and peripheral to be 80 so that a 100ms connection interval. Otherwise they may agree on a higher interval which would likely cause the burst you are seeing because data can only be sent at connection events.