Index: firmware/App/Controllers/DialOutFlow.c =================================================================== diff -u -r27a68f930508638f2eb6265ebb381c8918cbc37b -rd7e01dce5b2ebb1ea02832a9ced81550a919b67b --- firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 27a68f930508638f2eb6265ebb381c8918cbc37b) +++ firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision d7e01dce5b2ebb1ea02832a9ced81550a919b67b) @@ -261,7 +261,7 @@ // Direction change while pump is running is not allowed if ( ( FALSE == isDialOutPumpOn ) || ( 0 == flowRate ) || ( dir == dialOutPumpDirectionSet ) ) { - F32 pwmDC = DOP_PWM_FROM_ML_PER_MIN( (F32)flowRate ); + F32 pwmDC = ( 0 == flowRate ? DOP_PWM_ZERO_OFFSET : DOP_PWM_FROM_ML_PER_MIN( (F32)flowRate ) ); // Don't interrupt pump control unless rate or mode is changing if ( ( fabs( pwmDC - dialOutPumpPWMDutyCyclePct ) > NEARLY_ZERO ) || ( mode != dialOutPumpControlMode ) ) @@ -1334,7 +1334,14 @@ } if ( ctrlMode < NUM_OF_PUMP_CONTROL_MODES ) { - result = setDialOutPumpTargetRate( abs(value), dir, (PUMP_CONTROL_MODE_T)ctrlMode ); + if ( 0 == value ) + { + signalDialOutPumpHardStop(); + } + else + { + result = setDialOutPumpTargetRate( abs(value), dir, (PUMP_CONTROL_MODE_T)ctrlMode ); + } } }