Arduino: Power Consumption Compared

When I first started working on my Arduino drone, I decided I wanted to evaluate, understand and compare components before selecting them. Then I would be able to come up with an optimal combination of components, or if not then at least I would understand where my design is lacking.

Something I thought is fundamental is understanding the power consumption of every component so I could design a drone with a long range. However I couldn’t find a lot of data on the power consumption of the most key component of my drone: the Arduino.

At first I was tempted to just get the “best” Arduino, meaning the one with the best specs and most inputs/outputs. But why base the drone on the Arduino Mega for example, if it could run just fine on an Arduino board that consumes less power? And actually, the real question is: which one will consume the least power versus the specs it provides?

I thought I’d do a small study and actually measure and compare the power consumption of several Arduino boards. This isn’t very scientific, ideally I would have taken several of each model.

Tools #

For my measurements I used a Drok USB Meter key. It plugs into a USB port and provides a female USB socket for plugging in any USB device, such as an Arduino. The LCD screen on this USB key shows the voltage and power consumption.

IMG_2344.JPG

Unfortunately the refresh rate of the LCD screen is too low so on the picture above, only part of the display is visible.

This device can be found on Amazon or eBay for $10 to $40.

Power Consumption Measurements #

I created two different programs to run on the Arduino boards:

  1. The basic empty setup(){} loop(){} program
  2. A program that would print the Fibonacci series via the virtual serial port

Here are my results:

Uno Nano Mega 101
Revision R3 R3 R3 R1
CPU ATmega328 ATmega328 ATmega2560 Intel Curie
Voltage 5.10V 5.10V 5.10V 5.10V
Program #1 Current 144mA 35mA 79mA 66mA
Program #1 Power 734mW 179mW 403mW 336mW
Program #2 Current 144mA 35mA 81mA 68mA
Program #2 Power 734mW 179mW 413mW 347mW

It turns out that regardless of the program running, the power consumption remains the same. I did try other programs than the ones listed above and obtained the same results.

Power Consumption vs. Performance #

Uno Nano Mega 101
Revision R3 R3 R3 R1
CPU ATmega328 ATmega328 ATmega2560 Intel Curie
Clock Speed 16Mhz 16Mhz 16Mhz 32Mhz
Average Power 734mW 179mW 408mW 342mW
Power / Speed 46mW/Mhz 11mW/Mhz 26mW/Mhz 11mW/Mhz

From the above it seems the most efficient are the Nano and the 101. Actually surprisingly even the Mega is more efficient than the Uno.

Onboard Gyro vs. External #

Something else I was curious about was the difference in power consumption between using an external gyroscope and accelerometer such as the MPU6050 chip, versus using the onboard gyroscope on the Arduino 101.

For my tests, I used a simple program using Madgwick’s algorithm, which would print the accelerometer and gyroscope readings on the serial port. I used the same algorithm to test the onboard and external gyroscopes. This program was helpful to use the Arduino 101 onboard gyro.

I found that using the gyro/accelerometer uses about 2mA and with my 5.10V voltage it equals around 10mW of power. Here are my results:

Uno 101
Base power 734mW 342mW
Power with MPU6050 744mW 352mW
Power with onboard Gyro - 352mW

It turns out using the onboard gyro/accelerometer uses just as much power as an external MPU6050!

Notes #

For the Arduino Nano, don’t forget to get the driver as it is not included with the Arduino IDE installation.

References #

 
147
Kudos
 
147
Kudos

Now read this

View Containment in Swift

I’m always looking for this code snippet around and for some reason it doesn’t pop on Google that easily so I thought I’d post the 4 lines of code necessary for achieving view containment in Swift (this is Swift 4 by the way): override... Continue →