           lcd.print(" ST");
         }
       }
-      else {
-        lcd.print("         "); // Clear the extra chars
-      }
+      else { // if (!localUTCTimeDate)
+        displayHdopOnLCD (GPSData.hdop, displayHdop, now,
+                          &prevHdopTime, &hdopToggle);
+      } // if (!localUTCTimeDate)
     } // if ((digitalRead(ALTITUDE_DATE_TIME_SW)))
     else {
-      if (!displayHdop) {
-        // Display Horizontal Dilution of Precision (Hdop) with the format X.X
-        // It comes in from the GPS module as XXX
-        // If you care how Hdop is computed (I don't :-(), see the following:
-        // http://www2.unb.ca/gge/Resources/gpsworld.may99.pdf
-        float Hdop = (float)GPSData.hdop / 100.0f; // Hdop in X.X format
-        lcd.print(" Hdop:");
-        if (Hdop < 10.0f) {
-          lcd.print(Hdop);
-        }
-        else {
-          // Hdop value too large for my LCD, so cross it out
-          // Toggle Hdop indicator every TOGGLETIME_INTERVAL seconds
-          if (now - prevHdopTime > TOGGLETIME_INTERVAL / 3) {
-            prevHdopTime = now;
-            if (hdopToggle) {
-              hdopToggle = false;
-              lcd.print("XXX");
-            }
-            else {
-              hdopToggle = true;
-              lcd.print("   ");
-            } // if (hdopToggle)
-          } // if (now - prevHdopTime > TOGGLETIME_INTERVAL)
-        } // if (Hdop < 10.0f)
-      }
-      else { // if (!displayHdop)
-        // Display horizontal position error in feet
-        float hError = (float)GPSData.hdop / 100.0f; // Error in X.X format
-        hError *= GPS_RECEIVER_ERROR; // Error in meters
-        hError *= _GPS_FEET_PER_METER; // Error in feet
-        lcd.print(" Err: ");
-        if (hError < 100.0f) {
-          lcd.print((uint8_t)hError);
-          if (hError < 10.0f) {
-            lcd.print("f "); // feet
-          }
-          else {
-            lcd.print("f"); // feet
-          }
-        }
-        else { // if (hError < 100.0f)
-          // horizontal position error value too large for my LCD, so cross it out
-          // Toggle Hdop indicator every TOGGLETIME_INTERVAL seconds
-          if (now - prevHdopTime > TOGGLETIME_INTERVAL / 3) {
-            prevHdopTime = now;
-            if (hdopToggle) {
-              hdopToggle = false;
-              lcd.print("XXX");
-            }
-            else {
-              hdopToggle = true;
-              lcd.print("   ");
-            } // if (hdopToggle)
-          } // if (now - prevHdopTime > TOGGLETIME_INTERVAL)
-        } // if (hError < 100.0f)
-      } // if (displayHdop)
+      displayHdopOnLCD (GPSData.hdop, displayHdop, now,
+                        &prevHdopTime, &hdopToggle);
     } // if ((digitalRead(ALTITUDE_DATE_TIME_SW)))
     lcd.setCursor (0, 2); // Go to 3rd line
     lcd.print("Spd: ");

  } // if (convertDate)
  return (DST);
}
#endif // #ifndef _16x2

    GPSData.altitude   = 555.0d;
#ifndef _16x2
    GPSData.heading    = 60.0d; // ENE or NE (16 cardinal points or 8 cardinal points)
    GPSData.hdop       = 1500; // Invalid Hdop
    GPSData.year       = 2017;
    GPSData.month      = 11; // Day before ST starts
    GPSData.day        = 5;  //      "
