Automating wood stove with Pi

  • Active since 1995, Hearth.com is THE place on the internet for free information and advice about wood stoves, pellet stoves and other energy saving equipment.

    We strive to provide opinions, articles, discussions and history related to Hearth Products and in a more general sense, energy issues.

    We promote the EFFICIENT, RESPONSIBLE, CLEAN and SAFE use of all fuels, whether renewable or fossil.

jotulf45v2

Member
Sep 22, 2021
60
CT Shoreline
I've posted this on another forum and wanted to share what I had here to help a wider audience. I originally got the idea from this forum so I hope you guys like it.

I'm using a Pi2+B with a wifi dongle running Raspbian Buster on a Jotul F45 v2 wood stove. Stove was installed December 2020 (managed to get the last one!) and Pi was added in January. I heat a ~1300sqft house with a NG furnace but try to offset as much heat as I can with the wood stove. With Covid, I was able to heat almost exclusively with wood last season with wfh, hoping to do the same this season.

The inspiration for this came from when I had to do the break in fires. Going off a magnetic temperature seemed archaic. Being on cast iron I knew it would heat slow, being on a cast iron surrounded by steel would be slower. My biggest paint point was figuring out how big a fire I could make to get the temp up as quickly as possible without it running away from me. Looking at the magnetic thermometer it was always a guess as to when it would peak and start dropping. I had a separate flue probe thermometer that helped but the overall setup wasn't working for me. After the break ins I felt tied to the stove more than I needed to be. Growing up my parents had a Noble stove that was steel that came with our house. I learned how to use it but we didn't follow any sort of science to it. Put wood in, set air low. As long as the fire was going we didn't worry about how hot the stove was. Only how hot the room was getting. Besides not making the stove glow red (there was one time) it was set and forget. With a newer stove I knew that adage was gone and with the increased components inside there's more room for things to break. Dialing in the temperature in real time was something I needed to feel comfortable and after browsing this forum found the idea of using thermocouples to measure the heat. I had a pi but couldn't find a reliable tutorial to use so I took some parts from several sources and decided to create my own post with all I've learned.

The hardest bit was finding a thermocouple board to register the temperature and read from it. I originally browsed hearth.com forum and some people here had success with a pi and a separate maxi board that reads the temp. I tried ordering Max31855 board but it didn't quite work out too well. I didn't like the tutorial, there was too much that could go wrong and you couldn't tell if it was the board that was broken or the code. After scratching my head on why the temperature reading wasn't working, I found this https://pi-plates.com/thermoplate/. Bit pricey but it works really well with node-red (see below). It's also overkill as it has 8 type-k and 4 DS18B20 ports. But you just plug this "hat" into the GPIO and pi automatically reads and powers it properly. No guessing and no wiring involved, it just works.

The probe thermocouple for use with my double wall pipe. There's dozens, this is just what I went with - Amazon product ASIN B07BL4XPPP
A surface thermocouple for use with the stove top - Amazon product ASIN B07MCYVTHF
After all the hardware was received, I played around with Python to write the code from scratch but I was not patient enough to learn a new language. So I decide to go with node-red as I've heard some things about it and wanted to play with it. It was scary easy, really shines with event driven development. Stove emits a temp, board reads input => do something.

To enable node-red, I followed this https://nodered.org/docs/getting-started/raspberrypi

I installed the following node-red libraries to help

Once it's running, you access it at http://<hostname>:1880. This loads a dashboard where you can drag and drop all the elements to create a workflow and configure them. Each element has various customizations to make, such as transforming data via a custom script. Being a programmer the scripting was easy to pickup and node-red takes the data and passes it along for you.

From the attached photos, node-red-config is the workflow configuration screen. Running node-red creates a workflow design view to drag and drop different event emitters to watch and interact with from my pi. The first image emits a timestamp event every 5 seconds to start the workflow. It then goes to the two thermocouples to read the temperature individually, converts the temp for me, sends the data to chart and goes to a switch where if the temperature is above a threshold, will text me by mapping my phone number to an email address from the carrier I use. The text has the temp of both thermocouples and is set to text me every 5 mins if the temp is above 700*. The chart is set to hold data for 24 hours, allowing me to see the past days performance and especially the overnight temps. I can change the chart to hold more time but I found it to be too noisy and didn't really add much benefit.

node-red-config.pngnode-red-config2.png

The dashboard screen I can access on my local network. I have an iPad that keeps the browser window open so while I'm in the living room I can view the dashboard at all times. I can also view it on my phone if I'm elsewhere on the property. Still working to make the dashboard available outside my network while I'm away from the house while keeping it secure. But at least I'll get text alerts.
temperature-dashboard.png
pi-plate.pngstove-top-temp.pngflue-temp.png

The rest are pics of my setup, a pi attached to a pi-plate that reads from two thermocouples on the stove and in the stack. I'm happy with the results. The temps from the magnetic thermometer were too slow to read. Especially having the cast iron jacket I'd get 600* in the flue before the stove top would reach 300*. With this I mostly go off the stack temp and keep it under 650 and wait for the stove top to reach >500. After reading the data for a couple days I found my stove keeps a high temp for ~1 hour and has a high drop off after off-gassing but has a prolonged burn over 4-6 hours. Depending on how quickly I shut off the air and how cold it's outside it can last longer. I try to refill when it drops below 300 as that seems to be the sweet spot for how fast it ignites with the bed of coals. If it gets <200 it takes a bit of effort to restart.

Thanks for the inspiration and I hope this helps someone else.

Side question, from the manual it states to put the stove thermometer left/right of center top but there's 3 spots it can technically be and they're all ~100* difference from each other. There's the outer ring of the stove that doesn't quite fit the diameter of the thermometer, the middle ring area (left of the line in the pic with the stove top thermometer) and the sides of the inner plate (where the thermometer currently sits in the pic). Am I right in where it sits currently? Thanks in advance.
 
That's a cool project. I lkie the alerts feature. For our stove I ended up getting a wireless Auber so that I could keep track of the stove flue temps remotely in my office. That is not as full featured, but our stove is very predicable in behavior.
As you have noted, the stovetop temp on a cold start is not the best way to regulate the air. An accurate reading of the flue gas temperature is much better. A comparison of temps on a cold start from each location is shown in this thread.

FWIW, I rarely look at stovetop temps, except for an occasional verification if I am switching from softwood to hardwood. I know where the stove will heat up to by the flue temp.
 
Thanks! I agree, flue temp is what I use. I kept the stove top just as another metric to have. After installing this I tracked my usage and lowering the air immediately started lowering the flue gas temp but the fire in the firebox was unchanged so it looked like it was still giving off the same heat. Stove top temp also immediately changed but not as fast because of the material. By the time the flue temp lowered ~200* the fire visually started to die down. It was just confirming my belief that going by how the fire looks or relying on magnetic thermometers was not going to be accurate enough to operate this expensive stove I just got.

In the short time I owned this stove, I had two or three run away fires where I had to engage the flue dampener with the air shutoff. I installed it just as a fail safe and only close it when it heats up too much. I have 2 90* bends (one inside, one out) and a 2 story triple wall metal chimney outside the house. Every now and then a wind storm may hit and it'll sound like a jet engine inside the flue. Other than that it drafts well considering how well insulated the house is (no fresh air intake).
 
I love all of this. I have 4 PI3's at home and do a lot with home automation. Something like this was on my list of to-dos but seeing an actual parts list I might actually give it a go.

If only we could hook up something to automatically control the air controls based on the read outs of the thermometer!

After trying to do this with new technology it's amazing there are companies that have this nailed down with some old-fashioned engineering.
 
If only we could hook up something to automatically control the air controls based on the read outs of the thermometer!
Someone actually did this with their PE Super stove several years back using a linear actuator.
 
Have you read this thread?
Member @WES999 did some cool work on this and had automated his stove too.
 
Stability must be hard. Primary air control is only a small part of it. Wood load is most of what produces the heat. And then there's start up with a cold stove. I agree the stack temp must be the best place to get feedback from.
 
I have the same stove and I always follow my flue temps as well. Weather I’m at cold start or reloading once my flue temps (Condar fluegard) reach 400 i start shutting down the air from wide open. Usually go to half way first for a few min and watch the fire and flue temp to make sure it doesn’t stall then I’ll set it to lower setting. The stove top temp lags behind for awhile but will climb up into the 500-700 range depending on where the air is set. Flue temps run 400-600. I didn’t understand where Jotul wants the stove top thermometer placed either so I just put it dead center where it’s hottest anyways.

keep us posted on your temps, good info to compare to mine, thanks.
 
I use the MAX31855 board and have had no issues at all. I am using it for the same purpose, providing as close to real time flue temperatures as I can get. Is there something I should be watching out for?
 
