Hello,
i am using nrf52810 and with my custom board and i want to know the tx power level of that and is it possible to change the range please let me know where to get and how to configure it??.
thank tou.
Hello,
i am using nrf52810 and with my custom board and i want to know the tx power level of that and is it possible to change the range please let me know where to get and how to configure it??.
thank tou.
Hello,
You can change they TX power level by using the sd_ble_gap_tx_power_set function. The valid TX power level configuration for the nRF52810 can be seen in its RADIO TXPOWER register documentation.
Best regards,
Karl
Hello ,
thanks for the reply Karl, actually i am using ble_app_template example for advertising the sensor data for connectable beacon since here i have used this function already but i don't think so the value has changed. so for more details please check my code . here the cod
at the starting i have added below line,
static uint8_t m_adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET;
after this in advertising_init function i made this changes,
static void advertising_init(void)
{
ret_code_t err_code;
ble_advertising_init_t init;
memset(&init, 0, sizeof(init));
int8_t tx_power_level = -40;
sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV,m_adv_handle,tx_power_level);
init.advdata.name_type = BLE_ADVDATA_FULL_NAME;
init.advdata.include_appearance = true;
init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;
init.advdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);
init.advdata.uuids_complete.p_uuids = m_adv_uuids;
init.config.ble_adv_fast_enabled = true;
init.config.ble_adv_fast_interval = APP_ADV_INTERVAL;
init.config.ble_adv_fast_timeout = APP_ADV_DURATION;
init.evt_handler = on_adv_evt;
err_code = ble_advertising_init(&m_advertising, &init);
APP_ERROR_CHECK(err_code);
ble_advertising_conn_cfg_tag_set(&m_advertising, APP_BLE_CONN_CFG_TAG);
}
e snippet that i have added ,Hello,
mr.Karl i am still stuck in this concept , i couldn't solve the problem if have suggestions from you as soon as possible its very useful for me .
thank you.
Hello,
You need to add the DEBUG define into the preprocessor windows you showed in your previous comment in order for the logger to produce the error message. Please do this and let me know what this error message says.
Best regards,
Karl
Hello,
yes, i have added the DEBUG in preprocessor window and after build and upload the firmware i tried to debug then i got a error like this .please find the below attachment for more information.

thank you.
Which backend are you using for your logger, RTT?
I am not seeing any error message in your Debug Terminal window - do you have a separate RTT terminal application where the messages are routed?
Best regards,
Karl
Hello ,
mr.karl sorry for the late reply, now i got the exact error and the please find the below attachment for more details.

thank you.
Hello ,
mr.karl sorry for the late reply, now i got the exact error and the please find the below attachment for more details.

thank you.
Hello again,
No need to apologize, it is no problem at all!
It looks like the SoftDevice is rejecting the advertising handle you have passed it. Could you verify that the advertising handle is the correct one?
Best regards,
Karl
Hello,
Actually i have used the advertising handle directly so i don't have much idea on that. In my code i declared it as first ,
static uint8_t m_adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET;
then i have added the code snippet
int8_t tx_power_level = -40;
err_code=sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV,m_adv_handle,tx_power_level);
printf("%d\r\n",err_code);
APP_ERROR_CHECK(err_code);
since if any issue please let me know, i am eagerly waiting for your reply.
thank you.
It seems to me that you are using the advertising library, and you thus do not have advertising handles like this directly.
You should not have to create a separate m_adv_handle variable that will not be used anywhere - this is likely why the SoftDevice rejects it, because it is not set anywhere.
Please try to pass m_advertising.adv_handle as the advertising handle parameter and see if it resolves your issue.
Best regards,
Karl
m_advertising.adv_handle
Yes, without any errors my code is working now but when i kept tx power value=0 dbm in nrf mobile app it shows -48 to -50 dbm . and if i set -20dbm then it shows -68dbm to -70 dbm .i have doubt that all softdevices have 0 dbm as a default tx power value so then i can i calculate it for meters like how dbm is equal to 1 meter.??
thank you.
I am happy to hear that it functions as expected now!
sagarnayakm said:i can i calculate it for meters like how dbm is equal to 1 meter.??
The Received Signal Strength Indicator (RSSI) is dependent on a lot of external factors, not just the TXPOWER, and thus it can not be used as an accurate distance measurement. It is also therefore not possible to calculate it based on the distance, since the value will fluctuate based on things like line-of-sight, RF noise, multipath, obstacles in the environment, etc.
Best regards,
Karl