Power guzzlers: testing some Arduino boards

1
Some of the links on this blog are affiliated links. READ MORE

Arduino boards: are those little things energy efficient or are they power guzzlers? In this blog post I will test some of my commercially available Arduino and Arduino-compatible boards, focusing on their current draw in some of the most frequent power configurations.

Considering a battery-powered Arduino, the most common choice is the 6LR619V alkaline battery, which has a typical capacity of 550mAh. Sometimes a holder for six AA batteries is used, depending on the type of AA batteries used the combined capacity is in the range 1800–2600mAh. Also it’s common to use 9V wall warts.

Then, it’s interesting to see how much current will the Arduino boards need when powered from a 12V supply. This is again a common voltage in both lead-acid batteries and in wall-warts.

The third set of tests will evaluate the Arduino boards when powered with 7V, which is the minimum recommended power supply voltage.

And finally, one set of tests with an 18V power voltage, which is what you get if you place two 9V batteries in series. Not common, but doable, and it’s close to the maximum voltage to power an Arduino board. So it’s interesting to find what happens in this scenario.

With the exception of Arduino Due and Flip and Click, the boards used in this test have linear regulators, so I expect a not-so-good power efficiency. Also the power LED on the board will suck some energy, so a second battery of tests will be performed after the power LED is removed.

And what about the processor itself? Well, there will be three tests performed in different situations: one test with the processor in SLEEP mode, one test with the processor doing nothing (just executing NoP’s), and a third test with the processor fully loaded. This latter test is based on the Svarichevsky Mikhail’s stress test for Arduino, from which I have removed any LED blinking and LCD-related code. BTW, it’s nice to take a look on his blog post too: he overclocked an Arduino to 64MHz by submersing the board into liquid nitrogen. Not the thing to do at home, but nevertheless it’s an interesting lecture.

Sleep modes

Putting Arduino boards into sleep mode proved to be troublesome, so I feel the need to share some of my code. Note that by disabling interrupts the microcontroller will stay in sleep mode until reset is pressed:

For the ChipKIT UNO32, which has a PIC32 microcontroller the sleep sequence is inspired from this libstock.com example:

The AT91SAM3X8E on the Arduino Due / Flip and Click has three low-power modes. Here’s the code for it:

Testing rig

For the test I used my
KEITHLEY 2231A-30-3 Triple Channel DC Power Supply, an expensive piece of equipment able to provide an accuracy of 0.06% of the set voltage. Current measurements were performed using a
KEYSIGHT TECHNOLOGIES 34460A Digital Multimeter, 6½ Digit, Basic Truevolt DMM. An average of 100 measurements was considered in each case.

Testing the current draw of Arduino Uno

Testing the current draw of Arduino Uno

Tested boards

Several boards were put to the test:

  • Arduino Uno (old board, same as official Arduino LLC version)
  • Arduino Uno from Arduino SRL
  • Sparkfun Arduino Pro. This is a stripped-down version of the Uno, with only the 5V supply, and without USB-to serial circuits (requires external FTDI). My version runs at 16MHz, same as the Uno. One might notice here that this board comes without any headers, so you will have to buy those separately. Also the power regulator is a MIC5205 from Micrel, able to supply a guaranteed current of only 150mA.
  • Sparkfun Redboard. Similar with the Arduino Uno, but with a different USB-UART chip
  • Seeeduino Mega. This board can be configured to run at 3.3V or 5V by flipping one switch. Notice here that the ATMEGA2560 on this board is able to run at 16MHZ on a 3.3V supply.
  • ChipKIT UNO32 from Digilent. A PIC32 based Arduino alternative, which is programmed in MPIDE.
  • Arduino Due from Arduino SRL (this is what’s available from EU distributors).
  • Flip and Click from MikroElektronika. This is a nice Arduino Due compatible board, featuring four mikroBUS sockets, the proprietary MikroElektronika format that allow the use of click boards (and there are more than 160 to choose from), plus the ubiquitous Arduino Uno shield connector. The Flip and Click is the only Arduino compatible board in this test featuring a switching power supply, in buck topology. Will it perform better than the linear regulators? We will see…

Results

As there’s a lot of data gathered during the testing, I prefer to show the results in as graphs, allowing for an easier comparison between different boards.

Vin = 7V

The lowest voltage reccomended for powering Arduino boards. I know, the Arduino Pro is labeled 4-12V, but this is true only in the case of 3.3V Arduino Pro.

Current draw test @7V

Current draw test @7V

Here we find a winner: the Arduino Pro has the lowest current draw of all the boards in test. Particularly in sleep mode the current draw is below 1mA.

Another thing to notice is the poor performance of the two UNO boards in sleep mode. My guess here is that the little ATMEGA8U2 that does the USB-UART job doesn’t go in sleep mode, and it’s just a power guzzler.

The Reduino and the Seeeduino Mega use FTDI chips, and have lower current draw than the UNO counterparts. In the case of the Seeeduino Mega lowering the voltage at 3.3V has as result an even lower current draw.

Not surprisingly, the boards with 32bit processors such as the ChipKIT and the Due have the highest power draw. One might notice that is sleep mode the PIC32 boards comes second in current draw after the Arduino Pro.

Vin = 9V

Current draw @9VAt the typical voltage of a 9V battery things don’t change much.

Vin = 12V

Current draw @12VRaising the voltage to 12V. Arduino PRO still has the lead, but we notice that the Arduino Due and Flip and Click boards how have lower current draw than the PIC32, and comparable to the UNO’s. The reason is that the ATSAM3x based boards have switching power supplies, and those are now more efficient than the linear regulators.

Vin = 18V

Current draw @18V

Current draw @18V

A bit on the extreme side here, as we are close to the maximum voltage that can be fed into an Arduino.

You’ll notice here that the Arduino Pro is missing from this test, because 18V is a bit too much for the MIC5205 regulator. In its absence the leading positions are occupied by the Reduino and by the Seeeduino Mega running at 3.3V.

Next come the two SAM3X-based Flip and Click and Arduino Due boards – the switching-mode power supply really counts at this voltage, and they beat the UNO’s in terms of current draw, not to mention performance.

The ChipKIT UNO32 has one of the lowest current draws in sleep mode, but it’s a power guzzler when operating normally.

Removing the power LED: does it help?

I performed some experiments with the power LED removed. Depending on LED color and the value of the current limiter resistor I managed to reduce the current draw by 1mA to 2.7mA. With the exception of Arduino PRO it counts, but doesn’t make a great difference.

Without the power LED the Arduino PRO is the great winner: 13mA in normal operation, and an average of 0.27mA in sleep mode.

Share.

1 Comment

  1. Edward Teyssier on

    Nice bit of information…I’m glad to see this, because I could not find any information on supply current draw
    from the data sheet for the Arduino Due microcontroller, i..e, the AT91SAM3X8E . Strange.

Leave A Reply