Not sure why I did not have this before, after all Engines got to be cooled, and we are sampling the engine temperature... If you engine has a built in thermostat, or temperature controlled fan great. If not, the I just added an option where the Controller can do that. A new '#define INC_ET' in your configuration .h file will enable Engine Temperature code, working to keep the engine around the target operating temp as defined in your setup file. (#define ENGINE_TEMP_SETPOINT)
It will utilize the HP Pump FET if that is not already being used to actually control a high pressure Watermaker pump clutch, or a co-gen feature. In one of those cases, it will instead drive port PB4 as exposed on the ICSP pin#1 in the expansion connector row. Of course you will need some extra hardware for that.
Right now the logic is simple, turn on the fan when we are approaching the desired temp, and turn it off when we fall below it. I think a good enhancement will be to add a PID to this, but will need to really think about the tuning values, as well as the sample period. Given the thermal mass of an engine it is unlikely we will need to sample every 100mS....
Another thing that happens if you enable the Engine Temperature management is the Alternator Pull-back from engine temperate will target 5f higher. This will allow the cooling fan / pump to do its work before we start pulling back on the alternator.
I plan to use this to control a bypass value placed in parallel with the sea-water side of the heat exchanger. When enguaged it will open and cut the water flow to the exchanger. I hope this will help get my engine temp up from its current 160f operating... Watch for the next release of the Source code v0.1.6 for this feature. Going to hold off posting it in case I think of some more ideas.