Due for very low power applications?

I thought this would be a FAQ, but I can't find the answer anywhere. I have an application which needs to run 1 year+ on 2xAAA or a CR2032 coin cell. The application spends 99.999% sleeping (requiring only to respond to either internal wake up timer or external interrupt). Is the Arduino Due suitable for this type of application? When the board is sleeping (internal timer running, responding to external interrupts) what is the current draw?

I've noticed that many similar boards (eg TI's Stellaris Launchpad), which having an MCU capable of this requirement, have power regulators and power LEDs which defeat this mode of operation.


I got an answer to that question here:

Seems the minimum current draw is in the order of ~5mA which wouldn't make it very suitable for very low power applications.

From experience with other boards, the low power capability of the MCU is negated by power regulators and power LEDs etc.

This is correct. Arduinos are development boards/prototyping platforms and not specifically designed for low power applications. One common approach is to design a circuit specific to the application. The ATmega328P used in the Uno can easily achieve the 0.1µA specified in the datasheet. I don't have a Due, if I'm reading the right datasheet, the SAM3X8E can get down to 2.5µA. My gut is the ARM processor isn't targeted as strongly towards ultra low-power applications as the 8-bit MCUs, but I'm just talking through my hat. Still, if I didn't need the compute horsepower, I might tend towards an 8-bit device.

A year on a CR2032 may be stretching it, 2xAAA might even be a challenge depending on requirements, other circuitry involved, etc. Is "99.999%" the actual expected number? If it were me, I'd do my homework and make sure I had a very good estimate of the duty cycle.

The ATMEL SAM3X present on the Due is a Cortex-M3 based device. This means you have some low power modes available: Sleep, Wait and Backup.
These modes are described in the chapter 5.5 of the datasheet. The associated power consumption can be found in chapter 46.3.

I'm pretty sure you would be able to obtain a long life time on battery if you consider the Backup mode.

On what kind of event do you want to wake up your system? External input, internal timer?

Due is by design a non low power device. I made some measurements at 3.3V, and it consumes 12mA in backup mode and around 80-90mAh in active mode, which is HUGE.

I really don;t know why does have this power consumption, since at 3.3V it does not powers the USB programmer since this one is powered at 5V.

I would try to start with a design that is designed for low power, but it might be simpler and almost as good to control the Due power with a small extra circuit. This type of thing is described here Design of the Extended Battery Life Power Controller for the Arduino | Alan Mitchell

Atmel and Microchip do some low power 8 bitters which could act as power controller. If you have the electronics-fu you could probably get down to nA or something, but for 1-2uA having a micro is a lot more flexible to run timers, wake on int, shutdown request etc.

Of course the Due would need to store its state before powering off, there are a number of ways to do that.

Yes, it would be ideal to have a brand new board. However, this could be too expensive.
However, there is the Digilent Max32 which has the same specs like the Due. I am waiting an email from the support team with some real power measurements.

There are a lot of ways to do a power saver processor with the Atmega328, but the scope is the SAM3X processor for me.

here are discussions on low power of ARM-based teensy3

As others have said, the Due is not meant to be used for very low power applications.

I've done some really low power devices before and it can be tough. Any tiny little detail can throw you off. Two big things that will kill your idle current are voltage regulators and pull up resistors. The due has both types of problem. I'm sure that they didn't pick the lowest quiescence current regulator possible. Voltage regulators can even leak current if you bypass them and feed the board directly from a different power supply. Additionally, I believe that the Due has pull ups on the first I2C hardware pins. Another issue is that it probably leaves all sorts of peripheral hardware in an active state. Even if it doesn't, processors tend to leave their I/O pins in the state they were left in. Pins pulled high will continue to be pulled high, etc. This means you have to fix this before sleeping. It's all a large amount of work to make sure it works properly. The Cortex M3 isn't the most power efficient processor out there but one bonus is that running faster means you can do more work more quickly and go to sleep faster. Still, for super low power applications an 8 bit processor is probably the way to go.