This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Reducing the LPN examples power consumption

Hello,

I'm still a beginner with mesh so excuse me, if this might be a silly question or has been answered before. I did not find a post that quite resembled my problem.

So for my use case I want to power my sensor node and display multiple states. (For now implemented as on off server since I haven't wrote my own model yet)

Because the sensor node is supposed to be powered by a battery, I'm trying to use as less power as possible.


So far I have implemented the use case in both regular and LPN + Friend Node.


When I configured the low power node, I expected it to consume less power than the relaying switch application, but so far (even with the friendship established) the low power application shows no difference to the relaying switch application. In fact it even consumes more power than my optimized switch application.


I tried to change the parameters of the friend connection and disabling the LEDs, but it does not seem to make any difference.

#define FRIEND_REQUEST_TIMEOUT_MS (MESH_LPN_FRIEND_REQUEST_TIMEOUT_MAX_MS)
/** The upper limit for two subsequent Friend Polls. */
#define POLL_TIMEOUT_MS (SEC_TO_MS(30)) // changed from 10
/** The time between LPN sending a request and listening for a response. */
#define RECEIVE_DELAY_MS (10) // changed from 100


From my measurements it looks like the application is never entering low power mode, even though the poll timeout is set to 30 seconds.

You can see that the nRF module consumes more power for a short period of time to establish the friendship, but nothing is changing after that.

So my question is what might stop the application from entering low power mode and how to pause the application manually. (1)

And also: In this case the sensor only really needs to send data, not receive any. What is the best way to realize that type of sensor in a mesh? Would it be possible to set NRF52 to deep sleep mode and only wake up by toggling a GPIO, still keeping it a member of the mesh by keeping it al LPN? (2)

Parents
  • Hi Heiner, 

    Which MESH SDK version are you using? V3.0.0 or v 3.1.0? 

    Have you tested the unaltered Low Power node example (experimental) in the Mesh SDK? Does this have a lower current consumption than the regular switch example?

    In this case the sensor only really needs to send data, not receive any. What is the best way to realize that type of sensor in a mesh? Would it be possible to set NRF52 to deep sleep mode and only wake up by toggling a GPIO, still keeping it a member of the mesh by keeping it al LPN? (2)

     Yes, if the sensor nodes do not need to relay mesh packets to other nodes, i.e.e you have a "backbone" of powered nodes that takes care of the relaying, then you should be able to put the sensor nodes in SYstem OFF and then wake them up with a button press. 

  • Hi Bjorn,

    thank you for your reply.

    I actually tried the unaltered Low Power node example from the MESH SDK v3.0.0 first.

    I thought, that it did consume about the same as the regular switch, but I didn't want to make false statements so I went back and checked my logs and it actually seems to consume way less (about 1,9 mA on average).

    However I'm still having trouble see a difference in consumption, whether the LPN has established a friendship or not. (Besides the increased consumption du to the LED).

    Compiling the v3.1.0 Version I had some problems at first. When I try to compile it as it is, I get the Error:

    'FDS_VIRTUAL_PAGES_RESERVED' undeclared; did you mean 'FDS_VIRTUAL_PAGE_SIZE'? in the fds.c file

    Since from my understanding this variable is only important for paging, but not crucial for the mesh, I just changed it to:

    #define FDS:PHY_PAGES_RESERVED 0

    And after that it compiled with no problem.

    put the sensor nodes in SYstem OFF and then wake them up with a button press.

    Is there an example I could look at, on how this is done?

Reply
  • Hi Bjorn,

    thank you for your reply.

    I actually tried the unaltered Low Power node example from the MESH SDK v3.0.0 first.

    I thought, that it did consume about the same as the regular switch, but I didn't want to make false statements so I went back and checked my logs and it actually seems to consume way less (about 1,9 mA on average).

    However I'm still having trouble see a difference in consumption, whether the LPN has established a friendship or not. (Besides the increased consumption du to the LED).

    Compiling the v3.1.0 Version I had some problems at first. When I try to compile it as it is, I get the Error:

    'FDS_VIRTUAL_PAGES_RESERVED' undeclared; did you mean 'FDS_VIRTUAL_PAGE_SIZE'? in the fds.c file

    Since from my understanding this variable is only important for paging, but not crucial for the mesh, I just changed it to:

    #define FDS:PHY_PAGES_RESERVED 0

    And after that it compiled with no problem.

    put the sensor nodes in SYstem OFF and then wake them up with a button press.

    Is there an example I could look at, on how this is done?

Children
No Data
Related