Bluetooth mesh: How to reduce the power consumtion.

Dear all,

I am developing a bluetooth mesh sensor with the NRF52833 and NRF Connect SDK.

The sensor is battery powered. So the power consumtion must be as low as posible.

My sensor have two working mode: Normal and Sleep.

In Sleep mode, the current is about 3uA.

In Normal mode, the current is from 11 to 12 mA with the node is provisioned.

So I want to know which configuration affect the current of a SOC run bluetooth mesh.

Best regards.

Parents
  • Hi

    To start up a low power node you need to add the following configs in your projects config file: 

    CONFIG_BT_MESH_LPN_AUTO

    CONFIG_BT_MESH_LPN_AUTO_TIMEOUT

    CONFIG_BT_MESH_LPN_RETRY_TIMEOUT

    You can for example add it to the Mesh light switch sample project, but we don't have a specific sample project for friend or low power nodes in the nRF Connect SDK yet. It should indeed be possible get the sleep current way below 1mA, are you able to set it up with a friend node correctly, so that it can actually go to sleep, and how do you put it to sleep after the friend node is configured?

    Best regards,

    Simon

Reply
  • Hi

    To start up a low power node you need to add the following configs in your projects config file: 

    CONFIG_BT_MESH_LPN_AUTO

    CONFIG_BT_MESH_LPN_AUTO_TIMEOUT

    CONFIG_BT_MESH_LPN_RETRY_TIMEOUT

    You can for example add it to the Mesh light switch sample project, but we don't have a specific sample project for friend or low power nodes in the nRF Connect SDK yet. It should indeed be possible get the sleep current way below 1mA, are you able to set it up with a friend node correctly, so that it can actually go to sleep, and how do you put it to sleep after the friend node is configured?

    Best regards,

    Simon

Children
  • Dears, 

    Thank for your prompt response

    are you able to set it up with a friend node correctly

    Yes, I think my setting is correct. I had a node that enable friend feature. And in the LPN node, I saw there is log that said the friend ship is established. And when I get the status of the sensor model of the LPN node, the app must wait for sometime before it could get the data.

    how do you put it to sleep after the friend node is configured

    This is new, I do not know if I must put the LPN to sleep after friend ship established.

    Currently, my solution is not use the LPN feature, but put the device into sleep mode and wake up via GPIOs.  

    const struct pm_state_info si = {PM_STATE_SOFT_OFF, 0, 0};
    pm_state_force(0, &si);

    I already disable Relay feature, Proxy feature.

    I wonder, why the bluetooth mesh uses so much current, even when it not transmit any thing?

    Is that because of the bluetooth mesh node must always be listening to other node.

    My device is not required to listen to any message.

    So can I turn off the bluetooth scan for lower current consumtion?

    Best regards.

  • Hi

    If you are trying to turn the device OFF while also keeping the radio on then it's no wonder the device draws a lot of current, as it probably wakes up again straight afterwards to scan. You can't be in system OFF and scan at the same time, as the radio and any other peripheral requires the CPU to be ON to run, so the device is not in system OFF if you see it drawing 2mA. If you do turn it off while in a Mesh network, it will disconnect and fail pretty quickly, as the other nodes will recognize that it doesn't reply and then throw it out of the network.

    When configuring an LPN node it will set up a set time when it will wake up to communicate with the friend node to get all the data it needs before going back to sleep until the next time it is supposed to communicate with its friend. If it's not required to listen to a specific message, are you sure a Mesh network is what you're looking for in your application? 

    Maybe if you can explain what your end goal is, we can try to find the type of network that suits your use case best?

    Best regards,
    Simon

Related