Have you read this thread?
Member @WES999 did some cool work on this and had automated his stove too.
I did! I think that was the first post on here that I saw. On my todo list is to create a dedicated display board with the two temps. When the wood pi emits the temp, a 2nd board will read it and use a digital display to show the temps in some sort of frame in the main room using a mqtt service. Node-red integrates very well with this.

I love all of this. I have 4 PI3's at home and do a lot with home automation. Something like this was on my list of to-dos but seeing an actual parts list I might actually give it a go.

If only we could hook up something to automatically control the air controls based on the read outs of the thermometer!

After trying to do this with new technology it's amazing there are companies that have this nailed down with some old-fashioned engineering.
I found this cool project that did just this with an arduino board. I imagine node-red should have a library to integrate with a servo motor to hook up to it. Just need to find a device that can attach to the air handler. Maybe just a wood dowel with a metal component :D
 
I have the same stove and I always follow my flue temps as well. Weather I’m at cold start or reloading once my flue temps (Condar fluegard) reach 400 i start shutting down the air from wide open. Usually go to half way first for a few min and watch the fire and flue temp to make sure it doesn’t stall then I’ll set it to lower setting. The stove top temp lags behind for awhile but will climb up into the 500-700 range depending on where the air is set. Flue temps run 400-600. I didn’t understand where Jotul wants the stove top thermometer placed either so I just put it dead center where it’s hottest anyways.

keep us posted on your temps, good info to compare to mine, thanks.
Interesting, I'll try setting the air down earlier. But I wouldn't be surprised if your flue temp was closer to 500 by the time the fluegard thermometer registered 400. I imagine I'm losing more heat than I want to up the stack to get the stove up to temp faster. I burn mixed wood that I find around town so the length of burn isn't always reliable. Mostly maple, hickory, occasionally oak. I have a better pile this year so I'll try following this.

I saw that dead center isn't good because it's the hottest point on the F45. But not really a big deal as you're going off the flue temp anyway. After burning a VC Intrepid II, the size of the stove is a welcome change. No longer need to burn with the door open to burn down long pieces :) Air control is really easy to understand and with real time temp update makes it great to fine-tune. I may have jumped the gun on this post but once burning season starts up in just over a month, I'll post what temps over the course of a day so you can see the trail off. From the pic above that was in March/April I think and you can see the time in between fires where I let it die out during the day and started back from cold the following morning. I was actually burning all bark at that point which is why there's such a sharp jump up and fast cooling afterwards. It still lasted 6 hours :D very efficient stove.
 
Last edited:
Interesting, I'll try setting the air down earlier. But I wouldn't be surprised if your flue temp was closer to 500 by the time the fluegard thermometer registered 400. I imagine I'm losing more heat than I want to up the stack to get the stove up to temp faster. I burn mixed wood that I find around town so the length of burn isn't always reliable. Mostly maple, hickory, occasionally oak. I have a better pile this year so I'll try following this.

I saw that dead center isn't good because it's the hottest point on the F45. But not really a big deal as you're going off the flue temp anyway. After burning a VC Intrepid II, the size of the stove is a welcome change. No longer need to burn with the door open to burn down long pieces :) Air control is really easy to understand and with real time temp update makes it great to fine-tune. I may have jumped the gun on this post but once burning season starts up in just over a month, I'll post what temps over the course of a day so you can see the trail off. From the pic above that was in March/April I think and you can see the time in between fires where I let it die out during the day and started back from cold the following morning. I was actually burning all bark at that point which is why there's such a sharp jump up and fast cooling afterwards. It still lasted 6 hours :D very efficient stove.
Yeah I’ve found this stove is very controllable if you start shutting it down at the right time. If I don’t pay attention and let those flue temps get away from me I’ll see major off gassing and 700+ stove top temps and shorter burn times.

I burn mostly Aspen because I have 23 acres of it but still manage 8+ hr burns with it. With better Hardwood you could easily have 12 hr burn schedules With this stove.

Once you get going on posting your temps, I’ll try and post mine so we can compare. I do have an Auber thermocouple somewhere, maybe I’ll install it to get a little better accurac.
 
  • Like
Reactions: jotulf45v2
I use the MAX31855 board and have had no issues at all. I am using it for the same purpose, providing as close to real time flue temperatures as I can get. Is there something I should be watching out for?
If you got it to work, not at all. I'm not very handy at soldering so I just had it hooked up to a breadboard at the time. Pi wasn't reading the values (loose connection or bad board). Not to mention Pi's maxi tutorial was dated and left a lot of gaps to fill in so I wasn't confident in the setup. After switching over to node-red I don't think I can go back to manually programming a board. The tool makes designing workflows easy and lets you focus on the outcome more than the code. It also allows for custom scripting so if you wanted to interact with a maxi board you can write your own node-red code and inject it into the workflow. I exported and backed up my setup so if my pi dies, I can buy a new one and import the workflow with zero additional work. I guess the benefit is leveraging node-red more than anything.
 
If you got it to work, not at all. I'm not very handy at soldering so I just had it hooked up to a breadboard at the time. Pi wasn't reading the values (loose connection or bad board). Not to mention Pi's maxi tutorial was dated and left a lot of gaps to fill in so I wasn't confident in the setup. After switching over to node-red I don't think I can go back to manually programming a board. The tool makes designing workflows easy and lets you focus on the outcome more than the code. It also allows for custom scripting so if you wanted to interact with a maxi board you can write your own node-red code and inject it into the workflow. I exported and backed up my setup so if my pi dies, I can buy a new one and import the workflow with zero additional work. I guess the benefit is leveraging node-red more than anything.
OK, thanks. I looked at using node-red before I wrote my application in Python/Tk. I didn't know either before I started, but to me Python makes more sense than node-red. I have a lot of experience writing code, and once you really know a language learning another is pretty quick and easy. I have quite a bit of Java and Perl experience and I feel like those both relate well to Python.

For a backup, I just have an image of my microSD. If my Pi dies, I get a new microSD (which is the part that is most likely to die), write the image and boot it up again.
 
  • Like
Reactions: jotulf45v2
As promised, here's some data on my first burn of the season. We had a drop in temps over night which cooled the house so I made a small fire. I'm burning a mixture of birch and some type of maple, unsure of the moisture content but it's not sizzling in the stove. I included additional screenshots at different times, since the graph scales the more data gets added, to see how the stove progressed.

From the below files, from left-right starting from the top:
  • The first screenshot is from startup with kindling made from my birch splits. I loaded one 3" maple split kindling piece at 8:17 and adding two small birch pieces around 8:30. Air is wide open.
  • Second screenshot - you can see how quickly the stack temp rose. Even though I was at 500* in the flue, the stove top was barely 350. Air is still wide open. Around 10 I loaded up two additional birch splits roughly 6" across, 3" high and maybe 9" long (these are half rounds, split in halves). Temp quickly spiked, I reduced the air to half and it quickly dropped. Flames in the stove were still strong and secondaries were lit.
  • Third screenshot - The temp was starting to drop as noted at 10:27 mark so I opened the air fully. Stack peaked right around 625* which was fine for me even though I marked the range as red.
  • Fourth screenshot - After it dropped <400* just before 1, I added a single birch piece, roughly the same size as the prior load.

The two birch pieces lasted about 2.5-3hrs which is pretty good considering the sizes of them. The single birch piece lasted 1.5hrs. I consider the time from when it starts spiking to however long it lasts above 300*. I could have throttled the stove to keep it from spiking above 600* and lasting a little longer but didn't want to have it drop suddenly.

Thanks.

screencapture-192-168-0-27-1880-ui-2021-10-27-08_55_18.png screencapture-192-168-0-27-1880-ui-2021-10-27-10_41_06.png screencapture-192-168-0-27-1880-ui-2021-10-27-11_08_19.png screencapture-192-168-0-27-1880-ui-2021-10-27-14_06_56.png
 
  • Like
Reactions: MR. GLO
Nice, looking forward to your data when you start burning full loads and see how they compare with mine.
 
This may have been due to the type of wood but burning 1 piece of birch would cause the temp to skyrocket right when the bark starts to burn. As soon as temp passed 550 in the flue, I turned the air down half way and the temp dropped quickly. Once it dropped past 450 I increased the air to quarter open and the temp raised and stabilized to around 530-540. If I opened the air a centimeter more the temp would rise to near 600. STT was around ~350 during this, topping out around 420.

It's fascinating what little movement in the air control could cause. I'm not sure if it's due to my setup but turning the air down with less than a full box causes it to choke dramatically.
 
Yeah, the air control can be quite sensitive. I don’t burn anything less than a half load with this stove. It seems it takes at least that to get those internal temps up to where you will get a good clean secondary burn with a lower air setting. Burning smaller loads probably need to be kept in the medium air setting.
 
