   if (xv_config.raw_data == true) {
     hideRaw();
   }
-  Serial.println(F(" "));
-  Serial.print(F("Showing RPM data"));
-  Serial.println(F(" "));
+  if (xv_config.show_dist == false) {                  // suppress activity message if we're executing 'show distance'
+    Serial.println(F(" "));
+    Serial.println(F("Showing RPM data"));
+  }
 }
 /*
  * hideRPM
  */
 void hideRPM() {
   xv_config.show_rpm = false;
-  Serial.println(F(" "));
-  Serial.print(F("Hiding RPM data"));
-  Serial.println(F(" "));
+  if (xv_config.show_dist == false) {                  // suppress activity message if we're executing 'show distance'
+    Serial.println(F(" "));
+    Serial.println(F("Hiding RPM data"));
+  }
 }
 
 void showDist() {
+  showDist2();
+  for (int ix = 0; ix < N_ANGLES; ix++)
+    aryAngles[ix] = true; 
+}
+void showDist2() {
+  hideRaw();
+  xv_config.show_angle = SHOW_ALL_ANGLES;  
+  if (xv_config.show_dist == false) {                  // suppress activity message if we're executing 'show distance'
+    Serial.println(F(" "));
+    Serial.println(F("Code,Angle,Distance(mm),Signal strength"));
+  }
   xv_config.show_dist = true;
-  if (xv_config.raw_data == true) {
-    hideRaw();
-  }
-  xv_config.show_angle = SHOW_ALL_ANGLES;
-  Serial.println(F(" "));
-  Serial.print(F("Showing Distance data <Angle>: <dist mm> (quality)}"));
-  Serial.println(F(" "));
 }
 
 void hideDist() {
   xv_config.show_dist = false;
-  xv_config.show_angle = SHOW_ALL_ANGLES;              // set default back to 'show all angles'
-  Serial.println(F(" "));
-  Serial.print(F("Hiding Distance data"));
-  Serial.println(F(" "));
-}
-
-void showAngle() {
-  bShowAnglesFromArray = false;                        // disable multi-angle display
-  showDist(); 
-  double sVal = 0.0;
-  char *arg;
-  boolean syntax_error = false;
-
-  arg = sCmd.next();
-  if (arg != NULL) {
-    sVal = atoi(arg);    // Converts a char string to a int
-    if (sVal < 0 or sVal > SHOW_ALL_ANGLES) {
-      syntax_error = true;
-    }
-  }
-  else {
-    syntax_error = true;
-  }
-
-  arg = sCmd.next();
-  if (arg != NULL) {
-    syntax_error = true;
-  }
-
-  if (syntax_error) {
-    Serial.println(F(" "));
-    Serial.print(F("Incorrect syntax.  Example: ShowAngle 0 (0 - 359 or 360 for all)")); 
-    Serial.println(F(" "));
-  }
-  else {
-    xv_config.show_angle = sVal;
-    Serial.println(F(" "));
-    if (xv_config.show_angle == SHOW_ALL_ANGLES)
-      Serial.print(F("Showing All Angles"));
-    else {
-      Serial.print(F("Showing Only Angle: "));
-      Serial.println(sVal);
-    }
-    Serial.println(F(" "));
-  }  // if (syntax_error)
-}
-/*
- * doShowAngles - Multi-angle range(s) implementation - DSH
+  for (int ix = 0; ix < N_ANGLES; ix++)
+    aryAngles[ix] = false; 
+  xv_config.show_angle = 0;
+  if (xv_config.show_dist == false) {                  // suppress activity message if we're executing 'show distance'
+    Serial.println(F(" "));
+    Serial.println(F("Hiding Distance data"));
+  }
+}
+/*
+ * doShowAngle - Multi-angle range(s) implementation - DSH
  * Command: ShowAngles ddd, ddd-ddd, etc.
- * Command: HideAngles (remember to clear out aryAngles)
  * Enter with: N/A
  * Uses:       aryAngles (an array of 360 booleans) is set to appropriate values
  * Calls:      showDist
  * Exits with: N/A
  * TEST THIS STRING:  ShowAngles 16-20, 300-305, 123-124, 10
  */
