Heating a wood shop with a passive solar heater

January 28, 2024

I'm located in Wisconsin, where we typically have harsh winters - in January our average daily low is 15 °F (-15 °C) and our average daily high is 23 °F (-5 °C). I have a single car garage wood shop, and it's not easy or cheap to heat it, so I was intrigued when I learned about passive solar heaters. The idea is simple: you build a dark box that absorbs the sun and warms the air inside, which is pulled through the heater as the warm air rises. After paying for materials, the heat is free. It's ideal for insulated spaces with good southern exposure.

Completed passive solar heater boxes in summertime

My shop isn't perfect for it - there are too many trees - but it's pretty good in the winter time when there are no leaves on the trees. I built two boxes and attached them to the south wall of my shop, with an inlet and outlet drilled through the exterior wall for each box.

Render of passive solar heater box, showing inlet and outlet

The box is constructed of a solid wood frame, a plywood back, and a 10mm corrugated plastic front. The corrugated plastic is held in place with aluminum braces, all fasteners are stainless steel, and the exterior is painted with inexpensive paint. It's still in great shape after 7 years in the elements. The interior of the boxes are painted flat black and have two layers of black fiberglass window screen material to provide more heat transfer. The inlet and outlet are approximately 100mm in diameter.

Measuring performance

I run a small fleet of DHT20 temperature sensors around my house, so I wired up sensors to measure ambient shop temperature, input temperature, and output temperature. The sensors are read by a Wemos D1 mini that posts to a custom API I run to record weather data. The Wemos D1 mini is an Arduino clone with wifi, which makes it really easy to wire up to the internet in useful ways. I have since switched to Particle Protons, which have better dev tooling and remote flashing.

Passive? Well, sort of.

I found that while the interior temperature of the heater was rising nicely - over 60 °F over ambient temp - I wasn't getting much airflow. I think you need much larger inlet and outlet ports to really passively heat an attached space. I didn't want to put large holes in my exterior wall, so I decided to force air through with one fan per heater.

The fans are 12V computer case fans, controlled via relays by the same Wemos D1 mini. The controller reads a custom API that checks input and output temperature and decides how fast to spin the fans (off, low, medium, high) based on available heat. I kept the controller logic as simple as possible, and pushed most of it to the API.

I also built a web frontend for it so I could monitor the performance and override the fan as needed.

Screenshot of web frontend for solar controls

So how has it worked out?

On a good day, the heaters will raise the shop temperature about 5-15 °F. I wouldn't say it's a huge success, but it does do something. I think the limiting factors are sunlight - nearby trees shade the space more than I originally appreciated - and the size of the boxes.

Here's a graph from today, a nice bright 40 °F day:

Screenshot of web frontend showing temperature graph and fan usage

This blog is an experiment: less about education and more about documenting the oddities I've experienced while building web apps.

My hope is that you're here because of a random search and you're experiencing something I've had to deal with.

Popular Posts

Recent Posts

View all