EcoRenovator  

Go Back   EcoRenovator > Improvements > Tools
Advanced Search
 


Blog 60+ Home Energy Saving Tips Recent Posts Search Today's Posts Mark Forums Read


Reply
 
Thread Tools Display Modes
Old 01-18-16, 12:05 PM   #1
bbro62
Lurking Renovator
 
Join Date: Jan 2016
Location: N/A
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Default Need help with Nest-HRV integration

Can anyone point me to information about how to replicate the signal logic of an HRV wall controller with a microcontroller?

I have a Carrier HRV which works well but I've never liked the controls. The unit is designed to run constantly at low speed and kick into high speed when 20 minute wall timers in the bathrooms and laundry are activated, or the humidity rises above the humidistat setting on the wall controller. Obviously, running the unit constantly wastes a lot of heat and since optimal indoor humidity depends on the outside temperature, the crude and inaccurate dial humidisat is next to worthless. For several years I've compensated for part of the problem by building a homemade timer circuit to activate the 20 minute timer function at set intervals to keep the indoor air fresh without running the HRV constantly.

I've recently installed Nest thermostats which offer better solutions to both problems. The Nests include a fan function that allows a fan to run at user defined duration at hourly intervals. The nest also has a dehumidifier function that can control a fan using the built-in humidistat. I have a raspberry pi configured to monitor outside temperature and adjust the Nest humidity setting accordingly. The pi also will let me control the fan based on other scenarios I might conceive in the future.

The Nest can provide the added features I desire but I'm having trouble figuring out the actual control. I've looked at using simple relays but that messes with defrost and other functions provided by the wall controller. So I'm trying to figure out the signal logic used by the wall controller to control fan speed and damper opening. I can muddle through standard switch logic pretty well but microcontrollers and serial communication signal logic is all new to me. Does anyone know where I might find information about communication protocols for these devices or how I would go about analyzing the outputs from the wall controller to figure out the signal logic?

bbro62 is offline   Reply With Quote
Old 01-20-16, 04:07 PM   #2
jeff5may
Supreme EcoRenovator
 
Join Date: Jan 2010
Location: elizabethtown, ky, USA
Posts: 2,428
Thanks: 431
Thanked 619 Times in 517 Posts
Send a message via Yahoo to jeff5may
Default

Yo ho ho, welcome to the world of possibly voiding your warranty. Beware that whatever scheme you come up with will be frowned upon by the factory experts that be. Having a raspberry pi talk to your climate control system and exert some control over it would definitely have people trying to undo your work on a house call.

Find out model numbers of equipment you have, try to find out as much as you can on the web, and reply with something we can surf to and see how what you have does its jobs. Your locality (climate data) and home (size, layout, occupant usage, etc.) info as well as whatever else you want to share will yield better results. The more you share early, the less questions you will need to answer later.
jeff5may is offline   Reply With Quote
Old 01-20-16, 06:31 PM   #3
bbro62
Lurking Renovator
 
Join Date: Jan 2016
Location: N/A
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Default

Thanks for your reply. The HRV unit is long out of warranty so I'm not too worried about that. But you are right, the manufacturer has not responded to any of my queries as expected. Other than the control logic, the HRV is a pretty simple device: a two-speed fan and a damper controlled by a stepper motor, that I've already had to replace once, are the only moving parts. There is a thermistor to trigger damper closure for defrosting and the control board also manages a 20 minute timer cycle activated by wall switches in the bathrooms. The fan and damper are controlled by 3 relays via the control board. The unit is a Carrier HRVCCLHU1150-A and the installation manual is here: http://dms.hvacpartners.com/docs/100...0E/HRV-1SI.pdf.

