Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -rb8f298547eb578000b3ff3cf55732fda7a689ce0 -r1440a4a2be8d12edebd405a20807882e5d32d619 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision b8f298547eb578000b3ff3cf55732fda7a689ce0) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 1440a4a2be8d12edebd405a20807882e5d32d619) @@ -515,11 +515,13 @@ } else if ( ( DG_MODE_HEAT == opMode ) || ( DG_MODE_CHEM == opMode ) ) { - // If the mode is any of the disinfects, especially heat, use the target flow rate instead of the avg. flow - // Most of the times the heater should be running at 100% duty cycle since the target temperature is 81 C - targetFlow = getTargetROPumpFlowRateLPM(); - dutyCycle = calculatePrimaryHeaterDutyCycle( targetTemperature, inletTemperature, targetFlow, FALSE ); - state = HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET; + // If the mode is any of the disinfects, specially heat, use the target flow rate instead of the avg. flow + // Most of the times the heater should be running at 100% duty cycle since the target temperature is far from + // the inlet temperature + targetFlow = getTargetROPumpFlowRateLPM(); + inletTemperature = getTemperatureValue( (U32)TEMPSENSORS_OUTLET_PRIMARY_HEATER ); + dutyCycle = calculatePrimaryHeaterDutyCycle( targetTemperature, inletTemperature, targetFlow, FALSE ); + state = HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET; } else { @@ -585,7 +587,7 @@ static HEATERS_STATE_T handleHeaterStateControlToDisinfectTarget( DG_HEATERS_T heater ) { HEATERS_STATE_T state = HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET; - F32 currentTemperature = getTemperatureValue( TEMPSENSORS_HEAT_DISINFECT ); + F32 currentTemperature = getTemperatureValue( TEMPSENSORS_OUTLET_PRIMARY_HEATER ); F32 targetTemperature = heatersStatus[ DG_PRIMARY_HEATER ].targetTemp; if ( currentTemperature < targetTemperature )