For a tankless water heater that might turn off when showering. If you need to turn off the water for a few moments in order to get hot water again, or you leave the sink faucet open, this might help.
General DescriptionRecently changed our water heater to a tankless model, and found it to be a very interesting design (see the image, though my heater doesn’t have a controlled valve, but a simple solenoid valve). Has a controller that manages the unit. Not sure if it is analog, though not difficult to do in the analog domain, most controllers are now digital. Therefore it should had been easy to include some features that would make it better. Might be the next price tier, but this controller and accessories aren’t expensive (probably 5-10 bucks).
If the flow is reduced, unless the set-point is low enough, the bimetal thermostat will trip and disable the burner. Since the bimetal element is on the heat exchanger, it takes a while to cool, which leads to cold showers. If the heater is only used for showering it should work fine (though you might need to open another fauces to keep the flow high enough), but in my case it also serves a bathtub. The set-point needs to be high enough to refresh the tub. However, the safety limit trips (mine is above 80° C) when using the shower because of the low flow.
These heaters don’t really control the temperature, but provide a certain amount of heating. The set-point basically controls the amount of gas to the burner, so it raises the temperature over the supply temperature by a certain amount. If the water is colder than usual or hotter (by having a solar heater ahead), the outlet temperature will vary and the ∆t probably doesn't have a linear output. So this could also lead to the heater shutting down, and how I kept finding myself taking cold showers.
After a while, I started trying to figure how to remedy this. The first thought was replacing the controller, but since it has several safety features builtin didn't deemed it practical. One is a pretty cool one. The flame detection is done through the igniter. So implementing a micro ampere detector in the high voltage spark circuitry would take longer than I wanted to play with it. If you are curious, the flame ionizes (plasma) providing a lower resistance path which can be measured (though it is in the megohm range). If the controller doesn’t detect a flame within a few seconds, it closes the gas flow.
Then thought of adding something that could control the temperature. This would require to control the burner or amount of gas, to adjust the heating of the water. Worked though different options. The first idea was disable one of the two solenoids that control the gas valves, but the heater shut down. Actually these solenoids are another cool feature of the heater. They are a two coil design. The first coil provides enough current to open the valve. The second coil is the interesting part. It provides a low current holding magnetic field, that keeps the solenoid open. This allows the two D batteries to last a long time. Since this didn’t work, thought of controlling the heater’s temperature control using a servo, however wasn’t sure the control would standup to the wear of constantly adjusting it.
Then figured using two supply paths for the gas. A low flow enough to keep the burner lit, and another controlled by electric valve for full flow. However, discarded this idea because couldn’t find an inexpensive gas valve that work at a low dc voltage (wanted something in the Arduino voltage range). Then looked into a modulating or proportional valve. This is where the pandemic found me and foiled the plans. Found some inexpensive ones in China, but most are designed for manifolds. These valves provide a variable flow and work with a PWM signal (Arduino has several options 😀)
So this brought me to a full circle, back to the solenoid valves of the heater. However, wouldn’t be controlling them directly, but through a signal used by the controller. There is a hall flow sensor, which provides a signal when the user is drawing hot water. When the water flows, the burner ignites. The process is a long one (well takes a few seconds). The controller opens one solenoid valve first, activates the igniter by sparking a high voltage at the burner. After this it opens the second valve (it provides a safety feature and allows for a lower current consumption by not activating both solenoids simultaneously). Moments later if the flame isn’t detected, the valves close and the heater shuts down.
The explication was a bit necessary, since it gives you the idea it takes a few seconds to do this. This delay prevents a fast enough response to regulate the temperature. However, its enough to prevents the temperature from rising too much and tripping the bimetal limit switch. So after some tests, found the best solution was to have the Arduino disable the water flow signal to turn off the burner. When the temperature is within range or falling (the program tries to predict the temperature by curve fitting the last few seconds of data), it starts sending the signal again. Actually the signal (PWM square wave) is generated by the Arduino at a constant frequency, since I figured the controller wouldn’t care unless the frequency was too low and if the flow was too restricted it would prevent the heater from ignoring it.
Adjusted the set-point high enough for what I wanted, but low enough to trip during most uses. It sometimes trips during showers and you can feel the water changing temperatures, but not enough to be bothersome. If you don’t try to go beyond the maximum temperature of the program, the heater should work normally. Once it detects that the temperature will exceed that value, it disables the oscillator and the burner turns off. This might happen when the temperature is too high from low flow, hot water input from the solar panels (though it won’t turn the burner until the input temperature drops below 38°C, which the controller would do normally anyhow), or being a hot day (specially if you adjusted the heater on a cold day).
Did add a pwm power supply to replace the batteries. My controller was damaged beforehand, and the display wouldn’t dim, draining the batteries. Together with the more frequent use of the solenoids it would require battery changes more frequently. The only concern about using the heater this way, is the wear on the solenoid valves which might fail sooner than expected because of the repeated operation. Don’t think it poses a safety issue, because of the double valve design.
Comments