Hello,
I want to set the transmitting power of the advertising packet. How can I set the TX power?
I am using nRF Connect SDK 2.5.1 in Visual Studio Code.
Regards,
Sri
Hello,
I want to set the transmitting power of the advertising packet. How can I set the TX power?
I am using nRF Connect SDK 2.5.1 in Visual Studio Code.
Regards,
Sri
Hi
You can change the TX power with the following Kconfigs CONFIG_BT_CTLR_TX_PWR_xx or CONFIG_BT_CTLR_TX_PWR_ANTENNA.
Regards
Runar
Hi, I have used the CONFIG_BT_CTLR_TX_PWR_xx for power setting. I have done a current consumption test to confirm the change in output power. I found a peculiar result for negative power settings, there are multiple current consumption peaks. For each advertisement taking different current.
My Observations:
Tx Power | Tx - Peak | Tx - Avg | Idle | |||
8dBm | 28.62mA | 15.65mA | 776uA | |||
4dBm | 19.59mA | 12.38mA | 774uA | |||
0dBm | 13.71mA | 8.2mA | 774uA | |||
-4dBm | 14.61mA | 6.91mA | 774uA | 8.48mA | 6.55mA | Multiple amplitude peaks - unknown reason |
-8dBm | 14.47mA | 6.53mA | 774uA | 8.36mA | 6mA | Multiple amplitude peaks - unknown reason |
-12dBm |
Skipped
|
|||||
-16dBm | ||||||
-20dBm | 14.75mA | 5.48mA | 774uA | 9.31mA | 4.92mA | Multiple amplitude peaks - unknown reason |
So is this the expected behavior or is there a issue?
I want to reduce my Tx Current consumption. I read that if I enable DC/DC it will reduce the current. How do I enable it?
I also want to put my device to sleep after stopping advertisement and in between advertisement to save power. How do it do that?
TIA
Sri
Hi Sri
You can see here what I expect in terms of current draw when using the radio. Overall the idle current is way to high so i expect you don't have things down when not transmitting.
Have you followed the setup from here when you measured your power? Could you also post your application?
Regards
Runar
I have custom board. So cant follow the setup from the reference but followed the setup given in PPK user guide. I want to change the Power from LDO to DCDC mode. Can you help me with that? How should I configure the code?
I am using the below code from nRF Academy
/* * Copyright (c) 2023 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ #include <zephyr/kernel.h> #include <zephyr/logging/log.h> /* STEP 3 - Include the header file of the Bluetooth LE stack */ #include <zephyr/bluetooth/bluetooth.h> #include <zephyr/bluetooth/gap.h> #include <dk_buttons_and_leds.h> LOG_MODULE_REGISTER(Lesson2_Exercise1, LOG_LEVEL_INF); #define DEVICE_NAME CONFIG_BT_DEVICE_NAME #define DEVICE_NAME_LEN (sizeof(DEVICE_NAME) - 1) #define RUN_STATUS_LED DK_LED1 #define RUN_LED_BLINK_INTERVAL 1000 /* STEP 4.1.1 - Declare the advertising packet */ static const struct bt_data ad[] = { /* STEP 4.1.2 - Set the advertising flags */ BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_NO_BREDR), /* STEP 4.1.3 - Set the advertising packet data */ BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN), }; /* STEP 4.2.2 - Declare the URL data to include in the scan response */ static unsigned char url_data[] = { 0x17, '/', '/', 'a', 'c', 'a', 'd', 'e', 'm', 'y', '.', 'n', 'o', 'r', 'd', 'i', 'c', 's', 'e', 'm', 'i', '.', 'c', 'o', 'm' }; /* STEP 4.2.1 - Declare the scan response packet */ static const struct bt_data sd[] = { /* 4.2.3 Include the URL data in the scan response packet */ BT_DATA(BT_DATA_URI, url_data, sizeof(url_data)), }; int main(void) { int blink_status = 0; int err; LOG_INF("Starting Lesson 2 - Exercise 1 \n"); err = dk_leds_init(); if (err) { LOG_ERR("LEDs init failed (err %d)\n", err); return -1; } /* STEP 5 - Enable the Bluetooth LE stack */ err = bt_enable(NULL); if (err) { LOG_ERR("Bluetooth init failed (err %d)\n", err); return -1; } LOG_INF("Bluetooth initialized\n"); /* STEP 6 - Start advertising */ err = bt_le_adv_start(BT_LE_ADV_NCONN, ad, ARRAY_SIZE(ad), sd, ARRAY_SIZE(sd)); if (err) { LOG_ERR("Advertising failed to start (err %d)\n", err); return -1; } LOG_INF("Advertising successfully started\n"); for (;;) { dk_set_led(RUN_STATUS_LED, (++blink_status) % 2); k_sleep(K_MSEC(RUN_LED_BLINK_INTERVAL)); } }
How can I put my nRF52833 in "ION_RAMOFF_EVENT" or "ION_RAMOFF_RTC". I need it to sleep for 5 mins and wake up
Using the DCDC should be as easy as using the Kconfig option CONFIG_SOC_DCDC_NRF52X=y
What is the usecase for your application? I would recommend reading Einars reply https://devzone.nordicsemi.com/f/nordic-q-a/99280/sleep-modes-system-on-example-for-nrf52833-with-nrf-connect-sdk-2-3-0?ReplySortBy=CreatedDate&ReplySortOrder=Ascending regarding power modes
Regards
Runar