7

I'm looking at making a remote control for a custom IoT device using Bluetooth low energy (BLE) and I want the battery in the remote to last a very long time (primary battery, non rechargeable) so I don't want the remote to draw power (at all) except when it's used.

My issue is that as a remote control Bluetooth usually takes a few seconds to pair once activated. Is there a way to mitigate that few seconds of lag? Everyone hates lag in a remote.

Helmar
  • 8,450
  • 6
  • 36
  • 84
Josh Wales
  • 93
  • 3

1 Answers1

5

If two devices are already bonded and one of them is mains powered, you should be able to establish the connection in way less than 1 sec given that the mains powered device is constantly scanning or advertising, you're using directed advertisements, white listing, and low connection intervals in the first second.

Another option is to keep the connection alive at all times while maintaining a low latency. The maximum recommended supervisory timeout is 15 seconds, this means that the Central must receive a packet from the Peripheral at least every 15 seconds or else it will drop the connection. On the other hand you don't want to have a connection interval of 15 seconds, and that is when you use Slave Latency, this enables the Peripheral ignore X amounts of connection interval without losing the connection to its Central. So with a Connection interval of 500ms and a slave latency of 30 you will be asleep (15000-1)/15000 = >99.99% of the time and have 500ms latency when you do want to communicate.

I estimate <2µA average current to keep the connection alive. You will have to compare it with the average current consumption of an fast re-connection style, but I doubt that keeping the connection alive consumes more energy on average than re-connecting on demand.