Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r9afca35aabacd4a52a8eb39828e78e25ac4165f9 -r740929e7f04220e1a74e1a6f8ce71129f40a7be1 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 9afca35aabacd4a52a8eb39828e78e25ac4165f9) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 740929e7f04220e1a74e1a6f8ce71129f40a7be1) @@ -502,7 +502,11 @@ } else { - // Do nothing the mode that DG is in right now, does not need heaters to be on + // Calculate the energy equation and set the duty cycle + // This is for other modes (i.e. standby or service) + targetFlow = getTargetROPumpFlowRateLPM(); + dutyCycle = calculatePrimaryHeaterDutyCycle( targetTemperature, inletTemperature, targetFlow, FALSE ); + state = HEATER_EXEC_STATE_PRIMARY_CONTROL_TO_TARGET; } // Update the calculated target temperature and flow @@ -603,6 +607,13 @@ dutyCycle = calculateTrimmerHeaterDutyCycle( targetTemperature, currentTemperature, targetFlowLPM, FALSE ); state = HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET; } + else + { + // If not any of the above modes, just calculate the energy equation based on TRo + currentTemperature = getTemperatureValue( (U32)TEMPSENSORS_OUTLET_REDUNDANT ); + dutyCycle = calculateTrimmerHeaterDutyCycle( targetTemperature, currentTemperature, targetFlowLPM, TRUE ); + state = HEATER_EXEC_STATE_TRIMMER_CONTROL_TO_TARGET; + } // Update the calculated target temperature // Reset the duty cycle since the reservoir has been switched