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.

Frequency Of RSSI Readings In BLE

I am using sensor tag CC2541  to get RSSI data. Is there a way to find out the maximum frequency of polling between the master and the slave in a BLE connection?

  • The RSSI value of a connection will update at the end of every connection event. So the maximum frequency at which this value will change will be equal to the connection interval between your master and slave devices. The minimum is connection interval is 7.5ms.

    In SimpleBLECentral, you'll notice they use the OSAL timer to periodically issue an HCI_ReadRSSICmd() (trace calls starting with GAPCentralRole_StartRssi()) and that is how they update the rssi value of the connection. You could set this timer to be equal to connection interval but be aware that if you are trying to read the rssi and handle connections too frequently that you could run into timing/scheduling issues.

    If you are a LL slave there is a way to create a call back to your application after every connection event ends. You can set this up using the HCI_EXT_ConnEventNoticeCmd(). This way you don't need a periodic timer but can use this call back to trigger the RSSI read. Another thing to note on the slave, currently the RSSI value only updates with GATT requests. Meaning if an empty PDU packet is sent to keep the connection alive then the rssi won't update. If you want an update every connection interval then you'll have to send some type of request/command/indication/notification to the peripheral/slave.

    -Matt