The raspberry pi work is already done. I have a working prototype of an Outdoor Reset override connected to my boiler to allow my system to recover from nightly temperature setbacks. Surprisingly, the engineers at the boiler manufacturer have been very helpful and interested in this project. You can find details of that project and why I did it here: https://github.com/blbrock/Nest-ODR. Basically, the raspberry pi polls data from my thermostats every 10 minutes via an API. If a call for heat > 1.25F above room temp is detected, the pi activates a circuit that introduces additional resistance to the ODR thermistor wire. It does this in three stages at hourly intervals. Once the call for heat is satisfied, the unit returns to normal ODR mode. That's a tangent but I added a little routine to check the outdoor temperature and adjust the target humidity setting for the thermostat I want to control the HRV. This has been working for a few months now but without anything connected to the HRV to actual do anything.

I posted a more detailed outline of my thinking on the Arduino Forums here: Nest thermostat HRV integration which I have also copied below. I think I overwhelmed them with too much information as I have not received any replies. My current thinking is that I will need to use a logic analyzer to capture the signals sent from the wall controller and then replicate those with a microprocessor. There are only three control states I need to replicate: fan high, damper open; fan low, damper open; and fan off, damper closed. I'm pretty comfortable designing circuits with switching logic for relays and transistors but more advanced signal logic is all new to me. An Arduino can be used as a logic analyzer which is appealing because I could then use the same device as the future controller. But that's where I start getting in over my head. But it seems like it would be similar to the process of reverse engineering IR signals that I've read a couple of tutorials on.

To be honest, I've also thought about ripping out the control panel from the HRV and replacing it with one that isn't such a black box to me. I like the HRV but have never been happy with the control features and know I could do better. But I'd rather figure out the signal logic - in part because it is fun.

-----------------
posts on arduino forum

I'm trying to assess the feasibility of a project I thought would be simple, but was wrong. First, I am completely new to micro controllers but have some hacking experience and am near the end of a project to integrate my Nest thermostats with a modulating boiler via a raspberry pi. That project (nest_odr) is on github but still a work in progress.

Now I want to setup one of my thermostats to control my Carrier HRV. I thought it would be a simple matter of attaching the thermostat to a couple of 24VAC relays to run the fan at low speed using the thermostat's fan timer function, and at high speed using the thermostat's dehumidifier function. But it isn't that simple. The HRV uses a wall controller and 4 wires to communicate with the control board on the HRV. The wall unit ultimate controls three relays in combination to control fan high and low speed, and damper to control fresh air vs. recirculating exchange. I have two options for controls:

Option 1: Brute Force. This option is to control the 120VAC fan and damper control wires via relays directly. It requires converting the 24VAC control voltage from the Nest to 12VDC to allow proper isolation of relays, but would basically duplicate the relays on the existing control board. There are two disadvantages of this option. One is that is involves household current which isn't a huge deal, but it's nice to do everything from the low voltage side if possible. The second is that it would defeat the unit's defrost cycle. The defrost cycle senses the incoming units air temperature and closes the damper to recirculate warm air to defrost the system as needed. The high voltage relays would be behind the unit's controller and therefore would keep the damper open regardless of temperature. So I will need to figure something out here if I go with this option.

Option 2: Low Voltage Control. I think a better option would be to create an interface that replicates the signals being sent from the wall controller. So if the Nest was calling for the Fan, the interface would call for low speed fresh air exchange. If it was calling for Dehumid, it would send a signal for high speed fresh air exchange. That way the unit's wall and on board controllers can still do their functions, including defrost. The biggest disadvantage of this option is my ignorance of micro controllers. I have no idea what is actually being sent across the 4 communication wires to signal the unit. Actually 3 wires because 1 is just a 12VDC supply. I've also been able to determine that the other wires operate at 5VDC with varying current depending on control function. But I have not been able to find any documentation that would help decipher what is happening there. It must be fairly standardized though because all of the HRV manufacturers seem to use the same controllers.

Option 2 appeals to me because it is more interesting for personal growth, it involves only low voltage signals, and it would probably allow me to replace the ugly wall controller all together. It would also allow adding more advanced controls like using humidity or occupancy sensors. So I'm looking for advice on whether this project is feasible for a noob like me. If so, any tips on at least figuring out the signal logic of the controller and how to replicate it with an Arduino.

