I own a quite old pellet stove. I did a lot of maintenance on it so I know all the details of the machine. However the motherboard is very old now and looks like I will have to replace it soon. It’s pricey… and it’s not possible to integrate this thing with home automation.
So I got a crazy idea. Why not use an esp32 to replace the motherboard ? I think I need few relays (auger, ignition), dimmer controllers ? (fans) and few sensor inputs. Not so complicated. I think that the Climate controls of ESPHome could automate almost everything. At this stage I see 3 main automations to implement:
1/ Control of the exhaust fan speed. I must keep the stove in a negative pressure (about -10pa). There is a pressostat switch here that I coud use. So I need a logic which monitors the swicth state and then adjust the fan speed automatically.
2/ Control exhaust temperature. Define a target exhaust temperature and modulate the pellet auger to keep it spot on. More pellet → more heat.
3/ Control the start/stop of stove using ambient min/max temperatures. When temperature goes below min, start the stove and then adjust the power to make the stove running for a long time (1 or 2h). The power can be adjusted changing the speed of the ambient fan and/or increasing/decreasing the target exhaust temperature (see point 1 above).
I think that a dimmer controller can work for my fans (220V AC, TRIAC driven). However the exhaust fan includes a hall sensor
Maybe PID and bangbang controllers are able to support 2 and 3 ?
What do you think ? Any similar project done already ?
Doesn’t sound too complicated for Esphome, even with basic components you could do that. But to get all parameters matching, you should start mapping them while your motherboard still works. Especially motor speed (triac voltage levels) at different situations. Find your motor specs and start looking for some triac controller sufficient for your motors. Preferably with automatic zero cross control so you don’t have to waist Esp resources for that. Using a pressure switch for exhaust fan speed control can be tricky since switch only have two states, but if the original sensing is done with switch I guess the negative pressure above that threshold is not critical.
While not a complete replacement for your motherboard, you could probably use most of my routines and get it working. I’ve done all of the heavy lifting of controlling the burn pot, and that was no small effort. 1000 lines of ESPHome code later…
The biggest concern I’d have using an ESP and ditching your motherboard is failsafes. What happens if the ESP malfunctions and leaves the auger ON while the stove is burning? Sure it’s a remote possibility, but it needs to be accounted for. Since I’m still using the original motherboard, the built in failsafes provide the protections in my case.
Youll want some type of passive sensor on the exhaust or heat exchanger that interrupts power to the unit in case of a malfunction. I’ve had 2 of these stoves running for 2 years now. One of the ESPs is currently failing intermittently and disconnects from Wifi shortly after a reboot. It keeps working, but this just exemplifies the challenges.
I literally just designed a circuit board a couple days ago so I can easily swap out failing ESPs.
Make sure you read the Discussions as I go into painstakingly gory detail on all the challenges I faced and how I solved them.
Here’s my original thread a couple yrs ago trying to figure out auger control. That early work blossomed into a huge project!
Thanks Karosm,
Actually the pressure switch is not used to calibrate the fan (it’s just here for safety). The fans speeds are presets for each level of power.
I want to tune the vacuum more accurately. I suppose I can control the fan with just pwm. Hall sensor could just be checked to be sure that the motor is running (safety).
The logic could be to increase the speed until the pressure switch in on. But it will be tricky to decrease the speed when running. Maybe could be done slowing down the fan until the switch is off and then increasing the speed again.
Let’s imagine that switch off is 0 and switch on is 2. If I set 1 as a target a controller will try to adjust to the limit which I think is 10pa. Maybe we can make the algorithm more lazy to slow down the motor.
I checked the specs of the pressure switch : enabled when pressure is more than 20pa and disabled when pressure goes under 10pa. So yes looks like it could work…
I think it would be nice to create a pellet stove ESPHome shared project. We can use a preprocessor and vendor profiles to create specific yaml automarically. Because I think most pellet stoves are working the same. All the routines (including the safety ones) could be shared but stoves capabilities and IO setup could be somewhat managed as parameters.