Index: firmware/App/DDCommon.h =================================================================== diff -u -r1eb7496d07548ac5fb33e1051542f42cd5ff529c -r5c1ef41e65eebd8d740f71394cdbcc7e0f79a499 --- firmware/App/DDCommon.h (.../DDCommon.h) (revision 1eb7496d07548ac5fb33e1051542f42cd5ff529c) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 5c1ef41e65eebd8d740f71394cdbcc7e0f79a499) @@ -7,8 +7,8 @@ * * @file DDCommon.h * -* @author (last) Sameer Kalliadan Poyil -* @date (last) 29-Apr-2026 +* @author (last) Jashwant Gantyada +* @date (last) 22-May-2026 * * @author (original) Vinayakam Mani * @date (original) 07-Aug-2024 @@ -22,10 +22,10 @@ // ********** version ********** -#define DD_VERSION_MAJOR 0 -#define DD_VERSION_MINOR 0 -#define DD_VERSION_MICRO 0 -#define DD_VERSION_BUILD 81 +#define DD_VERSION_MAJOR 0 +#define DD_VERSION_MINOR 0 +#define DD_VERSION_MICRO 0 +#define DD_VERSION_BUILD 87 // ********** development build switches ********** @@ -39,8 +39,8 @@ //Uncomment below if barometric pressure sensor reading available //#define __BARO_PRES_SENSOR__ 1 -//Uncomment below if required hardware available ( baro and cond sensor) for testing -//#define ENABLE_ALARM_1 +//Uncomment below to disable the communication to dialin for blood leak embedded mode +//#define __BLOOD_LEAK_EMB_MODE_RESPONSE_DISABLED__ 1 //Uncomment below once characterization/study completed //#define ENABLE_ALARM_2 @@ -52,12 +52,21 @@ #define __HEATERS_DEBUG__ 1 //Uncomment below if D1 placement is used for Temp control at dialyzer -#define __USE_D1_TEMP_ 1 +//#define __USE_D1_TEMP_ 1 // comment below to disable bicarb multi level sensor for time based chamber F fill #define CONDUCTIVE_LEVEL_SENSOR_ENABLED 1 +//Uncomment below to disable d30 heater alarm(as all units are not equipped with d30 temp sensor) +//#define __D30_TEMPERATURE_DISABLED__ +//Uncomment below to disable the DD too-many-bad-message-CRCs alarm. +//#define __BAD_MSG_CRC_ALARM_DISABLED__ 1 + +//Uncomment below to disable the conductivity sensor alarms +//#define __CONDUCTIVITY_SENSOR_ALARMS_DISABLED__ + + #include #include #endif Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -rc90f3d61bde2a2b47d1048635be4dadf282e2195 -r5c1ef41e65eebd8d740f71394cdbcc7e0f79a499 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision c90f3d61bde2a2b47d1048635be4dadf282e2195) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 5c1ef41e65eebd8d740f71394cdbcc7e0f79a499) @@ -7,8 +7,8 @@ * * @file ModeGenDialysate.c * -* @author (last) Raghu Kallala -* @date (last) 05-May-2026 +* @author (last) Jashwant Gantyada +* @date (last) 14-May-2026 * * @author (original) Vinayakam Mani * @date (original) 06-Nov-2024 @@ -656,15 +656,14 @@ /*********************************************************************//** * @brief - * The getCalculatedD48PumpSpeedForBCFill function returns the D48 pump speed - * calculated from dialysate flow rate (Qd) for continuous delivery. - * @details \b Inputs: Qd from TD, test config TEST_CONFIG_DD_ENABLE_DIENER_1000_PUMP. + * The getD48PumpSpeed function returns the ceiled D48 pump speed. + * @details \b Inputs: Active flow rate(Qd), pump test config. * @details \b Outputs: none - * @return Calculated D48 pump speed in RPM (Diener 1000 or 2000 formula per test config). + * @return Ceiled D48 pump speed in RPM . *************************************************************************/ -U32 getCalculatedD48PumpSpeedForBCFill( void ) +U32 getD48PumpSpeed( void ) { - F32 dialFlowrate = getTDDialysateFlowrate(); + F32 dialFlowrate = getBalChamberActiveDialysateFlowrate(); F32 slope; F32 intercept; F32 calculatedSpeed; @@ -681,10 +680,8 @@ intercept = PUMP_SPEED_INTERCEPT_FACTOR_DIENER_1000; } - // Calculate nominal speed from Qd. calculatedSpeed = ( slope * dialFlowrate ) + intercept; - // Prevent negative before converting to unsigned and round up using ceilf. if ( calculatedSpeed < 0.0F ) { calculatedSpeed = 0.0F; @@ -697,6 +694,30 @@ /*********************************************************************//** * @brief + * The getCalculatedD48PumpSpeedForBCFill function returns the D48 pump speed + * for balancing chamber fill after applying the low-speed clamp. + * @details \b Inputs: Active BC Qd (or TD Qd before BC period init), pump test config. + * @details \b Outputs: none + * @return D48 pump speed in RPM for BC fill (Diener formula with low-speed floor). + *************************************************************************/ +U32 getCalculatedD48PumpSpeedForBCFill( void ) +{ + U32 rpm; + U32 nominalRpm; + + nominalRpm = getD48PumpSpeed(); + rpm = nominalRpm; + + if ( nominalRpm <= BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM ) + { + rpm = BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM; + } + + return rpm; +} + +/*********************************************************************//** + * @brief * The handleGenDDialysateIsolatedUFState function performs the * Isolated ultrafiltration operations. * @details \b Inputs: none. Index: firmware/App/Monitors/Temperature.c =================================================================== diff -u -rc90f3d61bde2a2b47d1048635be4dadf282e2195 -r5c1ef41e65eebd8d740f71394cdbcc7e0f79a499 --- firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision c90f3d61bde2a2b47d1048635be4dadf282e2195) +++ firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision 5c1ef41e65eebd8d740f71394cdbcc7e0f79a499) @@ -7,8 +7,8 @@ * * @file Temperature.c * -* @author (last) Vinayakam Mani -* @date (last) 14-Apr-2026 +* @author (last) Jashwant Gantyada +* @date (last) 21-May-2026 * * @author (original) Vinayakam Mani * @date (original) 25-Sep-2024 @@ -382,6 +382,7 @@ *************************************************************************/ void checkDialysateTemperatureSensors( void ) { +#ifndef __D30_TEMPERATURE_DISABLED__ DD_OP_MODE_T op = getCurrentOperationMode(); if ( ( DD_MODE_GEND == op ) || ( DD_MODE_HEAT == op ) ) @@ -405,6 +406,10 @@ tempDriftEventCheck = FALSE; } } +#else + resetPersistentAlarmTimer( ALARM_ID_DD_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE ); + tempDriftEventCheck = FALSE; +#endif } /*********************************************************************//**