Motorized Air Vents

February, 2012

In order to more effectively direct the heated/cooled air, I had the idea of automating the opening of the air vent registers throughout the house.  Blocking air flow in one room has the effect of increasing the air flow in other rooms which allows me to have a consistent temperature throughout all the rooms in the house.

The key to the project was to find an air vent that could be motorized.  After much shopping and tinkering, I settled on a set from Home Depot that have a sturdy metal top with a hard plastic sliding bevel that controlled the air flow opening.  I had to disassemble each of them and modify them heavily so they would slide without friction.  Next, I needed a motor to move the vent.  I purchased several for evaluation, and finally settled on a VS-19 pico linear servo from Solarbotics.  This was the perfect size for my needs, required only 5V, and had the horsepower to move the vent.  The only downside was that it had no good mounting brackets.  Solarbotics recommended servo tape, but it had too much give, so, I had to kludge together a wire harness underneath the vent.

Next, I built a control module based on a triple stack of an Arduino with a network shield and a Sparkfun Arduino Prototype shield.  On the prototype shield, I added connectors to power up to 6 vents.  Also on the prototype shield, I have a connection for an extra temperature sensor – I needed this since I currently lacked a temp sensor in one of the rooms where I wanted to control 2 vents.  The network shield provides a 2-way interface with Watchdog.

I strung control wire through the dropped ceiling in the basement to all the air vents on the main floor of the house.  Unfortunately, it was not possible to pull these wires to the upstairs vents – maybe in the next house!  It was important for me that no wires were showing, which I was able to accomplish.  I terminated all wires with JST connectors which won’t slip and allow an easy disconnection if any maintenance is needed.

Finally, I added some functionality into NetChecker to integrate the automation control into Watchdog.  Once very 30 minutes, Watchdog evaluates the temperature in each room on the main floor of the house.  Depending on the season, the air vents are opened/closed to adjust the temperature in the room to achieve an optimal, consistent temperature throughout the house.  Another feature is to close all vents every night at 9pm.  This forces hot/cold air upstairs where we sleep for better sleeping conditions and energy savings.  In the morning, the vents are re-opened to balance the temperature in the house.

I wrote the software to hold the servos in one of 3 positions:  Open, half and closed.  The half position has helped to avoid oscillation in room temperature and reduce the number of adjustments required throughout the day.

One problem I found was that the servo motors are jittery and made a lot of noise (which seemed to be amplified inside the air ducts).  To solve that, I added a solid state relay that I turned on only when I was ready to adjust the servo motor.  Once they were done moving, I turned off the relay and everything was quiet again.  Another problem was that one of the servos failed and had to be replaced.  I had stock piled some surplus for this case and I found it a straightforward swap out.  The tiny little motors in these servos are meant to be a pager vibrator motor, and I know they don’t last forever.

Arduino Uno Source Code


405915_382847058409191_945768730_n  Close up view of the pico servo motor wired into the bottom of the air vent.

431357_382858768408020_252672595_n  A top view of the vent with the Arduio controller stack.

408000_382846988409198_2026058538_n  The NetChecker interface with the new air vent control functionality showing the status of each vent.

418295_382847161742514_1424627424_n  The Arduino stack with color-coded vent control wires.  The stack is too tall to put the top on the case, so I leave it open.

399828_382847105075853_843775131_n  A view of my messy workbench as I was testing the vents.



    1. The documentation on Solarbotics’ site is sparse (and their tech support was unable to answer my questions). However, it does specify the stall force is 60, so I do not think it could lift a 200g load. For this load, I’d recommend a linear actuator from a company like Firgelli. I evaluated their PQ12 series and found it to be good, but too big for my needs, but may work well for you because of its increased lift capacity.

      1. I think 60 is the torque that the motor can provide. I don’t know why they would report torque for a linear actuator. It is totally irrelevant. Firgelli is too big for my applications too. I had better with HaydonKerk linear actuators.

  1. Any updates on this project. Did you experience issues with Servo Life? Is the system still running? Did you have any issues with your HVAC system? Planning on doing something similar in the near future. Thinking about a wireless system( Walls and floor are open so don’t know yet {dont know if i want the added noise}).

    1. Mike, the project is alive and well – thanks for asking. Really very little maintenance required since I installed the vents. I do try to clean them about once a year and open/close them to confirm the vent is still moving as designed. I did buy some spare linear actuators, but have not used them yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s