Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r4f3b9e168915ab13dfcdc74462d7142115cc2d57 -r4e6ba8600f03ba772e0de15a0185ad773eebe695 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 4f3b9e168915ab13dfcdc74462d7142115cc2d57) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 4e6ba8600f03ba772e0de15a0185ad773eebe695) @@ -570,8 +570,9 @@ targetRinsebackVolumePlusAdditional_mL = getRinsebackVolume(); result = RINSEBACK_STOP_STATE; } - // Has additional rinseback completed - else if ( additionalRinsebackVolume_mL >= TARGET_ADDITIONAL_RINSEBACK_VOLUME_ML ) + // Has additional rinseback completed or max additional volume reached + else if ( ( additionalRinsebackVolume_mL >= TARGET_ADDITIONAL_RINSEBACK_VOLUME_ML ) || + ( totalAdditionalRinsebackVolume_mL >= MAX_TOTAL_ADDITIONAL_RINSEBACK_VOLUME_ML ) ) { result = RINSEBACK_STOP_STATE; } @@ -891,7 +892,7 @@ if ( RINSEBACK_STOP_STATE == rinsebackState ) { - if ( ( totalAdditionalRinsebackVolume_mL + TARGET_ADDITIONAL_RINSEBACK_VOLUME_ML ) <= MAX_TOTAL_ADDITIONAL_RINSEBACK_VOLUME_ML ) + if ( totalAdditionalRinsebackVolume_mL < MAX_TOTAL_ADDITIONAL_RINSEBACK_VOLUME_ML ) { result = TRUE; additionalRinsebackRequested = TRUE;