Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -r43332b2877c6afa12a9da903dea6cf0cfb71aec3 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 43332b2877c6afa12a9da903dea6cf0cfb71aec3) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2025-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2025-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Controllers/DialysatePumps.c =================================================================== diff -u -rb4040c87876465ffac138d9259ba8a40ea840aa9 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Controllers/DialysatePumps.c (.../DialysatePumps.c) (revision b4040c87876465ffac138d9259ba8a40ea840aa9) +++ firmware/App/Controllers/DialysatePumps.c (.../DialysatePumps.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Controllers/DialysatePumps.h =================================================================== diff -u -r43332b2877c6afa12a9da903dea6cf0cfb71aec3 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Controllers/DialysatePumps.h (.../DialysatePumps.h) (revision 43332b2877c6afa12a9da903dea6cf0cfb71aec3) +++ firmware/App/Controllers/DialysatePumps.h (.../DialysatePumps.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Controllers/ROPump.c =================================================================== diff -u -r9f79bc2ee4ab3e5b3b14c4a1d9c337af5d001ebd -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision 9f79bc2ee4ab3e5b3b14c4a1d9c337af5d001ebd) +++ firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2025-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2025-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file ROPump.c * * @author (last) “rkallala” -* @date (last) 09-Dec-2025 +* @date (last) 15-Jan-2026 * * @author (original) Michael Garthwaite * @date (original) 08-Sep-2025 @@ -76,6 +76,7 @@ static F32 roPumpDutyCyclePctSet; ///< Currently set RO pump PWM duty cycle. static OVERRIDE_F32_T roPumpOpenLoopTargetDutyCycle; ///< Target RO pump open loop PWM. static BOOL roPumpStartControl; ///< boolean to determine when closed loop flow control starts +static U32 roPumpClosedLoopStartTimeMS; ///< Timeout timer for RO pump to reach minimum target flow // ********** private function prototypes ********** @@ -110,8 +111,6 @@ initializePIController( PI_CONTROLLER_ID_RO_PUMP_PRES, MIN_FLUID_PUMP_DUTY_CYCLE_PCT, ROP_PRESSURE_CONTROL_P_COEFFICIENT, ROP_PRESSURE_CONTROL_I_COEFFICIENT, MIN_FLUID_PUMP_DUTY_CYCLE_PCT, MAX_FLUID_PUMP_DUTY_CYCLE_PCT, FALSE, 0 ); - initPersistentAlarm( ALARM_ID_FP_PERMEATE_FLOW_RATE_BELOW_TARGET, FP_FLOW_RATE_BELOW_TARGET_CLEAR_MS, FP_FLOW_RATE_BELOW_TARGET_TIMEOUT_MS ); - roPumpState = RO_PUMP_OFF_STATE; isROPumpOn = FALSE; stopPumpRequest = FALSE; @@ -135,6 +134,7 @@ roPumpOpenLoopTargetDutyCycle.ovData = 0.0; roPumpOpenLoopTargetDutyCycle.ovInitData = 0.0; roPumpOpenLoopTargetDutyCycle.override = OVERRIDE_RESET; + roPumpClosedLoopStartTimeMS = 0; stopROPump(); } @@ -286,10 +286,8 @@ static RO_PUMP_STATE_T handleROPumpControlToTargetFlowState( void ) { RO_PUMP_STATE_T state = RO_PUMP_CONTROL_TO_TARGET_FLOW_STATE; - F32 nexttgtflow = 0.0; - F32 currentFlowRate = 0.0; - F32 adjustedFlowRRate = 0.0; - BOOL isFlowRateLow = FALSE; + F32 currentFlowRate = 0.0F; + F32 minRequiredFlowRate = 0.0F; // Check if need to switch control modes if ( getTargetROPumpPressure() > 0.0F ) @@ -313,10 +311,10 @@ else if ( ++roControlTimerCounter >= ROP_CONTROL_INTERVAL ) { currentFlowRate = getFilteredFlow( P16_FLOW ); - adjustedFlowRRate = (F32)getTargetROPumpFlowRateMLPM() * ROP_MIN_FLOW_TO_CONTROL_PCT; + minRequiredFlowRate = (F32)getTargetROPumpFlowRateMLPM() * ROP_MIN_FLOW_TO_CONTROL_PCT; // P16 flow seems to lag in current Leahi HW. We will wait till we hit a % of target flow before we start changing control. - if( ( TRUE == roPumpStartControl ) || ( currentFlowRate >= ( adjustedFlowRRate ) ) ) + if( ( TRUE == roPumpStartControl ) || ( currentFlowRate >= ( minRequiredFlowRate ) ) ) { roPumpDutyCyclePctSet = runPIController( PI_CONTROLLER_ID_RO_PUMP_FLOW, (F32)getTargetROPumpFlowRateMLPM(), currentFlowRate ); roPumpDutyCyclePctSet = MIN( roPumpDutyCyclePctSet, ( MAX_FLUID_PUMP_PWM_DUTY_CYCLE * MAX_FLUID_PUMP_DUTY_CYCLE_PCT ) ); @@ -328,11 +326,6 @@ } } roControlTimerCounter = 0; - - //is flow rate less than 75% of the target flow rate - // wait for 10 seconds for timeout - isFlowRateLow = ( ( currentFlowRate < ( adjustedFlowRRate ) ) ? TRUE : FALSE); - checkPersistentAlarm( ALARM_ID_FP_PERMEATE_FLOW_RATE_BELOW_TARGET, isFlowRateLow, currentFlowRate, adjustedFlowRRate); } return state; @@ -418,6 +411,7 @@ // Get the initial guess of the duty cycle roPumpDutyCyclePctSet = roPumpFlowToPWM( getTargetROPumpFlowRateMLPM() ); roControlTimerCounter = 0; + roPumpClosedLoopStartTimeMS = getMSTimerCount(); isROPumpOn = TRUE; result = TRUE; } Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -rffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision ffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. @@ -35,7 +35,7 @@ #define ENERGIZED 1 ///< 1 for energized valve. #define ALL_VALVES_DEENERGIZED 0x0000 ///< 0 in U16 bit field for all valves. -#define VALVE_PWM_PERIOD 50 ///< Valve PWM Period in 0.1 us res ( 20kHz ) +#define VALVE_PWM_PERIOD 500 ///< Valve PWM Period in 0.1 us res ( 20kHz ) #define VALVE_PWM_LOW ( VALVE_PWM_PERIOD * 0.2 ) ///< Valve low PWM percentage #define VALVE_PWM_PULL_IN 100 ///< Valve 'strike' period at 100% PWM in ms @@ -174,7 +174,7 @@ valveSPBits |= 0x01 << ( i - FIRST_SP_VALVE ); } - for ( i = FIRST_IO_VALVE; i <= LAST_IO_VALVE; i++ ) + for ( i = M12_VALV; i <= LAST_IO_VALVE; i++ ) { valveIOBits |= 0x01 << ( i - FIRST_IO_VALVE ); } Index: firmware/App/DDCommon.h =================================================================== diff -u -rc60cb46fd187cfd82b2e25d70cb37bb9f46ab3fd -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/DDCommon.h (.../DDCommon.h) (revision c60cb46fd187cfd82b2e25d70cb37bb9f46ab3fd) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Drivers/PressureSensor.h =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Drivers/PressureSensor.h (.../PressureSensor.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Drivers/PressureSensor.h (.../PressureSensor.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Drivers/TemperatureSensors.c =================================================================== diff -u -r98865667298d58132b40bceda1305b6bbc2204e0 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 98865667298d58132b40bceda1305b6bbc2204e0) +++ firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Drivers/TemperatureSensors.h =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Drivers/TemperatureSensors.h (.../TemperatureSensors.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Drivers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -rc49ab370df876258ed3c805b33b2a2311a8ac0e3 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision c49ab370df876258ed3c805b33b2a2311a8ac0e3) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Modes/ModeGenDialysate.h =================================================================== diff -u -rffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision ffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d) +++ firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rb4040c87876465ffac138d9259ba8a40ea840aa9 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision b4040c87876465ffac138d9259ba8a40ea840aa9) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Monitors/Level.c =================================================================== diff -u -rc49ab370df876258ed3c805b33b2a2311a8ac0e3 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Monitors/Level.c (.../Level.c) (revision c49ab370df876258ed3c805b33b2a2311a8ac0e3) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Monitors/Level.h =================================================================== diff -u -r9ad8a0724b0afdfc455312b4293e1255f6fb9532 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Monitors/Level.h (.../Level.h) (revision 9ad8a0724b0afdfc455312b4293e1255f6fb9532) +++ firmware/App/Monitors/Level.h (.../Level.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file Level.h * -* @author (last) Michael Garthwaite -* @date (last) 15-Sep-2025 +* @author (last) “rkallala” +* @date (last) 15-Jan-2026 * * @author (original) Vinayakam Mani * @date (original) 14-Oct-2024 Index: firmware/App/Monitors/Pressure.c =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Monitors/Pressure.h =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Monitors/Pressure.h (.../Pressure.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Monitors/Pressure.h (.../Pressure.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Monitors/Temperature.c =================================================================== diff -u -r9ad8a0724b0afdfc455312b4293e1255f6fb9532 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision 9ad8a0724b0afdfc455312b4293e1255f6fb9532) +++ firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Monitors/Temperature.h =================================================================== diff -u -rffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Monitors/Temperature.h (.../Temperature.h) (revision ffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d) +++ firmware/App/Monitors/Temperature.h (.../Temperature.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -r27e8758fa6199e72b914e1199786a4396ce74d06 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 27e8758fa6199e72b914e1199786a4396ce74d06) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -r02c2059fd465609e56c6240d2855c91be2129fd6 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 02c2059fd465609e56c6240d2855c91be2129fd6) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,7 +1,7 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. @@ -234,7 +234,7 @@ U16 flowRateP7; ///< Reg 704. P7 flow sensor rate. U16 flowTempP7; ///< Reg 706. P7 flow sensor temperature. U16 p12PumpTachCount; ///< Reg 708. P12 pump tachometer counter. - U16 dsPumpTachCount; ///< Reg 710. DSP tachometer counter. + U16 d79SpeedPulseWidth; ///< Reg 710. D79 pusle width feedback. U16 flowIntTempP7; ///< Reg 712. P7 flow sensor internal temperature. U08 valveIOControlReadback; ///< Reg 714. IO Valve control bits read back. U08 valveFPControlReadback; ///< Reg 715. FP Valve control enable read back. @@ -295,7 +295,7 @@ U08 fpgaD42FIFOTx; ///< Reg 48. Blood leak sensor FIFO transmit control U08 fpgaD5HeaterPWMControl; ///< Reg 49. Primary heater PWM control U08 fpgaD45HeaterPWMControl; ///< Reg 50. Trimmer heater PWM control - U08 fpgaNotUsed; ///< Reg 51. Not used + U08 fpgaD79PWMPumpCtl; ///< Reg 51. Rinse pump PWM control U16 fpgaVBCPWMLow; ///< Reg 52. VBC PWM low ( Balancing chamber valves) U16 fpgaVBCPWMPeriod; ///< Reg 54. VBC PWM period U16 fpgaVBCPWMPullIn; ///< Reg 56. VBC PWM pull in @@ -3105,6 +3105,45 @@ /*********************************************************************//** * @brief + * The setFPGAD79RinsePumpControl function sets the control bit of the rinse + * pump to turn it on or off. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaDDSpareValveControl + * @return none + *************************************************************************/ +void setFPGAD79RinsePumpControl( U08 value ) +{ + fpgaActuatorSetPoints.fpgaDDSpareValveControl &= value; +} + +/*********************************************************************//** + * @brief + * The setFPGAD79RinsePumpPWMControl function sets the PWM value of the rinse + * pump to turn it on or off. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaD79PWMPumpCtl + * @return none + *************************************************************************/ +void setFPGAD79RinsePumpPWMControl( U08 value ) +{ + fpgaActuatorSetPoints.fpgaD79PWMPumpCtl = value; +} + +/*********************************************************************//** + * @brief + * The getFPGAD79RinsePumpPulseWidth function returns the 4-wire rinse pump + * pulse width. + * @details \b Inputs: d79SpeedPulseWidth + * @details \b Outputs: none + * @return fpgaSensorReadings.d79SpeedPulseWidth + *************************************************************************/ +U16 getFPGAD79RinsePumpPulseWidth( void ) +{ + return fpgaSensorReadings.d79SpeedPulseWidth; +} + +/*********************************************************************//** + * @brief * The setFPGAFPValveStates function sets the FP valve states with an 8-bit * mask of states - one bit per valve, with a 1 meaning "energized" and a 0 * meaning "de-energized". The bit positions for these bit states are as follows: Index: firmware/App/Services/FpgaDD.h =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Services/FpgaDD.h (.../FpgaDD.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Services/FpgaDD.h (.../FpgaDD.h) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. @@ -258,6 +258,11 @@ U08 getFPGABloodLeakRxErrorCount( void ); U08 getFPGABloodLeakRxFIFODataOut( void ); +// Rinse pump +void setFPGAD79RinsePumpControl( U08 value ); +void setFPGAD79RinsePumpPWMControl( U08 value ); +U16 getFPGAD79RinsePumpPulseWidth( void ); + //*************** IOFP ******************* void setFPGAFPValveStates( U08 valveStates ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -rc49ab370df876258ed3c805b33b2a2311a8ac0e3 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision c49ab370df876258ed3c805b33b2a2311a8ac0e3) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file Messaging.c * * @author (last) “rkallala” -* @date (last) 09-Dec-2025 +* @date (last) 16-Jan-2026 * * @author (original) Vinayakam Mani * @date (original) 07-Aug-2024 @@ -29,23 +29,21 @@ #include "Flow.h" #include "FlowSensor.h" #include "FluidPump.h" -#include "FlushConcentrate.h" -#include "FlushFilter.h" -#include "FlushPermeate.h" #include "FpgaDD.h" #include "FPModeFault.h" #include "FPModeInitPOST.h" #include "FPModeStandby.h" #include "FPOperationModes.h" #include "Heaters.h" -#include "InletPressureCheck.h" #include "Level.h" #include "Messaging.h" #include "MessagePayloads.h" #include "ModeGenDialysate.h" #include "ModeGenPermeate.h" +#include "ModeGenPermeateDefeatured.h" #include "ModePreGenDialysate.h" #include "ModePreGenPermeate.h" +#include "ModePreGenPermeateDefeatured.h" #include "ModePostGenDialysate.h" #include "ModeStandby.h" #include "OperationModes.h" @@ -56,6 +54,11 @@ #include "ROPump.h" #include "SafetyShutdown.h" #include "SpentChamberFill.h" +#include "StateFlushConcentrate.h" +#include "StateFlushFilter.h" +#include "StateFlushFilterDefeatured.h" +#include "StateFlushPermeate.h" +#include "StateInletPressureCheck.h" #include "SystemCommDD.h" #include "Temperature.h" #include "TestSupport.h" @@ -64,6 +67,7 @@ #include "Ultrafiltration.h" #include "Valves.h" #include "Voltages.h" +#include "WaterQualityMonitor.h" /** * @addtogroup Messaging @@ -192,6 +196,7 @@ { MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST, &testDDConductivitySensorFilteredReadingsOverride }, { MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, &testDDConductivitySensorFilteredTemperatureReadingsOverride }, { MSG_ID_FP_TESTER_LOGIN_REQUEST, &handleTesterFPLogInRequest }, + { MSG_ID_FP_SOFTWARE_RESET_REQUEST, &handleDDSoftwareResetRequest }, { MSG_ID_FP_SET_OPERATION_MODE_REQUEST, &testSetFPOperationMode }, { MSG_ID_FP_OPERATION_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testSetFPOpModePublishIntervalOverride }, { MSG_ID_FP_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPreGenDataPublishIntervalOverride }, @@ -240,6 +245,8 @@ { MSG_ID_FP_PERMEATE_TANK_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPermeateTankDataPublishIntervalOverride }, { MSG_ID_FP_RO_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testROPumpDataPublishIntervalOverride }, { MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testRinsePumpDataPublishIntervalOverride }, + { MSG_ID_DD_RINSE_PUMP_PWM_PERCENT_OVERRIDE_REQUEST, &testRinsePumpPWMPercentOverride }, + { MSG_ID_DD_RINSE_PUMP_TURN_ON_OFF_REQUEST, &testRinsePumpTurnOnOffRequest }, { MSG_ID_FP_SET_START_STOP_OVERRIDE_REQUEST, &testSetGeneratePermeateSignal }, { MSG_ID_DD_DRY_BICART_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testDryBiCartDataPublishIntervalOverride }, { MSG_ID_DD_DRY_BICART_FILL_CYCLE_MAX_OVERRIDE_REQUEST, &testDryBiCartFillCycleMaxCountOverride }, Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -r267bdf6d1ea38846fba29a271c099c9db8c25cbd -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 267bdf6d1ea38846fba29a271c099c9db8c25cbd) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r27e8758fa6199e72b914e1199786a4396ce74d06 -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 27e8758fa6199e72b914e1199786a4396ce74d06) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. Index: firmware/source/sys_main.c =================================================================== diff -u -ra521fb80a785babd99f0413dc6223d47375a43bc -r3643a2e648ab2b216fd08579e56bdc02fb94836d --- firmware/source/sys_main.c (.../sys_main.c) (revision a521fb80a785babd99f0413dc6223d47375a43bc) +++ firmware/source/sys_main.c (.../sys_main.c) (revision 3643a2e648ab2b216fd08579e56bdc02fb94836d) @@ -73,9 +73,6 @@ #include "Flow.h" #include "FlowSensor.h" #include "FluidPump.h" -#include "FlushConcentrate.h" -#include "FlushFilter.h" -#include "FlushPermeate.h" #include "FPModeFault.h" #include "FPModeInitPOST.h" #include "FPModeStandby.h" @@ -96,6 +93,11 @@ #include "RinsePump.h" #include "ROPump.h" #include "SafetyShutdown.h" +#include "StateFlushConcentrate.h" +#include "StateFlushFilter.h" +#include "StateFlushFilterDefeatured.h" +#include "StateFlushPermeate.h" +#include "StateInletPressureCheck.h" #include "SystemCommDD.h" #include "TaskBG.h" #include "TDInterface.h" @@ -231,6 +233,8 @@ initPreGenPMode(); initGenPermeateMode(); initGenPermeateDefeaturedMode(); + initInletPressureCheck(); + initFilterFlushDefeatured(); initFilterFlush(); initConcentrateFlush(); initPermeateFlush();