Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -rb1c2d54d3d029ab1340d91193a7a4c81db8ba29d -r71e5d8968b369a4e94f65a40171f648f442b8f80 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision b1c2d54d3d029ab1340d91193a7a4c81db8ba29d) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 71e5d8968b369a4e94f65a40171f648f442b8f80) @@ -68,7 +68,7 @@ #define AIR_TRAP_VALVE_GPIO_PIN 0x12 ///< Air trap valve GPIO pin number #define HOMING_STEP_CHANGE_IN_COUNTS 1000 ///< Step change in counts during homing -#define TRANSITION_STEP_CHANGE_IN_COUNTS 13000 ///< Step change in counts during normal operations +#define TRANSITION_STEP_CHANGE_IN_COUNTS 15000 ///< Step change in counts during normal operations #define MAX_DEVIATION_FROM_TARGET_IN_COUNTS 150 ///< Maximum deviation from target in counts #define MAX_ALLOWED_FAILED_HOMINGS 3U ///< Maximum allowed failed homings @@ -759,7 +759,7 @@ state = VALVE_STATE_IDLE; SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT, (U32)valve ); } - else if ( currentPosition - targetPosition > MAX_DEVIATION_FROM_TARGET_IN_COUNTS ) + else if ( abs( currentPosition - targetPosition ) < MAX_DEVIATION_FROM_TARGET_IN_COUNTS ) { setValveNextStep( valve, TRANSITION_STEP_CHANGE_IN_COUNTS ); } @@ -789,9 +789,7 @@ valvesStatus[ valve ].controlMode = VALVE_CONTROL_MODE_ENABLE_PID; // Request a change of position to get back to the last known position in PID mode - // It is assumed that the valve is currently in a unknown position and it is commanded - // to go back Position A - valvesStatus[ valve ].currentPosition = VALVE_POSITION_NOT_IN_POSITION; + // Go back to Pos A valvesStatus[ valve ].commandedPosition = VALVE_POSITION_A_INSERT_EJECT; valvesStatus[ valve ].hasTransitionBeenRequested = TRUE;