Teensy Humidifier

Status
Not open for further replies.
So here is the PCB for the latest iteration. It uses 16A relays because the ultrasonic emitter vendor claims the unit may use up to 300W of power. One relay is for the emitter, the other for the water solenoid. The latter definitely does not need a 16A relay, it was simply convenient to use two of the same.

Here is the underside.
back_humidifier.png
You may notice the ACS711 current sensor that tells me if the emitter is running or if the water levels are too low for the emitter to come on. Big diodes deal with any inductor-related currents coming from the relays. As always, a LTV844 keeps the higher voltage signals from the AC system very separate from the Teensy LC running the show. Small full wave bridge rectifiers and a cap on each channel hence provide the Teensy with a very clean on/off signal for each of the four zones that may be calling for humidity.

On the topside,
front_humidifier.png
there is a header for Pauls touchscreen which will simply scroll text regarding current operating conditions. A three pin header handles a small 15 LED WS2812B strip that I will put int the duct. Whenever the unit is running, the duct will hence light up red, illuminating it. That helps identify issues such as wall condensation and it provides a visual cue from above that the humidifier is running.

As for safety, I still use a fully independent humidity controller to shut everything down in case the house fan is not running. The teensy also still controls a powerswitchtail that controls power to the ultrasonic and fan system.

The boards should be here soon, Digikey already delivered the components. Can't wait to reflow it all. The code compiles... but will it work? Future iterations may make use of Pauls touchscreen function. For now, it's simply a great passive way to show what the Teensy is doing without having to attach a CPU to make it happen.
 
Last edited:
Awesome work, defragster! FWIW, I have now finished the preliminary work. The system is operational, seems to operate as intended! Whoo hoo! Finally!

I ended up dropping cap touch from the project because the capacitive touch system was too imprecise/inconsistent. I kept getting under and overfills... so I chose a optical switch instead, which is working beautifully. I also added a opto-coupler with a resistor ladder to control the fan speed of the fan that pressurizes the system. That is also working beautifully. So the pressure-assist fan speeds up as more zones call for humidification and slows down as zones are satisfied. This is helpful for noise reasons and it also limits the amount of moisture entering the duct system when only one zone is calling for humidity, for example.

As a nerd touch, I put a Neopixel strip in the duct that turns on when the humidification system is running. It illuminates the safety sensor. Maybe I'll call the system 'Roxanne' because the duct currently is lit red every time it runs. I'll post pictures later.
 
You too Constantin. Are you going to use the touch screen? Do you see value in the Button struct stuff I started? Anything missing or hard to use?
 
You too Constantin. Are you going to use the touch screen? Do you see value in the Button struct stuff I started? Anything missing or hard to use?

I will eventually get there - when the next set of screens shows up, my interface is operational, and so on. Some time yet - but I hope to get there! In the meantime, here is a view of what I have so far:

The control system: In the top left corner is the stock Humidity limit controller. If the duct humidity goes over 70% RH, line power to the Teensy, fan, etc. is cut (safety). Next to the controller is a wire Terminal for all the wiring associated with the ultrasonic humidifier, the water solenoid. The white protoboard holds the interface for the optical water level switch as well as the opto-coupled wire-resistor ladder for the fan speed control. The wire terminal at the bottom of the Osh Park board is for the zones calling for humidity, while the two relays do the work of enabling the ultrasonic emitter or the water valve. Eventually, the TFT display will be attached to the vertical pin header...
IMG_7105.JPG

Here is the business end: The Polycarb containment box and the ultrasonic emitter inside. One pic shows what it looks like when operating, vs. when it's not. This is a food-grade container and lid (Camco), which means it's pretty easy to keep clean (RO water being used). You can see the 12-head emitter and the optical switch to the left of the picture. I also have a preliminary P-Trap (reversed) to allow overflows to drain.
IMG_7102.jpg IMG_7095.jpg

A blower pressurizes the container via the tube on the right, a diverter mixes the air, and the humidified air then exits through the top of the box and enters the duct system (via the air terminal exit on the left). The water valve lifts right off the lid, if necessary. The connections are flexible, as I dust collection hose and connections from Rockler. Almost all the ducting is 4" ID, with a short section at 6" ID
IMG_7096.JPG IMG_7099.JPG

