1
1
#define HIGHLIGHT_POLAR 1
2
2
#define HIGHLIGHT_SPEED 2
3
- #define POLAR_CALIBRATION 3
4
- #define SPEED_CALIBRATION 4
3
+ #define POLAR_CALIBRATION_WAIT 3
4
+ #define POLAR_CALIBRATION_GO 4
5
+ #define POLAR_CALIBRATION_WAIT_HOME 5
6
+ #define SPEED_CALIBRATION 6
5
7
6
8
byte calState = HIGHLIGHT_POLAR;
7
9
@@ -29,25 +31,36 @@ bool processCalibrationKeys() {
29
31
else {
30
32
calDelay = 150 ;
31
33
}
34
+ }
35
+ else if (calState == POLAR_CALIBRATION_WAIT_HOME) {
36
+ if (!mount.isSlewingRAorDEC ()) {
37
+ lcdMenu.updateDisplay ();
38
+ calState = HIGHLIGHT_POLAR;
39
+ }
32
40
}
33
41
42
+
43
+
34
44
if (checkForKeyChange && lcdButtons.keyChanged (key)) {
35
45
waitForRelease = true ;
36
46
37
47
switch (calState) {
38
- case POLAR_CALIBRATION: {
48
+
49
+ case POLAR_CALIBRATION_GO: {
39
50
if (key == btnSELECT) {
51
+ lcdMenu.printMenu (" Aligned, homing" );
52
+ mount.delay (600 );
40
53
mount.setTargetToHome ();
41
54
mount.startSlewingToTarget ();
42
- lcdMenu.setNextActive ();
43
- calState = HIGHLIGHT_POLAR;
55
+ calState = POLAR_CALIBRATION_WAIT_HOME;
44
56
}
45
57
if (key == btnRIGHT) {
46
58
lcdMenu.setNextActive ();
47
59
calState = HIGHLIGHT_POLAR;
48
60
}
49
61
}
50
62
break ;
63
+
51
64
case SPEED_CALIBRATION: {
52
65
// UP and DOWN are handled above
53
66
if (key == btnSELECT) {
@@ -67,16 +80,27 @@ bool processCalibrationKeys() {
67
80
case HIGHLIGHT_POLAR:
68
81
if (key == btnDOWN) calState = HIGHLIGHT_SPEED;
69
82
else if (key == btnSELECT) {
70
- calState = POLAR_CALIBRATION ;
71
-
83
+ calState = POLAR_CALIBRATION_WAIT ;
84
+
72
85
// Move the RA to that of Polaris. Moving to this RA aligns the DEC axis such that
73
86
// it swings along the line between Polaris and the Celestial Pole.
74
- mount.targetRA () = DayTime (2 , 57 , 56 ); // This is Polaris RA.
87
+ mount.targetRA () = DayTime (2 , 57 , 56 ); // This is Polaris RA.
75
88
// Account for the current settings.
76
89
mount.targetRA ().addTime (mount.getHACorrection ());
77
90
mount.targetRA ().subtractTime (mount.HA ());
78
-
79
- // Now set DEC to move the same distance past Polaris as it is from the Celestial Pole. That equates to 88deg 42' 6".
91
+
92
+ // Now set DEC to move to Polaris
93
+ mount.targetDEC () = DegreeTime (89 - (NORTHERN_HEMISPHERE ? 90 : -90 ), 21 , 3 );
94
+ mount.startSlewingToTarget ();
95
+ }
96
+ break ;
97
+
98
+ case POLAR_CALIBRATION_WAIT:
99
+ if (key == btnSELECT) {
100
+ calState = POLAR_CALIBRATION_GO;
101
+
102
+ // RA is already set. Now set DEC to move the same distance past Polaris as
103
+ // it is from the Celestial Pole. That equates to 88deg 42' 6".
80
104
mount.targetDEC () = DegreeTime (88 - (NORTHERN_HEMISPHERE ? 90 : -90 ), 42 , 6 );
81
105
mount.startSlewingToTarget ();
82
106
}
@@ -106,14 +130,20 @@ void printCalibrationSubmenu() {
106
130
case HIGHLIGHT_POLAR :
107
131
lcdMenu.printMenu (" >Polar alignment" );
108
132
break ;
109
- case HIGHLIGHT_SPEED:
110
- lcdMenu.printMenu (" >Speed calibratn" );
111
- break ;
112
- case POLAR_CALIBRATION :
133
+ case POLAR_CALIBRATION_WAIT_HOME:
134
+ case POLAR_CALIBRATION_WAIT:
135
+ case POLAR_CALIBRATION_GO :
113
136
if (!mount.isSlewingRAorDEC ()) {
137
+ lcdMenu.setCursor (0 , 0 );
114
138
lcdMenu.printMenu (" Centr on Polaris" );
139
+ lcdMenu.setCursor (0 , 1 );
140
+ lcdMenu.printMenu (" >Centered" );
115
141
}
116
142
break ;
143
+
144
+ case HIGHLIGHT_SPEED:
145
+ lcdMenu.printMenu (" >Speed calibratn" );
146
+ break ;
117
147
case SPEED_CALIBRATION :
118
148
sprintf (scratchBuffer, " SpdFctr: " );
119
149
dtostrf (mount.getSpeedCalibration (), 6 , 4 , &scratchBuffer[9 ]);
0 commit comments