Rolling Your Own Furnace Controller

replacement-thermostat

[Viktor’s] found an opportunity to put his embedded design skills to use when the furnace controller in his building went out. He admits it would have been much easier to just purchase a replacement, but not nearly as fun. Instead he built this furnace controller based on a PIC 18F4550.

First off, you may find it strange that we’re calling this a furnace controller and not a thermostat. But a study of the hardware schematic reveals that the device doesn’t have the ability to sense temperature. It merely switches the furnace on and off based on a time schedule. We guess this is for an apartment building where measuring the temperature at one central point doesn’t suffice?

At any rate, the build is clean and the UI looks quite easy to use. Inside there’s a board-mounted 12V relay which controls the furnace. The schedule is saved to the EEPROM of the microcontroller and time is kept by a battery-backed DS1307.

We’d love to see this extended in the future. Some possibilities would be adding internet connectivity and implementing a mesh network of temperature sensors which would give feedback to the main unit.

17 thoughts on “Rolling Your Own Furnace Controller

  1. This is kind of dumb. Wouldn’t the largest reason to do this be to implement a configurable PID loop with temperature feedback? Maybe some loop adjustment/prediction based on outside temperature? Some other random building-specific feature? Most temperature controllers that do reasonably advanced stuff are very expensive compared to normal thermostat so I could see someone doing this. I was tempted to when setting up a boiler system with multiple zones and thermostats controlling them.. And if there was a way to get analog temperature feedback from those t-stats back to the boiler control i would have. Even those basic off-shelf parts have some basic safety features which he may or may not have added, they aren’t mentioned. Hopefully covered in the heater controls that weren’t replaced.

    What he has there could be replaced with a 555 timer.

  2. I think this is good progress.

    He replaced a broken part with a working part. He included the features needed at the time. While an all bells and whistles unit might be slightly better this device is now working as designed.

    Sometimes simple is better, and it sure beats an on and off switch.

    ” I was tempted to when setting up a boiler system ” When you have done this then please post pictures and we can berate your design.

    It’s the definition of a hack and a great writeup with photos to boot.

  3. It’s a central heating timer, not a furnace controller or thermostat. Presumably the existing system already has one or more thermostat(s) somewhere and he only needed to replace the timer. Thus a combination of the new timer and existing thermostat(s) would control the temperature.

  4. When I was in the states I did this off a single IC in my manufactured home that used a 2 unit water heater and a external AC unit. There is actually an ISO or something for it.

    Factory controllers use the ISO and have gates to multiplex units.. It’s actually only voltage drop..

  5. I think point #1 was to replace what was there… then he can worry about feedback based on outside temperature, aggregating several interior temperatures, etc…

    My guess is that this is a gravity steam heating system with individual valves to allow more or less steam into individual radiators. These are not models of efficiency by any means–they were designed for an era when you literally started a coal fire and constantly fed it. When people moved to gas/oil fuels with the ability to control the boiler being on/off it just wasn’t worth it to start tearing things out so they kept getting used.

    I do think some feedback would make sense, based on external temperature and on some central internal temperature. Probably they are working toward making sure the coldest part of the building remains in the upper 60s, at the expensive of the hotter parts of building being in the upper 70s and people opening windows.

  6. clearly this can’t be duplicated(as suggested) by a single 555 timer IC. Maybe that easily field programmable 555 that can drive a display can. :) Where this will connect to the same control lines the old timer was, wouldn’t be reasonable to assume that, internal to the heating system safety features, are not affected? The only downside that I can think of is shared with all custom control. When you have it working as planned, you should set out immediately to build as least one duplicate to set back for if/when the original fails

    1. Anyone who actually wants to do this, there are ICs with thermostats in them and GPIO and FLASH storage. You only really need 3-4 controllable relays and needed stepping for residential furnaces.

      All furnaces use 24VAC and 1-2 stage heating and cooling circuits. Commercial units have more stages.

      It’s actually pretty simple, you close circuits based on thermal feedback. I’d put a fuse and/or heavy capacitor on it too…

        1. Most of Europe has isolated boilers, and on newer and upgraded homes they have small central units with mounted vents, with a three wire interface. Apartments use boilers that are manually switched.

          1. The apartment I’m in, in rural northern-eurpope, uses a non-reserve mains industrial heater for a radiator based heating system to all apartments; sinks and showers/tubs use mains independent boilers.

            These systems are super simple and can be controlled easily using relays and GPIO no matter the polarity.

            I was actually going to do a linux(for the UI) system for my water heater and furnace when I was in the states using gumstix and a single IC+relay board.

            PS: wet systems are idiotic IMO.. energy star electric units costs 3/4 for each resident..

  7. That’s very creative and think would have took a lot of time to put together. But i am still wondering why you chose PIC 18F4550, since most of these controllers these days dont work on PIC 18F4550. But, i could be wrong.

    — Maud

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.