   else
   {
     //stick outside of deadband
-    Instrument[Motor].Joystick = MinimumThrottle + (FullThrottle - MinimumThrottle)
-      * (upStick - tinyUp) / (1023 - tinyUp);
+    if (upStick > limitStickUp)
+        upStick = limitStickUp;
+    x = (upStick - tinyUp);
+    x *= (FullThrottle - MinimumThrottle);
+    x /= (limitStickUp - tinyUp);
+    x  += MinimumThrottle;
+    Instrument[Motor].Joystick = x;
     Instrument[Motor].StickMoved =  TRUE;
+#ifdef DEBUG
+    Serial.print(" upStick: "); Serial.print(upStick);
+    Serial.print(" tinyUp: "); Serial.print(tinyUp);
+    Serial.print(" Min: "); Serial.print(MinimumThrottle);
+    Serial.print(" Full: "); Serial.print(FullThrottle);
+    Serial.print(" x: "); Serial.print(x);
+#endif
   }
 
   //Check if Stick moved beyond "down" deadBand

  Instrument[Motor].FeedbackPin = 0; // Motor feedback is wheel speed
  Instrument[Motor].CurrentPin = Current36V;
  Instrument[Motor].StepSize = 20; // max from range of 1023.
  Instrument[Motor].CloseEnough = 1000;  // no feedback
  Instrument[Motor].Stuck = 3;
  Instrument[Motor].MinPosition = MinimumThrottle;  // position is 0-255
  Instrument[Motor].MaxPosition = FullThrottle;

  }
  else
  {
    if (upStick < limitStickDown)
        upStick = limitStickDown;
    x = (tinyDown - upStick);
    x *= (FullBrake - MinimumBrake);
    x /= (tinyDown - limitStickDown);
    x  += MinimumBrake;
    Instrument[Brakes].Joystick = x;
    Instrument[Brakes].StickMoved =  TRUE;
  }

