Running Arduino on a battery.

Is it possible to run an Arduino on a battery?
Or what I actually mean is running the ATMega328 with a battery.

Can I run it at 4,5 volts? and do I have to make changes to the power circuit?

Yes you can.

The standard brownout setting will let the chip run all the way down to 3V without too many issues.

I've tested a couple in the lab and found that the timing holds steady as long as you can provide the current at that voltage.

We didn't have to change the chip, nor any fuse bits to make it work - they just do.

I've used these...

http://www.ladyada.net/make/mintyboost/

...to power projects. I don't like the way the SparkFun one behaves when the battery is close to the end of life but both work well. I suspect the Minty Boost is a bit more efficient but I haven't had time to test.

Floating inputs drain power like PacMan eats dots. Unused pins need to be configured as INPUTS with a PULLUP or PULLDOWN resistor or they need to be configured as OUTPUTS set LOW. If you do nothing, it's very likely the pins will float.

  • Brian

Minty boost works great, but I found out that you really want to use regular batteries, not the Energizer Lithium ones.

Near the end of their life they got so hot I couldn't touch them.

3AA's are my prefered mobile source, and holders are common

Floating inputs drain power like PacMan eats dots. Unused pins need to be configured as INPUTS with a PULLUP or PULLDOWN resistor or they need to be configured as OUTPUTS set LOW. If you do nothing, it's very likely the pins will float.

I didn't know that!

You people just connect the raw microcontroller to a battery and your done?

Or do you use a stabalizing capacitor aswell?

Are you sure that there is such a thing as PULLDOWN built into the standard arduino boards?

I recall the only built in INPUT function being setting it to high, that way making it a pullup setup... but there is no such thing to set it to pulldown (is there?, i could be wrong)

The Arduino has pullups, which ties your inputs to VCC with ~ 20K resistor.

Enabling them will ensure a constant value, but this really shouldn't be a concern. All pins in input mode are high impedance. See THIS article:

Pins Configured as Inputs

Arduino (Atmega) pins configured as INPUT with pinMode() are said to be in a high-impedance state. One way of explaining this is that pins configured as INPUT make extremely small demands on the circuit that they are sampling, say equivalent to a series resistor of 100 Megohms in front of the pin. This makes them useful for reading a sensor, but not powering an LED.

As for the stabilizing cap.. There is no need when run 100% battery power. Your batteries are not fluctuating wildly like an AC adapter. The caps that are built in to the Arduino on the 5V rail are more than adequate. You could desolder all of the electrolytics and not notice when running on a battery pack.

Now, try that with a wallwart and you'll most certainly fry things. They have spikes leftover and must be dealt with in the form of the electrolytic "stabilizing" caps.

As for the stabilizing cap.. There is no need when run 100% battery power. Your batteries are not fluctuating wildly like an AC adapter. The caps that are built in to the Arduino on the 5V rail are more than adequate. You could desolder all of the electrolytics and not notice when running on a battery

True only if you are not using a voltage regulator. The voltage regulator generates noise; the filter caps are required for the voltage regulator, no matter how clean the DC power source.

Do not try uploading a program if the arduino is underpowered (less than 5V). It can corrupt the bootloader such that an ICSP programmer is required to recover.

-j

Enabling them will ensure a constant value, but this really shouldn't be a concern.

There is empirical evidence that it does matter. See this Eating Batteries thread.

BRuTuS:
I wonder if it's an issue with the Energizer Lithium batteries or the Minty Boost. I've run Rayovac Hybrid (nickel metal hydride) batteries completely dead in the SparkFun converter without problems.

Are you sure that there is such a thing as PULLDOWN built into the standard arduino boards?

There is not a PULLDOWN resistor built in; it's a PULLUP resistor. I mentioned the PULLDOWN resistor because I vaguely remember that an external pulldown resistor was recommended in the datasheet for a certain situation. I wanted Vortexnl to know what options are available.

The point is that floating pins are a potential power drain. I've tested configuring unused pins as INPUTS w/ INTERNAL PULLUPS and OUTPUTS set LOW. There wasn't any measureable difference between the two. But there was a big difference when the pins are configured as simple inputs (the default setting).

  • Brian

The ATmega328P can run down to 1.8V if you reduce the clock frequency to 4MHz.
At Vcc >=4.5V the max freq is 20MHz. At 2.7V the max freq is 10MHz.
Check the maximum frequency curves in the datasheet for other values.

(* jcl *)