 
 		case IN_SERVO:
 			if (!(input = userInput("ANGLE: ")))
-				break;
+				while (!(input = userInput(NULL)));
 			value = atoi(input);
 			servoCommand(value);
 			newState = IN_CMD;


		case IN_STEPPER:
			if (!(input = userInput("STEPS: ")))
				break;
			value = atoi(input);
			stepperCommand(value);
			newState = IN_CMD;

 * userIO
 */
char * userInput(char * message) {
	unsigned long timeLoopStart,timeLoop;
	int nread = 0;
	if (message)
		Serial.print(message);
	timeLoopStart = timeLoop = millis();
	// Serial timeout triggers on full commsBuffer, just wait for first command
	while (nread == 0 && timeLoop - timeLoopStart < SERIAL_HOST_DELAY_MS) {
		// drop older contents on buffer overflow
		while ((nread = Serial.readBytes(commsBuffer, COMMS_BUFFER_SIZE)) == COMMS_BUFFER_SIZE);
		timeLoop = millis();
	}		
	commsBuffer[nread] = 0;
	return nread == 0 ? NULL : commsBuffer;
}

/* 
