Forced air HVAC Smart Psuedo-Zoning

Overcome temperature imbalances in homes with forced air built before modern HVAC design using a variable speed booster fan.

Similar projects worth following
This project attempts to fix areas with poor conditioning in homes retrofitted with forced air HVAC by controlling 0-10V booster fans on weak zones. Older homes often don't allow for an optimal duct layout and options for supplemental heating / cooling are not cheap.

The requirements for the hardware are:
1. Monitor 3 24VAC Thermostat lines (heat, cool, main fan)
2. Monitor 2 or more temperature sensors (1 near main thermostat, 1 in area of weak conditioning)
3. Control a PWM signal for 0-10V booster.
4. Close the Main Fan circuit to override the thermostat to turn the fan on.

HVAC takes time to cycle and feel the impact of changes, so it would be good to collect data vs attempt to do things by feel.
5. Log thermostat, temperature, PWM and Override signals.
6. Monitor fan tach signal and alarm / log if the fan is not spinning when commanded.

This has been a project I've been cooking up in my brain for a while after hearing "You can't fix a bad design with a booster fan" when discussing how the upper floor of my bungalow gets warmer than the lower floor. Before the obvious is assumed, I've done excellent insulation but the heat differential in the house is present in all seasons because the air stratifies and there is insufficient draw from a return duct in the upper floor. During renovation I've placed in the highest location possible based on a recommendation from an HVAC

I've installed a Fantech 6 inch booster fan in the return duct and have proven that this fixes the issue by running it manually on a constant basis with the main furnace fan. That is similar to how commercial buildings are controlled but for residential purposes it is a little wasteful. The two fans should always be running together but they do not have to be running 24/7.  Ideally we are calling them when the thermostat calls for heat / cool.

Additionally the system should be able to trigger the main furnace fan so the combined system can redistribute the stratified air. In a cooling season, this would eventually trigger the thermostat to call for conditioning. In a heating season it would just be actively fighting the temperature differential, potentially reducing the need for heating by redistributing the warm air to lower floors.

I expect that the need for 'boost speed' from this fan may be different during winter vs summer vs shoulder seasons. Also, while the house is vacant, the temperature differential is not so much of a concern. In order to avoid wasting energy and reduce cycles on the system, actively fighting the temperature differential should only be done when needed.

Also the inline fan services my bedroom so I would want to place some speed / noise / cycling constraints on the system at different hours of the day. This is why I'm not just doing this with a relay.

That's a brief description of the project goals. I'm still a bit of newbie when it comes to low level electronics but I've made some decent progress with this. I'm hoping the Hackaday community can help me out with the last few bits and bring it home.

Thanks for stopping by.


Schematic of board with issues.

