>devices reduced their reporting rate to suit the charge they had
You mean as in read battery level and adjust "next wake time" accordingly? That's an interesting feature, and would probably take care of most of it.
I was thinking much less dynamic - ie, plan for worst case and hard-code the sleep time accordingly. But it makes sense to make hay while the sun shines, or in this case send more updates while the sun is shining on the solar cell.
My more direct concern with 3 and 4 was more outside of the control of the microcontroller: can we keep the battery controller from providing any power at all until a minimum threshold is achieved? ie, if battery pack voltage drops to the minimum 3.2volts, shut off power to the microcontroller, and then don't provide power again until it's back up to, say, 3.4 volts. I suppose a very power-miser type controller could control that part (digispark maybe?). So the battery would need enough power to run the digispark, and the digispark would turn on a relay if it figures there's enough power to run the ESP8266. I'm pretty sure I've seen battery protection circuits out there that will avoid over-discharge that can shut off power to the digispark in those cases.
Top Comments