How to Build a Hot Water Preheater for a Woodstove


If you want to save energy then start with preheating water. Water takes a large amount of energy to heat and a high percentage of an electric bill is just for heating water. Years ago I measured my electrical consumption on all of my appliances and discovered that my electric hot water tank was using 60-90% of my monthly electrical usage.  So if you want to cut your bill, forget the light bulbs, deal with the biggest user of electrical energy, the domestic hot water tank.

The general idea is that any heating of water before it reaches the electric hot water tank will help.  So this blog is about installing an inline pre-heater using the woodstove as the source of heat.

An old hot water tank

First Attempts

#1  The first thing I tried was wrapping the flue pipe with bendable copper tubing.  THIS DID NOT WORK AT ALL!  Don’t even waste your time trying this one.  The cold water in the pipe builds up a creosote layer on the inner wall of the flue insulating the hot exhaust gases from transferring heat.  Almost no hot water was produced.

#2 Next I tried 3/4″ copper pipe heat exchanger attached to the back of the woodstove.  That worked much better.  The heat exchanger was soldered together with 90 degree elbows and straight pipe, painted black and mounted up against the back of the woodstove.  The rear heat shield was removed and installed back over the piping.

#3 Next I tried copper pipes in the woodstove.  That worked even better!  I drilled holes in the back of and Earthstove and slid 3/4″ copper pipe in so that it stuck out both sides then soldered fitting on.  The downside is that the copper pipes would creosote up nearly instantly and required cleaning once a week.  I would have to drain the pipes while the fire was blazing in order to burn off the creosote.

#4  I also tried a electric gas hot water tank directly on top to the side of the flue.  This worked ok but took all day to warm a tank of water.

The Best Systems

After trying many different ideas I suddenly realized that a gas hot water tank would work because it was already designed to do exactly what I wanted.  Here’s a cross section of a typical gas heated water tank:

After trying #4 I tried putting a gas hot water tank that has an inner flue onto top of the woodstove so that not only did the tank conduct heat from the wood stove top but also from the hot exhaust gas.  This really worked well, 40 gallon tank would heat up in an hour or two and it only needed cleaning once a season.

These tanks are available free, the landfills are full of them.  Find a good looking one that you think the inner tank isn’t rusted through.  Strip off the outer insulation shell and pull out the spiral heat exchanger baffle from the flue.  Cut off the bottom about 1-2″ below the tank. The tank is already plumbed for water fittings.

A stripped gas hot water heating tank showing center flue

Place the tank on top of the woodstove over the flue exhaust hole.  The tank flue and the woodstove flue do not have to be in line.

A Thermosiphoning System that really works

Another system that really works is putting a cast iron pipe in the firebox.  The pre-heat tank is parked next to the woodstove so that natural thermosiphoning circulates the super heated water to the tank in a closed loop.  The outlet of the pre-heat tank feeds the normal electric or gas DHW tank.  Unlike the diagram below, the heated water exiting the woodstove should only go up, to the side of the tank (where the relief valve or heater coil was plumbed).
The heat exchanger doesn’t have to be fancy, all it has to be is an iron pipe.  This is preferable because it is the replaceable part in the system.  A firebox is an extremely corrosive place inside and outside of the pipe. Cast iron performs excellent, better than steel or copper.  The thicker cast iron won’t creosote up like copper pipe.  Stainless might be the best but I’ve never tried it.  The extra pipe can be put under the stove for storage.



Post a Comment

Required fields are marked *

%d bloggers like this: