     lastWindIRQ = millis(); //Grab the current time
     windClicks++; //There is 1.492MPH for each click per second.
   }
-  
+
 }
 
 
 void setup()
 {
+  //Switch on the GPS
+  pinMode(GPS_PWRCTL, OUTPUT);
+  digitalWrite(GPS_PWRCTL, HIGH); //Pulling this pin low puts GPS to sleep but maintains RTC and RAM
+
+  //Start Serial port reporting
   Serial.begin(9600);
-  
+
   // set up the LCD's number of columns and rows:
   lcd.begin(16, 2);
   lcd.backlight();
-  
-  ss.begin(9600); //Begin listening to GPS over software serial at 9600. This should be the default baud of the module.
+
+  //Start software serial for GPS
+  //Begin listening to GPS over software serial at 9600. This should be the default baud of the module.
+  ss.begin(9600); 
   Serial.print(F("lon,lat,altitude,sats,date,GMTtime,winddir"));
   Serial.print(F(",windspeedms,windgustms,windgustdir,windspdms_avg2m,winddir_avg2m,windgustms_10m,windgustdir_10m"));
   Serial.print(F(",humidity,tempc,rainhourmm,raindailymm,rainindicate,rainduration,pressure,batt_lvl,light_lvl"));
 
-  pinMode(STAT1, OUTPUT); //Status LED Blue
+  //For Arduino UNO Only
+  //pinMode(STAT1, OUTPUT); //Status LED Blue
   pinMode(STAT2, OUTPUT); //Status LED Green
-  
-  pinMode(GPS_PWRCTL, OUTPUT);
-  digitalWrite(GPS_PWRCTL, HIGH); //Pulling this pin low puts GPS to sleep but maintains RTC and RAM
-  
+
   pinMode(WSPEED, INPUT_PULLUP); // input from wind meters windspeed sensor
   pinMode(RAIN, INPUT_PULLUP); // input from wind meters rain gauge sensor
-  
+
   pinMode(REFERENCE_3V3, INPUT);
   pinMode(LIGHT, INPUT);
 


    rainlast = raintime; // set up for next event
  }
  
  //Rain or not (1 or 0)
  if(rainin >0)
  {

  //Keep track of which minute it is
  if(millis() - lastSecond >= 1000)
  {
    digitalWrite(STAT2, HIGH); //Blink stat LED

    lastSecond += 1000;

    //Take a speed and direction reading every second for 2 minute average
