Howdy DevZone! I'm brand new to BLE, and have some beginner questions on the best way to architect a project for ultra-low power consumption.
Here's what I want to make:
Two battery-powered nRF52840s, one with a button and one with an LED. Both are idle until the button is pressed, waking up the Sender. The Sender tells the Receiver to light up the LED for a second, and then everything shuts off. Pretty simple stuff.
What I'm wondering is, what is the best BLE setup to minimize the idle power usage on both sides? Which device should be Central, which should be Peripheral? Should I use a Broadcast model instead? How does Connection Interval play into all of this? What sort of sleep modes can I use with the nRF52840 to conserve energy while still remaining BLE responsive?
Here are some more details that might affect the architecture:
- The button will only be pressed a few times per day. Otherwise the two devices do nothing. There's no need to maintain a persistent connection or share status between them except after a button press.
- It's acceptable to add up to a second of latency between button press and LED light-up, if it reduces overall power consumption.
- The communication needs to be reliable; if the Sender and Receiver are within BLE range of each other, the LED needs to light up (as opposed to a "best effort, 50% success" setup).
- Peak power consumption (after button press) isn't a concern, just overall idle-state consumption / battery drain.
- I'm open to using ANT or Thread if they're better suited for this specific application.
Thank you so, so much!