Thanks in advance for any advice, even if that advice is to stick to my day job.

-------------------------
After more research, I think I'm starting to figure out the microcontroller/logic bit of this project and have more specific questions than my original rambling project description.

It appears my HRV is using serial (probably TTL) logic, possibly current modulated since my poking around with a multimeter indicated changes in current at different controller states. It seems my first challenge is to decipher the HRV wall controller signal logic to know what I need to replicate with the microcontroller. What is the best/ least expensive way to do that? Can this be done with an inexpensive logic probe? There are only 5 possible states for the controller:

Fan High, Damper Open
Fan Low, Damper Open
Fan High, Damper Closed
Fan Low, Damper Closed
Fan Off, Damper Closed

Can I methodically record what is happening on each of the two signal wires in each state with a logic probe to map out the logic? Or am I missing something? I'm pretty comfortable with switching logic but the more sophisticated digital logic is all new to me.

Also, initially I intend to add the thermostat based controller while leaving the original wall controller in place. This would add a second transmitter to the serial communication which I've read enough to know is very bad. Is there a good way to isolate two serial transmitters so they don't try to communicate with the receiver at the same time?
bbro62 is offline   Reply With Quote
Old 01-20-16, 06:38 PM   #4
where2
DIY Geek
 
Join Date: Apr 2013
Location: Sunny Florida
Posts: 401
Thanks: 74
Thanked 83 Times in 73 Posts
Default

I like page 18 and 19 of that manual...
where2 is offline   Reply With Quote
Old 01-20-16, 07:14 PM   #5
bbro62
Lurking Renovator
 
Join Date: Jan 2016
Location: N/A
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by where2 View Post
I like page 18 and 19 of that manual...
Agreed. I have pretty much memorized those pages. And also pages 13 and 14 that give a nice walk through of the control logic. What they don't show is that the control relays are on a printed circuit board and are controlled by a microcontroller. And that control signals are sent from a different microcontroller in the wall control unit. So I know which relays need to be energized and when, but I don't know the secret handshake to give the signal wires to make it happen.

If all I wanted to do was run the HRV at high speed using the dehumidifier function from the Nest, I could just wire a 24vac relay backwards to the interlock pins. But that won't get me to a low speed programmable timed interval which is actually the more important of the two features. I could also use relays and splice into the 120vac wires to control the fan and damper directly. But that would likely result in the unit freezing up because the damper was being held open when it should be closed for defrosting. It's also nicer to work on the low voltage side if possible.

When I started out, I honestly thought this would be a 15 minute job of installing two relays.
bbro62 is offline   Reply With Quote
Old 01-20-16, 08:13 PM   #6
where2
DIY Geek
 
Join Date: Apr 2013
Location: Sunny Florida
Posts: 401
Thanks: 74
Thanked 83 Times in 73 Posts
Default

You're sure you're getting changes in current checking B and G in different modes? Can you measure resistance and check something...

The troubleshooting (Pg 14) indicated using a resistance jumper 3.9K Ohm between Black (J3-9)and Green (J3-8) to trigger LOW speed fan.

Troubleshooting (Pg14) indicated using a dead short between Black (J3-9) and Green (J3-8) to trigger HIGH speed fan.

Another tech forum indicated other brands of HRV's use different resistances between Black (Ground; J3-9) and Green (Control; J3-8) to switch modes. That would be consistent with the two carrier troubleshooting/installation guides I've been reading.

A momentary short of J3-4 to J3-5 is the same effect as the 20 minute override switch closure. The override feature runs for 20 minutes after the final moment those two contacts were closed. If you close them for 60 minutes, you'll get 80 minutes of High Speed override.

Wiring: Black = ground; Yellow = +12V (DC); Green = control; Red = ???

