 #else
   while (Serial.available() > 0)
   {
-    char c = Serial.peek();
-    if (c != 'f' && c != 'b')
+    char c = Serial.read();
+    switch (c)
     {
-      break;
-    }
-    else
-    {
-      myMotor->step(stepSize, c == 'b' ? BACKWARD : FORWARD, DOUBLE);
-      Serial.read();
+      case 'f':
+        myMotor->step(stepSize, FORWARD, DOUBLE);
+        break;
+      case 'b':
+        myMotor->step(stepSize, BACKWARD, DOUBLE);
+        break;
+      case 'p':
+        gPauseMotor = !gPauseMotor;
+        break;
+      default:
+        Log.Error("Ignorning unknown command: %c\n", c);
+        
     }
   }
 #endif

    checkNotes(reflectedLightValues, pluckedNotes);
  }

  checkButtons();
  checkSonar();

  //It just read item 7. So going backwards, read items 6 through zero.
  for (int i = numberNotes - 2; i >= 0; i--)
  {
    reflectedLightValues[i] = stepTheMotorAndGetLightReading(BACKWARD);
    checkNotes(reflectedLightValues, pluckedNotes);
  }

  checkButtons();
  checkSonar();

}

//gives the sensor time to actually report the new reading.
int stepTheMotorAndGetLightReading(int directionToStep)
{
  if (gPauseMotor == false)
    myMotor->step(stepSize, directionToStep, DOUBLE);
  delay(delayBetweenSteps);
  int currentLightReading = analogRead(lightSensorPin);
  return currentLightReading;
