How should I go about creating a heater from batteries (AA/AAA/9V/C/D any will do) that last as long as possible (the longer lasting the better)?

I have seen this post. But that only lasts 45 mins and doesn't seem very efficient. Is there any way that I could make the heater last long? Maybe by making it not heat up as hot?

I need to have something heat up to \$60^{\circ}\$F deg (for example if a pipe is at \$30^{\circ}\$F deg, I want to heat it up to \$60^{\circ}\$F).

  • \$\begingroup\$ How much does it need to heat up? That determines pretty much everything else. \$\endgroup\$
    – Matt Young
    Commented Sep 9, 2015 at 20:09
  • \$\begingroup\$ 50-60 deg for example (not very hot I know) Thanks for your reply \$\endgroup\$
    – now_world
    Commented Sep 9, 2015 at 20:11
  • 2
    \$\begingroup\$ Is that 50-60 above ambient, or a target temperature range? F/C? \$\endgroup\$
    – Matt Young
    Commented Sep 9, 2015 at 20:12
  • 2
    \$\begingroup\$ Can you use chemical energy directly to heat your pipe? For example, an alkaline AA battery might contain 6 Watt-Hours of energy. A single tea candle, for comparison, is said to release 150 Wh when burned. \$\endgroup\$
    – tomnexus
    Commented Sep 9, 2015 at 21:22
  • 1
    \$\begingroup\$ how big is a pipe? \$\endgroup\$
    – user16324
    Commented Sep 9, 2015 at 21:37

2 Answers 2


My gut feeling is that using that kind of battery to create any more than a hand warmer is not very practical. To get an estimate if the idea of a battery powered heater is doable you have to look at the energy needed:

When heating things the energy is used to do two things:

  1. raising the temperature: to heat 1kg of water from 30°F to 60°F you need the following energy: (4180 J/K) * 16.7K = 70KJ (heat capacity times temperature difference in Kelvin). For reference: An alkaline AA battery has about 9360J (source). You can substitute your own data for e.g. your pipe (water filled?) combination to get the result for your application.

  2. replacing the heat that is lost due to bad insulation: If e.g. your pipe is warmer than the ambient temperature it will get colder. Here you can also calculate the energy that is lost this way: P = (Temperature difference) / (thermal resistance) with P being the heat lost measured in W (= J/s)

I would start with plugging in the numbers for part 1 and then add an estimate for part 2 ("if I use insulation X, how much energy would I need to have the temperature be constant for time X?"). Then compare the energy needed with the amount stored in the type of battery you want to use.

I think you can assume pretty much 100% efficiency, but better have the batteries be warm or they will not deliver their full power.


The formula to calculate the energy needed to heat something up is: Q = mass * specific heat * temperature difference. The starting temperature is not necessarily needed, only the difference. In your case that would be about 17 degrees celsius (sorry, metric system over here). So to heat up 10g of aluminium you would neeed Q = 0.01kg * 0.91kJ/kg * 17 = 154.7 J (Remember that 10g of Aluminium just weighs about 2 grams more than a one dollar coin - so it is not very much)

I think with a very efficient setup you could bring this to last about three to four hours. (2,300mAh * 1.5V = 3.5Wh, time depending on your output current and maximum power of your battery).

Regarding your question how to make it last longer: Use a very efficient resistance (almost 100% efficiency) heating coil and a PID-Controller (or even, if you want to leave out the integral part, a PD-Controller) to control the heating. Wikipedia has pretty good articles on PID-Controllers.

You could use an arduino or another microcontroller to implement this. Remember to stay energy-efficient, so an arduino is probably not the best choice with all its peripherals. Maybe try a simple AtMega 168 chip instead. This tutorial could be helpful: http://interface.khm.de/index.php/lab/interfaces-advanced/sleep_watchdog_battery/


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.