Boiler Optimizer Have warm showers for free!

This Boiler Optimizer can do everything you want it to do! Automatically use the excess energy of your solar panels after the batteries are fully charged, anti-freeze control, legionella prevention, low temperature heating for showering for just 1/3 of the energy, or controlling a "warm water solar panel" that can consist of nothing more than just a hose on deck with a small pump. This is a small project that you can either build yourself, or buy completely assembled.



Let's start with the features:

  • Uses the excess energy of the solar panels, once the batteries are fully charged, to heat the electric boiler
  • Can optionally be used to feed the boiler directly from the solar panels, so the heating element will be "modulated" with the available solar energy.
  • It will instantly switch off the heating element when a heavy consumer switches on (anchor winch etc).
  • Energy saving of 66% by heating up to 40°C instead of 60°C.
  • Fast warmup mode to just "shower temperature" so you can take a shower for just 1/3th of the energy.
  • Legionella prevention and warning, by periodically heating the water to a bacteria killing temperature or warning when it has been too long ago that this temperature could be reached.
  • Thermostatic control when connected to shore power
  • Can optionally control a pump based on a differential temperature, so you can build your own "solar panel" consisting of nothing more than just a hose on deck and a small electric pump.
  • Guards the boiler against freezing
  • Automatic energy saving when it detects that the engine is running and coolant can be used to heat up the boiler.
  • Reliable voltage measurement with optional voltage reference inputs
  • LCD display with boiler temperature, trend, voltage and heater status
  • Fully configurable by an on screen menu
  • Switchable between degrees Celsius and Fahrenheit


Let's talk a bit more about these features and how they work.

For all the features and programs these basic rules apply:

  • The heating element of the boiler will always be switched off when the voltage drops below 12.5V (configurable) or the boiler temperature exceeds 80°C (configurable).
  • If the engine's ignition wire is live, the electrical heater will not engage but it will expect "free" hot coolant water from the engine to heat up the boiler.
  • If you have a warm water panel (or hose on deck), it will run the pump when the temperature in the solar panel is higher than in the boiler, to harvest this free energy instead of using the electric heater.

Automatic mode

Automatic mode is best explained by describing what happens on a normal day.

During the night the voltage has dropped below 12.5V. When the voltage drops below this value, the algorithm understands that the batteries need to be recharged. It waits until the voltage hits 14.1 Volt (all voltages are configurable), and then starts counting down a (configurable) amount of time to give the batteries a chance to recharge. Once the timer has expired and the voltage is still at least 14.1V, the boiler heating element will be switched on. If the solar panel power is not big enough to sustain this load, the voltage will start to drop. As long as the voltage doesn't drop any further than 13.5V it will continue heating. If it drops below 13.5V, the heater is switched off. Without the load of the boiler the voltage will rise again, and once it again hits 14.1V, it starts counting down again, but this time the time is much shorter and depending on water temperature. Below 40°C it will wait for only 1 minute before switching on the boiler again. Above 40°C it will wait for 5 minutes, except when the algorithm thinks it is time for a legionella killing cycle, then it will only wait for 2 minutes. Once the water has reached the legionella killing temperature of 60°C, the wait time will increase to 10 minutes, until the maximum temperature of 80°C is reached. (If there is still solar power, why not use it to boost the boiler up to 80°C so that the next day you will still have warm water even if there is no solar opportunity?) The switching cycle is repeated over and over again, and at the end of the day you will have full batteries and (depending on the amount of excess solar energy) warm to very hot water in the boiler.

Automatic mode is the only mode that can (optionally!) connect the heating element directly to the solar panels. All other modes will use the inverter output.

Legionella prevention

