stovepi -- Thermocouple Monitor and Blower/Circulation Fan Control

  • 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.

csmutz

New Member
Oct 18, 2025
1
New Mexico
I wanted to share my experiences with a Raspberry Pi/Arduino based system I've built to monitor my PE FP30 insert and control the built-in blower fans and external circulation fans.

Overview:

[Hearth.com] stovepi -- Thermocouple Monitor and Blower/Circulation Fan Control

The black box contains the bulk of the electronics, the wire runs to a thermocouple on the top of the fireplace insert, and the switches on the wall are for the built-in blower fans and two separate circulation fans move hot air to other parts of the house.

Remote Monitoring:
[Hearth.com] stovepi -- Thermocouple Monitor and Blower/Circulation Fan Control


The system exports sensor data which is then presented on a website. The ability to check on the stove without walking across the house, especially right before going to sleep, is priceless.

Hardware:

The key components of the system are:
  • Thermocouple: Omega XCIB-K-3-5-10. This is inserted into a metal block that sits on the top of the stove
  • Altronix RB30 relays are used to switch 120V AC power for the blower fan
  • Lutron Fan Control Switch to provide low setting for blower fans
  • TerraBloom ECMF 10" and 8" PWM controllable inline duct fans
  • Raspberry Pi Zero Wireless, Arduino Nano, and various electronics (LCD, temperature sensors, etc)
  • Jackery Explorer 1000 v2 to provide uninterruptable power
[Hearth.com] stovepi -- Thermocouple Monitor and Blower/Circulation Fan Control

The blower fan is normally powered through a fan control wall switch to lower the speed. The Raspberry Pi/Arduino uses low voltage to switch relays that switch 12V DC which is suitable for RB30 relays to switch 120V AC. A secondary relay provides power to the blower fans directly (without the reduced speed of the fan control switch) when the stove temperature is very high and the full speed blower is desired. Hence, the control system cycles the blower fan between three levels (off, low speed, full speed) depending on the temperature of the stove as reported by the thermocouple. The system is meticulously configured so that in the case of an error, failure, or default, the blower fan is turned on. Edge cases such as Raspberry Pi crashes and a toddler switching off the fan control switch have been tested.

[Hearth.com] stovepi -- Thermocouple Monitor and Blower/Circulation Fan Control
Circulation fans take hot air from the ceiling of the room with the stove and duct this air to other parts of the house.

[Hearth.com] stovepi -- Thermocouple Monitor and Blower/Circulation Fan Control

These fans support precise control (PWM) and are driven as a function of the stove temperature--ranging from about 10% to 50%. The ducts include multiple corners/offset and a filter so that sounds is not transmitted through them. The ducted air creates a loop of circulation that returns to the room with the stove.

Software:

The software for the Raspberry Pi is predominately written in python and was developed on Raspbian (Debian 10). The software contains details of the additional electronics such as the LCD and temperature sensors used. The software is available here: https://github.com/csmutz/stovepi

Lessons Learned:

The primary lesson I learned in this project is that controlling a wood stove is not like controlling an on-demand furnace. The goal of the fan control isn't to maintain a specific temperature in a remote room of the house. The goal of a control system is to keep the stove itself inside the optimal burn temperature range and to dissipate the heat effectively with minimal fan noise. The operator of the stove decides how much wood they are going to put in based on conditions such as the anticipated weather and then lets the stove work, especially in the case of overnight burns. The actual temperature inside rooms in the house largely is irrelevant for fan control once the stove is loaded and operating. I had considered adding a stepper motor based mechanism to control the intake but I found that this would basically never be used and certainly isn't worth the additional complexity/risk of malfunctions.

If I were to do this project again, it would be fine to omit remote temperature sensors. The air quality sensor and alarm are largely superfluous. I had intended to program the buttons to allow changing display and temperature curves for different types of wood--this turned out to be a bad idea--the metal buttons allow static discharges to go the control boards, reprogramming over SSH is just easier, and the web interface is used in practice over the LCD. I would probably also use an ESP32 microcontroller instead of the Raspberry Pi/Arduino combo which would be sufficient for a simplified design.

Conclusions:

This system has been very reliable. The primary benefits are:
  • Ability to monitor stove temperature remotely
  • The system automatically keeps the stove in the ideal burn temperature range
  • Limit noise/speed of fans
 
Last edited: