I'm working on an Arduino project that will likely rely on a 9v for its power. If I can get at least 40 hours of power, I'd be happy with that. Here's why I think it's doable:
First, rechargeable 9v lion batteries nowadays have substantially higher capacities than even a few years ago. I see one on Amazon rated for 5400mWh!
Of course, I'll want to reduce power consumption as much as possible, so I'm thinking an Arduino micro would be the best choice (though I will be attaching a shield to it, which will add to the current draw.
My understanding is that the linear regulator on the Arduino is capable of reducing the 9v down to 5v, but at great expense to efficiency through heat loss. My thinking was to bypass the linear regulator entirely, and rely on a much more efficient buck converter to adjust the voltage down to 5v.
Thinking it might be possible to reduce the core clock as well, and run the Arduino at 3.3v instead of 5.
Anything I should consider that I might have missed? I'm excited for the project, but definitely need to get the power consumption as low as possible so I can run it off a 9v and not be constantly swapping/charging.
Like someone else said, pull all the LEDs. There is no point to them if you don't need them. Just because a pin is set low doesn't mean it's completely off, so cut any unused paths to ground to be sure. LEDs still have to reach a specific forward voltage to turn on, but they could still be passing a fractional amount of current.
I believe the internal pull-up resistors are 10k, so if they are enabled, you can disable them and save a few more fractional pennies. (Maybe 3uA per pin if the pullups were enabled to start. Lulz.)
From a software perspective, you just need to keep the MCU in sleep mode as much as possible. Rely on the internal timers to wake up and sleep the MCU and make sure that the main loop is looping as slowly as possible.
That MCU should have an internal oscillator, so test it to see if it saves you any power. Turning it on and disabling the external oscillator should drop the clock speed down to 8mhz and might save you a bit more juice.