Legionella is caused by bacteria that can develop in water which is kept for a prolonged time at a temperature between 25°C and 55°C, and once inhaled into the lungs these bacteria can cause severe pneumonia. Let's however not get too paranoid about Legionella: I have never heard about any sailor in the tropics who got this disease, despite having the water tanks all the time at a very bacteria comforting 30 degrees. Also Legionella is only dangerous after being inhaled, the bacteria will not survive the digestive tract so drinking contanimated water is considered to be safe. Furthermore it is questionable wether there is enough "food" in the water to promote the development of bacteria at all. Anyway, it is well known and proven that a temperature of 60°C will kill Legionella and you don't have to maintain this killing temperature all the time, once in a while is enough to kill off any developing colony.

The Legionella prevention/warning mechanism works like this: A warning is issued on the LCD once the last time the killing temperature was reached was too long ago, and it will then more aggressively try to achieve this temperature. When the temperature is below 25°C, the colony is considered to be "stalled", i.e. not killed but also not developing, so the timer is paused. The Legionella killing cycle can also be manually invoked and will heat up the boiler to 60°C. Once the killing temperature has been hit, the warning will disappear again and the program will revert to automatic mode.

All parameters (the lower temperature, the killing temperature and interval) are of course configurable.

The periodic heating to the killing temperature is a best effort and intended to prevent bacteria from developing a dangerous colony. If you already have a significant Legionella colony, just heating up to the killing temperature is no longer sufficient: you also have to heat up the hoses by opening all faucets etc. It is your own responsibility to educate yourself on the subject of Legionella and, is needed, set up a prevention and/or curing strategy.

Fast warmup

This manual program will switch on the boiler until 40°C is reached, (only of course if the battery voltage remains above 12.5V), after that it will revert to automatic mode. In the tropics, the water is already 30C to begin with (or more if you had a heating cycle the previous day) and it takes 1/3 of the power to heat the water to 40°C instead of 60°C, and it will not try to maintain this temperature once it has been reached. This option enables you to take a shower without using up too much energy: just press the button, wait for the temperature to reach 40°C and take your shower.


In this mode the boiler will not be very "smart" but just maintain a temperature of 40°C with a periodical heating up to 60°C to kill Legionella. This mode is intended to be used when connected to shore power. If you would leave the program on "automatic mode" it would become very greedy due to all the apparent "free" energy and boost the boiler up to the upper limit (80°C) just to be able to surprise you the next day with hot water while it is cloudy all day long.

Freeze prevention

It was just easy to program this feature (heating on when the temperature drops below 4°C) but of course keeping the boiler and water system filled while it is freezing is just asking for trouble. The freeze prevention can only work while the battery voltage is above 12.5V; if there is no shore power the batteries will probably not last very long to keep the freeze protection running, not even to mention that all the hoses and faucets will remain unprotected anyway.

Optimize your boiler

The Boiler Optimizer works well with a standard boiler, but there are some things you can do to make the production of enough warm water for your needs even more efficient.

Most of the boilers installed in boats are designed for use with shore power or big generators, and as a consequence they are big, poorly insulated, and use a powerful heating element in order to heat up really fast. All this is not favourable for running the boiler on just solar energy. It can still be done, but consider some of the following options to optimize your setup:

Buy a smaller boiler

How much boiler volume do you actually need?

Metric Imperial

Shower flowLiter/minute
Shower durationMinutes
Number of personsPersons
Shower temperature°Celsius
Cold water temperature°Celsius
Boiler temperature°Celsius

Cold water mixed inLiters
Boiler water usedLiters
Total water usedLiters

Catamarans are usually designed for the charter industry so they come with a boiler volume of at least 40 Liters, with a thermostat usually fixed on 60°C, clearly intended to run only with shore power or via the generator. After mixing 40 liters of 60°C with "cold" water to get to the normal shower temperature of 38°C, you will actually end up with 120 liters of water with "shower-temperature". 120 Liters!!! Do you really need that much? If you actually only need 3 liters for showering (see the calculator) it means you are heating almost all of that water for nothing. A lot of that heat will leak away during the night so the next day you have to put in a lot of energy again, more than you are actually using for showering. Suitable small replacement boilers don't have to be expensive, see the ZwerfCat example.

Improve the insulation

