The “powerdown_demo.pde” sketch in this recent post draws 20 µA, which surprised me a bit…
A while back, I got it down to a fraction of that, by turning off the brown-out detector (BOD) through a fuse bit on the ATmega. That’s a little circuit which prevents the ATmega from coming out of reset and doing anything if the voltage is too low.
As it turns out, you can turn off the BOD in software, but only for sleep mode. The reasoning being that there’s no point in protecting the processor from going berserk while it’s not doing anything in the first place…
Well, my code to turn off the BOD was wrong. You have to do this right before going to sleep. Here’s the updated powerdown_demo.pde sketch:
(correction – I mixed up my bits: change “PINB |= …” to “PINB = …” or “PORTD ^= …”)
Now we’re cookin’ again!