                     ctrl.navRangeThrottle = mem.read_NavRange_Throttle_Abs();
                     break;
             }
-            stickThrottle.setRange( float(ctrl.navRangeThrottle));
+            stickThrottle.setOutputRange( float(ctrl.navRangeThrottle));
+            stickThrottleTrim.setOutputRange( float(ctrl.navRangeThrottle/throttleTrimFrac));
             break;
             
         // Nav Range
         case ED_RANGE_YAW:
             print("ED_RANGE_YAW\n");
-            ctrl.navRangeYaw += up ? navRangeStep : -navRangeStep;
-            stickYaw.setRange( float(ctrl.navRangeYaw));
+            ctrl.navRangeYaw += up ? 1 : -1;
+            stickYaw.setOutputRange( float(ctrl.navRangeYaw));
             switch(ctrl.navModeYaw){
                 case ctrl.FLY_REL:
                     bitSet(edMode_dirty, NAVRANGE_YAW_REL_BIT);

unsigned long lastScrollTime = millis();
void pollInputs(){
    // check kill switch
    bool operatorButton = digitalRead(operatorPin);
    bool operatorOnPress = !operatorButton_PS && operatorButton;
    bool operatorOnRelease = operatorButton_PS && !operatorButton;
    operatorButton_PS = operatorButton;
    if(operatorOnPress){ // on key press
        display.clearDisplay(); display.setCursor(0,0); display.println("Fly"); display.display();
        pendingUpdate_pidYaw = true;
        pendingUpdate_pidPitch = true;

                    ctrl.navRangeYaw = mem.read_NavRange_Yaw_Abs();
                    break;
            }
            stickYaw.setOutputRange( float(ctrl.navRangeYaw));
            break;
        case ED_MODE_PITCH:
            print("ED_MODE_PITCH\n");
