Carrier/Bryant NIM Ventilator Control Info

jeditekunum

Active Member
The Carrier (SYSTXCCNIM01) or Bryant (SYSTXBBNIM01) NIM (Network Interface Module) interfaces the Infinity/Evolution systems to ventilators and/or non-Infinity/Evolution A/C. I picked up a reasonably priced Bryant NIM on eBay and connected it to my Carrier system and it works fine (be aware that older Infinity/Evolution thermostats don't support any NIM!).
 
The ventilator interface is labeled B, G, R, Y:
 
B is ground.
Y is +DC sense.
G is control.
R is unknown at this time.
 
Y must receive positive DC voltage from the ventilator in order for the system to recognize that a ventilator is attached. In my case +12V works.
 
The NIM places a resistance between B and G terminals to control the ventilator. My test results (with an ohmmeter) are:
 
357: high
4K: low
22K: off
 
As I stated in my prior post about the ventilator, these resistance values are not consistent across all systems. The Broan ERV that I have does not work correctly when directly connected to the NIM.
 
I will be building a home-brew translator circuit. At first I thought a couple of relays and some analog comparator and logic circuits would do the trick. I'm now thinking that I might go way over the top and use a small microprocessor with ADC to measure the NIM side and a digital potentiometer to drive the ventilator. Any suggestions welcome!
 
 
I am now monitoring this from a small AVR. I have VCC (5V) going through a diode and a 4.7K resistor that is then connected to the "G" wire and to an analog input. I'm reading the voltage using the VCC reference.
 
I'm getting the following readings:
 
~0.2V for high
~1.9V for low
~3.5V for off
~4.4V when disconnected
 
My logic interprets:
 
>= 4V as disconnected
>= 2.7V and < 4V as off
>= 1.0V and < 2.7V as low
< 1.0V as high
 
to allow for some variation.
 
This is the "driver" side of my little adapter. The "output" (ventilator) side is discussed in another thread.
 
I've also got LEDs for state: red for disconnected, yellow for low, and green for high. I put 3 jumpers in so that I can select between accepting the input from the NIM or onboard resistors forcing low or high for testing.
 
It appears that this general approach could be used to translate between any incompatible ventilator and control system.
 
For the record I'm using an Arduino Pro Mini (Atmega328p) clone board. For software I'm using https://github.com/mikaelpatel/Cosa although this is so simple that Arduino could be used directly.
 
Just an update. This all works fairly well except for the unfortunate case that the Carrier thermostat seems to have severe brain damage when it comes to controlling a ventilator. Between periods of reasonable behavior it would get into stretches of 12 hours or more with ventilation on continuously. This is with latest firmware as of today.
 
I've given up and made my thermostat forget about the ventilator and I rewired so that the "furnace blower interlock" (ie shorting the G and R wires) is now wired to the interlock relay in the ventilator. The NIM is no longer being used.
 
While there is a place to use a relay to turn the ventilator on/off this is only high speed. But you can get low speed by using different terminals and a resistor.
 
I'm using am Insteon I/O Linc relay to call for ventilation - it turns on the ventilator which in turn calls for the furnace blower. This is a much more powerful solution anyway - I'm controlling it from Indigo on a Mac giving lots of custom capabilities. I have a Netatmo which is also integrated into Indigo so I can adjust the amount of ventilation time based on the indoor CO2 levels!
 
 
Back
Top