ATmega32U4 low power

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)

CJMCU-Beetle-ATmega32U4.jpg

boards.txt (1.04 KB)