One thing that I found counter-intuitive is that building a device that periodically receives data wirelessly is generally more expensive on the battery than a device which periodically transmits.<p>Naively, I assumed that it must take more power to transmit than to receive, which is true on an instantaneous basis, but false on an average basis.<p>A device that wakes up every so often, transmits, then goes to sleep can use very little average power as compared to a device that must constantly have the receiver powered up to listen.
I've always been curious how the Ring video camera can go "Live" 5 seconds after you click a button on a web browser, but still last for months on a small battery.
One thing I've played with recently is the rk3308. It manages to pull only 0.4W idle running debian. 512mb RAM and OS on SD Card.<p>With a 100Wh laptop battery thats 10 days battery life!
A sometimes overlooked resource is your MCU vendor. It may have a power monitoring daughterboard w/ supporting software to help you optimize your battery usage against a development board. The last one I used was Nordic's and it was stellar, free (thanks to the FAE), allowing us to ship a BLE device that would run for at least 1 year on two alkaline AA cells.