HVAC Zone Balancer Replacement Feasibility

Part of my HVAC system uses a zone balancer (see attachment) to regulate the amount of heat or a/c sent to 3 separate zones. Each zone has a thermostat, and the ducts to each zone have motorized dampers which can cut off airflow. The zone balancer appears to be relatively simple (mostly just 9 relays), but is 20 years old and broken. And the kicker is that to replace it with an aftermarket part would cost $1500.

As I understand it, the zone balancer receives information from the 3 thermostats (definitely just on or off) and based on this info controls the 3 dampers (may be servos, possibly just open or closed) and the furnace/air conditioner (not sure what kind of output). I’m hoping I can replicate its functionality with an Arduino.

Because there are 3 thermostats with 2 states each, the total number of combinations is 23 = 8. I was thinking that I could connect all the relevant inputs and outputs to the Arduino, and run a loop which checks the thermostat inputs and determines which of the 8 states the system should be in. I would program in a delay to prevent constant flipping back and forth between states. Here’s what they might be:

State 1:
Inputs: T1=OFF, T2=OFF, T3=Off
Outputs: H/AC=OFF

State 2:
Inputs: T1=ON, T2=OFF, T3=Off
Outputs: D1= OPEN, D2= CLOSED, D3=CLOSED, H/AC=ON

State 3:
Inputs: T1=OFF, T2=ON, T3=Off
Outputs: D1= CLOSED, D2= OPEN, D3=CLOSED, H/AC=ON

State 4:
Inputs: T1=OFF, T2=OFF, T3=ON
Outputs: D1= CLOSED, D2= CLOSED, D3=OPEN, H/AC=ON

State 5:
Inputs: T1=ON, T2=ON, T3=OFF
Outputs: D1= OPEN, D2= OPEN, D3=CLOSED, H/AC=ON

State 6:
Inputs: T1=ON, T2=OFF, T3=ON
Outputs: D1= OPEN, D2= CLOSED, D3=OPEN, H/AC=ON

State 7:
Inputs: T1=OFF, T2=ON, T3=ON
Outputs: D1= CLOSED, D2= OPEN, D3=OPEN, H/AC=ON

State 8:
Inputs: T1=ON, T2=ON, T3=ON
Outputs: D1= OPEN, D2= OPEN, D3=OPEN, H/AC=ON

Does this sound feasible?

The thermostat/damper part sounds perfectly feasible but you will have to consider the voltages involved. The fact that the original uses relays would seem to indicate that the dampers are simply motorised rather than being servos.

The connection and interaction with the furnace sounds more of a problem and more detail of inputs and outputs is needed.

Your 'state machine' approach sounds like the right way to go. You mention delays. DO NOT use the delay() function to achieve them as it will block the code executing on the Arduino until the delay() is complete.

Incidentally, are there really 8 states ? If each of 3 thermostats controls one damper on/off then there will be 6 thermostat/damper states plus whatever the furnace does.

I don't see in your defined states how the logic decides if cooling is required instead of heating. A single thermostat can only ask for heat or no heat or cooling or no cooling. The HVAC room thermostats I've seen have two adjustable temperature thermostat controls that allow for three states, cooling on/both off/heating on. Note in your posted picture of the PCB that there is both a heating relay and cooling relay that would need to be controlled?

Seems to me your state list only deals with heating needed or no heating needed. I hope my question makes sense. :wink:

Lefty

williampierce:
As I understand it, the zone balancer receives information from the 3 thermostats (definitely just on or off) and based on this info controls the 3 dampers (may be servos, possibly just open or closed) and the furnace/air conditioner (not sure what kind of output). I'm hoping I can replicate its functionality with an Arduino.

I can see the general logic, but I don't follow the details of how the balancer differentiates between the heating cooling cases. Presumably the logic would need to be reversed depending whether the system as a whole was heating or cooling. I suggest you use a voltmeter to see what sort of signals/power are being sent to the actuators to move them or to send them to a particular position - if they're anything like plumbing actuators, the electrical side is likely to be simple but unintuitive. Perhaps you've already looked at the stats, but you need to do something similar there i.e. understand whether they're simple make/break switches (and if so, which state is which) or something more complex.

Once you have understood how to interface to the stats and how to drive the actuators, the logic to drive them is likely to be very simple and the electrics are also likely to be simple - but you can't design those until you have a thorough understanding of the hardware you'll be interfacing with.