 // Interrupt is called once a millisecond, looks for any new GPS data, and stores it
 SIGNAL(TIMER0_COMPA_vect) {
   char c = GPS.read();
-  // if you want to debug, this is a good time to do it!
-  #ifdef UDR0
-      if (GPSECHO)
-        if (c) UDR0 = c;
-      // writing direct to UDR0 is much much faster than Serial.print
-      // but only one character can be written at a time.
-  #endif
 }
 
 void useInterrupt(boolean v) {
+  // v is always true
   if (v) {
     // Timer0 is already used for millis() - we'll just interrupt somewhere
     // in the middle and call the "Compare A" function above

  // Turn off updates on antenna status, if the firmware permits it
  GPS.sendCommand(PGCMD_NOANTENNA);

  // the nice thing about this code is you can have a timer0 interrupt go off
  // every 1 millisecond, and read data from the GPS for you. that makes the
  // loop code a heck of a lot easier!
  useInterrupt(true);

  Serial.println("Ready!");

    TIMSK0 |= _BV(OCIE0A);
    usingInterrupt = true;
  }
}

void loop() {
  // If it's been LOG_RATE milliseconds since the last log:
  if ((lastLog + LOG_RATE) <= millis())
  {
    // if a sentence is received, we can check the checksum, parse it...
    if (GPS.newNMEAreceived() && GPS.parse(GPS.lastNMEA())) {