The 'hyperfan' (blue thingie to the right) pulls air from existing duct work, runs it through a silencer (silver cylinder filling most of the picture). Thankfully, the hyperfan speed control was really easy to deal with - it's nothing but a Rheostat on the inside! So, I created a resistor ladder with a opto-coupler in order to safely allow the Teensy LC to control the speed of the fan. I used a series of doubling resistors (300 Ohm, 750 Ohm, 1k5, and 3k9) to duplicate the range of the Rheostat. The transistors of the opto-coupler short out individual resistors, as necessary. Zero Ohms = lowest speed. For my next revision, I will use smaller resistors (the 3k9 is never used).
IMG_7097.JPG IMG_7071.jpg

The duct has a port-hole now where I can look into it from above... See the paper cup I put the sensor on? The humidity sensor seems sensitive to nearby metal. This is one of those rare occasions where the use of a small-lens camera can save a lot of time and effort - I did not have to lift the grate.
IMG_7076.jpg IMG_7078.jpg

Here is a view from inside the basement (via a sealed plastic window in the duct). To the right, you can see the tip of the plastic 45* tube that angles the humid air stream into the return for the AC system. Don't worry, that's not condensation dripping down to the top right, just floor stain. FWIW, that's 50% brightness on the LED light strip.
IMG_7079.jpg

Once the next series of displays comes in, I will try to finalize the project. Some lessons learned:
1) It was frustrating to find out that the Teensy would crash hard if the Adafruit TFT driver is used and no display is attached...
2) Trust data sheets but verify... the power supply for the ultrasonic emitter allegedly puts out 24VAC... in real life, it's 36VAC. So I bought a 36VAC solenoid valve on ebay as a replacement for the 24VAC one that was getting hot under prolonged use.
3) The cap touch library is great for fingers, doesn't seem to great for water level measurements in an electrically noisy environment.
4) The touch displays sold by PJRC are only available with the pin header installed. Plan accordingly!

Future work:
1) Better integration of Fan speed control (PCB, no floating wires).
2) Implementation of touch screen - specifically allowing for varying fan speed as a function of zone calling.
3) Pressurizing the RO expansion tank correctly.

For now, I am very happy with the results. The system raises humidity of a zone by a percentage point in a manner of minutes. The system is currently set to maintain the basement humidity at 5% higher than the rest of the house, turning the basement into somewhat of a humidity battery inside the house.
 
Last edited:
A update from the Teensy... things seem to be under control...

Teensy Uptime: 2 days, 17 hours, 51 minutes, 0 seconds.
Total Runtime: 3 hours, 35 minutes, 42 seconds.
Runtime as % of Uptime: ~5%
Runtime by Zone: 1: 100%, 2: 0%, 3: 0%, 4: 0% of total runtime.

Zone Status #1: OFF, 2: OFF, 3: OFF, 4: OFF.

Teensy Uptime: 2 days, 17 hours, 52 minutes, 0 seconds.
Total Runtime: 3 hours, 35 minutes, 42 seconds.
Runtime as % of Uptime: ~5%
Runtime by Zone: 1: 100%, 2: 0%, 3: 0%, 4: 0% of total runtime.

Zone Status #1: OFF, 2: OFF, 3: OFF, 4: OFF.

A humidifier runtime of only 5% seems to suggest that the system is pretty capable re: water delivery... it was in the 20-30's with pretty low humidity for a few days there. FWIW, I have the basement zone (aka zone 1) on 35% vs. 30% upstairs, so that explains why the basement runtime is highest. The new board from Osh Park should be here tomorrow or so, then its time to finalize the project. Here are the PCBs...

Bottom.jpg
The Bottom side, with all the familiar components and a cutout for the Touch TFT and the addition of the opto-coupled fan speed control.

Top.jpg
Ditto.
 
Observed some strange behavior that I have yet to resolve, i.e. random lock ups of the previous unit. For example,

1) the duct light would stay lit even though the rest of the unit was off.
2) The water valve would keep pumping in water even though the water was satisfied
3) The unit would not turn on when there was a call for humidity.

