BLE Mesh on Nrf52832, Tags are Battery Powered. Advertisement and Sleep on Tag Periodically Required ~2.2uA current consumption.

Hi,

i am using nrf connect extension in vs code with Zephyr OS build v3.2.99-ncs2 and Nrf connect SDK 2.3.0. Our Application requirement as Shown in below Image.

.

Tags: Sleep -> Wakeup-> Transmit Message-> Sleep periodically in interval of 5 min. Tags are Battery Powered. how can i achieve sleep mechanism with nrf52832 soc? system off example only put whole mesh tag in Deep sleep. are there any example in which it starts mesh -> send data-> back to sleep with ~ 2.2uA current consumption?

I use this given code to put normal device in sleep:

k_sleep(K_SECONDS(10)); //sleep
pm_state_force(0u, &(struct pm_state_info){PM_STATE_SUSPEND_TO_IDLE, 0, 0}); //nrfonly switch: 2.2 uA
k_sleep(K_SECONDS(10)); //sleep

Regards

Abhishek

Parents Reply Children
  • Hi,

    Sending 7 bytes every 300 seconds should be no problem for a tag device, either as a Low Power Node (LPN) on the mesh network, or simply as a BLE beacon that gets bridged into the network by the anchors.

    The main consideration would be the total amount of network traffic, all going through the anchors to the gateway. You may start to see some packet collisions when there are multiple packets relayed every second. There are configurations for number of retransmits (for each hop, and for each message), which can be used for improving reliability but at the cost of more overall traffic which again may decrease reliability. This is all a balancing act.

    We have seen some good results from including older values in new messages, so that if one message is lost, the data series is still intact (thanks to the previous data point being sent along with the current one.) This may be a better solution for cases where you need to stream a data series, than repeating each packet multiple times. It does depend of course on the use case, if this is a good solution or not.

    Regards,
    Terje

  • Hi Terje,

    I want to use rf module of nrf52832 without Bluetooth stack.

    Are there any way to get 2 functions 1. rfSend() 2. rfReceive()?

    Rf of nrf52832 -> Direct Communication on Application main.c. Transmit data from one nrf52832 to other via rf.   

    Regards,

    Abhishek

  • Hi,

    If you want to look into using the radio directly, for a completely proprietary protocol, then please start a new thread for that. Here I will continue to answer within the scope of Bluetooth mesh and Bluetooth LE (BLE).

    With your power consumption requirements for the tags, a BLE beacon makes sense. You can check out various scenarios using the online power profiler for Bluetooth LE. Set the role to "Advertising (TX only)" for one-directional messaging from the tags. (I assume the tag doesn't need to receive any information from the rest of the network.)

    Please note that for normal BLE advertising, the maximum advertising interval is around 10 seconds. Since you only need to send once every 5 minutes (300 seconds) I suggest sending a few repeats of the payload using a shorter advertising interval, then no RX for the rest of the 5 minutes interval. Unfortunately the power profiler cannot provide numbers for this type of scenario, so you must do the math yourself based on the idle current and the total average.

    The devices scanning for your beacon must then be in RX all or most of the time, in order to guarantee the beacons gets received.

    Regards,
    Terje

  • Hi Terje,

    Thanks for your support. 

    If you want to look into using the radio directly, for a completely proprietary protocol, then please start a new thread for that. Here I will continue to answer within the scope of Bluetooth mesh and Bluetooth LE (BLE).

    I will start another ticket.

    With your power consumption requirements for the tags, a BLE beacon makes sense. You can check out various scenarios using the online power profiler for Bluetooth LE. Set the role to "Advertising (TX only)" for one-directional messaging from the tags. (I assume the tag doesn't need to receive any information from the rest of the network.)

    it is very Useful for simulations.

    Please note that for normal BLE advertising, the maximum advertising interval is around 10 seconds. Since you only need to send once every 5 minutes (300 seconds) I suggest sending a few repeats of the payload using a shorter advertising interval, then no RX for the rest of the 5 minutes interval. Unfortunately the power profiler cannot provide numbers for this type of scenario, so you must do the math yourself based on the idle current and the total average.

    I get your point.

    Regards 

    Abhishek

Related