Index: firmware/App/Controllers/ROPump.h =================================================================== diff -u -r25770b4b27e75e730d89ac046f7db405b1bfe39f -r28db3416e8183d1dfdbb047e269624a18d847a29 --- firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision 25770b4b27e75e730d89ac046f7db405b1bfe39f) +++ firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision 28db3416e8183d1dfdbb047e269624a18d847a29) @@ -37,11 +37,11 @@ /// RO pump data struct. typedef struct { - F32 roPumpTgtPressure; ///< RO pump target pressure - F32 measROFlowRate; ///< RO flow rate measurement - F32 roPumpDutyCycle; ///< RO pump duty cycle - U32 roPumpState; ///< RO pump current state - F32 roPumpTgtFlowRate; ///< RO pump target flow rate + F32 roPumpTgtPressure; ///< RO pump target pressure. + F32 measROFlowRate; ///< RO flow rate measurement. + F32 roPumpDutyCycle; ///< RO pump duty cycle. + U32 roPumpState; ///< RO pump current state. + F32 roPumpTgtFlowRate; ///< RO pump target flow rate. } RO_PUMP_DATA_T; // ********** public function prototypes ********** Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -rdf70610b0fd07ef4757da8ab504ecc856e178fe1 -r28db3416e8183d1dfdbb047e269624a18d847a29 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision df70610b0fd07ef4757da8ab504ecc856e178fe1) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 28db3416e8183d1dfdbb047e269624a18d847a29) @@ -58,7 +58,7 @@ #define MAX_INLET_CONDUCTIVITY_US_PER_CM 2000.0 ///< Maximum water inlet conductivity in us/cm // Flush circulation path state defines -#define RO_PUMP_TARGET_FLUSH_FILL_FLOW_RATE_LPM 0.8 ///< RO pump target flow rate during flush/fill in L/min. TODO original flow was 0.8 +#define RO_PUMP_TARGET_FLUSH_FILL_FLOW_RATE_LPM 0.6 ///< RO pump target flow rate during flush/fill in L/min. TODO original flow was 0.8 #define MAX_RO_PUMP_FLUSH_FILL_PRESSURE_PSI 130 ///< Maximum RO pump pressure during flush/fill states in psi. #define FLUSH_CICRCULATION_WAIT_TIME_MS ( 30 * MS_PER_SECOND ) ///< Flush/rinse circulation path wait time in milliseconds. TODO original time was 30 seconds #define MAX_FLUSH_CIRC_TEMP_SENSOR_DIFF_C 3.0 ///< Maximum flush circulation temperature difference tolerance in C. @@ -75,7 +75,7 @@ #define HEAT_DISINFECT_START_TEMPERATURE_C 50.0 ///< Heat disinfect minimum acceptable temperature in C. TODO original temperature was 81.0 // R1 to R2 & R2 to R1 heat disinfect circulation -#define HEAT_DISINFECT_TARGET_RO_FLOW_LPM 0.8 ///< Heat disinfect target RO flow rate in L/min. TODO original value was 0.8 +#define HEAT_DISINFECT_TARGET_RO_FLOW_LPM 0.6 ///< Heat disinfect target RO flow rate in L/min. TODO original value was 0.8 #define HEAT_DISINFECT_MAX_RO_PRESSURE_PSI 30 ///< Heat disinfect maximum RO pressure in psi. #define HEAT_DISINFECT_TARGET_DRAIN_PRES_PSI 1.0 ///< Heat disinfect target drain outlet pressure in psi. #define HEAT_DISINFECT_TIME_MS ( 0.5 * 60 * MS_PER_SECOND ) ///< Heat disinfect time for each section in milliseconds. TODO original time was 10 minutes @@ -497,8 +497,8 @@ if ( didTimeout( stateTimer, FLUSH_DRAIN_WAIT_TIME_MS ) ) { // If the inlet temperature and conductivity are in range, move onto the next state - if ( getTemperatureValue( TEMPSENSORS_INLET_PRIMARY_HEATER ) > MIN_INLET_TEMPERATURE_C && - getConductivityValue( CONDUCTIVITYSENSORS_CPI_SENSOR ) > MIN_INLET_CONDUCTIVITY_US_PER_CM ) + if ( getTemperatureValue( TEMPSENSORS_INLET_PRIMARY_HEATER ) > MIN_INLET_TEMPERATURE_C /*&& TODO un-comment when the conductivity sensor is reading correctly + getConductivityValue( CONDUCTIVITYSENSORS_CPI_SENSOR ) > MIN_INLET_CONDUCTIVITY_US_PER_CM*/ ) { setValveState( VPD, VALVE_STATE_OPEN_C_TO_NO ); setROPumpTargetFlowRate( RO_PUMP_TARGET_FLUSH_FILL_FLOW_RATE_LPM, MAX_RO_PUMP_FLUSH_FILL_PRESSURE_PSI ); @@ -1155,8 +1155,8 @@ * @brief * The handleHeatDisinfectCancelModeWaterPath function handles the * heat disinfect cancel mode cold water path state. - * @details Inputs: none TODO fill up - * @details Outputs: none TODO fill up + * @details Inputs: isR1Full, isR2Full + * @details Outputs: isR1Full, isR2Full * @return next state of the heat disinfect state machine *************************************************************************/ static DG_HEAT_DISINFECT_STATE_T handleHeatDisinfectCancelModeWaterPath( void ) Index: firmware/App/Services/FPGA.c =================================================================== diff -u -rfeb93744f73bc0a3d58841bb02bd05c38357f35d -r28db3416e8183d1dfdbb047e269624a18d847a29 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision feb93744f73bc0a3d58841bb02bd05c38357f35d) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 28db3416e8183d1dfdbb047e269624a18d847a29) @@ -156,8 +156,8 @@ U08 fpgaReserved1; ///< Reg 375. Reserved U16 fpgaValveStates; ///< Reg 376. Valves states - U16 fpgaFan1Pulse; ///< Reg 378. Fan 1 pulse time in 2.5 us solution - U16 fpgaFan2Pulse; ///< Reg 380. Fan 2 pulse time in 2.5 us solution + U16 fpgaFanIn1Pulse; ///< Reg 378. Fan inlet 1 pulse time in 2.5 us resolution + U16 fpgaFanOut1Pulse; ///< Reg 380. Fan outlet 1 pulse time in 2.5 us resolution U08 fpgaEmstatOutByte; ///< Reg 382. Emstat output FIFO - data from the Emstat device U08 fpgaEmstatRxErrorCount; ///< Reg 383. Number of receive errors since power-up @@ -169,6 +169,12 @@ U08 fpgaGPIOReg; ///< Reg 392. FGPA GPIO register U08 fpgaDummyByte2Addr; ///< Reg 393. Dummy byte address to maintain an even addressing scheme U16 fpgaADCTemp; ///< Reg 394. Internal FPGA die temperature ADC + + U16 fpgaFanIn2Pulse; ///< Reg 396. Fan inlet 2 pulse time in 2.5 resolution + U16 fpgaFanOut2Pulse; ///< Reg 398. Fan outlet 2 pulse time in 2.5 resolution + U16 fpgaFanIn3Pulse; ///< Reg 400. Fan inlet 3 pulse time in 2.5 resolution + U16 fpgaFanOut3Pulse; ///< Reg 402. Fan outlet 3 pulse time in 2.5 resolution + } DG_FPGA_SENSORS_T; typedef struct @@ -1594,7 +1600,7 @@ *************************************************************************/ U16 getFPGAInletFan1TogglePeriod( void ) { - return fpgaSensorReadings.fpgaFan1Pulse; + return fpgaSensorReadings.fpgaFanIn1Pulse; } /*********************************************************************//** @@ -1606,7 +1612,7 @@ *************************************************************************/ U16 getFPGAInletFan2TogglePeriod( void ) { - return fpgaSensorReadings.fpgaFan2Pulse; + return fpgaSensorReadings.fpgaFanIn2Pulse; } /*********************************************************************//** @@ -1618,7 +1624,7 @@ *************************************************************************/ U16 getFPGAInletFan3TogglePeriod( void ) { - return 0; + return fpgaSensorReadings.fpgaFanIn3Pulse; } /*********************************************************************//** @@ -1630,7 +1636,7 @@ *************************************************************************/ U16 getFPGAOutletFan1TogglePeriod( void ) { - return 0; + return fpgaSensorReadings.fpgaFanOut1Pulse; } /*********************************************************************//** @@ -1642,7 +1648,7 @@ *************************************************************************/ U16 getFPGAOutletFan2TogglePeriod( void ) { - return 0; + return fpgaSensorReadings.fpgaFanOut2Pulse; } /*********************************************************************//** @@ -1654,7 +1660,7 @@ *************************************************************************/ U16 getFPGAOutletFan3TogglePeriod( void ) { - return 0; + return fpgaSensorReadings.fpgaFanOut3Pulse; } /*********************************************************************//**