 boolean gpsRdy, gpsZDAFlg, gpsTFFlg, gpsChkFlg, gpsErrFlg;
 boolean gpsPosValid, gpsMsgFlg, gpsTimeFlg, gpsTimeValid;
 byte gpsChk;
-float lat, lon, alt;
-long syncTime;
+float gpsLat, gpsLon, gpsAlt;
+int gpsYr, gpsMon, gpsDay, gpsHr, gpsMin, gpsSec;
 
 char aprs[APRSLEN], aprsBuf[APRSLEN];
 int aprsIndex = 0;
 boolean aprsRdy, aprsChkFlg, aprsErrFlg, aprsBufCurrent, aprsValid;
+boolean aprsFlg;
+float aprsLat, aprsLon, aprsAlt, aprsVg, aprsHdg;
 
 char term[TERMLEN], aprsfiBuf[APRSFILEN], cmdBuf[CMDLEN];
 int termIndex = 0;
 boolean termRdy, termChkFlg, termErrFlg, termBufCurrent, termValid;
 boolean aprsfiPending, cmdPending, aprsfiBufCurrent, cmdBufCurrent;
 boolean cmdRdy, aprsfiRdy;
-boolean updateFlg;
-
-int gpsYr, gpsMon, gpsDay, gpsHr, gpsMin, gpsSec;
+float apfiLat, apfiLon, apfiAlt, apfiVg, apfiHdg;
+
+boolean rotorUpdateFlg;
 
 IntervalTimer updateTimer;
 

  if ( c == '*' ) { // '*' indicates end of GPS sentence
    gpsChkFlg = true;
    if ( DEBUG ) {
      if ( DEBUG ) Serial.println( gps );
    }
  }

    }
    if ( gpsPosValid ) {
      // Get position, velocity data
      gpsLat = getField( gpsTF, 6, ',' ).toFloat();
      if ( getField( gpsTF, 7, ',' ) == 'S' ) gpsLat *= -1.0;
      gpsLon = getField( gpsTF, 8, ',' ).toFloat();
      if ( getField( gpsTF, 9, ',' ) == 'W' ) gpsLon *= -1.0;
      gpsAlt = getField( gpsTF, 10, ',' ).toFloat();
    }
    gpsTFFlg = false;
  }
