Hi,
I am working nRF52832 and sdk 16 version. I want to get the RSSI value of my peripheral device nRF52832 and send it to central (phone) over ble ? how to do that ?
Best Regards
pspavi
Hi,
I am working nRF52832 and sdk 16 version. I want to get the RSSI value of my peripheral device nRF52832 and send it to central (phone) over ble ? how to do that ?
Best Regards
pspavi
Hi,
Just to make sure, did you consider the option of just reading the RSSI on the phone instead? I don't think it's common to have a peripheral send measured RSSI to the central, and it does complicate things a bit. In any case, you can use the following SD APIs to control RSSI sampling:
Hi,
Just to make sure, did you consider the option of just reading the RSSI on the phone instead? I don't think it's common to have a peripheral send measured RSSI to the central, and it does complicate things a bit. In any case, you can use the following SD APIs to control RSSI sampling:
yes I did , but i am not getting the RSSI stable value , it is varying ..please let me know how to rectify
switch (p_ble_evt->header.evt_id) { case BLE_GAP_EVT_CONNECTED: NRF_LOG_INFO("Connected"); err_code = bsp_indication_set(BSP_INDICATE_CONNECTED); APP_ERROR_CHECK(err_code); m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle; err_code = nrf_ble_qwr_conn_handle_assign(&m_qwr, m_conn_handle); APP_ERROR_CHECK(err_code); uint32_t err_code; m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle; err_code = sd_ble_gap_rssi_start(m_conn_handle, 10, 0); APP_ERROR_CHECK(err_code); break; case BLE_GAP_EVT_RSSI_CHANGED: rssi = p_ble_evt->evt.gap_evt.params.rssi_changed.rssi; NRF_LOG_INFO("rssi:%d",rssi);
Measured RSSI will vary quite a bit when tested in uncontrolled environments, so the variation you see is probably as expected. To limit this variation you could try calculate an average RSSI from multiple samples.