 }
 
 // Compute the cardinal points of the compass
-const char* cardinal(double course)
-{
-#ifdef _16CARDINAL
-  const char* directions[] = {"N  ", "NNE", "NE ", "ENE", "E  ", "ESE", "SE ", "SSE",
-                              "S  ", "SSW", "SW ", "WSW", "W  ", "WNW", "NW ", "NNW"
-                             };
-#else
-  const char* directions[] = {"N  ", "N  ", "NE ", "NE ", "E  ", "E  ", "SE ", "SE ",
-                              "S  ", "S  ", "SW ", "SW ", "W  ", "W  ", "NW ", "NW "
-                             };
-#endif // #ifdef _16CARDINAL
-  uint8_t direction = (uint8_t)((course + 11.25d) / 22.5d);
-  return directions[direction % 16];
+const char* cardinal(double course, bool cardinalSelect)
+{
+  if (!cardinalSelect) {
+    const char* directions[] = {"N  ", "NNE", "NE ", "ENE", "E  ", "ESE", "SE ", "SSE",
+                                "S  ", "SSW", "SW ", "WSW", "W  ", "WNW", "NW ", "NNW"
+                               };
+    uint8_t direction = (uint8_t)((course + 11.25d) / 22.5d);
+    return directions[direction % 16];
+  }
+  else {
+    const char* directions[] = {"N  ", "N  ", "NE ", "NE ", "E  ", "E  ", "SE ", "SE ",
+                                "S  ", "S  ", "SW ", "SW ", "W  ", "W  ", "NW ", "NW "
+                               };
+    uint8_t direction = (uint8_t)((course + 11.25d) / 22.5d);
+    return directions[direction % 16];
+  } // if (!cardinalSelect)
 }
 
 /* Ripped off from Stackoverflow

          uint8_t day  = GPSData.day;
          uint8_t month = GPSData.month;
          uint16_t year = GPSData.year;
#ifdef CONVERT_TO_LOCAL
          // Convert UTC time to local time (no need to convert the date)
          bool DST = convertToLocal (&hour, &year, &month,
                                     &day, GPSData.lon, false); // false means no date conversion
#else // #ifdef CONVERT_TO_LOCAL
#ifdef DISPLAY_12_HOUR
          if (hour == 0) { // 12 hour clocks don't display 0
            hour = 12;
          }
#endif // #ifdef DISPLAY_12_HOUR
#endif // #ifdef CONVERT_TO_LOCAL
#ifdef DISPLAY_12_HOUR
          char AMPM[] = "am";
          if (hour >= 12) { // Convert to 12 hour format
            if (hour > 12) hour -= 12;
            strcpy (AMPM, "pm");
          }
#endif
          if (hour < 10) lcd.print("0");
          lcd.print(hour);
          lcd.print(":");

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