@@ -78,6 +78,7 @@ Mount::Mount(int stepsPerRADegree, int stepsPerDECDegree, LcdMenu* lcdMenu) {
78
78
_stepperWasRunning = false ;
79
79
_totalDECMove = 0 ;
80
80
_totalRAMove = 0 ;
81
+ _moveRate = 4 ;
81
82
#if RA_Stepper_TYPE == 0
82
83
_backlashCorrectionSteps = 16 ;
83
84
#else
@@ -404,13 +405,13 @@ void Mount::setBacklashCorrection(int steps) {
404
405
// ///////////////////////////////
405
406
void Mount::setSlewRate (int rate)
406
407
{
407
- rate = clamp (rate, 1 , 4 );
408
+ _moveRate = clamp (rate, 1 , 4 );
408
409
float speedFactor[] = { 0 , 0.05 , 0.2 , 0.5 , 1.0 };
409
410
#if DEBUG_LEVEL&DEBUG_MOUNT
410
- logv (" Mount::setSlewRate: rate is %d -> %f" ,rate , speedFactor[rate ]);
411
+ logv (" Mount::setSlewRate: rate is %d -> %f" ,_moveRate , speedFactor[_moveRate ]);
411
412
#endif
412
- _stepperDEC->setMaxSpeed (speedFactor[rate ] * _maxDECSpeed);
413
- _stepperRA->setMaxSpeed (speedFactor[rate ] * _maxRASpeed);
413
+ _stepperDEC->setMaxSpeed (speedFactor[_moveRate ] * _maxDECSpeed);
414
+ _stepperRA->setMaxSpeed (speedFactor[_moveRate ] * _maxRASpeed);
414
415
#if DEBUG_LEVEL&DEBUG_MOUNT
415
416
logv (" Mount::setSlewRate: new speeds are RA: %f DEC: %f" ,_stepperRA->maxSpeed (), _stepperDEC->maxSpeed ());
416
417
#endif
@@ -623,6 +624,10 @@ void Mount::startSlewingToTarget() {
623
624
stopGuiding ();
624
625
}
625
626
627
+ // Make sure we're slewing at full speed on a GoTo
628
+ _stepperDEC->setMaxSpeed (_maxDECSpeed);
629
+ _stepperRA->setMaxSpeed (_maxRASpeed);
630
+
626
631
// Calculate new RA stepper target (and DEC)
627
632
_currentDECStepperPosition = _stepperDEC->currentPosition ();
628
633
_currentRAStepperPosition = _stepperRA->currentPosition ();
@@ -1051,6 +1056,10 @@ void Mount::startSlewing(int direction) {
1051
1056
}
1052
1057
else {
1053
1058
int sign = NORTHERN_HEMISPHERE ? 1 : -1 ;
1059
+
1060
+ // Set move rate to last commanded slew rate
1061
+ setSlewRate (_moveRate);
1062
+
1054
1063
if (direction & NORTH) {
1055
1064
_stepperDEC->moveTo (sign * 30000 );
1056
1065
_mountStatus |= STATUS_SLEWING;
0 commit comments