 // 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

/* set to true to only log to SD when GPS has a fix, for debugging, keep it false */
#define LOG_FIXONLY false

// this keeps track of whether we're using the interrupt
// off by default!
boolean usingInterrupt = false;
void useInterrupt(boolean); // Func prototype keeps Arduino 0023 happy

// Set the pins used

    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())) {

