            for(i=0; i<4; i++)
            {
              ESCTemps[i] = 9 * ESCTemps[i] / 5 + 32;
+             if(lastTempUnit == 0)
+             {
+               maxTemps[i] = 9 * maxTemps[i] / 5 + 32;
+             }
+           }
+           if(lastTempUnit == 0)
+           {
+             MaxTemp = 9 * MaxTemp / 5 + 32;
            }
          }
+         if(lastTempUnit == 1 && settings.m_tempUnit == 0)
+         {
+           for(i=0; i<4; i++)
+           {
+             maxTemps[i] = (maxTemps[i] - 32) * 5 / 9;
+           }
+           MaxTemp = (MaxTemp - 32) * 5 / 9;
+         }
+         lastTempUnit = settings.m_tempUnit;
          if(armedOnce) 
          {
            MaxTemp = findMax4(MaxTemp, ESCTemps, 4);

  DISPLAY_STATS_DV = setupPPM(DISPLAY_STATS_DV);
  DISPLAY_ESC_TEMPERATURE_DV = setupPPM(DISPLAY_ESC_TEMPERATURE_DV);
  NewSerial.begin(115200);
  delay(5000); // Wait until FC is ready - otherwise we get garbage data
}

static int16_t  throttle = 0;

static uint8_t minBytes = 0;
static uint8_t recBytes = 0;
static uint32_t LastLoopTime = 0;
static uint32_t StartupTime = 0;

boolean ReadTelemetry()
{
  uint16_t i = 0;
  minBytes = 100;
  recBytes = 0;
  
  if(StartupTime == 0)
  {
    StartupTime = millis();
  }
   
  while(recBytes < minBytes && micros()-LastLoopTime < 20000)
  {
