Setting Tx Output Power with Zephyr/NCS SDK

Hi,

I'm using nrf54l15 SOC with Zephyr NCS SDK to build a BLE application.  I want to set the radio Tx Power to be set to as high as possible as our device will be enclosed inside a moulding which attenuates power. 

I followed https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/protocols/matter/getting_started/transmission_power.html#changing_tx_power_for_bluetooth_le  and update the prj.conf with 

CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
I am using nrf connect app in my android phone to check for changes to RSSI .. The app wasn't showing any significant change.
So, in the code I logged periodically the radio's TXPOWER register by doing
    LOG_DBG("SM Start:BLE Radio Tx Output Power register value is 0x%x", NRF_RADIO->TXPOWER);
I see that the value reported is 0x13 initially and after a while it becomes 0x18.  But it never becomes 0x3F which is the expected value for the TX Power of +8 dBm. 
I looked upon related posts which suggest me to use set_tx_power.  But based on what I read , it happens after a connection is done, but I need this power change for advertisement as well and across any connection/disconnection events. A static configuration change so that the BLE radio is outputting max power for all its activities. 
Can you please help me with troubleshooting this one and get a solution ?
Thanks
Parents
  • Hi Ramakrishnan,

    Sorry for the delay. To set the Tx power to +8dBm, using the method you described is the right approach:

    CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
    Could you confirm that you are using the CSP variant of the nRF54L15 SoC.? For nRF54L Series SoCs, the maximum TX power depends on the package variant. CSP package variants have a maximum TX power of 8 dBm, while for the QFN package variants it is 7 dBm.
    .  But based on what I read , it happens after a connection is done, but I need this power change for advertisement as well and across any connection/disconnection events
    The set_tx_power function can be called for both advertising and connection handles. See: nRF54L15 change tx power  
    Best Regards,
    Swathy
Reply
  • Hi Ramakrishnan,

    Sorry for the delay. To set the Tx power to +8dBm, using the method you described is the right approach:

    CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
    Could you confirm that you are using the CSP variant of the nRF54L15 SoC.? For nRF54L Series SoCs, the maximum TX power depends on the package variant. CSP package variants have a maximum TX power of 8 dBm, while for the QFN package variants it is 7 dBm.
    .  But based on what I read , it happens after a connection is done, but I need this power change for advertisement as well and across any connection/disconnection events
    The set_tx_power function can be called for both advertising and connection handles. See: nRF54L15 change tx power  
    Best Regards,
    Swathy
Children
Related