Need long battery life with fast connection interval

We need fast response from peripheral to central. That means we need a fast connection interval. We are using less than 100mS. But that results in an unacceptable battery life. We are trying different strategies to address this problem. One idea is to have a longer connection interval after some period of non-use. But this takes several seconds to renegotiate the connection parameters. Anyone got some idea about this?  I would think this is a common problem that has a solution.

  • Hi

    Have you checked out my colleague Scott's current consumption guide where he goes through all the most common ways to optimize power consumption on nRF52 designs? The connection interval should not be detrimental to your current consumption, so please check out the guide for some suggestions. What is I.E. the connection supervision timeout in your application and advertising interval?

    Best regards,

    Simon

  • We have a small battery in the peripheral, about 150-200mAh. If we have a 100mS connection interval, that is about 44uA (According to online power profiler), even when using all the normal power saving efforts, the life is too short. About 70 days battery half life. We would like to have at least double that.

    How would the supervision timeout effect the power consumption?

  • Hi

    Do you plan on the device being constantly connected to the central device, or to disconnect and go to sleep between connections? If the supervision timeout is lower the device will disconnect quicker, and alternatively go to sleep quicker. When the device is asleep the current consumption will be way lower (check out the sleep scenarios for the nRF52832 in the product specification).

    Best regards,

    Simon

  • Have you already considered slave latency? That might be enough for your power requirement.

    A 100ms interval with a slave latency of 10 would mean you only need to communicate once per second. And there would be no need to renegotiate, it would be up to the peripheral to decide whether to communicate every 100ms or not.

  • Yes we are trying slave latency. For some of the peripherals, its fine, because they do not receive data, only send as required. We've got another peripheral however, that will need to receive data. So we are thinking about some scheme where maybe we can adjust the slave latency depending on how often its used. If there is for example, 1 hour of non-use, then we increase the latency. That will result in a small delay, or maybe even a missed command, but that's ok. After some activity then the latency goes back to 0 until there is another lapse in use.

    We can't have some of the devices go to sleep, because they are not easily accessible. We must maintain some connection.

Related