Now the question is how to determine if the unit is in defrost before making either of these two calls for fan. It's explicit that the unit NOT be in defrost mode when calling for either fan speed.

If you relayed the green wire attached to J3-8, open circuit appears to STOP the fan and potentially energize K5. Closed circuit appears to run low speed fan.

Reversing the current state of the damper can be modified by making or breaking the jumper JU1E.

Last edited by where2; 01-20-16 at 08:47 PM..
where2 is offline   Reply With Quote
Old 01-20-16, 09:02 PM   #7
jeff5may
Supreme EcoRenovator
 
Join Date: Jan 2010
Location: elizabethtown, ky, USA
Posts: 2,428
Thanks: 431
Thanked 619 Times in 517 Posts
Send a message via Yahoo to jeff5may
Default

I tend to favor making these proprietary controllers my slaves. Carrier is like Dell or Amazon: they don't make a whole lot of their own hardwre. They used to assemble their own units when they were just wires and relays, but with the modernist realm we live in today, it costs too much to do that in the USA anymore. So they have engineered plans made up that they farm out to a corporate supplier.

Most of these electronic solutions are devised by a very small group of designers. The only thing that is unique between the thousands of versions of controls lies essentially in software or firmware. A proprietary firmware is built to do the job and the brain chip is flashed with it. All the strange comms and button boxes you describe are is a means to an end. The brain chip sorts all this out and generic logic signals come out the other side.Once the stuff comes out of the other side of the tunnel, it directly controls things like buffer chips or optocouplers or light dependent resistors or etc. You are better off intercepting these nervous system signals on their way and controlling the muscles that way.

Trying to decode serial comms and get your result that way is a whole domain of cryptography that not many people know much about. One false move and you're dead kind of work. It helps immensely if you are a hardware communications expert, if not, prepare to learn way too much about the subject. Not a task for trial and error. If you decide to go that way, you have your work cut out for you.

Since I started warping electronic devices, I have had a high amount of success making lots of devices act the way I think they should. Many of the micro controlled devices have inputs and outputs that can be pretty directly wired into an arduino board or similar controller. The power supply is there, sensors and muscles are there, who says I have to use a 200 dollar button box and a strange dongle to make the thing act like I don't want it to? I can stick a dev board in its place for 20 bucks and assume control of everything!
jeff5may is offline   Reply With Quote
Old 01-20-16, 09:55 PM   #8
jeff5may
Supreme EcoRenovator
 
Join Date: Jan 2010
Location: elizabethtown, ky, USA
Posts: 2,428
Thanks: 431
Thanked 619 Times in 517 Posts
Send a message via Yahoo to jeff5may
Default

From where2's response, it sounds like the control panel is just a glorified keypad. Are you sure there are two-way comms going on (duplex)? If not, the main unit may only listen to the control panel when it wants to. Kind of like a power window module in a car, the control panel can squawk all day and the main unit might not listen. Pushing a "close window" button after the window is closed, for example.
jeff5may is offline   Reply With Quote
Old 01-20-16, 10:25 PM   #9
bbro62
Lurking Renovator
 
Join Date: Jan 2016
Location: N/A
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by where2 View Post
You're sure you're getting changes in current checking B and G in different modes? Can you measure resistance and check something...

The troubleshooting (Pg 14) indicated using a resistance jumper 3.9K Ohm between Black (J3-9)and Green (J3-8) to trigger LOW speed fan.

Troubleshooting (Pg14) indicated using a dead short between Black (J3-9) and Green (J3-8) to trigger HIGH speed fan.

Another tech forum indicated other brands of HRV's use different resistances between Black (Ground; J3-9) and Green (Control; J3-8) to switch modes. That would be consistent with the two carrier troubleshooting/installation guides I've been reading.
Early on I thought the black and green wires were the key to a solution. A jumper between the two terminals does initiate a high speed fresh air exchange and jumpering with a 3.9K resistor does initiate a low speed exchange. So I set up a test circuit with relays that either made that connection as a dead short between terminals, or with 3.9 K Ohms between. It works except that it throws the wall controller into an error state. A closer read of the troubleshooting showed that you are supposed to disconnect the wall controller before jumpering the terminals. The error state is only temporary and the controller returned to normal after the relay contacts were open, but still not ideal. I thought maybe I could insert diodes to prevent current from flowing from the relay controlled circuit into the controller. But I didn't have any luck.

