Hi I'm building a project that will use an Arduino Mega running on batteries and it will be using sleep mode to reduce power consumption - set_sleep_mode(SLEEP_MODE_PWR_DOWN); - to reduce the system power consumption. I've noticed that the Mega 2560 uses quite a bit more power when I put it to sleep, than does a Mega 1280 - 30 mamps vs. 17 mamps. Further, a similar difference also occurs in the power consumption of a sleeping UNO when compared the Duemilanove - 32 maps asleep vs. 15 mamps. Those numbers are for a bare Arduino with an Adafruit Data Logger shield (SD card and real time clock) running from an external power supply (and the USB cable disconnected).
I presume the two newer boards (2560 and UNO) have higher sleeping power consumption because the new 8U2 controller for the USB uses a lot more power than the FTDI chip. Given that the 8U2 controller is programmable, is there any way to put the USB system to sleep? Since I need to use the USB to talk to the instrument periodically, I'd have to be able to wake the 8U2 up periodically to check for incoming comms. Maybe have the USB run on a reduced duty cycle of listening for comms 10 seconds of every 2 minutes, or such.
Any advice would be appreciated. I'd like to minimize the sleeping power drain, as a 1280 in sleep mode uses about 20% of my power budget, but that goes to 40% with a 2560 and really starts to impact my operating lifetime (unless I just throw more batteries in, which is the fall back plan).
Thanks for any input.