    }
    else
    {
-     alphaSigned = StrToFloat(inputString);
+     // To reject incorrect value due to 0. badly read
+     if ((StrToFloat(inputString)>=-1) & (StrToFloat(inputString)<=1))
+     {
+       alphaSigned = StrToFloat(inputString);
+       lastSerialInputTime = millis();
+       Serial.println(alphaSigned);
+     }
    }
   }
   Serial.println(inputString);

  computeEnableState();
  computeLogicState();
  
  delay(1);


//  // print the results to the serial monitor:
//  Serial.print("alphaManual = " );                       
//  Serial.print(alphaSigned);      
//  Serial.print("\t alphaUsed = ");      
 Serial.println(alphaSigned);   
}
void setMode()
{  


void computeAlphaSigned()
{
  if (serialFrequency != 0)
  { // Fallbacks to zero as we received no message in the expected time (twice the time)
    if ((millis()-lastSerialInputTime) > 2*1/serialFrequency*1000)
    {
      alphaSigned = 0;
    }
  }
    // If not in Serial control overwrite the value 
  if (false == isSerialControl)
  {
    // Compute the value corresponding to the deadband
    double sensorDeadBandMax = sensorValueMin + (deadBand/2.0+0.5)*(sensorValueMax - sensorValueMin);
    double sensorDeadBandMin = sensorValueMin + (-deadBand/2.0+0.5)*(sensorValueMax - sensorValueMin);
    if (sensorValue < sensorDeadBandMin) //strictly to avoid alphaSigned equals zero
    {
      alphaSigned = (sensorValue-sensorValueMin)/(sensorDeadBandMax - sensorValueMin)-1;
