[NRF52833] [Bluetooth Mesh mode] set Tx power

Hello developers,
I am using nRF52833 chip for Bluetooth Mesh sensor application
In Kconfig I am setting TX POWER transmitter power at +8dbm. According to the device specifications it can reach up to 8dBm with a current consumption of 15mA.
But now I only measure 11mA, corresponding to 0dbm.
I have used hci_pwr_ctrl example but set/get failed.

Hope to receive support to be able to increase the transmission capacity to 8dbm. More about my project: Zephyr RTOS + nRF Connect SDK 2.0, mesh sensor server, LPN is not implemented.

Thanks in advance,

Parents
  • Hi TienNguyen,

    In NCS v2.0.2 and older, CONFIG_BT_CTLR_TX_PWR_PLUS_8 and similar Kconfig CONFIG_BT_CTLR_TX_PWR_* don't work correctly.

    You can refer to Known Issue DRGN-15903 here Known issues — nRF Connect SDK 2.0.2 documentation (nordicsemi.com)

    If you have to stay with NCS v2.0, please set TX power dynamically instead. The following sample will show you how to do it: Bluetooth: HCI Power Control — Zephyr Project Documentation (nordicsemi.com)

    If you can upgrade to NCS v2.1.0 or newer, the Kconfig should work correctly.

    Sorry for the inconvenience.

    Hieu

  • CS v2.1.0 or newer, the Kconfi

    Yes, i sucessed config TX power by change source in SDK few days ago.

    In "nrf_radio.h" line 273-275, I remove:

    #if defined(RADIO_TXPOWER_TXPOWER_Pos8dBm) || defined(NRFX_DOXYGEN)
    NRF_RADIO_TXPOWER_POS8DBM = RADIO_TXPOWER_TXPOWER_Pos8dBm, /**< 8 dBm. */
    #endif

    And replace by:

    NRF_RADIO_TXPOWER_POS8DBM = RADIO_TXPOWER_TXPOWER_Pos8dBm,

    It work like a charm Slight smile

  • Tien_Nguyen said:

    In "nrf_radio.h" line 273-275, I remove:

    #if defined(RADIO_TXPOWER_TXPOWER_Pos8dBm) || defined(NRFX_DOXYGEN)
    NRF_RADIO_TXPOWER_POS8DBM = RADIO_TXPOWER_TXPOWER_Pos8dBm, /**< 8 dBm. */
    #endif

    And replace by:

    NRF_RADIO_TXPOWER_POS8DBM = RADIO_TXPOWER_TXPOWER_Pos8dBm,

    Are you sure just this change works? Are there any other changes you made that you perhaps forgot to consider?

    Your update simply ensures an enum value is exposed regardless of the build configurations.
    As the nRF52833 supports +8 dBm, I think that option would be defined regardless, because the nRF52833 supports +8 dBm.

    Our R&D also shares that the TX Power is ultimately controlled by the SoftDevice Controller. Thus, even if you made a change that affect the application, it should not have an actual physical impact on signal strength.

    Meanwhile, this hack could be dangerous for your future projects which use a device that does not support +8 dBm.

    Finally, just out of curiosity, I tried your solution on a separated copy of NCS v2.0.2, it has no effect. It doesn't seem that nrf_radio.h is even included in my build. My tests are done with the Zephyr beacon sample.

    If you wish to stay on NCS 2.0.x, our recommendation is that you set TX Power dynamically as I shared in my previous response.

  • In the future I will be converting to the newer NCS, but for now everything is working.
    Thanks for the support.

Reply Children
No Data
Related