The watchdog timer hence does not seem to work... Or somehow the programming is such that there is a rollover event or somesuch.

... however on the good news front side, the latest edition of my Honeywell compensator board seems to be working perfectly. This board deals with a programming issue on the Honeywell touch screen thermostat where the thing will turn on the fan in the AC system (via signal wire G) when it decides that there is a need for 2nd stage heat. My first iteration of the compensator used simple 24VDC relays with a rectified 24VAC control signal to disable the G signal whenever W was energized, however that didn't work perfectly. Now I use a single SSR (LBA710) to disable G unless H is calling for humidification. This appears to be working perfectly.

Tiny bridge rectifiers turn the signal into DC with the help of a 0.1uF cap to smooth things out. Then, 5.6kOhm resistors drop the voltage from about 25VDC to a more manageable 1.2VDC for the diodes in the opt-coupler as well as the SSR.

Top and Bottom Views
TOP2.png Bottom.jpg

As you can see, the compensator also has a small output section where the status of each signal is opto-coupled to a 2x3 shrouded pin connector. A Teensy evaluates the status, updates a display, and eventually will tie into a house-wide DAQ system. The whole board is very simple to assemble.
 
Last edited:
New humidifier control board had a small issue, i.e. a 5V bus shorting to a GPIO trace. The trace ended up getting powered @ 5.3VDC, which the connected Teensy LC somehow survived without smoking. Still chasing some software gremlins though. For some reason, the input_pullup config on the Teensy 'is-there-a-call-for-humidification?' pins does not seem to be working as expected. I may try an alternate Teensy LC just to see if any potential damage caused by the trace short may have killed another part of the Teensy rather than just the specific GPIO pin.
 
OK, killed the software glitches that were mostly due to changing hardware configurations. The unit has been running happily. I will say that the 100 Ohm resistor on the screen LED power source does dim the thing considerably. Hard to read with red @ font size = 1.

Here is the assembly, with all components in place.
Assy.jpg

Some sample screen output:
Screen.jpg

Looks like this might finally be it. Now the question is how well the system copes with operating realities.
 
Found some more gremlins, the sneakiest being a overflow condition due to sampling the analog and digital inputs at 11ksps. Rather than rework all the math, I simply inserted a delay(9) to slow things down a bit. 100+sps should be sufficient to see if there is a call for humidification. :p

Another cute one was discovering that my water level checking function wasn't checking to see if the humidifier was supposed to be running. As originally written, it looked for either the optical switch indicating a low water level OR the ultrasonic emitter not consuming more than a token amount of power. The latter was based on the observation that the emitter has a built in low water switch, shutting it off when the water is about 1/2" above the ceramic discs.

Thus, when the ultrasonic emitter was turned off, the function assumed low water levels and tried adding water. Thankfully, a de-energized SSR made that impossible. However, I amended the function with an AND statement looking for a humidification call to prevent that from happening again.

An interesting experience can be had with the constrain function, BTW. While it claims to bound variables to stay within a given range, something glitches on the way to heaven when Serial.print is used to publish the resultant number. I can consistently get Serial.print(x) to print out 101 even though x's range had just been constrained via constrain(x,0,100). Same issue if I use a min(x,100) and max(x,0) statement right after each other.

It's really fun to see the SCK LED do it's dance as this display is updated. Too bad the current ILI9341 library is only currently supporting the 3.x series.

Lastly, if you power the LED with the 3.3V bus and not VIN, the 100 Ohm resistor that Paul mentions in the touchscreen sale page is not a good idea. The display becomes too dim.
 
Last edited:
Roxanne has been running happily for days now, with no crashes, freezes or other stuff spoiling the party. The display does a lovely job of summarizing the current status of the unit. Next steps could include a better UI, such as cycling through a number of screens with more detailed information by zone.

Fan behavior seems pretty much optimized at this point. Runtime is well below 50% so the unit appears to be sufficiently big to handle colder, drier days, if we get any this spring.
 
This is such a cool project Constantin. I've been following it for a while, and its great you have got to the point where you have named your project ... :rolleyes:
 