-void showAngles() {
+void showAngle() {
   double sVal = 0.0;
   char c, *arg;
   boolean syntax_error = false;

            if (aryInvalidDataFlag[ix] == 0)
              processSignalStrength(ix);
          }
          if (xv_config.show_dist) {                         // the 'ShowDistance' command is active
            if (bShowAnglesFromArray) {                      // we're going to display only angles that are in 'aryAngles'
              for (int ix = 0; ix < N_DATA_QUADS; ix++) {
                if (aryAngles[startingAngle + ix]) {         // if we're supposed to display that angle
                  if (aryInvalidDataFlag[ix] == 0) {         // make sure that the 'Invalid Data' flag is clear                                       
                    Serial.print(startingAngle + ix);
                    Serial.print(F(": "));
                    Serial.print(int(aryDist[ix]));
                    Serial.print(F(" ("));
                    Serial.print(aryQuality[ix]);
                    Serial.println(F(")")); 
                  }
                  else if (bShowErrors) {
                    Serial.print(startingAngle + ix);
                    Serial.print(F(": "));
                    for (int jx = 0; jx < PACKET_LENGTH; jx++) {
                      if (Packet[jx] < 0x10)
                        Serial.print(F("0"));
                      Serial.print(Packet[jx], HEX);
                      Serial.print(F(" "));
                    }
                    if (aryInvalidDataFlag[ix] & INVALID_DATA_FLAG)
                      Serial.print(F("{I}"));
                    if (aryInvalidDataFlag[ix] & STRENGTH_WARNING_FLAG) 
                      Serial.print(F("{S}"));
                    if (aryInvalidDataFlag[ix])
                      Serial.println(F(""));                      
                  }  // else if (bShowErrors)
                }  // if (aryAngles[startingAngle + ix])
              }  // for (int ix = 0; ix < N_DATA_QUADS; ix++)
            }  // if (bShowAnglesFromArray)
            else {
              if (xv_config.show_angle == SHOW_ALL_ANGLES    // Are we showing all angles or just 1 angle?
              || ((xv_config.show_angle >= startingAngle) && (xv_config.show_angle < startingAngle + N_DATA_QUADS))) {
                for (int ix = 0; ix < N_DATA_QUADS; ix++) {  // process each of the (4) angles
                  if ((xv_config.show_angle == SHOW_ALL_ANGLES) || (xv_config.show_angle == startingAngle + ix)) {
                    if (aryInvalidDataFlag[ix] == 0) {       // make sure that the 'Invalid Data' flag is clear                                       
                      Serial.print(startingAngle + ix);
                      Serial.print(F(": "));
                      Serial.print(int(aryDist[ix]));
                      Serial.print(F(" ("));
                      Serial.print(aryQuality[ix]);
                      Serial.println(F(")")); 
                    }
                    else if (bShowErrors) {
                      Serial.print(startingAngle + ix);
                      Serial.print(F(": "));
                      for (int jx = 0; jx < PACKET_LENGTH; jx++) {
                        if (Packet[jx] < 0x10)
                          Serial.print(F("0"));
                        Serial.print(Packet[jx], HEX);
                        Serial.print(F(" "));
                      }
                      if (aryInvalidDataFlag[ix] & INVALID_DATA_FLAG)
                        Serial.print(F("{I}"));
                      if (aryInvalidDataFlag[ix] & STRENGTH_WARNING_FLAG) 
                        Serial.print(F("{S}"));
                      if (aryInvalidDataFlag[ix])
                        Serial.println(F(""));                      
                    }  // else if (bShowErrors)
                  }  // if ((xv_config.show_angle == SHOW_ALL_ANGLES) ...
                }  // or (int ix = 0; ix < N_DATA_QUADS; ix++)
              }  // if (xv_config.show_angle == SHOW_ALL_ANGLES ...
            }  // if (bShowAngles)            
          }  // if (xv_config.show_dist)
        }  // if (eValidatePacket() == 0
        else if (bShowErrors) {        
          for (int ix = 0; ix < PACKET_LENGTH; ix++) {
            if (Packet[ix] < 0x10)
              Serial.print(F("0"));
            Serial.print(Packet[ix], HEX);
            Serial.print(F(" "));
          }
          Serial.println(F(" Bad CRC"));
        }
        // initialize a bunch of stuff before we switch back to State 1
        for (int ix = 0; ix < N_DATA_QUADS; ix++) {

      sVal = xv_config.rpm_min;
      Serial.println(F(" "));
      Serial.print(F("RPM too low. Setting to minimum "));
      Serial.println(xv_config.rpm_min);
    }
    if (sVal > xv_config.rpm_max) {
      sVal = xv_config.rpm_max;
      Serial.println(F(" "));
      Serial.print(F("RPM too high. Setting to maximum "));
      Serial.println(xv_config.rpm_max);
    }
  }
  else {
