This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF52 beacone TXPOWER

I tryed to reduce the power consumption of my beacon (ble_app_beacone example from SDK) to have more battery live. To do this, I want to reduce the TX power. And also change advertising interval. With advertising interval its easy, but TX power..

I tried to do it in several ways:

sd_ble_gap_tx_power_set() or NRF_RADIO->TXPOWER

but in this case, the beacon does not work at all.

Then I found a comment that says that the APP_MEASURED_RSSI parameter is responsible for the TX power

but its changes do not affect the power consumtion (look at the peaks) APP_MEASURED_RSSI =  (1)63 dBm (2) 0dMb (3) -61dBm):

(1)

(2)

(3)

These peaks looks like TX power +4dBm (16.5mA), but -40dBm (5.9mA) would be enough for me. The table is below. Please, tell  me how can I change this TX power in my case?

NOTE: nRF5_SDK_17.1.0 and s132 are used in my case. + nFR52-DK with PPK2

Parents
  • Hi,

    I tried to do it in several ways:

    sd_ble_gap_tx_power_set() or NRF_RADIO->TXPOWER

    but in this case, the beacon does not work at all.

    Did you try to debug in this case? Did you get any errors? In any case, the correct way to adjust the Tx power for Bluetooth advertising is to use sd_ble_gap_tx_power_set() with the role (first parameter) set to BLE_GAP_TX_POWER_ROLE_ADV. The second parameter should be the advertising handle which you got from the call to sd_ble_gap_adv_set_configure(). Therefore, I suggest you simply call sd_ble_gap_tx_power_set() immediately after the call to sd_ble_gap_adv_set_configure().

    (Note that if you use the advertising module this is not called directly, but by ble_advertising_init(), so you should get it from there. Also, in that case you can find the advertising handle from the ble_advertising_t struct after the call to ble_advertising_init().)

    Then I found a comment that says that the APP_MEASURED_RSSI parameter is responsible for the TX power

    That is not correct. This is just a information about the typical RSSI measured at a fixed distance from the beacon to make it a bit simpler to estimate distance based on RSSI.

Reply
  • Hi,

    I tried to do it in several ways:

    sd_ble_gap_tx_power_set() or NRF_RADIO->TXPOWER

    but in this case, the beacon does not work at all.

    Did you try to debug in this case? Did you get any errors? In any case, the correct way to adjust the Tx power for Bluetooth advertising is to use sd_ble_gap_tx_power_set() with the role (first parameter) set to BLE_GAP_TX_POWER_ROLE_ADV. The second parameter should be the advertising handle which you got from the call to sd_ble_gap_adv_set_configure(). Therefore, I suggest you simply call sd_ble_gap_tx_power_set() immediately after the call to sd_ble_gap_adv_set_configure().

    (Note that if you use the advertising module this is not called directly, but by ble_advertising_init(), so you should get it from there. Also, in that case you can find the advertising handle from the ble_advertising_t struct after the call to ble_advertising_init().)

    Then I found a comment that says that the APP_MEASURED_RSSI parameter is responsible for the TX power

    That is not correct. This is just a information about the typical RSSI measured at a fixed distance from the beacon to make it a bit simpler to estimate distance based on RSSI.

Children
Related