Hi Adrian,

Thank you for the kind words... it will be fun to see if it ends up working better than the steam humidifier that preceded it - and whether my utility bills will reflect the absence of the former humidifiers' 2kW load. After all, the added humidity by ultrasonic means will increase to the heating load while the steam version didn't. However, all things being equal, the efficiency of the heating system (~97%) combined with relatively low natural gas prices should trend towards a much lower cost of ownership. Never mind consumables... the Nortec 'bottles' that the humidification system made steam in would fail after a year or two and cost $250 a pop to replace (by me, a technician call would add another $125 to that).

There still are some optimization opportunities that I want to look into come summer - i.e. reducing the amount of water in the sump and improving the airflow distribution to make it less turbulent. Then there is the question of how much the dust in the ductwork goes up. The RO system helps (water going into the humidifier is at 40PPM TDS) but I may need to add a deionizer stage in the future. We'll see.

In the meantime, it's fun being able to see if the system is running by looking for a red glow out of the floor register in our main hallway. The cumulative runtime is now around 11% of total uptime, suggesting that once the house materials had soaked up sufficient humidity/moisture, replacement humidification needs are much more modest. Humidity is also very even, across multiple floors even though the humidity is only being added to 2/3 of the home zones. Of the four zones hooked up right now, only two have been calling. The rest seem OK just riding along.
 
Interesting system - good work. It seems air mixing could account for the one zone being moist enough - or it could be a bug :) Is that zone where the shower is, or away from opening doors or other reason it might not loose moisture? Will be interesting over time to see what the effect of dust or residue if using tap water. I know we saw white film on stuff when we used an ultrasonic humidifier.

Not sure I see the added (cool) water taking more heat? Room temp water feels cold - the ultrasonic device just mists it - not cools it? And more water in the air slows evaporative body cooling so you'll feel warmer at the same temp?
 
Interesting system - good work. It seems air mixing could account for the one zone being moist enough - or it could be a bug :) Is that zone where the shower is, or away from opening doors or other reason it might not loose moisture? Will be interesting over time to see what the effect of dust or residue if using tap water. I know we saw white film on stuff when we used an ultrasonic humidifier.

Not sure I see the added (cool) water taking more heat? Room temp water feels cold - the ultrasonic device just mists it - not cools it? And more water in the air slows evaporative body cooling so you'll feel warmer at the same temp?

Well, the basement zone is designed to maintain a 35% RH while the rest of the thermostats are set to 30% RH. The idea being of using the basement as a moisture battery. All the windows down there are double pane, hence less likely to weep come cold conditions outside unlike the stuff from the 1870's upstairs. The kitchen zone is the other heavy user and I imagine the mudroom door opening and closing there has a big part to do with reducing ambient moisture.

As for the dust, reverse-osmosis (RO) currently reduces the total dissolved solids (TDS) by about 90% from 350-400PPM to about 40PPM. Some of that stuff stays inside the container, some is aerosolized. But there is a MERV air filter downstream from the injection point in the return duct that should capture most of the dust before it hits the indoor unit. At least, so I hope.

A future revision could also incorporate a drain valve to periodically drain the container and replace the water inside. Could be one way to keep the TDS inside the container down.
 
Update from the field: The teensy portion of the humidifier (i.e. The control system) has been running flawlessly, the actual emitter not so much.

Specifically, I was wondering why the run times had increased in length, took a stroll into the basement for a look. Instead of being greeted by intense smoke inside the container, I could see that 6 of the ultrasonic horns were not producing, the other 6 were operating impaired.

Water had penetrated past the discs and impaired the emitter. Ordered a new one along with a tube of molykote. Took apart each horn to individually grease the seals and the sealing nuts with molykote to keep the water out. Then re-assembled and dropped it in as a replacement. Was amazed at the difference.

Now, when the humidifier comes on, a puff of smoke will actually exit from the floor register above the injection point before the main house fan comes on. Then it gets sucked back in. The container is no longer see through when it operates... Just milky smoke in there. Plus the water valve gets a real workout, operating on. 0.1Hz duty cycle.