Quote:
A momentary short of J3-4 to J3-5 is the same effect as the 20 minute override switch closure. The override feature runs for 20 minutes after the final moment those two contacts were closed. If you close them for 60 minutes, you'll get 80 minutes of High Speed override.
This was the approach I took with my earlier timer. I built a timing circuit with a 555 IC and decade counter to allow me to select 1 to 6 hour timing intervals. At the end of each interval, a relay would close contacts between J3-4 and J3-5 for 1 second to trigger a 20 minute low speed exchange. It works, but the Nest offers more sophisticated control of time duration and lets you set "quiet hours" when exchanges aren't triggered. That would work well to prevent exchanges during cold Montana nights when heat loss would be greatest.

Quote:
Wiring: Black = ground; Yellow = +12V (DC); Green = control; Red = ???
I've done a lot of poking around with a multimeter and learned that both the green and red wires are control/signal wires. They both read 5v which I've learned is a typical voltage for serial communication. When a control state is changed on the controller (e.g. starting the fan), voltage fluctuations can be seen on both red and green wires but the pulses are too fast to read accurately with the meter. Again, I've learned this is typical of logic signalling rather than basic on/off switch control that I'm used to.

Quote:
Now the question is how to determine if the unit is in defrost before making either of these two calls for fan. It's explicit that the unit NOT be in defrost mode when calling for either fan speed.

If you relayed the green wire attached to J3-8, open circuit appears to STOP the fan and potentially energize K5. Closed circuit appears to run low speed fan.
I believe the defrost cycle is initiated by closing the damper while running the fan which recirculates warm interior air across the core to thaw it out. But yes, the trick is to not defeat the defrost cycle.
bbro62 is offline   Reply With Quote
Old 01-20-16, 10:51 PM   #10
bbro62
Lurking Renovator
 
Join Date: Jan 2016
Location: N/A
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by jeff5may View Post
From where2's response, it sounds like the control panel is just a glorified keypad. Are you sure there are two-way comms going on (duplex)? If not, the main unit may only listen to the control panel when it wants to. Kind of like a power window module in a car, the control panel can squawk all day and the main unit might not listen. Pushing a "close window" button after the window is closed, for example.
I don't know about 2-way communication but I do think it is more like a glorified (and pretty ugly) keypad. From what I can tell, the wall controller is a transmitter and the control board on the HRV the receiver. But the manual does say that the 20 minute timer control is handled by the wall controller but the timer switches are wired to the main control board. So there must be some communication from the control board to wall control.

The brains of the control board is a MC68HC705P6ACP microcontroller. There is a sticker over the chip on the wall controller board but I suspect it is the same. There are only 5 possible control commands so I was wondering if a process similar to this tutorial (Learn to Translate IR Codes and Retransmit Using Arduino | Hackaday) would work to capture the control signals and program a microcontroller to reproduce them. Or is there an easier way?

Like you said in your earlier post, I would prefer to take over control by replacing it with an Arduino or similar. Not only could I take an ugly control box off the wall, but it would open possibilities to do other things like use motion sensors to trigger the HRV whenever someone enters a bathroom. Or not run when the temperature outdoors fall below some threshold. In other words, make it smart.

Also from your earlier post, you are right about it being generic parts. As far as I can tell, this is actually a Venmar unit with a Carrier sticker. And it looks like all HRV's sold in the US and Canada use variants of the same controllers manufactured in Canada.

bbro62 is offline   Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 05:19 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Ad Management by RedTyger
Inactive Reminders By Icora Web Design