Adobe Portable Document Format - 71.37 kB - 03/14/2021 at 15:22


  • 1 × FreeTronics EthereTen Arduino Clone with SD Card and Ethernet built in.
  • 2 × DS18B20 Temperature Sensors
  • 1 × 0-10V Inline Fan, Ex: Fantech EC series

  • Prospective Opto Replacements

    EcPc03/16/2021 at 02:15 0 comments

    I'm using the H11AA1 for everything because... I got it to work... and then yeah i just used it in every position in every iteration. I told myself this was good because "it reduces part count". I'm ordering 10, not 10 million but I was just lazy.  Time to for baby bird to leave the nest and find some new components.

    My home base:

    24 VAC signals from thermostat:

    This looks like a suitable analog... but requires an order of 1000 from digikey. Just not ready for that level of commitment.

    This has similar properties and I don't know the ins and outs

    Fan tachometer and 10V PWM:

    Thinking about this one:

  • Current Status and Issues

    EcPc03/14/2021 at 15:44 0 comments

    I've attached a link to my current schematic here which I've also uploaded to the project.

    Additionally here is the interface schematic for the fan.

    Here is how I interface to it on the board:

    I am using the H11AA1 optoisolator on the 24VAC lines and also using another one (out of convenience) to drive the PWM signal for the 10v fan control line.  The schematic does not show an optoisolator on the tach feedback circuit and I believe I need to add one as once this connection is made, the board stops working. Looking at my old test boards, I realized that the grounds were tied together between the fan and the Arduino. Attempting that now seems to lock the board up and it seems more straightforward to add more isolation. Not sure how it worked last time. Perhaps I just got lucky.

    I have been using the same part number as I use for the AC lines out of convenience but should swap this to a DC component. Additionally to conserve board space, I'd like to get select a multi-channel component for this. Still through hole because I'm not set up or skilled enough for surface mount. 

    So that's Goal #1 for the next revision: 
    Fully isolate fan circuit with proper dual channel DC optoisolator component.

    Here is an clip of the thermostat monitoring section of the board: 

    This is working as expected, however after moving to the EtherTen board and using Freetronics Protoboard Short as a footprint template, it would be much more convenient to be able to get these condensed into a single component. Additionally, I don't think I actually need the 4th circuit monitored but given that some thermostats have different levels of heat and cool for multi-stage systems, it would be convenient to be able to do that. Also, I don't think I'll be able to find a Tri-Channel vs a Quad-Channel so no reason to remove it at this point.  Difficulty in this is finding a suitable product as my background in these things is pretty weak.

    So there's goal #2 for the next revision:
    Use a 4 channel optoisolator to handle the thermostat signals to reduce board space.

    Here is a snippet over the fan override circuit.  I have yet to test this but will do so prior to the next board being ordered. It would be convenient to find out if it doesn't work ahead of time, no?  Anyone reading this that can tell me why this would not be able to safely switch 24VAC, I would appreciate feedback.

    The EtherTen board I'm connecting this to has some issues pulling this off with the shield connected but works fine running the code without anything attached. I think the most glaring issue is the motor interface circuit at the moment. Additionally I have not used the temp sensor circuits at all. so that is not a factor yet.

    Any help / wisdom /  "WTF.. that is stupid" / guidance is appreciated. I have thick skin, go nuts.

View all 2 project logs

Enjoy this project?



EcPc wrote 03/16/2021 at 01:32 point

Thank you for your feedback @Bharbour.  I need to put together some sort of full system diagram together if I'm going to solicit help.

I'll clarify something on the fan circuits. I am attempting to control two fans actually.
There's the main furnace fan circuit which I would in most cases, treat as read only. That is 24VAC, simple relay logic. I am using the 24VAC common to see if the Heat / Cool / Fan lines are hot.  If there's a temp differential detected I want to resolve when there is no call for conditioning, I need override the thermostat to force the furnace fan on. To do this I connect the 24VAC hot to the fan line Fan. This is using the AQY211EH and is simple on off, no pulsing. Not yet tested. It's actually a lower priority item to be totally honest.

The 10V circuit is entirely separate, and yes,I'm feeding that from the 10V power coming from the fan and keeping them separate from the control board with the optos. Definitely goofed the tach input.

In reference to your other comment from the hack chat, the internal pullups I think are in the order of 20k and the signal looked stable using one of those simple pocket oscilloscopes. The signal doesn't require any conditioning and works as a nice digital as desired.

  Are you sure? yes | no

Bharbour wrote 03/14/2021 at 19:43 point

The opto choice on the inputs looks OK. The fan drive opto relay looks OK as long as you are either switching the fan on 100% or off  or the frequency on your PWM is really slow.

One thing I noticed is that you are showing 24V control for the fan, but the fan control lists 0-10V. The schematic just below the fan data sheet shows 10V signals. I am not sure which it is. The fan control signal is most likely a DC signal. It looks like the fan power is 120V.

It looks like you could use the 10V output as the power for your control input. The fan control shown below the fan data sheet fragment looks like it should work. I am not sure about the LED current, in one place the Panasonic data sheet shows the LED current should be between 1.2 and 3mA and the next table shows it between 5 and 30mA. I would say to leave the 330 resistor (R5) like it is.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates