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

BLE Radio Off

Hi, 

I am developing a product using nRF2840 which performs periodic sensor readings.

Due to the nature of the sensor I'm reading from ( sensitive to noises and placement  ) , I have to make sure radio is off during sampling. 

If timing the sampling between connection interval, does that guarantees radio is powered off ? ( no radio activity what so ever ) 

Thanks, 

Ran

Parents
  • Hi,

    The radio will never be on between connection events provided that you do not scan or advertise. You can also use the Radio timeslot API if you want the SoftDevice to allocate time slots for you where it is guaranteed that it will not use the radio.

  • Einar - as an alternative for using Radio timeslot API , can I turn off BLE ( sd-power-off ) for a brief period, and then turn it on again ( with fast advertising after power on ) - do you see a problem with that ? 

  • Yes, you can do that.

    However, it has some downsides compared to using timeslots. The most important is probably what you mentioned already, that the connection will be terminate for a period. Also, initializing the SoftDevice after reading takes some time, leading to higher average current consumption if done often in addition to what follows from the fast advertising after re-configuring the SoftDevice. Lastly, many SDK libraries are not designed to handle SoftDevice being disabled and reinitialized, and this is not a scenario that is used while testing the SDK, so you might get some problems that you need to solve. Lastly, I do not see any benefit of disabling the SoftDevice instead of using a timeslot (unless you need a longer period of time without SoftDevice interruption, longer than what can be guaranteed with timeslots).

Reply
  • Yes, you can do that.

    However, it has some downsides compared to using timeslots. The most important is probably what you mentioned already, that the connection will be terminate for a period. Also, initializing the SoftDevice after reading takes some time, leading to higher average current consumption if done often in addition to what follows from the fast advertising after re-configuring the SoftDevice. Lastly, many SDK libraries are not designed to handle SoftDevice being disabled and reinitialized, and this is not a scenario that is used while testing the SDK, so you might get some problems that you need to solve. Lastly, I do not see any benefit of disabling the SoftDevice instead of using a timeslot (unless you need a longer period of time without SoftDevice interruption, longer than what can be guaranteed with timeslots).

Children
Related