Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -r483ebbb75171ec93ab24d1f69f83a6248376266f -r9e0db1f82f13693d251e00e8958c8063dd89cae6 --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 483ebbb75171ec93ab24d1f69f83a6248376266f) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 9e0db1f82f13693d251e00e8958c8063dd89cae6) @@ -465,7 +465,9 @@ static BOOL isBalChamberTimeBasedSwitching( void ) { BOOL state = FALSE; - state = ( getD48PumpSpeed() <= BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM ) ? TRUE : FALSE; + F32 dialFlowRate = getBalChamberActiveDialysateFlowrate(); + //state = ( getD48PumpSpeed() <= BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM ) ? TRUE : FALSE; + state = ( dialFlowRate <= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_3 )? TRUE : FALSE; return state; } Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -rdaa4204266112042cdd5ea671df81b7501f1623f -r9e0db1f82f13693d251e00e8958c8063dd89cae6 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision daa4204266112042cdd5ea671df81b7501f1623f) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 9e0db1f82f13693d251e00e8958c8063dd89cae6) @@ -704,14 +704,28 @@ { U32 rpm; U32 nominalRpm; + F32 dialFlowRate = getBalChamberActiveDialysateFlowrate(); nominalRpm = getD48PumpSpeed(); rpm = nominalRpm; - if ( nominalRpm <= BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM ) +// if ( nominalRpm <= BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM ) +// { +// rpm = BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM; +// } + + if ( ( dialFlowRate >= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_1 ) && ( dialFlowRate <= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_2 ) ) { - rpm = BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM; + rpm = BAL_CHAMBER_TIME_BASED_BAND_1; } + else if ( ( dialFlowRate > BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_2 ) && ( dialFlowRate <= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_3 ) ) + { + rpm = BAL_CHAMBER_TIME_BASED_BAND_2; + } + else if ( ( dialFlowRate > BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_3 ) && ( dialFlowRate <= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_4 ) ) + { + rpm = BAL_CHAMBER_TIME_BASED_BAND_3; + } return rpm; }