NimBLE-Arduino icon indicating copy to clipboard operation
NimBLE-Arduino copied to clipboard

NimBLEDevice::setPower(int dbm) not working as expected (NRF52840)

Open lilindian16 opened this issue 2 years ago • 2 comments

NRF52840-QIAA n-able core version = 1.0.0 NimBLE-Arduino version = 1.4.1

platformio.ini config: platform = https://github.com/h2zero/platform-n-able.git#1.0.0 framework = arduino lib_deps = h2zero/NimBLE-Arduino@^1.4.0 upload_protocol = jlink board = generic_nrf52840 debug_tool = jlink

Using NimBLEDevice::setPower(int dbm) seems to not change the tx power from what I can tell.

Iterating through the following dbm values shows no change using LightBlue to read RSSI: {RADIO_TXPOWER_TXPOWER_Neg4dBm, RADIO_TXPOWER_TXPOWER_0dBm, RADIO_TXPOWER_TXPOWER_Pos3dBm, RADIO_TXPOWER_TXPOWER_Pos4dBm} Reading RSSI on LightBlue app shows no change between all four settings

The workaround I have used so far is changing nimconfig MYNEWT_VAL_BLE_LL_TX_PWR_DBM=0 to MYNEWT_VAL_BLE_LL_TX_PWR_DBM=4 with platformio build flag build_flags = -DMYNEWT_VAL_BLE_LL_TX_PWR_DBM=4 Reading RSSI on LightBlue shows immediate change after device is flashed with new config

lilindian16 avatar Nov 02 '23 23:11 lilindian16

Interesting, do you see any change if you use the numerical values instead of the macros, i.e -4 etc?

h2zero avatar Nov 03 '23 02:11 h2zero

NRF52840-QIAA n-able core version = 1.0.0 NimBLE-Arduino version = 1.4.1

platformio.ini config: platform = https://github.com/h2zero/platform-n-able.git#1.0.0 framework = arduino lib_deps = h2zero/NimBLE-Arduino@^1.4.0 upload_protocol = jlink board = generic_nrf52840 debug_tool = jlink

Using NimBLEDevice::setPower(int dbm) seems to not change the tx power from what I can tell.

Iterating through the following dbm values shows no change using LightBlue to read RSSI: {RADIO_TXPOWER_TXPOWER_Neg4dBm, RADIO_TXPOWER_TXPOWER_0dBm, RADIO_TXPOWER_TXPOWER_Pos3dBm, RADIO_TXPOWER_TXPOWER_Pos4dBm} Reading RSSI on LightBlue app shows no change between all four settings

The workaround I have used so far is changing nimconfig MYNEWT_VAL_BLE_LL_TX_PWR_DBM=0 to MYNEWT_VAL_BLE_LL_TX_PWR_DBM=4 with platformio build flag build_flags = -DMYNEWT_VAL_BLE_LL_TX_PWR_DBM=4 Reading RSSI on LightBlue shows immediate change after device is flashed with new config

hi @lilindian16 I used your suggestion and it increased power to 4dbm - did you ever get it to 8dbm? if so can you share pls?

j45p41 avatar Feb 23 '24 20:02 j45p41

Fixed in #679

h2zero avatar Jul 02 '24 15:07 h2zero