Use the cursor keys to select a menu item. Left-Right cursor keys
select the main menu category and Up-Down cursor keys select the submenu
item. Just under the menu selections, a more detailed description
of the menu item's action is displayed.
The "Current" coordinates display where the telescope is currently
pointing.
The "Input" coordinates display user input coordinates, ready for the
telescope to be moved to, if "Move To/Equat" or "Move To/Altaz" is selected
from the menu.
The "Drift" coordinates show the current drift rate in each axis.
Encoder coordinates are displayed in degrees and in raw counts.
The field rotation shows an upper and lower value. The upper
value is the current field rotation angle. The lower value is the
angle of the field rotation motor. The lower value will not be displayed
if there is no field derotation motor, per the config.dat file. The two
numbers immediately below show the number of step pulses sent to the motor,
and the number of resets: both modulus 100.
The "Init" field shows how many initializations have been done so far.
The "PWM" field shows the number of pulse width modulations per bios
clock tick (there are about 18.2 clock ticks per second).
The "File" area indicates which data file, or external program or device,
has sent coordinates to the program.
If the coordinates have been reset because the encoder reset threshold
values in the config.dat file have been exceeded, the "File" field will
display a message stating the scope motion immediately preceeding the reset
(enc.res.slew = encoder reset after slew, enc.res.on = encoder reset after
tracking on, enc.res.off = encoder reset after tracking off), and a running
count of the encoder resets for that particular scope motion.
The PEC area shows if PEC is on (also if the auto-sync of altitude
PEC or azimuth PEC is occuring), and the altitude and azimuth indexes and
correction values in tenths of an arcsecond, respectively.
If the menu option to display LX200 is turned on, then the LX200 field
will show the history of commands received with an '*' by the last command,
and, the next line down will display the raw characters as received from
the external device ouputting the lx200 protocol serial data.
The Ms line shows the current microstepping parameters, if the change
ms parms menu option has been activated.
Supported commands are displayed in abbreviated form on the LX200 line
in scope.exe if the display LX200 is turned on as follows:
NA = no acknowledge yet received
AK = acknowledge received (indicates that external controlling program
has queried for existence of lx200 device)
GR = get right ascension
GD = get declination
GA = get altitude
GZ = get azimuth
GS = get sidereal time
Gt = get latitude
Gg = get longitude
Mn = move north
Ms = move south
Me = move east
Mw = move west
MS = start slew
Q = stop slew
Qn = end motion north
Qs = end motion south
Qe = end motion east
Qw = end motion west
RG = set motion rate to guide speed
RC = set motion rate to centering speed
RM = set motion rate to find speed
RS = set motion rate to slew
Sr = set right ascension
Sd = set declination
SS = set sidereal time (not fully implemented at this moment)
SL = set local time
SC = set current date
CM = synchronize scope
U = toggle long format (coordinates)
Un = unfinished command (no ending '#')
U0 = unknown command: first character uninterpretable
U1 = unknown command: second character uninterpretable
Ig = ignored command
If using interrupt method to time the half steps, the "Slew" field will display the slew status, slew abort reason, the ramp half steps (1/2 of the total steps to move), the ramp up steps (steps taken while ramping up to max speed), the steps taken while at maximum speed up to the midpoint of the move, the remainder of the steps taken at maximum speed, the ramp down stemps, and the current speed index (larger numbers = slow speeds, smaller numbers = high speeds).
Coordinates' display on the screen:
There are three main coordinates displayed: encoders, current, and input. The current coordinates show the scope's current position. The encoders coordinates show the positioning as relayed from the encoders. The input fields show coordinates that will be used if any of the move or reset to input menu items are selected. By placing these coordinates on top of each other, a good comparison can be made of the encoders' positioning, the program's positioning, and what a slew or reset will entail.
Shortcut keys:
'`' (the left apostrophe key in the upper left of most keyboards) selects
the menu item 'Guide.bat'
'1' selects 'move to equat'
'2' selects 'track on/off'
'3' saves current equatorial coordinates
'4' retrieve saved equatorial coordinates into the input fields
'5' saves current #2 equatorial coordinates
'6' retrieves saved #2 equatorial coordinates into the input fields
'7' read slew file from Guide6
'8' write slew file to Guide6
'9' input altaz
'0' reset to input altaz
'a' adds in the altitude offset to all initialization altitudes, adds
in the altitude offset to the current altitude, and re-initializes
'c' displays PEC graphically
'd' selects 'data file' menu item
'e' averages PEC analysis files and displays results graphically for
the altitude axis
'f' averages PEC analysis files and displays results graphically for
the azimuth axis
'g' selects menu item 'Guide.bat' (which calls Wguide.exe, passing
it the current scope coordinates, the DOS 32 bit version of Guide)
'h' selects menu item hand paddle, toggling through handpad modes
'i' displays the initializations
'l' reloads pec.dat file
'm' selects microstepping speed
'p' selects PEC
'q' quits the program
'r' resets to input equat coord
's' selects scroll file
't' toggles tracking on/off
'u' altitude axis: graphically displays guiding efforts with respect
to pec - gives options to save and update pec
'v' azimuth axis: graphically displays guiding efforts with respect
to pec - gives options to save and update pec
'y' zeroes out the altitude pec array (does not save PEC.DAT)
'z' zeroes out the azimuth pec array (does not save PEC.DAT)
F1-F4 moves the scope with microstepping: F1 up, F2 down, F3 CCW, F4
CW
The Handpaddle:
The handpaddle has four momentary-on buttons that move the scope in altitude and azimuth. The center switch selects between fast halfstep slewing and smooth slow microstep centering.
The upper three position switch called the mode switch selects different actions based on the software's current handpad status.
Handpad mode can be:
off: mode switch does nothing
init auto on: moving the mode switch momentarily to the left or right inits the next available init, for instance, if init 1 already accomplished, then init 2 done, if all inits done, then closest init to the new init is replaced by the new init
init 1: moving mode switch momentarily to the left or right inits # 1
init 2: moving mode switch momentarily to the left or right inits # 2
init 3: moving mode switch momentarily to the left or right inits # 3
guide on: moving the mode switch momentarily to the left puts the hand paddle into guide mode, where the push buttons act to move the scope very slowly in right ascension and declination by adding or subtracting from the current tracking rate - speed is set by GuideArcsecSec in the config.dat file - moving the switch momentarily to the right ends guide mode, and causes drift values to be calculated, put into use, and displayed - These drift values are used to null out any temporary residual drift due to imprecise initialization of a portable setup or imprecise mount construction, then the scope is moved back to the original Ra, Dec coordinates
guide stay on: as 'guide on' but the scope stays put, adopting the new Ra, Dec coordinates of wherever the guiding corrections took the scope
guide stay save on: as 'guide stay on' with the addition that the guiding corrections are written to the file, 'guide.dat'
guide drag on: drift or drag values from the config.dat file are added to the current drift when the mode switch is momentarily moved to the left, and subtracted from the current drift values when the mode switch is moved momentarily to the right; this is for knife edge autoguiders that rely on the guide star being constantly dragged back across the knife edge
scroll tour: the mode switch if moved to either direction will cause the scope to continuously move through the scroll file, otherwise each position in the scroll file is stepped through manually
grand tour: the mode switch moves forward to the next object in the data file, or backwards to the previous object, depending if the switch is flipped to the left or to the right
record equat: the mode switch will write the current scope equatorial coordinates to the record.dat file when momentarily flipped to the left or right
toggle track: the mode switch on the handpaddle can be used to turn tracking off and on (left = on, right = off)
FR mode: when the mode switch is momentarily moved to the left, the left/right or CW/CCW handpad pushbuttons slew the field rotation motor, when the mode switch is momentarily moved to the right, the pushbuttons return to their normal duty of moving the telescope
Encoders:
If encoders are used, when tracking is off, if you grab the scope and move it by hand, the changing encoder values will update the current altitude and azimuth. When tracking is on, if the encoders differ from current altitude and azimuth, the situation is understood to be one of slippage of the drive shafts, or perhaps a wind gust moving the scope off position. The scope will slew back to the proper position and resume tracking. Do not intentionally move the scope by hand when tracking is on if the encoders are on. To illustrate this, the following is an incident that happened at a recent star party.
Greg Granville writes, "The 12.5" scope is working very nicely with this setup. I recently added encoders to the scope. At a star party a few weeks ago, a youngster was up on a ladder a few steps looking at NGC 4565. When coming down the ladder, he accidently pushed the scope and caused it to slip on azimuth. He seemed a bit surprised when the scope responded by automatically moving back to the proper position!"
The variables EncoderErrorThresholdDeg and TrackEncoderErrorThresholdDeg control the allowable difference between scope and encoder coordinates before a reset to encoder coordinates occurs. There are two variables as a tighter tolerance during slewing to a target position is often desired than the tracking tolerance. Set these to a value that represents at least one if not two or more encoder counts. At any time the scope can be reset to encoder coordinates via the 'reset to encoder menu option'. When a reset to encoder coordinates occur, if you wish encoder these threshold violations to be recorded, set the config.dat variable MakeEncoderResetLogFile to 1.
Setting the slew (halfstep) speed:
Because computer capabilities vary greatly and because of widely varying motor and scope mounts, it will be necessary to spend time optimizing the values relating to halfstepping in the configuration file, config.dat. I use a 486/100 laptop. Included is config.386, which were the values I used on my old 386/20 with 387 math coprocessor.
To set the halfstep slewing: set HsTimerFlag to 1, enabling the interrupt drive timing. The interrupt driven timing is independent of cpu speed, so regardless of the computer's speed, set MaxDelay to 2000, MinDelay to 500, and HsRampX to 5. Be sure to run scope.exe after booting to DOS, or exiting Win95 to DOS. The motor's starting speed is set by MaxDelay, the fastest speed by MinDelay, and the time to ramp up and down set by HsRampX. Adjust to suit your combination of steppers, drive voltage, and scope's torque loading. If necessary to use the delay method of timing the halfsteps, set HsTimerFlag to 0. If you have a cpu close to a 386/20, start with MaxDelay 8000, MinDelay 3000, and HsDelayX 1. If you have a cpu close to a 486/100, change HsDelayX to 2. Speed starts at (MaxDelay-MinDelay)*HsDelayX, and achieves fastest speed at MinDelay*HsDelayX. HsDelayX is used as a multiplier to keep the MaxDelay and MinDelay values reasonable; otherwise the array size becomes too large. Again, adjust as necessary to fit the motors, the drive voltage, and the scope.
To set the microstepping: start with the suggested PWM[] values ranging from 100 on down. Start with MsDelayX = 1, and MsPause = 0 if on a slower machine, and MsDelayX = 6 if on a faster machine. Adjust MsDelayX such that PWMRepsTick displayed (turn on tracking for a few seconds) is 20 to 40. People have reported mixed success with slow machines and PWMRepsTick values as low as 7. Values as high as 50 to 100 will also work. Find the MsDelayX value that results in smoothest motor rotation, adjusting MsPause to higher values possibly to 500 or more, to reduce voltage and current draw, and to smooth the motor rotation.
Here's how the microstepping is laid out:
To reverse motor direction, swap motor leads #1 and #3, or alternatively, #2 and #4.
Adjusting the microsteps:
Set TestString to Track in the config.dat file, and choose 1 microstep per second. Put a piece of masking tape on the motor shaft and watch it carefully for even spacing of the microsteps. If the step is too far apart, bring the voltages closer together. For instance, if the spacing between microstep #0 and #1 is too far, then lower PWM[9], if the motor hardly seems to move between #0 and #1, increase PWM[9]. Again, if the spacing between #3 and #4 is too large, then increase #3, or decrease #4, or a combination of the two. You can change the PWM[] values on the fly. When you get them the way you wish, copy the values to the config.dat file.
Here is a contributed method: "There is a way that I used to find the
proper PWM numbers for the drive that can interest you:
I started first with approximate numbers in the software.
I mounted a 7.96" plastic rod on the shaft to get a 50"
circumference or 0.025" per microstep.
I put the software in TestString = Track mode with 0.1 step per second.
I measure each microstep position with a micrometer head for 4 full
steps.
I calculate the mean displacement for each microstep 0 to 1, 1 to 2
etc..
And more important I PUT THE CALCULATED DATA ON A GRAPHIC SHEET.
This give me a nice smooth curve. I pickup the PWM numbers for 0.025",
0.050", 0.075" and so on. I put back these numbers in the config.dat file
and restart the measurement and write down. The result was almost perfect.
I had to change the numbers of only plus or minus 1."
Getting the stepper windings properly hooked up to the parallel port controlled driver circuit (notes by Chuck Shaw):
Any stepper motor with 5 or more leads will do. The stepper will have 4 windings and from 1 to 4 power leads. If a single power lead, then the inputs to all 4 windings are tied together inside the motor. If 8 total wires, then each winding has its own power lead.
You can puzzle out the leads if you use an ohmmeter. For instance, in a 5 lead stepper, the resistance of a winding to a winding lead will be double that of the power lead to any of the winding leads. If a 6 lead stepper, 2 windings are tied to a common power lead. Here, an ohmmeter will indicate which of the 3 leads belong together. Then for each of the grouping of 3 leads, you can use the rule of winding lead to winding lead giving twice the resistance of a power lead to winding lead.
The 6 wires are connected like so:
1
2
3
|
|
|
+----mmmmm----+----mmmmm----+
+----mmmmm----+----mmmmm----+
|
|
|
4
5
6
where the "m"s are the windings of the motor. If you have a volt/ohmmeter,
measure the resistance between each pair of wires:
pair
approximate resistance (ohms)
1-2, 2-3, 4-5, 5-6
40
1,2,3-4,5,6
infinite
1-3,4-6
80
Alternately, you can use a 1.5v battery and a red LED. It will glow dimmer across the 80 ohms than the 40 ohms. Chances are with your motor one set of 3 is 1-2-3 and the other set is 4-5-6.
Now, you have only to figure out the proper sequence. Here are
some additional notes by Chuck Shaw on this subject:
If a 6 lead motor with red/blue powered by a white lead, and green/black
powered by a yellow lead:
Tie White and Yellow together, and apply them to +12v
The signals from pins 6,7,8,9 go thru the circuitry to the bases of
the transistors to turn them on/off
The 12v goes in via White/Yellow, and the circuit is completed to ground
for a specific coil by setting the base for that coil’s transistor high.
You can confirm the order that the pins are pulsed by using the Track test in config.dat (open config.dat, change the last line in the file to read "Track" rather than "NoTest" then resave config.dat. Run scope.exe and select a VERY slow rate). Rig a simple test set up to see which wire is "hot" by sending the power that would normally go thru the motor windings and send it thru a resistor and an LED and then to ground. Build 4 of these, one for each pin output. Pay attention to the LED’s polarity... The longer lead is usually "+" and the shorter one is the one that attaches to ground. The resistor should be sized to drop the 12v to 2 v (a 10v drop), assuming a 0.02 amp current thru the LED (V=IR, 10=(.02)(R), R=~500 ohms). Now use TestString = Track and watch the light show!!!! If you want to watch the output of the parallel port pins directly, the voltage will not be 12v dropped to 2, it will ~5v dropped to 2, so the resistor would be about 150 ohms. Note: you can keep this little test setup hooked up in parallel with the TIP120 outputs while the motor is running and hooked up too to verify which windings are being pulsed, and it makes a cool light show when the motors are driving the telescope too!!!!
This matrix assumes the pins are pulsed in the 6,7,8,9 order:
|
|
|
|
|
1 | Blu | Red | Blk | Grn |
2 | Red | Blu | Blk | Grn |
3 | Blu | Red | Grn | Blk |
4 | Red | Blu | Grn | Blk |
The idea is to test and capture the results of the different combinations of pulsing windings.....
The software will pulse one coil from the Red/Blue pair, then pulse one from the Black/Green pair , then will pulse the other one from the red/blue pair, and finally will pulse the other one from the black green pair. Your challenge is to figure out what the order is within each pair......
For 5 or 6 wire motors you are done!!! For 8 wire motors the test matrix gets bigger since you also need to identify the polarity of each winding in addition to its order!!!!!
Here's the color winding order for Oriental Vexta motors.
1. red green
blue black
2. green red
blue black
3. green red
black blue
4. red green
black blue
In the end, you will not hurt anything by hooking up the stepper incorrectly. The motor will buzz or jump erratically. When you have the leads hooked up correctly, the motors will move smoothly during microstepping and halfstepping.
A little checkout procedure for you to try:
1. Disconnect everything from the parallel port, open config.dat with notepad and change the last line to read "TestParallelPort" to be able to run the parallel port test and save config.dat. Then start scope.exe and set the logical outputs to "high"
2. Measure the voltage from the "high" pins to ground. The high pins are 2,3,4,5,6,7,8,9 and should each all be about +5v with respect to the ground pins (18,19,20,21,22,23,24,25). Then set the logical outputs to "low" in scope.exe and verify the voltages all drop to zero on the previous +5v pins......
3. If all of that was fine, hook up the PCB via the parallel port cable and turn on the power to the PCB. Do not have the LEDs or the motors attached to the output DB9 connectors.
4. Now, the idea is to set the logical outputs high as before, and trace the voltages along the PCB to the inputs to the first chip on the PCB.
Mel's circuit, when the Opto isolators are added, has the parallel port inputs initially going to a hex inverter, then to an optical isolator, then to a 2nd hex inverter, then to the base of the TIP120 transistors, then to the motor. Pat's circuit seems different. To start with, Pat only uses one Hex inverter and one opto isolator for each motor instead of two hex inverters and one opto isolator for each motor in Mel's version. Either system works, just be aware of the difference... On Pat's sheets 3of7 and 5of7, the parallel port goes to the Hex inverter first, then the opto isolator. However, on sheets 2of7 and 4of7, the circuit shows the parallel port goes to the opto isolator first, then the hexinverter...... Either order will work.
The thing to trace out, as the signal goes into the chip is which pin is connected to that output. If it was a +5v input, then the output should be 0 v. If the input is +5 and the putput is 0v, then toggle the parallel port to the other state and the input should go to zero and the putput should be +5.... Then follow that output from the first chip to the 2nd chip and do the same thing....
Repeat this for all 8 pins controlling the motors......
If you trace the signals across the PCB from the parallel port and all is well, then look to the transistors. The circuit has +12v going to the motor, then through the winding, and then coming out and coming back to the transistor, where the transistor then closes and lets the circuit be completed to ground. You can test the transistors with your meter set to ohms. The transistor will be shorted (i.e. no resistance from pins 6,7,8,9 to ground, same config on both db9 connectors) NOTE, do NOT measure between any of the "HOT" pins on the DB9 (pins 1,2,3,4,5) to the ground pins while your meter is set to ohms... or "poof"... :-(
To hook up the LED's, attach one led/470ohm resistor between pin 1 and 6, with the short lead on the LED attached to pin 6 (which goes to ground). Do the same for the other LED's (pin2 is +, pin 7 is neg), (pin 3 is +, pin 8 is neg), (pin 4 is +, pin 9 is neg).
With power ON to the PCB Box, toggle the parallel port outputs from low to high to low to high and the LED's should come on and off, etc. With the outputs set high, the LED's should be on, when they are set to low, the LED's should be off. If this is backwards, check the config.dat file for the optical isolator term....
If things still do not work right on the PCB, using the parallel port test, its a problem on the PCB. Check to see the orientation of the chips in sockets, etc... Also follow the +5 voltages from the regulators to see if that voltage gets to the chips OK. Double check the orientation of the TIP120 transistors to make sure the leads are oriented correctly......
If the parallel port does not act correctly we need to review the config.dat file settings........
Here is the startup sequence:
Set up scope with tube horizontal to mount. Use a precision bubble level
to find an azimuth direction where the base is level then swing the tube
to point in the same direction and make it level. Select "Input altaz"
and enter AZ = 0, ALT = 0 (you can just hit return twice). If you wish
to start with the tube vertical to the azimuth axis, enter AZ = 0 and ALT
= 90.
Alternatively you can set the altitude to 90 degrees elevation by using
a stop consisting of a threaded bolt run through the back of the Dobsonian
rocker. Adjust the threaded bolt ahead of time using the following method
suggested by Richard Berry: draw a reticle pattern on a piece of paper
and exactly center the paper over the focuser with the eyepiece removed.
Point the scope upward. Aim a camcorder bolted to a rigid framework down
into the tube assembly just to one side of the diagonal and focus on the
paper reticle. Turn the tube assembly in azimuth, adjusting the threaded
bolt and always pushing the tube assembly up against the bolt, until the
reticle pattern stops looping. If the azimuth bearing is not exactly flat,
this will be impossible to achieve. One side of the Dobsonian rocker may
have to be adjusted slightly higher or lower in order to get the reticle
to spin in place.
The new altitude offset function means that the altitude need only
be set approximately (to within 15 degrees - but try and get it as close
as possible). Based on the initialization data, the altitude offset
is calculated, and can be added into the positions.
Select "Handpad" to turn on init, either auto init mode or explicitly
select #1, #2, or #3 init.
Select a bright star for initialization using the "bstars.dat" file.
Avoid stars near the equatorial and altazimuth poles, ie, Polaris.
Use the handpad to slew to chosen star, or if optional encoders installed,
you can move the scope by hand. Center in eyepiece, press the initialization
switch on the handpad.
Select a second bright star for initialization using the "bstars.dat"
file. Avoid stars near the equatorial and altazimuth poles,
ie, Polaris.
Use the handpad to slew to second star, or move by hand if optional
encoders installed, press the initialization switch on handpad.
Select "Handpad" until init turned off,
To slew:
Select "Track" to turn on tracking.
Select new coordinates by using one of the data files, or by calling
Guide.bat if available, or by inputing equatorial coordinates manually.
Choose "Move to input equat" to slew to object.
To move the scope by hand:
Select "Track" to turn tracking off (if you don't do this, the scope
will attempt to slew back to the original equatorial coordinates).
If the optional encoders are installed, the program will automatically
update altazimuth coordinates (if tracking is off, the equatorial coordinates
will also be updated), otherwise, if the encoders are not installed, after
moving the scope you will need to enter the equatorial coordinates of the
object you have ended up at, then select "Reset to input equatorial", so
that the scope can know where it is now pointing.
To improve local finding/tracking accuracy:
Slew to a bright known star near the object.
Select new coordinates by using one of the data files, or by calling
Guide.bat if available, or by inputing equatorial coordinates manually.
Choose "Reset to input equat" (Or, re-init #1 or #2 or #3, whichever
is more appropriate).
Select "Input equat" to enter coordinates of new object to view.
Choose "Move to input equat" to slew to object.
This offset slew, if carefully done, will be accurate to the arcsecond
level.
To use Guide, a planetarium program by Project Pluto (Bill Gray):
1. Simply select 'guide.bat' option from scope.exe's menu. Make sure
that the 'wguide.exe' program is in c:\guide.
Guide will show you where the scope is pointing, and upon exiting Guide,
Guide's last coordinates will be displayed in the Input equatorial fields.
Select move to input, or reset to input.
2. To run concurrently with Guide6.exe, the Win95 version of Guide, configure Guide6 by going to Settings, then Scope Control. Select an unused comm port, and pick 'altaz'. You will see a new drop down menu option appear, "Scope Pad". Select it. Be careful not to move the mouse as the cursor's position is used to send coordinates. To send coordinates from guide6.exe to scope.exe, select 'slew scope' on the scope pad menu. To receive coordinates into Guide6.exe from scope.exe, select 'slew guide'. To send coordinates from scope.exe to guide6.exe, use the hotkey '8', to receive coordinates into scope.exe from guide6.exe, use the hotkey '7'.
To set backlash values (this section contributed by Jerry Pinter):
Be sure to accurately (within an arcminute or less) determine the exact amount of backlash for each axis. Use a laser pointer attached to the scope, projecting a dot of light onto a wall. Start with both backlash settings (in config.dat) equal to 0. Using the handpad, microstep for awhile in one direction, enough to takeup any backlash, stop, then read the altaz coordinates from the screen. Then reverse the motor direction on the handpad and stop immediately when the scope starts moving. Read the new altaz coordinate to determine the amount of backlash (in degrees). Repeat this several times and use the average value for each axis. Convert this to arcminutes and enter into config.dat. If one does not have a laser pointer, one can focus a cross-hair eyepiece on a stationary object on the horizon (house, tree, etc) to determine when the scope starts to move. The encoders could also be used if their precision is high enough. After entering the correct backlash parameters into config.dat, repeat the backlash test using the laser or encoders. The scope should now "take up the slack" prior to microstepping, for example just quickly depress the handpad pushbutton for a split second and one should hear the motors spin, but the scope should not move much at all, and the altaz coordinates should not change much. This is the key to backlash compensation: even though the motors are spinning fast to take up the backlash, the scope is not moving and thus the altaz coordinates do not change in value. Without backlash compensation, prior to every change of direction for slewing, microstepping, and tracking, the motors will spin for awhile and the PC will think the scope is moving (and thus change the coordinates on the screen) however the scope is not moving yet. This creates errors in pointing accuracy. Backlash can cause serious slewing, finding and tracking errors, especially if the backlash is a significant portion of the field of view.
For example, my (Jerry Pinter's) Cookbook CCD f.o.v. is about 15 arcminutes on my scope, and my backlash is about 7 arcminutes. Thus if I think I have an object nearly centered, without backlash compensation it may actually be 7 arcminutes off-center (depending on which way the motors last spun) which could be off the edge of the chip! Another problem is when doing initializations or "resetting" off a nearby bright star, if backlash is not compensated, then the scope may be pointing in error by the amount of backlash. Also, when tracking an object for CCD imaging, if the backlash is not compensated, then the object will drift across the image before the backlash is taken up. With backlash properly compensated for (as described above), everything is taken care of automatically. The PC knows exactly where the scope is pointing during initialization, resets, and slews. When the scope slews to an object, the object will land on the CCD chip, and tracking will start immediately after the motors take out the slop, leaving the object in the same place within the field of view. It's important to have the scope balanced (alt axis) since any imbalance will tend to make the backlash appear only in one direction, which will screw up the backlash compensation.
To use the drift/guiding/PEC capabilities:
After the initialization, typically high power tracking will show two residual errors.
The first is a slow steady drift, commonly a couple of arcseconds per minute of time. This is caused by small initialization errors such as not precisely centering the star in the crosshairs when initializating, and mount errors such as the azimuth and altitude axes not being exactly perpendicular.
The second is periodic error caused by the gearing, commonly the worm not being centered on its shaft or butting the gear properly. This shows as a slow oscillation of the star back and forth across the crosshairs.
The program has both periodic error and drift error cancellation features.
The PEC, or periodic error correction, file consists of two columns. The first is a counter, 0 to 199, that indicates the index. The index is the resolution or number of steps that the PEC is divided into. Commonly this is spread over a single motor rotation or 200 fullsteps, but may be spread over any number of fullsteps. For instance, spreading the PEC over 400 fullsteps would cover the PEC caused by a double turn worm. Set the number of fullsteps that a PEC cycle will cover with the variable FullstepsPerPECArray. Mark a synchronization point on the motor shaft or the worm shaft that indicates the starting position, corresponding to an index of 0. Next to the index numbers in the PEC.DAT file are numbers that that indicates the amount of PEC in tenths of an arcsecond to apply at each index. For instance, if a single turn worm causes 2.3 arcsecond of periodic error with the motor shaft at a 45 degree angle, then index 50 would have a value of 23 (assuming 200 fullsteps per motor revolution). See the PEC.TXT file to see how to enter these values. The altitude PEC comes first, with indexes of 0-199, then the azimuth motor comes with indexes of 0-199. Remember that you have 200 PEC values per axis, no matter how many fullsteps you spread the PEC over.
Here are more notes on PEC by Chuck Shaw: "I am Chuck Shaw. I recently
finished converting my 14.5"f/5 dob into an AltAz system using Mel's plans
and software. I concur, it is MUCH more of a "system" than I ever imagined!!!
I also just went through coming to grips with nulling out PE and I
have a few "lessons learned" that might be helpful....
1. Use LOTS of power when running in Guide mode to build Guide.dat
I used two barlows stacked into each other (a 1.7x and a 2.8x and a 12mm
illuminated reticle eyepiece and an ~1808mm scope gives about 720x......
use AT LEAST that much if you can.... (Slightly defocused blobs are easier
to guide with than points anyway!!)... You ARE using an illuminated reticle
EP aren't you??? Do not try to keep a focused image of the star in the
center of the box. Either defocus till the star fills the box, or put the
star in the center of an intersection of two lines, or put it in a "corner"
where its just touching two lines. Try different techniques to see which
works best for you. I found the biggest source of inconsistencies in my
data sets was ME and my poor guiding!!!!!! My reaction times usually had
the wrong direction and were late..... (duh......) :-) Play with the orientation
of the handpaddle also to see if a "fly to" type of guiding is easier.....
2. Use the guide routine several times to nail the drift as well as
possible BEFORE you try to write a file to capture PEC data.
3. For Azimuth data collection, be sure and aim the scope due south,
near the celestial equator. This will minimize motion from Alt, and maximize
the motion in AZ....
4. Shell out to DOS without stopping tracking after a Guide run, Do
a "copy c:\guide.dat PE-AZ1.txt", then a copy "c:\PEC.txt guide.dat" (say
YES to overwrite) , then type exit and SHAZAM the scope will slew back
to the star you were guiding on and you are ready for another run!!!!!
Name the next file PE-AZ2,txt, etc...... This allows you to capture several
runs very quickly, and any system config changes between runs are minimized.
5. VERY CLOSELY inspect for any "wobble" in your worm bushing. I use
359:1 Byers gears. I had to make the bushings for the worms and discovered
the bushing has a tiny bit more slop than it should (the clearance is about
0.001 and Byers tells me it should be about 0.00005). I decided to fabricate
a "tailstock" out of a small aluminum angle and a brass machine screw.
I ground a point on the end of the machine screw and it goes through the
bracket and presses into the center ground dimple in the end of the worm.
That made a HUGE difference in obtaining repeatable data. I think the problem
was the worm's wobble was somewhat random. That, in turn changes the mesh
slightly, and that induces PE.... If your worm is on a shaft with bearings/bushings
at both ends, you still need to look for this!
6. Look at the couplings for the motor to worm. If they are flexible
and you are using the motor bearings to stabilize the worm at all (if there
is slop in the bushings you are in this category), you need to go to a
precision coupling. I bought several commercial ones and found they were
slightly out of round!!!! This in itself introduced PE!!! Thats OK though,
since the Software will compensate for it.
7. Reinitialize the motor/worm positions in between runs to make VERY
sure that you know what position corresponds to the 0 position in the guide.dat
data I failed to do this a couple of times and got accurate but skewed
curves..... You have to remember to turn off PEC and then back on after
the shafts are positioned !!!!!!
8. Remember the data take will NOT start at zero unless you time it
that way. Do not try to get cute and time it, just start it and use your
spreadsheet program to cut the four runs of data into separate columns
and then move them up/down in the spreadsheet to line up the steps in each
run. Then delete the step number columns (all but the far left one). Graph
the 4 curves and throw out any that are obvious guiding errors. Then average
the rest and you are there!!!
9. Remember after the data file is copied into a file called PEC.dat
to reinitialize the shafts to their zero position. I keep forgetting to
do this!!!! The system also seems to get lost after a couple of hours of
operating.... An occasional reinit of the PEC alignment takes less than
15 sec and helps "clean up" things. I should not have to do this but......
I have the sets of curves from my data takes I can send you. I was
having the inconsistencies in taking data initially, and then the phase
skewing till I stabilized the worms too.... perplexing, but a methodical
working on each potential source of PE will find the culprit!!!
The performance of the system is simply astounding when all is completed.....
I agree with Mel that software timing errors are the least likely culprit.
Too many times I wanted to blame the software for problems but Mel has
simply done too good of a job!!!!! It was ALWAYS something I did!!!! (don'tcha
hate it when that happens!!??) :-)"
To null residual drift and optionally write GUIDE.DAT, follow the following procedure.
As a pattern to copy, a dummy PEC file is included with PEC values of 0, named PEC.TXT, found in the scope.zip file. Rename it to PEC.DAT if you wish to use it. Turn PEC on after synchronizing both motors' output shafts to a predetermined angle. Turn tracking on, set the handpad function to 'guide', set the speed button to microstepping, and when the guide star is centered on the crosshairs, flip the mode switch momentarily to the left, turning on guide. The scope will now move at GuideMs speed, a slow additive/subtractive speed from the tracking rate. Using the hand paddle direction buttons, keep the guide star centered in the crosshairs. Soon beeps will be heard, signifying the synch point of the PEC cycles, the alt beep being higher in pitch than the az beep. Flip the mode switch on the hand paddle momentarily to the right to end guide after hearing at least two beeps from each axis. A GUIDE.DAT file is written with PEC indexes and the resulting guide values as input from the hand paddle. This can be used to create a real PEC.DAT file. Import the GUIDE.DAT file into a spreadsheet, and graph the curve. You can throw several GUIDE.DAT files into the graph, to get an average PEC. Smooth the values and place them in the PEC.DAT file.
Regardless of whether the PEC.DAT file exists, and regardless of whether PEC is on, drift values are calculated on the spot, displayed on the screen, and adopted immediately by the tracking function.
If only drift calculation is desired, center the star in the crosshairs, initiate guide mode by a momentary flip of the handpaddle switch to the left, guide for a minute or two, then end guide mode by a momentary flip of the handpaddle switch to the right.
Drift nulling can be done again, on top of the last calculated drift null values to further refine the nulling, if desired. Usually once through the drift nulling process is good enough until the scope is pointed at a very different location in the sky. After moving to the new part of the sky, repeat the drift null process after first zeroing the drift values via the menu.
Updating the PEC data on the fly
Since the last section was written, much has been done to enhance the generation of periodic error correction on the fly. The two principal errors affecting guiding accuracy can be fixed at one time: the periodic error of the gear that the stepper connects to, and drift. The drift may need to be tweaked after pointing to another section of the sky.
There are two methods to choose from:
The PEC in use by scope.exe can be displayed by using the hotkey 'c'. If you wish to save this PEC to PEC.DAT, answer yes.
To synchronize the PEC with the motors, use the handpaddle to move both motors to their respective synchronization angle, then select 'p' or pec on/off on the keyboard. PEC is now synchronized with the motors and will remain synchronized unless the motors stall.
To fixup an already generated PEC, put the hand paddle into guide+save mode, and guide until two high beeps and two low beeps are heard. The higher pitched sound indicates each time the altitude motor crosses the synch point. It must cross twice in order to generate a full motor rotation of data. A medium pitched sound is used to indicate the azimuth motor's crossing of the synch point. Multiple rotations of the motor will yield multiple PEC analysis files. Better results may be obtained by focusing on only one axis, then repeating the entire procedure for the other axis.
Use the 'u' and 'v' hotkeys to inspect the just completed guiding corrections. If you wish the guiding corrections will be saved to PECALTxx.TXT or PECAZxx.TXT files, where 'xx' starts at '00' and is incremented for each file saved. This allows you to build several iterations of guiding corrections in order to average them for a more accurate PEC. In addition, the drift should shrink to zero as it is refined.
If the starting PEC data is zeroed out by hotkeys 'y' and 'z', then this can be thought of as generating a PEC from scratch. Synch the motors (move both motors to desired index mark, then turn on PEC). Iif the handpad is put into guide+save mode, then guiding corrections are carried out until a low beep is heard, indicating that the guide array has been filled. Use the 'u' and 'v' hotkeys to save each guiding iteration. Use the 'e' and 'f' hotkeys to read in all the PECALTxx.TXT or PECAZxx.TXT files, average them, then display the results graphically, including how the pec will look if the averaged files are added in.
Use the 'L' hotkey to reload PEC.DAT.
Set TestString to "PreloadGuidexx.dat" to preload guidealt.dat and guideaz.dat upon program startup. This gives an opportunity to analyze and pull out pec data from earlier guiding efforts.
Scrolling
By setting the handpad to scroll mode, and selecting a scroll file, the program is ready to initiate a series of scrolling, or 'fly-over' motions. The movement is smooth microstepping. By flipping the mode switch to the left and back to center, the scope will scroll to the next position in the *.scr file, over the number of seconds shown in the *.scr record. If the switch stays in the left position, the scope will automatically move from position to position. This is best used for scans of extended objects or fields such as the Cygnus Loop, and the Andromeda Galaxy.
Here's the format for a move to absolute equatorial coordinates:
a 23 0 0 15 10 0 10 comment goes here
the A indicates absolute positioning, here, the scope will scroll to
23:0:0, +15:0:0 over 10 seconds. For absolute positions, the scope should
be close enough so that it can microstep to the position over time given.
Here's the format for a move to offset equatorial coordinates:
o 0 0 0 0 10 0 5 comment goes here
the 'o' means offset coordinates, that is, the offset position will
be added to the current scope position to arrive at the new target position,
here 0:0:0, +0:10:0, or 10 arcminutes in declination will be added to the
current position, so that over 5 seconds, the scope will scroll northward
10 arcminutes.
Grand Tour
By putting the hand paddle in grand tour mode, and loading a data file, the scope can be commanded to move from object to object in the data file, by merely flicking the hand paddle mode switch to the left. This is useful for planned evening observations, and sequences of fields of objects such as galaxy clusters. By flipping the hand paddle mode switch to the right, the scope will return to the previous object.
Calling the DOS version of Guide via the menu option 'guide.bat' or
the hotkey '`' (left apostrophe), does the following:
1. rewrites the startup.mar file that Guide uses to set its startup
position
2. exits to DOS and calls guide.bat, which launches Guide
3. upon Guide's exit, Scope.exe reads startup.mar to ascertain the
last coordinates that Guide used
4. these coordinates are placed in the input equatorial fields
Using the serial port to read and write lx200 protocol commands:
This is available if the lx200 serial port is set to 1 or 2 in the
config.dat file.
Realtime display of lx200 commands processed and the character buffer
is available if the menu option display LX200 is turned on.
Use a serial full null modem cable adapter to connect between the two
serial ports.
Set the ports to 9600 baud, 8 databits, 1 stop bit, no parity.
Scope.exe can also communicate via two agreed upon files, using menu
selections read slew and write slew or hotkeys '7' and '8'.
These files are located typically in the controlling planetarium program
subdirectory, pointed to by the config.dat's InterfacePath variable, ie,
c:\guide\
The file that is used to read in coordinates from the controlling planetarium
program is called slew.dat and has two lines with the following format:
R <Ra degrees>
D <Dec degrees>
The file that is used to write coordinates to the controlling planetarium
program is called slew_out.dat and has one line with the following format:
R <Ra degrees>
<Dec degrees>
Any controlling program can thus add a little software to communicate
with Scope.exe in this manner.
Finally, the IACA can be used under DOS multitasking programs such as
Windows 3.x:
The Intra-Application Communication Area is a 16 byte area starting
at 0040:00F0 that DOS sets aside to allow programs to communicate with
each other; this area is used to exchange coordinates between the scope
control program and graphically oriented CD-ROM planetarium programs such
as Guide; the planetarium program's coordinates serve as input to the scope,
the scope program tells the planetarium program where the scope is
pointing; coordinates are assumed to be precessed to the current date;
each program, at startup, sets all coordinates initially to zero: this
way, when non-zero coordinates are found, it can be assumed that the other
program put them there; ie,
long iaca_ra = *(long far*) (0x4f0);
long iaca_dec = *(long far*) (0x4f4);
long scope_ra = *(long far*) (0x4f8);
long scope_dec = *(long far*) (0x4fc);
double scope_ra_in_decimal_hours = (double) scope_ra / 1.e+7;
double scope_dec_in_decimal_degrees = (double) scope_dec / 1.e+7;