 TinyGPSPlus gps; // This is the GPS object that will pretty much do all the grunt work with the NMEA data
 SoftwareSerial GPSModule(10, 11); // RX, TX
 LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); // Initializes class variables and defines the I2C address of the LCD
-bool dataValid; // Data is valid from the GPS module
-GPSStruct GPSData; // Holds the GPS data coming from the GPS module
 
 // The setup (runs once at start up)
 void setup()

  // Turn LCD backlight on/off
  lcd.setBacklight(digitalRead(BACKLIGHT_SW));
#endif
  unsigned long now = millis();

  while (GPSModule.available()) // While there are characters to come from the GPS
  {
    bool b = gps.encode(GPSModule.read()); // This feeds the serial NMEA data into the GPS library one char at a time
  }

  // Get the GPS data valid flags
  dataValid =
    gps.location.isValid()   &&

  static bool leftInitialization = false;
  static bool creditToggle = true;
  static bool invalidSatellitesToggle = true;
  bool dataValid; // Data valid from the GPS module
  GPSStruct GPSData; // Holds the GPS data coming from the GPS module
  unsigned long now = millis(); // The time "now"
#ifndef _16x2
  static unsigned long prevDateTime = TOGGLETIME_INTERVAL;
  static unsigned long prevHeadingTime = TOGGLETIME_INTERVAL;
