Power consumption of mesh_chat after mesh_suspend

Hi,

I am using mesh_chat example in ncs v2.2.0

After initializing bt and mesh, i used the self-provisioning part from self_provisioner example to provision itself.

So i didn't even use  "bt_mesh_prov_enable" in it.

And after 5 seconds of K_sleep i use the bt_mesh_suspend().

After suspending mesh the board consumes about 40-45uA and also an 1 sec interval task is running even after that

What could it be running possibly? and how to stop that.?

Each of the peak has 3 individual peak's in it with approx. 7mA

  • I see that this happens only after provisioning, before provisioning it takes only about 3-4 uA when suspended.

    I tried by also provisioning manually using nrf_mesh android app (without using self_provision as mentioned earlier), but it resulted the same.

    On the prev. image that i posted, it took around 7mA for one individual peak in which i had set CONFIG_BT_CTLR_TX_PWR_PLUS_8=y on prj.conf.

    I tried removing it, the results are the following

    Now each individual peak takes around only 2.6 mA.

    Is there any sort of adv. with 1sec interval happening in there?

    Could someone guide me on how to pause or stop this.

    Thanks.

  • Hi Vignesh, 

    The three peaks you showed looked like the device was sending advertising packets (advertising usually done with 3 packets on 3 channels) . What's the interval between the peaks in this trace ? 


    I would suggest to try turn off GATT Proxy and PB GATT for testing: 

    CONFIG_BT_MESH_PB_GATT=n
    CONFIG_BT_MESH_GATT_PROXY=n

    From what I can see inside 
    bt_mesh_suspend() it doesn't seem GATT proxy advertising is stopped. 
  • What's the interval between the peaks in this trace ? 

    The interval is 1 second.

    I would suggest to try turn off GATT Proxy and PB GATT for testing: 

    CONFIG_BT_MESH_PB_GATT=n
    CONFIG_BT_MESH_GATT_PROXY=n

    I tried and it worked. Now it consumes 4-5 uA. But I need to connect to the device once it wakes up from sleep.

    It is possible to turn off and on GATT at runtime??

    Thanks.

  • Hi Vignesh, 

    I'm checking with the Mesh team to find what's the proper way of turning that off in runtime. I will get back to you when I have any update. 

  • Hi Vignesh, 
    The information I got from the mesh team is that it's correct that suspending GATT advertising is not supported right now. So there isn't an API that you can call to dynamically stop and start GATT connectable advertising, even if you can disable proxy feature using bt_mesh_gatt_proxy_set . As you can find in the link, it will still continue to advertise connectable advertising. 

    What I can think that you can try is to try using bt_disable to disable BLE in general. Then you can call bt_enable and re-init mesh. I haven't tried but I think it worth to try. 

    Other option is when the device need to sleep, simply do a soft reset and then when booting up, don't enable BLE and put the device to sleep mode, when you wake up from sleep you can start BLE and mesh. 

Related