 #include <SoftwareSerial.h>
 #include <SabertoothSimplified.h>
 #include <TinyGPS++.h>
-#include <PID_v1.h>
 
 const int ledPin = 13;
 
 String inputString = "";         // a string to hold incoming data
 boolean stringComplete = false;  // whether the string is complete
+boolean isTimeOut = false;
 
 //Note: NOT_A_PIN (0) was previously used for RX which is not used, but this was causing problems
 SoftwareSerial SWSerial(10, 8); // RX, TX. RX on no pin (unused), TX on pin 8 (to S1).
 SabertoothSimplified ST(SWSerial); // Use SWSerial as the serial port.
 int power1, power2;
+long lastSerialReception_ms;
+long last_order_ms = 0;
+#define ORDER_RATE_ms 100
 
 TinyGPSPlus nmea;
 // O stands for Opensource, R for Robokite

}

void computeOrder()
{
  if (myPID1.GetMode() == MANUAL)
  {
    power1 = atoi(pwm1.value());
  }
  if (myPID2.GetMode() == MANUAL)
  {
    power2 = atoi(pwm2.value());
  }
}

void sendOrder()
{
  // Order in the range -127/127
   ST.motor(1, power1);
   ST.motor(2, power2);
}
 

      {
        if (pwm1.isUpdated())
        { 
          pwm1.value();
        }
        if (pwm2.isUpdated())
        {
          pwm2.value();
        }
        if (feedback_request.isUpdated())
        {