The boilers were not designed to be switched off during the night, and they loose a lot of valuable heat during the idle time. A loss of 1°C per hour is considered "good", the original boiler on ZwerfCat lost about 2°C per hour. A lot of energy can be preserved if you improve the insulation of the boiler. Wrap that thing in a blanket or build some insulated cabinet for it. Use insulation on the hoses connected to the boiler, especially close to the boiler.

Reduce the heating element power consumption to a quarter

Energy & time calculator

Metric Imperial

Boiler volumeLiter
Start temperature°Celsius
End temperature°Celsius
Heater powerWatt
DC VoltageVolt

Energy requiredkWh
DC CurrentAmpere
Time requiredMinutes

The heating element is usually optimized for fast heat-up times, which the typical cruiser doesn't need. The power rating of the heating element has no relation with the temperature, it just determines how fast it will be able to heat up the water to the desired temperature. If you can wait a little longer, you don't need such a high power heating element. Use the calculator to determine which power rating would be acceptable in your situation.

Usually the heating element consumes more power than your solar panels can produce, leading to frequent on/off cycling of the heating element. The system would work better if the heating element would use less power. At the end, it will take just as long to heat up the boiler, but with less on/off cycling and voltage fluctuations.

Luckily, there is an easy trick to reduce the power consumption to just 25% of what it used to be: If you halve the boiler voltage, the power (Watt's) consumed will reduce to just a quarter. Yes, you read that right: Half the voltage will also reduce the current by a half, and since power is Voltage x Amperes, the power needed will now only be a quarter (and heating the same amount of water will consequently take four times longer). And yes, the heater element of the boiler can run on lower voltages without any problem.


But how do you halve the voltage?

  • If you have a 220V boiler, the only thing you have to do is to buy a small American 110V car inverter and use it to power the boiler. Even in the worst case (a boiler of 2000W) the inverter has to be only 500W and there are many cheap options available. A boiler heating element couldn't care less about wave form, so don't invest in a "nice sinus" capability but just buy the cheapest piece of junk you can find. You even don't need low voltage protection, because the Boiler Optimizer will already take care of this.
  • If you have an American installation (with a native 110V boiler), simply swap out the heating element for a European version (designed for 220V). Almost all boilers are available in 110 and 220V versions and spare heater elements are commonly available. If the replacement 220V heating element is 2000 Watt, it will now only use 500 Watt on 110V, which is way more manageable.

Ideally, the power rating of the heating element (or a quarter of it if you apply my "voltage halving trick") should be less than the power rating of your solar installation. The Boiler Optimizer can still be used with oversized heating elements, but it will then have to repeatedly cycle the heating element on and off to maintain a full charge on your batteries.

Feed the boiler directly from the solar panels

Boiler directly on PV-panel calculator

Heater power ratingWatt
Power rating at 230 115Volt
PV panel voltageVolt
MPPT output voltageVolt

Boiler power consumptionWatt
Solar panel currentAmperes
MPPT output reductionAmperes

Note that the "Boiler power consumption" after the calculation should be less than the total solar panel power rating (Watt). Also make sure that the "Boiler power consumption" is acceptable: use this number in the "energy & time calculator" above to see how long it will take to heat up the water to your desired temperature with this amount of power.

This is an interesting option, but it depends on your solar panel arrangement and boiler power rating and voltage whether it is possible. If you have an MPPT solar regulator, the DC voltage of your solar panels is often way higher than that of your DC board net. For instance on ZwerfCat we use (domestic) 48V panels arranged in pairs, so with two of these in series we have under load about 80V. This is actually a good match to the 220V 2000 Watt heater element of our boiler, which will then use only 240 Watt, which translates into a maximum potential reduction of the available charge current by only 17 Amps.

The advantages are:

  • The power used by the boiler will be significantly less
  • The power used by the boiler is no longer constant but will be modulated by the actual solar panel output
  • The power loss associated with the conversion to 12V and subsequent conversion to 220V is eliminated
  • The boiler can not use power from the batteries, but only "free" energy
  • The inverter does not need to run or can be used to power other things
  • The Boiler Optimizer can still connect the boiler to the inverter if another mode is selected
  • The Boiler Optimizer will still control the boiler and switch it off if more solar power is needed for other tasks

The heating element of the boiler doesn't care about AC or DC, it just burns all the electricity you throw at it. Not only do we save the inherent losses of the double conversion, but the power also automatically adapts to the amount of solar energy available. If at the end of the day the solar energy starts to drop off (or a cloud blocks the sun), the voltage of the panels starts to drop and consequently the power fed into the boiler will drop as well. With this arrangement the heating element can never draw power from the batteries, it can only take whatever the solar panels have available. The solar panels remain connected to the MPPT controller in parallel, so whatever the boiler doesn't take, the MPPT controller will make available for the on board system.

Swap the bimetal thermostat

Bimetal switch
Bimetal switch

Most boilers have a small bimetal switch (thermostat) in series with the heating element. It usually disconnects the connection at about 60°C. This way the water will stay around 60°C as long as the power remains. Our "problem" is that this rudimentary thermostate makes it impossible to reach a higher temperature.

Wait, what, a higher temperature? Isn't that the opposite of what we want to achieve? Well, suppose the water is 60°C and your batteries are full but there is still plenty of solar power available? Instead of throwing away this precious energy why not save some of it for the next day by heating up the water even more? If the next day is cloudy and you want to conserve energy, you will love it that you still have hot water available!

I think that a 80°C thermostat would be a good alternative. No, I don't think it is a good idea to just bypass the existing thermostat and depend on the Boiler Optimizer to take care of it: If one day the Boiler Optimizer fails or the relay overheats and welds shut, the heating element might stay on forever and convert your boiler into an actual boiler. The bimetal switch is a cheap safeguard to protect against reaching the boiling temperature.

Plumb into the generator coolant

On ZwerfCat we had a factory installation, with the coolant loop of the boiler plumbed into the port engine instead of into the generator. Maybe this is how it is always done on catamarans? But as a cruiser you probably run the generator more often than the engine, so why not plumb the coolant loop into the generator instead? (On ZwerfCat we sold our generator because we never needed it anymore after we installed 1500Watt of solar power, otherwise we would have done this).

ZwerfCat Example

ZwerfCat came with a 40 liter boiler, with a non-configurable 60°C bimetal switch. The heating element was "only" 700W, which means that our inverter had to draw about 55 Amps to power that thing. In favourable conditions we would switch the boiler on manually, and then have to remember to switch it off quickly when the sun got blocked. After all, we just wanted to shower and we actually didn't need all that water at 60°C, and we didn't want to consume any current from the batteries for just a silly reason. In practice, we didn't use the boiler very much.

Domestic boiler used on ZwerfCat
Domestic boiler used on ZwerfCat

Out of frustration that we often had solar capacity to spare and a boiler willing to take it, but nobody thinking about it at the right time or forgetting to switch the boiler off again, I designed this Boiler Optimizer. I don't own a floating lab for nothing! The Boiler Optimizer worked very well, but during this project I realised that every day we were heating up a lot of water for no good reason, and that we could actually be able to run the boiler even on cloudy days if it would just be smaller and use less power. How much smaller exactly? Well this led to the calculators you will find in this article. After measuring the flow of the shower and timing our shower durations, we discovered that we needed only a boiler 1/4th of the current size, and that we needed to only increase the temperature with 1/3 of what the old boiler was "programmed" to do. We could simply reduce the boiler energy demand to just 8% of what it used to be, and that was even without improving the insulation!

If you search for "boat boilers", you will find the same, poorly insulated and very expensive boilers like we had. These days however, at least in Europe, domestic "under-the-sink boilers" have become very popular: they are small (10L), fairly good insulated (energy labels are a big thing nowadays), and way cheaper than "boat boilers". We got our 10L 2000W model for only 150 Euro. The only problem is that these domestic boilers don't have a loop for the engine coolant.


After doing some more math (see the calculators) we discovered that heating up 10 liters of water to "shower temperature" would take only 3 minutes and consume just half of the energy we normally use to make a pot of tea! If we have the engine running, we automatically have a big alternator running, and we can actually spare 3 minutes of power generation to just warm up the boiler (if we want to, and if not already heated up by the solar panels). We rarely use the engines anyway and we suspect that when we are not using the engines a lot of heat actually leaks away via the coolant connections, so we decided to ditch the coolant heating feature and to get rid of the old 40L boiler. It also eliminated one engine failure mode (loss of coolant via the boiler) and a possible health hazard (coolant in the boiler water) and it saved quite some space and weight in the process. Good deal after all!

In the automatic program the Boiler Optimizer connects the boiler directly to the solar panels. Due to the relatively low voltage of the solar panels it will then use little energy (only 240 Watts) and of course it consequently takes half an hour instead of 3 minutes to heat up to shower temperature (depending on the solar intensity). It will only connect to the solar panels when our batteries are about full, so we don't notice the power consumption at all. On cloudy days (if we really want that shower), or if we already used the hot water and need some more, we select the "warm up mode" and in this case the boiler is warmed up via the inverter, which takes only 3 minutes to get the water to a comfortable 38°C. It will automatically switch back to automatic mode after reaching this temperature so it doesn't consume more energy than strictly necessary.

Usually, the solar input will heat the water up to at least 60°C, which means that after mixing the output with cold water, we actually have 30 Liters of "shower temperature" water, which is enough for six showers (or two very wasteful showers)!

Quite an improvement for a modest investment!


There are a few components that need to be installed close to the boiler, but the Boiler Optimizer can be installed wherever you want. For connection between the "boiler components" and the "boiler optimizer module" you can use a standard network cable. The length of this cable is not critical.

Boiler connections


At the boiler end, you will need to "splice" the relay into the heating element feeder cable (just the power cable of the boiler) and you will need to find a place for the temperature sensor. Usually the area around the boiler connections contains a cover, if you open it you will probably find a place where you can push the sensor between the actual metal tank and its insulation.

Boiler Optimizer control module


12V power supply

The 12V power supply is not critical. The Boiler Optimizer uses little power. Just make sure to connect it via an appropriate fuse, 1 Amp is sufficient. Please leave the Boiler Optimizer on all the time. A lot of features depend on constant tracking of boiler temperature and battery voltage. If you switch off the Boiler Optimizer, the boiler-, legionella- and battery status will be lost.

12V sensor cable

The Boiler Optimizer needs for measuring the voltage of the batteries a 12V sensor cable pair. You can connect the 12V sensor cable pair to the same 12V power supply that is used to power the Boiler Optimizer, but if the Boiler Optimizer is fed from some kind of instrument panel where lots of other consumers share the same 12V source, the voltage may fluctuate depending on the load, and in that case the voltage measurement is more stable if you connect the 12V to your reference bus (straight onto the battery connectors). The sensor cables will not consume any power, they are just for measuring the voltage.

Ignition wire (optional)

If you want the Boiler Optimizer to automatically switch off the heater when the engine is able to provide hot coolant, you can connect the "ignition" wire to the 12V of the engine ignition. If you have a catamaran, usually only one of the engines is plumbed into the boiler, in that case of course you connect the ignition wire only to that engine. Chances are that the boiler is close to the engine, so you can probably use one of the unused wires in the network cable for the ignition signal. If your boiler setup does not have a coolant loop, leave the ignition wire disconnected.

Building it yourself

To build this project yourself, you need to have some basic experience with building Arduino projects. Sorry but I'm not going to troubleshoot your soldering and programming errors from remote; if you lack the experience just buy an assembled, programmed, tested, sensor paired and calibrated Boiler Optimizer from me.

You can find the schematic diagram and source code on GitHub: https://github.com/TheFloatingLab/BoilerOptimizer.


Information and availability coming soon.


Characters left: