Dear community,
I'm trying to achieve a maximum possible power saving configuration with ATmega32U4 + nrf24. To eliminate the effect of the nrf24 I've disconnected it entirely and focusing on ATmega32U4only, but, despite all the methods I could find on the net (including Nick Gammon's Power post, as well as disabling USB sub-systems explicitly), I can't get any lower than 7uA @ 3V3. According to the datasheet pg. 397 it should be possible to reach ~0.4uA in Power Down with WDT disabled, BOD disabled - quite similar to what you can have with ATmega328p.
In a similar setup with ATmega328p I'm getting sub-uA consumption pretty much in line with the datasheet: WDT off (wake-up on interrupt), pins as input w/o pull-ups, BOD off in SW (LowPower328.ino attached). And 4uA @ 3V3 with WDT enabled.
Concrete configuration:
- lfuse:w:0xe2:m -U hfuse:w:0xd8:m -U efuse:w:0xcf:m => Internal RC 8MHz, BOD disabled (not good for production, but no way to turn off in SW and I'd like to try it as boundary condition)
- Optiboot compiled for ATmega32U4 @ 8 MHz (optiboot_atmega32u4.hex) => attached
- CJMCU Beetle (see CJMCU-Beetle-ATmega32U4-pinout.jpg) with the following modifications:
○ Removed R4, R5 from D+/D- lines
○ Removed Z1, Z2 from D+/D- lines
○ Powering on VCC from FTDI @ 3V3
○ For test purposes nothing else connected to the pins - Attached LowPower.ino sketch based on LowPower.cpp and Nick Gammon's insights. Note that, however, for ATmega32U4 additional USB power-off instructions were needed - otherwise the consumption is significantly higher. The sketch doesn't necessarily restore all registers correctly after the sleep and there is no useful interrupt handler routine to handle the wake-up, but I would like to ensure a nanoamp consumption comparative to ATmega328p first before I focus on the functional correctness
Any ideas how to reduce the consumption further?
Thanks!
Sinisha
LowPowerSketches.zip (2.76 KB)
optiboot32u4.zip (115 KB)

boards.txt (1.04 KB)
