Arduino Pro Mini: Power consumption

With my low-power objective, I had to try to find ways to save power. For that, I tried different solutions to custom the Arduino Pro Mini.

Important remark

As I'm doing all this as a hobby, I don't have the appropriate measuring devices.
The goal of this post is not to procure accurate measurements but only to compare the consumption of my device with different tweaks.

Presentation

I made the measurements with two Chinese clones of the Arduino Pro Mini 3.3V 8MHz.

  • Arduino Pro mini 3.3V @ 8Mhz "RobotDyn", in black, cheap and well finished;
  • Arduino Pro mini 3.3V @ 8Mhz "The Simple", in blue, the most common clone on the Internet (cheapest).
Arduino Pro Mini fronts
 
Arduino Pro Mini backs

Remark: The serial pins (at the top) are not in the same order on the two boards.

Arduino Pro mini on breadboards

Remove the power LED

It was my first attempt. And sadly, I read somewhere that cutting a trace on the board was working... It was not a good idea ! After that, I was unable to program the Arduino anymore.

Arduino Pro Mini: do not cut !!

To correct this mistake, I had to remove the LED, and make a small bridge with a small wire to restore the cut trace.

To avoid this, you should simply create a solder bridge between the two sides of the SMD LED (to be able to heat them at the same time), and push the led aside. After that, clean the area with a solder pump if needed.
I admit that I do not succeed at each time (sometimes, the LED burns under the effect of the heat).

RobotDyn

LED to remove

The simple

LED to remove

Remove the regulator

To go below 3.3V, you can remove the regulator. Moreover, it will save even more power.

RobotDyn

Regulator to remove

The simple

Regulator to remove

Measurements

Those measurements are made (without any programmer attached):

  • with an empty sketch: ACTIVE mode
  • with a sketch using the LowPower library: POWER DOWN mode
// - Empty sketch for 'active' mode
void setup() {  
}

void loop() {  
}
// - Sketch for 'power down' mode
#include "LowPower.h"

void setup() {  
}

void loop() {  
  // Sleep for 8 s with ADC module and BOD module off
  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}

 

The simple @ 8MHz

StateInput voltagePower LEDRegulatorConsumption
Active3.3V on Raw pinOnWith4.29mA
Active3.3V on Vcc pinOnWith5mA
Power down3.3V on Raw pinOnWith1.152mA
Active3.3V on Vcc pinRemovedWith3.62mA
Active3.3V on Raw pinRemovedWith3.21mA
Power down3.3V on Vcc pinRemovedWith33.3µA
Power down3.3V on Raw pinRemovedWith31.7µA
Active3.3V on Vcc pinRemovedRemoved3.72mA
Power down3.3V on Vcc pinRemovedRemoved4.2µA

RobotDyn @ 8MHz

StateInput voltagePower LEDRegulatorConsumption
Active3.3V on Raw pin1OnWith4.89mA
Power down3.3V on Raw pin1OnWith1.40mA
Active3.3V on Raw pin 1RemovedWith3.62mA
Power down3.3V on Raw pin 1RemovedWith86.9µA
Active3.3V on Vcc pinRemovedRemovedTBD
Power down3.3V on Vcc pinRemovedRemovedTBD

Lower voltage, lower frequency

As I said in a previous blog post, it is possible to use the Arduino Pro Mini at 1.8V, with a frequency of 1Mhz. This should reduce the power used in active mode and power down mode, and should allow me to power my devices with two AA batteries2.

For that, I had to remove the power regulator (as explained before).

RobotDyn @ 1MHz

StateInput voltagePower LEDRegulatorConsumption
Active3.3V on Vcc pinRemovedRemoved952µA
Power down3.3V on Vcc pinRemovedRemoved4.2µA
Active1.8V on Vcc pinRemovedRemoved509µA
Power down1.8V on Vcc pinRemovedRemoved3.6µA

The simple @ 1MHz

StateInput voltagePower LEDRegulatorConsumption
Active3.3V on Vcc pinRemovedRemoved905µA
Power down3.3V on Vcc pinRemovedRemoved4.3µA
Active1.8V on Vcc pinRemovedRemoved479µA
Power down1.8V on Vcc pinRemovedRemoved3.8µA

Conclusion

Without a lot of work, it's easy to save power with the Arduino Pro Mini.

  • In "Power down" state, running at 8Mhz seems to consume as much power as at 1Mhz
  • However, in "Active" state, running at 1Mhz saves a lot of power (3.5mA to 1mA at 3.3V, and around 500µA at 1.8V)
  • It is not possible to run at 1.8V and 8MHz. To be able to use the battery as most as possible, it is mandatory to run at 1MHz2
  • The consumption of the two modules is quite the same (and my multimeter is quite cheap).

Now it's time to apply this method to the water tank project !

  1. For those measurements, supply the Arduino through the Raw pin or the Vcc pin doesn't change anything with the reliability of my measurement tools.

  2. Running at 1.8V is mandatory as the power of two AA cells will go as low as 1.8V.