Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -rcdce53248c15df67085b8d5ead63860d1704a5d0 -rdb7a07277014e802f582716c4215044ff905266b --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision cdce53248c15df67085b8d5ead63860d1704a5d0) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision db7a07277014e802f582716c4215044ff905266b) @@ -686,7 +686,7 @@ // Check both spent and fresh side fill is complete isBothFillsComplete = ( TRUE == isSpentFillComplete ) && ( TRUE == isPressureStabilizedDuringFill ); - isFirstCycleNotDone = ( FALSE == isFirstCycleBCSwitchingCompleted ); + isFirstCycleNotDone = ( FALSE == isFirstCycleBCSwitchingCompleted ) && ( currentBalChamberSwitchingCounter >= balChamberValveClosePeriod ); if ( FALSE == getBalChamberSwitchingOnlyStatus() ) { @@ -934,7 +934,7 @@ // Check switching cycle time or pressure check for valve closure isBothFillsComplete = ( TRUE == isSpentFillComplete ) && ( TRUE == isPressureStabilizedDuringFill ); - isFirstCycleNotDone = ( FALSE == isFirstCycleBCSwitchingCompleted ); + isFirstCycleNotDone = ( FALSE == isFirstCycleBCSwitchingCompleted ) && ( currentBalChamberSwitchingCounter >= balChamberValveClosePeriod ); if ( FALSE == getBalChamberSwitchingOnlyStatus() ) { Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r542755e62be20cbdd396053c5568ef8a13efad05 -rdb7a07277014e802f582716c4215044ff905266b --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 542755e62be20cbdd396053c5568ef8a13efad05) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision db7a07277014e802f582716c4215044ff905266b) @@ -57,7 +57,7 @@ #define ADJ_DELTA_TEMP_STEP 2.0F ///< Adjust target temperature based on D28 feedback per cycle. #define MAX_ADJ_DELTA_TEMP_C 7.0F ///< Maximum adjusted delta temperature to add/remove from calculated target temperature #define D5_HEAT_TX_INIT_FEED_FORWARD 0.0F ///< Initial Feed forward term for heater control -#define D5_HEAT_TX_P_COEFFICIENT 0.005F ///< P Term for AC primary heater control during treatment mode. +#define D5_HEAT_TX_P_COEFFICIENT 0.034F ///< P Term for AC primary heater control during treatment mode. #define D5_HEAT_TX_I_COEFFICIENT 0.001F ///< I Term for AC primary heater control during treatment mode. #define D45_HEAT_P_COEFFICIENT 0.01F ///< P Term for trimmer heater control. @@ -939,31 +939,31 @@ // assign the feed forward control control[ heater ].data = d5_cap_final_FF; #endif -//#ifdef __HEATERS_DEBUG__ -// U32 i; -// -// for ( i = 0; i < NUM_OF_CONTROLLER_SIGNAL; i++ ) -// { -// pIControlSignal[ i ] = getPIControllerSignals( PI_CONTROLLER_ID_D5_HEAT_OUTER_LOOP, (PI_CONTROLLER_SIGNALS_ID)i ); -// } -//#endif - } - else - { - measuredTemperature = getFilteredTemperatureValue( D50_TEMP ); - - ctrl = runPIController( PI_CONTROLLER_ID_D45_HEAT, targetTemperature, measuredTemperature ); - control[ heater ].data = ctrl; #ifdef __HEATERS_DEBUG__ U32 i; for ( i = 0; i < NUM_OF_CONTROLLER_SIGNAL; i++ ) { - pIControlSignal[ i ] = getPIControllerSignals( PI_CONTROLLER_ID_D45_HEAT, (PI_CONTROLLER_SIGNALS_ID)i ); + pIControlSignal[ i ] = getPIControllerSignals( PI_CONTROLLER_ID_D5_HEAT_OUTER_LOOP, (PI_CONTROLLER_SIGNALS_ID)i ); } #endif } + else + { + measuredTemperature = getFilteredTemperatureValue( D50_TEMP ); + ctrl = runPIController( PI_CONTROLLER_ID_D45_HEAT, targetTemperature, measuredTemperature ); + control[ heater ].data = ctrl; +//#ifdef __HEATERS_DEBUG__ +// U32 i; +// +// for ( i = 0; i < NUM_OF_CONTROLLER_SIGNAL; i++ ) +// { +// pIControlSignal[ i ] = getPIControllerSignals( PI_CONTROLLER_ID_D45_HEAT, (PI_CONTROLLER_SIGNALS_ID)i ); +// } +//#endif + } + heatersStatus[ heater ].hasTargetTempChanged = FALSE; heatersStatus[ heater ].controlIntervalCounter = 0; Index: firmware/App/Controllers/Ultrafiltration.c =================================================================== diff -u -r94789b2f2324d5901685b6ff7b6224d4af3a0276 -rdb7a07277014e802f582716c4215044ff905266b --- firmware/App/Controllers/Ultrafiltration.c (.../Ultrafiltration.c) (revision 94789b2f2324d5901685b6ff7b6224d4af3a0276) +++ firmware/App/Controllers/Ultrafiltration.c (.../Ultrafiltration.c) (revision db7a07277014e802f582716c4215044ff905266b) @@ -204,8 +204,12 @@ *************************************************************************/ static void updateUFRequest( void ) { + F32 qd = getTDDialysateFlowrate(); + BOOL bypass = getTDDialyzerBypass(); + // update latest UF run/pause request - if ( compUFrate > ZERO_RATE ) + // if qd is zero or dialyzer is bypassed, UF pump should be turn off + if ( ( compUFrate > ZERO_RATE ) && ( qd > ZERO_RATE ) && ( FALSE == bypass ) ) { isUltrafiltrationRequested = TRUE; }