BLE Mesh Deep Sleep and RTC Setup

Hi,

I am using Mesh of 30 nodes with avg Current Consumption 6mA and 2mA in sleep mode(by calling k_sleeps) , timer is 1s timer is running to keep Real Time incremented.

Want to achieve Deep Sleep current in micro amps, while in deep sleep time needs to be incremented.

I thought RTC would consume less power than timer(if i am correct?) but not able to get RTC working , also no sample code available.

I also tried to reduce the Tx power assuming it will save power(need 6 to 7 mtr range only) but that also doesn't seem to working

Please help to get RTC working and reduce TX power to save energy and other available configs for low power in deep sleep.

Thanks in advance!

Edit:

Using SDK and Toolchain v2.9.0

  • To be sure, are you using Power Management, pm, or Device Power Management, pm_device?

    I should have been more specific, Using  pm_device  as well as Power Off API. Currently I have two mode , Normal Mesh(5mA), PowerOff(200uA). But need one more mode Low Power(1.5mA to 2.5mA) if Possible?

    What is the problem when you run bt_mesh_lpn_set()?

    By Setting LPN, Current Reduces(1.7mA, when no other node in proximity) but if any node available it seems to consider that node as friend(even if i don't set that as friend) when clearing LPN , I am not able to come back to normal.

    Note: Friend Feature is not needed for now, setting LPN only to achieve lower Power.

    So if without LPN, there are ways to reduce power consumption from 5mA Please suggest?

    I am also tried reducing tx power (CONFIG_BT_CTLR_TX_PWR_MINUS_40=y) to -20,-40 and other values but its not working(warning says got value "n").

  • AP said:
    I should have been more specific, Using  pm_device  as well as Power Off API. Currently I have two mode , Normal Mesh(5mA), PowerOff(200uA). But need one more mode Low Power(1.5mA to 2.5mA) if Possible?

    Is 200uA the entire board, or just the nRF SoC? If it's just the nRF chip, then that's really high. You will want to check and make sure every peripherals is disabled. That's unless you need to keep something running, of course.

    AP said:

    By Setting LPN, Current Reduces(1.7mA, when no other node in proximity) but if any node available it seems to consider that node as friend(even if i don't set that as friend) when clearing LPN , I am not able to come back to normal.

    Note: Friend Feature is not needed for now, setting LPN only to achieve lower Power.

    So if without LPN, there are ways to reduce power consumption from 5mA Please suggest?

    You seem to misunderstand the LPN feature. LPN is a BT Mesh feature that needs a Friend Node to work, always.

    If a node does not support and enable LPN, it's really hard to get good power consumption with it, because by default, the radio would be running almost 100% of the time to minimize packet losses.

    If you don't want to use the LPN feature, the best you can do is suspend all peripherals and ensure all threads go to idle to achieve System ON Idle.

    Also 1.7mA in LPN mode is really high. Is this average current over some time?
    Please look into the current measurement in details and see what the actual current when the LPN node is sleeping is.
    You will also want to try measuring the LPN configuration with the Bluetooth Mesh: Light switch sample to have a reference point.

    Please also keep in mind that a node spends a lot of time in scanning. You can find the expected current for scanning listed here: Technical Documentation.

    AP said:
    I am also tried reducing tx power (CONFIG_BT_CTLR_TX_PWR_MINUS_40=y) to -20,-40 and other values but its not working(warning says got value "n").

    This is an option but note that it will significantly reduce your range. It also doesn't have as much effect on Mesh devices, because a significant part of the power consumption comes from radio RX, and lowering TX Power only helps with TX.

    As for configuration, you need to check which TX Power your device support and only use the supported power level. Also try using CONFIG_BT_CTLR_TX_PWR_ANTENNA. Bot the TX_PWR_ANTENNA and the TX_PWR_X configurations work, but the TX_PWR_ANTENNA configuration takes priority.

    Note that both of them changes the TX Power statically/permanently. If you want dynamic TX Power, you will need to look into the HCI Power Control sample.

  • Hi,

    Using system off mode currently for sleep and external RTC via UART to wake mcu up via alarm.

    I have gone through the suggested sdk fundamental course for I2C and using provided example only, I2c  works with cpuapp but not with cpuapp_ns, Please help to resolve.

  • Hello,

    Since the issue is getting I2C working with cpuapp_ns, it is completely different from the topic here. Please open a new DevZone case for that, because we try to keep each case focused on one topic.

Related