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

What defines the RSSI update rate for nRF51 devices?

I'm working on a project based on the ble_app_uart_c central example in SDK 12.1. I'm polling the RSSI of a Nordic beacon using sd_ble_gap_rssi_get(), and the fastest update in RSSI I can get is between 60 and 75 ms. I can poll faster, but I just get the same RSSI value.

What drives the RSSI update rate and is there an easy way to adjust it? I would like to poll at 25 ms, if possible.

Parents
  • sd_ble_gap_rssi_get will give you the RSSI value of the previous connection event. What is your connection interval in this case. Note that you could call sd_ble_gap_rssi_start with a low threshold to get an event when the RSSI value changes more than the threshold.

  • run_ar, I would prefer to poll the RSSI value at a fixed rate rather than use the sd_ble_gap_rssi_start() threshold event reporting, if possible.

    The defines in my main.c file show the connection intervals as:

    #define MIN_CONNECTION_INTERVAL MSEC_TO_UNITS(20, UNIT_1_25_MS) /**< Determines minimum connection interval in millisecond. */
    #define MAX_CONNECTION_INTERVAL MSEC_TO_UNITS(75, UNIT_1_25_MS) /**< Determines maximum connection interval in millisecond. */
    

    Does this set the connection interval between 20 and 75 ms?

Reply
  • run_ar, I would prefer to poll the RSSI value at a fixed rate rather than use the sd_ble_gap_rssi_start() threshold event reporting, if possible.

    The defines in my main.c file show the connection intervals as:

    #define MIN_CONNECTION_INTERVAL MSEC_TO_UNITS(20, UNIT_1_25_MS) /**< Determines minimum connection interval in millisecond. */
    #define MAX_CONNECTION_INTERVAL MSEC_TO_UNITS(75, UNIT_1_25_MS) /**< Determines maximum connection interval in millisecond. */
    

    Does this set the connection interval between 20 and 75 ms?

Children
No Data
Related