Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Controller for pressureless solar heater.

Home Forums Projects Controller for pressureless solar heater.

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
  • #6774

    Recently I have purchased very cheap solar heater. It looks like this:


    It came without other components including controller. So instead of looking to buy one, I decided to build that would fit my needs. Normally commercial controller takes care of filling the tank, sensing water level and temperature and turning electric heater on and off when there is no sun or on winter to prevent water freeze. Such heater connects directly to home water system. My brother have installed same solar heater with commercial controller and in couple months we made several conclusions.

    1) First of all there is not hot enough pressure on a faucet. when mixing with cold water it is hard to find proper position, because cold water comes with higher pressure and tends to take over. Solution – rise solar heater higher at least 5 meters above.

    2) Water heats too much in direct sunlight. If water is not used it starts boiling. With this comes several problems where main is calcification of heater elements. During time glass bulbs get calcified and this reduces efficiency and lifetime of heater itself.

    There are couple ways of solving those problems. Water pressure can be raised by placing heater higher on roof. But his is not always a solution especially when roof is shallow or there is no way to do so. Other solution would be to use water pump to rise pressure – well this leads to spending more money – those are not very cheap.

    Another problem with too much heating and boiling water. Changing heater angle or covering it partially seems very unpractical. We need a way to take the heat out so the water would stay around 70 – 80°C where calcification starts.

    Seeing those couple problems with standard setup I decided to do everything a bit different. Placing another simple water boiler solves both problems. One – hot water transfers heat to another boiler so it won’t start boiling (also we get more thermal mass). Second – we solve pressure problem as non pressurized hot water exchanges heat with pressurized water.

    I suspect that standard controllers that come with such solar heaters don’t support such setup (correct me if I am wrong). So I will need to build a controller by myself which would take care of refilling solar heater, controlling electric heater and controlling circular pump that cycles hot water between solar heater and boiler.

    Haven’t decided yet if I am going to use one of my boards (Arduino, ARM or Raspberry Pi). Stay tuned for more info on progress.


    After looking around my stuff, I decided ,that Arduino board and keypad LCD shield should be fine base for controller. It has already LCD and four buttons for settings and menu. Shield also gives 7 digital and 5 analog pins that can be used. For now I am going to need around 9 I/O pins to controll and sense various stuff:

    Maybe I will need more with water level sensor, as I am planning to sense several level points. I have 12 I/Os then an can sense 3 levels already. Right now I will focus on building ware level sensor and submersible temperature sensor. Probably I will purchase ready made DS18B20 sensor probe which is already sealed.


    I like the idea it is cool :). Here is my 2 cents on it. I am going to try my luck with my version of it. But for now I am busy with other projects. It is not going to be arduino driven that is for sure hehe.

    1- If it was me I would add some manual override for the system. For when you would like to force the electric heater on/off.

    2- I like controlling things remotely. For that you can add some interface between the arduino and PC. LAN/RS-485 or USB if it is near the PC. This will give much more information and control than a 16×2 LCD.

    3- For the water level sensor, you can either by a ready made one with Resistance output (each time the level changes the resistance of the output changes). Like this you will free some pins. Another way is to diy with another approach.
    Check this : https://pompie-arduino.blogspot.com/2007_01_01_archive.html

    4- Your temperature sensor should work perfectly. Myself I prefer using Thermcouple for such application. But it will be more complicated and more expensive.




    I was thinking about remote connectivity but probably will leave this for future upgrades. The biggest challenge there is water level detect. I am currently experimenting a simple 3 level sensor that I’ve built. This is just electrodes submersed in water. I am using PNP transistors to detect when water shorts two leads. PNP allows simple way to avoid electrode corrosion due to electrolysis as there is no voltage applied. Will share circuit and build solution soon.

    But your suggested resistor based level sensor looks interesting and worth considering. Because you can measure level using one wire, while I am dedicating separate pin for each level.



    Here is one segment of water level detector schematic:


    WH electrode goes to water (Also GND). L3 electrode is logical LOW when water is low, and HIGH when WH electrode is submerged in to water. L3 then is read by microcontroleler.

    I have built three level water detector:


    Bottom electrode is GND and then three level electrodes. Wires are placed inside plastic tube. At the end of tube I also added temperature sensor. After all is soldered, filled tube with silicone – this ensures that temperature sensor leads won’t be shorted by liquid.

    Tested electrode with 30m cable and it works like a charm.

    Will post more details soon.


    Why do you think that using a PNP transistor solves the corrosion problem? There is still current flowing (from electrode to ground, through the 470k resistor). What you can do to reduce corrosion is to change the direction of current flowing: connect the common end of the electrodes to an Arduino output, which you alternate between 0 and 1 regularly. Then you can check the inputs for the proper level. And since the current is now not flowing in the same direction all the time, corrosion is mostly reduced.

    Did you think of using contact-less water level sensing (e.g. using a ultrasonic or infrared distance sensor)?


    Controlling sensor ground with micro might be a good solution to prolong sensor life. Only minor change is needed. Thanks for the hint.

    Contactless sensors are more complex to build and install, so didn’t try to go that way. Solar heater tank has a small diameter hole on side so such electrode seems good choice right now. If this will fail, then well see other options.

    BTW standard controllers that come with pressureless collectors use similar electrodes, but I have no experience how long do they last.


    Actually I read about this strategy in the context of soil moisture sensors, which might be more prone to corrosion. Another strategy might be to just switch on the sensor once in a while, if you don’t need a real-time status.

    If there is no space available for bigger sensors, then the contactless measurement is not feasible :(


    Updated info on following blog post:


    Questions are welcome!


    After two years of fluent operation, solar heater temperature sensor failed. I bypassed it with water proof DS18B20 sensor:


    Also I checked for water level sensor corrosion. So far no significant damage done. Should be fine for couple more years.


    As per my experience you must add some manual override for the system. For when you would like to force the electric heater on/off.

    Also for remote control you can add some interface between the arduino and PC. LAN/RS-485 or USB if it is near the PC. This will give much more information and control than a 16×2 LCD.

    And for the water level sensor, you can either by a ready made one with Resistance output.

    printed circuit boards


    It’s been couple years of using solar water heater and crude controllers. I must say it works fine – in summer there is plenty of hot water, unless there is no sun for several days, then electric heater kicks in. SO here is the first problem that raised – the water level electrode corroded. For the next season I am going to do slight modification to circuit and probably update the controller itself with more convenient interface.
    As per water lever sensor, this time I will definitely go with float switch water lever sensor. No more active electrodes in water – doesn’t look very reliable.

    I hope to rebuild controller and sensor during winter season, so that on spring I could install it and have it working.


    It seems that it is hard to find proper water level switch with would be narrow enough to fit through 1/2″ hole. Probably I will have to make one. Specialized narrow sensors are expensive and not worth buying. Three or four reed switches and smaller floats will do the trick. Will keep updated.


    I think I found a solution to the water level sensor. There is another way to place a bigger sensor through the bottom hole where the heater element is inserted.  I also bought a ceramic temperature sensor, which can withstand higher temperatures without melting any plastic coating. Hopefully, it will be a more rugged assembly.  I will keep updating after some progress will be made.

Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.

Comments are closed.