The house came back up quickly to humidity. The broken, waterlogged emitter got the dehumidifier treatment, i.e. Spot drying for 12 hours. Now it's insides are dry and I'll see if it can be salvaged post moly treatment. Then I'd have a spare. Long term, I may transition to using a 10 head emitter system instead (different voltage though) because they are available for 1/3 of the cost of the 12 head unit.
 
I was wondering if maybe you should get into the bespoke humidor business!!! There are, no doubt, cuban cigar shops springing up all over US, and a properly done state of the art walk in humidor "by constantin" would be the bees knees... Arnold Schwarzenegger probably has two of his own, along with Rambo. They must need updating with a teensy by now ...

Today your walk-in wooden house, tomorrow the world's walk-in wooden cigar box.
 
Today your walk-in wooden house, tomorrow the world's walk-in wooden cigar box.

Ha ha! Yeah, I need to chase down the holes that allow so much moisture to escape in the first place - don't want that stuff to turn into wooden rot some day.

On the plus side, I put the system to sleep in April. There was a little bit of residue on the walls of the Cambro turkey brining bin, which I wiped off with a paper towel. Other than that, it was as see-through as the day I got it. Come November, I'll plug the rig back in.

Once AC season started here, I found an issue with the HVAC interface boards that I designed to deal with my brain-dead Honeywell touchscreen thermostats. One small error re: the returns and I managed to blow the fuse in the 24VAC bus. Fixed the error and installed 0.5A PTCs on the power line (Red) as well in the next board revision, which works great. Just goes to show how important proper labeling and circuit review is.
 
... and getting all that wiring right. Swapped a green and a blue wire on one thermostat and wondered why the lockout wasn't working as expected. Moral of the story: good working light conditions are a must.

Anyhow, it's season two and the humidifier is operating well. It's been cold enough here a couple of times for two thermostats to call, at which point my return duct went from red to purple. Still no wetness in the duct, ie no puddles, moist areas, and so on. Just dry. Very, very happy.

Have to remember to run the backwash on the RO membrane monthly, keep an eye on window condensation. But system seems to be working... and seemingly a lot less money to operate than the steam system it replaced.
 
Last edited:
Update from Jan 2017... spoke too soon, it appears that the emitters developed a leak over the Christmas break, followed by an internal short. The power supply is still good though, tripped as designed. Unfortunately, the emitter is not available separately. So, I decided to re-design the thing to be able to use emitters that are available on their own. I also wanted a bigger box, so I could set up two emitters in there for redundancy.

IMG_8563.JPG

So here is the box without either emitter on. It's a Cambro 22 gallon affair, with a lid on top. Water supply is now via a simple float switch. Dual 10-horn emitters fill the bottom of the box, along with a 22 qt Rubbermaid container that fills the void at the center of the box, so the air is directed from the intake on the right to the exhaust on the left. The intake air is supplied via a blower, thus the box is slightly pressurized during operation. A small layer of vacuum grease keeps it reasonably air tight.

IMG_8564.JPG

Here it is operating with one emitter on. I found that turning on both (even at the highest fan speed for the duct and the pressurizing fan) would lead to moisture in the duct. Thus, I pressurize this box based on the number of zones calling for humidification. So when only one zone is calling, the fan for the box loafs along, increasing its speed as more zones activate simultaneously.

IMG_8549.jpg

Now for the control system. As before, a emergency-stop humidifier controller sits upstream of everything. A 24VAC power supply is activated when there is a call for humidification (white transformer). This transformer provides power for the RO/DI system, which is activated for about 10 minutes before being shut off. Then RO system was upgraded to use a dual de-ionizing bed, along with a pressure pump, pressure switch, and automatic flush. I can leave this system off for long periods of time because the humidification tanks are large. The water comes out of the system with 0 PPM TDS.

I also added fuse blocks, easy interfaces to screw into, and mounted the whole assembly on a large wooden board that sits on a shelf. So maintenance should not be a pain. Quite prominent also are the two power supplies, along with the relays that keep them energized. The display is powered by the Teensy and connected via flat cable with standard 0.1" spaced plugs.
 
Last edited:
Status
Not open for further replies.
Back
Top