Update: Learned a lot more in terms of maximum temp I can allow. I adjusted my code to allow increased probe temp from 600 to 800. STT increased as well from 600 to 700F based on the user manual. Anything over these values turns the gauge red and sends a text to me.

Past week got cold here in the NE. Up until now temp in the stack never got more than 600F and STT around ~500 for extended periods. While burning birch and hickory, I kept the temps low to avoid over-firing. Roughly half of the box was full. Max of 3 logs in at a time.
Birch-hickory.png

Yesterday I used mostly hickory/maple. Firebox was mostly full with 3-4 splits during the day, going to 5 overnight. I under-burned at night due to the stove getting too cold and not wanting to wait for it to warm up, I closed the air to less than half. Then around 1am I woke up and tended the stove, moving the air to little more than half open and went back to bed. I also started allowing the STT to go >500 regularly.
maple-hickory.png

After a month of on and off burning the glass is getting a hazed streak so will clean it this weekend. House is mid-high 70's during the day and in the morning it's low 70s.
 
  • Like
Reactions: Todd
Good info. You must burn some pretty large splits if 3-4 fill the firebox. Takes 8-9 for me.

Depending on the weather Ive been doing 8 or 12 hr reloading schedules with my F45 with stove temps maxing out around 550-600 and slowly dropping to 150-200 by reloading time. Stack temps usually cruise 400-550 for first couple hours before falling off.
 
Yeah, the splits vary as I hand split my pile. Some are 5+ inches across. Some are very wide triangles. At night I try to mix two large splits at the bottom and fit as many smaller splits I can above it, which usually means I can only fit about two additional due to the baffle.

I also got a slightly too large stove for my house so I have a hotter fire with smaller loads rather than loading it up. Once it really starts getting cold I'll adopt that kind of loading schedule. Maybe my graph won't be so erratic.
 
  • Like
Reactions: Todd
Update: Learned a lot more in terms of maximum temp I can allow. I adjusted my code to allow increased probe temp from 600 to 800. STT increased as well from 600 to 700F based on the user manual. Anything over these values turns the gauge red and sends a text to me.

Past week got cold here in the NE. Up until now temp in the stack never got more than 600F and STT around ~500 for extended periods. While burning birch and hickory, I kept the temps low to avoid over-firing. Roughly half of the box was full. Max of 3 logs in at a time.
View attachment 286760

Yesterday I used mostly hickory/maple. Firebox was mostly full with 3-4 splits during the day, going to 5 overnight. I under-burned at night due to the stove getting too cold and not wanting to wait for it to warm up, I closed the air to less than half. Then around 1am I woke up and tended the stove, moving the air to little more than half open and went back to bed. I also started allowing the STT to go >500 regularly.
View attachment 286761

After a month of on and off burning the glass is getting a hazed streak so will clean it this weekend. House is mid-high 70's during the day and in the morning it's low 70s.
When you read a stack temp with the probe what are you seeing on a magnetic thermo on the stove pipe. Half?
Can you give us an idea how far they are off? What are you longest times between loads.
 
When it's warming up, it can vary. Usually the stack is warmer than STT, even during cool down. I thought the cast iron would stay warmer than the stack on cool down but that doesn't seem to be the case. On startup, the stack can be >600 while STT is <300. While it's cruising the STT will come up to where the stack temp is at. Normally 500* stack would produce 400 STT, 600* stack 500 STT, 800 would give 600 STT, so about 100-200* difference.

Times between loads vary. I burn larger pieces, during the day I only put 2 splits in and they last 2-4 hours. Longest time is usually overnight. 930pm-7am ~9.5 hours the stack temp is >200, the box has a good amount of embers, after shuffling them to the front it's enough to ignite another split. This is burning ash + hickory. If I was burning maple or birch the stack temp was usually around 150* in the morning.
 
  • Like
Reactions: MR. GLO
When you read a stack temp with the probe what are you seeing on a magnetic thermo on the stove pipe. Half?
Can you give us an idea how far they are off? What are you longest times between loads.
Are you talking about single wall pipe or double wall? I have double wall pipe and the difference between internal and external flue temps is a little less than half, maybe 40%.
 
  • Like
Reactions: MR. GLO
Are you talking about single wall pipe or double wall? I have double wall pipe and the difference between internal and external flue temps is a little less than half, maybe 40%.
The reading is not valid if using a magnetic surface mount thermometer on a double-wall stovepipe. It is inconsistent and will vary depending on the double-wall pipe design.
 
  • Like
Reactions: MR. GLO