Slave latency useful if always transmitting data?

Hi,

I am developing the nRF52833 DK with NCS v2.0. The goal of the application is continuously send temperature data (using health thermometer service). I am currently trying to reduce energy consumption as much as possible to save battery life.

I noticed that even when no data is transmitted, there is still energy consumed (spikes in current on oscilloscope) as a result of empty packet exchanges to maintain the connection between peripheral and central. I understand that slave latency can be used to allow the peripheral to skip a number of connection events.

1. What is the benefit of using slave latency? Will it reduce current/energy consumption?

2. If my application is designed to transmit temperature data continuously, will there ever be empty packet exchanges to maintain the connection? If not, is slave latency redundant here or can it be used to reduce energy consumption?

Kind Regards,

Adam

Parents
  • Hello Adam,

    Correct - using slave latency will allow the peripheral to skip a connection event (or multiple) if it does not have any new data to transmit, which will reduce your over all power consumption by reducing the number of empty packets being sent in order to maintain the link.

    If you are certain that there always will be data ready for transfer when a connection event is upcoming then the peripheral will always transfer in these events, and so there will be no impact of enabling slave latency. In this case the slave latency would indeed be redundant.
    In this case your best bet would be to increase the connection interval as much as possible, in order to decrease power consumption by the radio.
    Having slave latency enabled does not cost any additional power, so if there is a chance that you will not have data to send for some time, then it would be beneficial to enable slave latency.

    Best regards,
    Karl

Reply
  • Hello Adam,

    Correct - using slave latency will allow the peripheral to skip a connection event (or multiple) if it does not have any new data to transmit, which will reduce your over all power consumption by reducing the number of empty packets being sent in order to maintain the link.

    If you are certain that there always will be data ready for transfer when a connection event is upcoming then the peripheral will always transfer in these events, and so there will be no impact of enabling slave latency. In this case the slave latency would indeed be redundant.
    In this case your best bet would be to increase the connection interval as much as possible, in order to decrease power consumption by the radio.
    Having slave latency enabled does not cost any additional power, so if there is a chance that you will not have data to send for some time, then it would be beneficial to enable slave latency.

    Best regards,
    Karl

Children
Related