   }
 
   void loop(){ 
+    bool newData = false;
     //Read from gps
     if (feedgps()){
       //Dump gps if new data
       gpsdump(gps);
+      newData = true;
     }
     updateHeading();
-    updateDisplay();
+    updateDisplay(newData);
   }
 
   /**

      break; 
      case btnDOWN:
        //Move menu down
        if(mMenuPosition < MENU_LENGTH - 1){
          mMenuPosition++;
        }
      break;

         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print("LAT: ");
         lcd.print(flat, 6);
         lcd.setCursor(0,1);
         lcd.print("LON: ");
         lcd.print(flon, 6);
         //delay(1000);
       break;
       case CMD_SHOW_WAY_POINT:
         //Display current position
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print("LAT: ");
         lcd.print(mLat[mCurrentWayPoint], 6);
         lcd.setCursor(0,1);
         lcd.print("LON: ");
         lcd.print(mLon[mCurrentWayPoint], 6);
         delay(2000);
       break;
       case CMD_NAVIGATE:
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print("M:");
         lcd.print(compassHeading);
         lcd.setCursor(0,1);
         lcd.print("G:");
         lcd.print(getHeading(mCurrentWayPoint, flat, flon));
         lcd.print(" ");
         lcd.print("D:");
         lcd.print(getDistance(mCurrentWayPoint, flat, flon));
         //delay(100);
       break;
       case CMD_ADD_WAY_POINT:
         mLat[mCurrentWayPoint] = flat;
