Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -rcf09aeb3c5306f39131a92bbc002a102c6ed0ed8 -r9f25f22ef6cd3566f8f7fbbc5c037a69e7f9411b --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision cf09aeb3c5306f39131a92bbc002a102c6ed0ed8) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 9f25f22ef6cd3566f8f7fbbc5c037a69e7f9411b) @@ -65,9 +65,9 @@ // re-initialize each time we transition to drain mode initDrainMode(); - // TODO - set initial actuator states - // VDr to drain + // set initial actuator states setValveState( VDR, VALVE_STATE_DRAIN_C_TO_NO ); + setDrainPumpTargetSpeed( TARGET_DRAIN_PUMP_RPM ); } /*********************************************************************//** @@ -84,7 +84,6 @@ switch ( drainState ) { case DG_DRAIN_STATE_START: - setDrainPumpTargetSpeed( TARGET_DRAIN_PUMP_RPM ); drainState = DG_DRAIN_STATE_DRAIN; break; @@ -122,8 +121,9 @@ } // if we've reached our target drain to volume (by weight), we're done draining - go back to re-circ mode - if ( getReservoirDrainVolumeTargetMl() > getLoadCellFilteredWeight( drainWeightLoadCell ) ) + if ( getReservoirDrainVolumeTargetMl() >= getLoadCellFilteredWeight( drainWeightLoadCell ) ) { + setDrainPumpTargetSpeed( 0 ); requestNewOperationMode( DG_MODE_CIRC ); }