Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -r50144ec3e96785cf76d5bfd22ee65029c82e732b -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 50144ec3e96785cf76d5bfd22ee65029c82e732b) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -7,8 +7,8 @@ * * @file BalancingChamber.c * -* @author (last) Varshini Nagabooshanam -* @date (last) 26-Jan-2026 +* @author (last) Vinayakam Mani +* @date (last) 03-Sep-2025 * * @author (original) Vinayakam Mani * @date (original) 28-Jan-2025 @@ -1002,7 +1002,7 @@ { BOOL result = FALSE; - // Verify tester has logged in with TD + // Verify tester has logged in with DD if ( TRUE == isTestingActivated() ) { // Verify payload length is valid Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r937362196a40d7d55b1b61e33f88c382184fbf2f -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 937362196a40d7d55b1b61e33f88c382184fbf2f) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -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 @@ -126,7 +126,7 @@ // TODO set FPGA PWM after finalizing the decision on valve strike and hold behavior // initially set valve PWM configuration and enable -// setFPGAPWMConfigurations(); + //setFPGAPWMConfigurations(); // initially set all valves to de-energized state via FPGA setFPGADDValveStates( commandedValvesStates ); @@ -175,7 +175,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 -re4d42b5c1162c6fb56e7255d619fce78eb7c68c0 -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/DDCommon.h (.../DDCommon.h) (revision e4d42b5c1162c6fb56e7255d619fce78eb7c68c0) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -25,7 +25,7 @@ #define DD_VERSION_MAJOR 0 #define DD_VERSION_MINOR 0 #define DD_VERSION_MICRO 0 -#define DD_VERSION_BUILD 40 +#define DD_VERSION_BUILD 47 // ********** development build switches ********** @@ -49,8 +49,11 @@ //#define __BICARB_CHAMBER_FILL__ 1 //Uncomment below for Maxon controller speed change -//#define __MAXON_SPEED_UPDATE__ 1 +#define __MAXON_SPEED_UPDATE__ 1 +//UnComment below for DryBicarb testing +//#define __DRY_BICARB__ 1 + //Uncomment below to disable heaters debug message #define __HEATERS_DEBUG__ 1 Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -rbd896114f304304a7096b30b2a85067a64645e82 -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision bd896114f304304a7096b30b2a85067a64645e82) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -216,9 +216,11 @@ setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO setValveState( D47_VALV, VALVE_STATE_CLOSED ); // spent chamber purge valve - setValveState( D64_VALV, VALVE_STATE_CLOSED ); setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve +#ifndef __DRY_BICARB__ setValveState( D80_VALV, VALVE_STATE_OPEN ); // Bicarb valve + setValveState( D64_VALV, VALVE_STATE_CLOSED ); +#endif // Turn on the primary heater calculateTargetDialysateTemp(); @@ -245,7 +247,6 @@ case DD_GEND_DIALYSATE_DELIVERY_STATE: //Previous state setValveState( D47_VALV, VALVE_STATE_CLOSED ); // spent chamber purge valve - setValveState( D64_VALV, VALVE_STATE_CLOSED ); setValveState( D14_VALV, VALVE_STATE_OPEN ); setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve @@ -267,7 +268,10 @@ setValveState( D34_VALV, VALVE_STATE_CLOSED ); // Bypass valve setValveState( D35_VALV, VALVE_STATE_OPEN ); // VDI setValveState( D40_VALV, VALVE_STATE_OPEN ); // VDO +#ifndef __DRY_BICARB__ setValveState( D80_VALV, VALVE_STATE_OPEN ); // Bicarb valve + setValveState( D64_VALV, VALVE_STATE_CLOSED ); +#endif break; case DD_GEND_SPENT_CHAMBER_FILL_STATE: @@ -277,7 +281,10 @@ setValveState( D14_VALV, VALVE_STATE_OPEN ); setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve +#ifndef __DRY_BICARB__ setValveState( D80_VALV, VALVE_STATE_OPEN ); // Bicarb valve + setValveState( D64_VALV, VALVE_STATE_CLOSED ); +#endif setValveState( D47_VALV, VALVE_STATE_OPEN ); // Spent chamber purge valve requestConcentratePumpOff( D76_PUMP, FALSE ); @@ -313,8 +320,10 @@ setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve - setValveState( D64_VALV, VALVE_STATE_OPEN ); // Bicarb chamber purge valve +#ifndef __DRY_BICARB__ setValveState( D80_VALV, VALVE_STATE_OPEN ); // Bicarb valve + setValveState( D64_VALV, VALVE_STATE_OPEN ); // Bicarb chamber purge valve +#endif bicarbFillStartTimeMS = getMSTimerCount(); // Turn on the primary heater @@ -353,7 +362,6 @@ setValveState( D40_VALV, VALVE_STATE_CLOSED ); setValveState( D31_VALV, VALVE_STATE_CLOSED ); setValveState( D47_VALV, VALVE_STATE_CLOSED ); - setValveState( D64_VALV, VALVE_STATE_CLOSED ); setValveState( D54_VALV, VALVE_STATE_CLOSED ); setValveState( D14_VALV, VALVE_STATE_CLOSED ); setValveState( D52_VALV, VALVE_STATE_CLOSED ); @@ -365,7 +373,10 @@ setValveState( D34_VALV, VALVE_STATE_OPEN ); setValveState( D53_VALV, VALVE_STATE_OPEN ); +#ifndef __DRY_BICARB__ setValveState( D80_VALV, VALVE_STATE_OPEN ); + setValveState( D64_VALV, VALVE_STATE_CLOSED ); +#endif break; case DD_GEND_ISOLATED_UF_STATE: Index: firmware/App/Monitors/Level.c =================================================================== diff -u -r50144ec3e96785cf76d5bfd22ee65029c82e732b -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/Monitors/Level.c (.../Level.c) (revision 50144ec3e96785cf76d5bfd22ee65029c82e732b) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -38,7 +38,7 @@ #define FPGA_LEVEL_HIGH 4 ///< Floater high level status #define LEVEL_COUNT_LOW 0xFFFF ///< Level sensor count when fluid level is low or non submerged #define LEVEL_COUNT_HIGH_START 0x0000 ///< Start range of level sensor count when fluid level is high or submerged -#define LEVEL_COUNT_HIGH_END 0x2FFF ///< End range of level sensor count when fluid level is high or submerged +#define LEVEL_COUNT_HIGH_END 0x1FFF ///< End range of level sensor count when fluid level is high or submerged #define LOW_LEVEL_COUNT_TOLERANCE ( ( LEVEL_COUNT_LOW / 100 ) * 1 ) ///< Level sensor count 1% tolerance for low level #define HIGH_LEVEL_COUNT_TOLERANCE ( ( LEVEL_COUNT_HIGH / 100 ) * 1 ) ///< Level sensor count 1% tolerance for high level #define LEVEL_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Interval (ms/task time) at which the level data is published on the CAN bus. Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -rbd896114f304304a7096b30b2a85067a64645e82 -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision bd896114f304304a7096b30b2a85067a64645e82) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -149,6 +149,8 @@ SW_FAULT_ID_RINSE_PUMP_INVALID_EXEC_STATE = 118, SW_FAULT_ID_RINSE_PUMP_INVALID_STATE1 = 119, SW_FAULT_ID_CONDUCTIVITY_SENOR_INVALID_STATE = 120, + SW_FAULT_ID_DRY_BICART_FILL_INVALID_EXEC_STATE = 121, + SW_FAULT_ID_BICARB_CHAMBER_FILL_INVALID_EXEC_STATE = 122, NUM_OF_SW_FAULT_IDS } DD_SW_FAULT_ID_T; Index: firmware/App/Services/Messaging.c =================================================================== diff -u -rbd896114f304304a7096b30b2a85067a64645e82 -r58e5721497be626929b6cdc0c5187e18b34bbaad --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision bd896114f304304a7096b30b2a85067a64645e82) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 58e5721497be626929b6cdc0c5187e18b34bbaad) @@ -25,6 +25,7 @@ #include "Compatible.h" #include "ConcentratePumps.h" #include "DialysatePumps.h" +#include "DryBiCart.h" #include "Flow.h" #include "FlowSensor.h" #include "FluidPump.h" @@ -249,6 +250,10 @@ { 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 }, + { MSG_ID_DD_DRY_BICART_FILL_REQUEST_OVERRIDE_REQUEST, &testDryBiCartFillRequestOverride }, + { MSG_ID_DD_BICARB_CHAMBER_FILL_REQUEST_OVERRIDE_REQUEST, &testBiCarbChamberFillRequestOverride }, { MSG_ID_FP_RO_REJECTION_RATIO_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testRORejectionRatioDataPublishIntervalOverride }, { MSG_ID_FP_RO_FILTERED_REJECTION_RATIO_OVERRIDE_REQUEST, &testRORejectionRatioFilteredOverride }, { MSG_ID_FP_SET_TEST_CONFIGURATION, &testSetTestConfiguration },