HVAC Motor Controller

I upgraded my HVAC’s blower motor from a standard PSC motor (typically found in cheaper HVAC’s) with a ECM motor which is more efficient and also gives you speed control.

The motor I purchased and installed is a Genteq Evergreen IM:


This motor is hooked up almost the same way as the old motor except for it gives you an additional 5 wires (common, low, low-medium, medium, high) which you can use for speed control. These speed control wires are normally used to tap into the thermostat wires so you can set certain speeds for certain calls (example: low for fan, low-med for heat and say medium for AC).

Since I have 1 HVAC in my house but 2 thermostats (upstairs/downstairs) that uses a Honeywell Zoning Panel to manage the HVAC and controls dampers, I didn’t want to use fixed speeds as described above. So I decided to build a controller for this motor using a Spark Core!

To determine what state the hvac is in (off, fan, heat, ac) I used Fairchilds MID400 chips to sense if there is a 24vac current. Then I used a cheap SainSmart 8-Channel Relay board in order to control the motor speeds. Here is the setup:

Now I basically know what each thermostat (upstairs/downstairs) is calling for and based on that I can set the motor speed from 0-4 (low, medium-low, medium, high). If I set no wires, then the motor runs at a super efficient low speed fan only mode.

With 2 thermostats and each can have a total of 4 states (off, fan, cool, heat) there are a total of 16 possible combinations. For each of these combinations I mapped out a EEPROM address which stores a value (0-4) which represents the speed the motor should run at. To configure the motor speeds I built a web app which connects to the Spark Cloud and reads in real-time the configurations from the Spark Core and also the Active State of the thermostats. Here is the UI:

So again, here you can see all possible 16 states the thermostats can be at and what speeds they should run. Using jQuery when the drop downs menu changes for the speed, I send a message to the Spark Cloud which calls a function which adjusts the motors speed in real-time.

You can also see what state is currently active.

I’ve been quite happy with the solution. The main reason for this project was the fact that the PSC motor always ran at 1 speed no matter how many zones called for air. This meant that when only upstairs ran, it was super loud because of too much pressure. When both zones called, you’d barely feel anything coming out of the vents. Another reason was also saving $ of the power usage of the actual motor. With ECM motors, the lower the RPM’s the less power.

I was thinking of maybe packaging this up and selling it. Not sure if there is any interest, but instead of paying 11k to upgrade my entire HVAC I only spent about 500$ (most of which was the actual motor (~270$ on eBay) and now I have the comfort I wanted!