Designing for battery power

That is a problem as the power consumption of microcontrollers and even the I2C bus depends on the supply voltage

The Jordanian solution was quite elegant in this respect as they topped up a secondary capacitor from the primary one to provide a fairly constant voltage supply. This is what the comparator is doing.

Thanks for the challenge on the I2C bus!!
The time the system is awake for is a big factor too. So tight coding, good compilers, variable types, good use of registers and timers are all relevant. Reducing the awake time from 10ms to 9ms is a 10% improvement - one could get obsessive...

There are so many things that can affect the energy used in small periods of activity with external sensors, data transmission and storage etc. that it will be great to have a box with a display that tells you whether your 'improvement' really was or not. I long to get rid of the 'probably' factor!

I'm working on it....