Configuring the Stepper Software

scope.exe requires a config.dat file.  You can specify an alternative config.dat file by using the command line option -c, ie, scope.exe -c \temp\config.tmp

note: all variables, names, and strings are case insensitive, so defaultbackground will work as will DefaultBackground

The following variables set the display colors:

DefaultBackground
DefaultColor
TitleColor
BorderColor
MenuColor
DisplayColor
SelectColor
CurrentColor
SelectBackground

based on:
BLACK=0,Both
BLUE=1,Both
GREEN=2,Both
CYAN=3,Both
RED=4,Both
MAGENTA=5,Both
BROWN=6,Both
LIGHTGRAY=7,Both
DARKGRAY=8,Foreground only
LIGHTBLUE=9,Foreground only
LIGHTGREEN=10,Foreground only
LIGHTCYAN=11,Foreground only
LIGHTRED=12,Foreground only
LIGHTMAGENTA=13,Foreground only
YELLOW=14,Foreground only
WHITE=15,Foreground only
BLINK=128,Foreground only

ConfirmQuit: set to 1 if you wish a confirming message before the program quits

DisplayOpeningMsgs: if set to zero, opening and closing messages are suppressed

MoveHsMsgDeg: how long of a slew allowed before a confirming message is displayed

F9Hotkey, F10Hotkey, F11Hotkey, F12Hotkey: optional user specified hotkeys; should only be set via the program; delete from config file if you wish to erase them

InterfacePath: location of controlling planetarium software program, ie, c:\guide\ also location of Project Pluto's planetarium DOS program, dosguide.exe

UseMouseFlag: if 1, use mouse to select menu items, datafiles, objects from datafiles, and move the scope in microstep, halfstep, and auxiliary motions.

IACA_Flag: if 1, use IACA to communicate with other IACA aware programs

GEMFlipPossible: if 1, then GEM flip is possible

AutoGEMFlip: if 1, the GEM flip will occur automatically when the scope is asked to traverse to the opposite hemisphere

AutoGEMFlipFuzzDeg: some value entered here, like 7.5 degrees, will give some fuzz or wiggle room so that the scope doesn't flip back and forth from hemisphere to hemisphere as you touch the centering buttons

Siderostat: set to 0 if standard equatorial or altazimuth mount, set to 1 if you are using a siderostat or uranostat flat to focus light into a stationary telescope tube; you must set AzLowLimitDeg to about 90, AzHighLimitDeg to about 270, where due south is about 180, the difference between the limits must be 180 deg or less. This allows the altitude to exceed 90 deg, otherwise the flat mirror will attempt to flip upside down when aimed at northly objects.

HomeAltDeg, HomeAzDeg: these are the home, or park coordinates

MsArcsecSec: microstepping speed when the hand paddle is used to center objects, can be changed while the program is running

AltFullStepSizeArcsec, AzFullStepSizeArcsec: these are the step sizes for the altitude and azimuth steppers. The altitude is measured by using a precision level to set the tube horizontal, resetting alt to 0, then moving the scope via the motors until the precision level indicates the tube is exactly vertical. The ratio between the displayed alt and 90 degrees is the amount to adjust the step size by. Similarly, one complete turn in azimuth can be used to adjust the azimuth step size

AzFullStepSizeArcsecCW and AzFullStepSizeArcsecCCW set varying step sizes depending on motor direction for the azimuth/RightAscenion/primary axis.  Both values must be non-zero in order to be active; if either or both values are zero, then the values are ignored.

RefractFlag: 1 if you wish refraction to be used, 0 if you wish refraction to be display only

UseAltAzECFlag: if 1, ALTAZEC turned on at program startup.

UseAltAltECFlag: if 1, ALTALTEC turned on at program startup.

UseAzAzECFlag: if 1, AZAZEC turned on at program startup.

PointingModelFlag: if 1, PMC turned on at program startup.

BacklashMsArcsecSec: backlash takeup microstepping speed, cannot be changed while the program is running

HandPadPresentFlag: if 1 then handpad present, if 0, then handpad not present and handpad is ignored.  If the handpad is not connected or in an error condition at program startup, it is ignored.

StartingHandPadMode: sets starting handpad mode, also ending handpad mode saved at program exit to this variable: values are 
off: 0
init auto on: 1
init 1: 2
init 2: 3
init 3: 4
polar alignment: 5
analyze on: 6
guide on: 7
guide stay on: 8
guide stay rotate on: 9
guide drag on: 10
scroll tour: 11
scroll auto tour: 12
grand tour: 13
record equat: 14
toggle track: 15
FR mode:16
focus mode:17
Auxiliary control mode: 18

HandpadDesign: 0 if standard handpad, 1 if using the four data lines to represent the four directions (no mode control or speed control available: this is for autoguiders that need simultaneous action in two directions, something not possible with standard handpad design)

UpDownButtonsReversedFlag: if 1, then the handpad's up/down buttons are reversed.

 

HandpadFlipUpDownWithGEMFlip: if 1 then handpad will flip its up/down direction buttons when GEMFlip is on to match the declination direction reversal that occurs when the GEMFlip has occurred

AltBacklashArcmin, AzBacklashArcmin: these are backlash values (if both are 0, backlash is disabled). If backlash correction is desired, values should be positive. A negative value means that the motor will move in the opposite direction than expected in order to take up backlash

ABacklashSignalPPortPin17: if non-zero, then parallel port pin 17 used to signal the direction of the 'A' motor backlash: logical high if backlash direction is CCW, logical low if backlash direction is CW (can be used to control motorized counterweights); starting value is logical low

AltLowLimitDeg, AltHighLimitDeg, AzLowLimitDeg, AzHighLimitDeg: these limits are active only when HsTimerFlag is set to 1 (on); if HsTimerFlag is on and desiring to disable the alt limits, set both alt limits to 0; if HsTimerFlag is on and desiring to disable the az limits, set both az limits to 0

GuideArcsecSec: guiding correction speed, can be changed while the program is running

The following are drift rates that a star will be dragged across an autoguider with knife-edge detector.  These autoguiders work by expecting the tracking rate to be slightly off guaranteeing that the star will always eventually move across the knife-edge.  When the star crosses the knife-edge the autoguider gives it a little kick in the opposite direction, then waits for the star to reappear.
GuideDragAltArcsecPerMin
GuideDragAzArcsecPerMin
GuideDragRaArcsecPerMin
GuideDragDecArcsecPerMin

HPUpdateDriftFlag: if 1, then the drift is updated at the end of a handpaddle guiding session.  Drift is calculated based on accumulated guiding corrections over the session and then automatically adopted. 

DriftAltArcsecPerMin: starting value of altitude drift in arcseconds of angular movement per minute of time.

DriftAzArcsecPerMin: starting value of azimuth drift in arcseconds of angular movement per minute of time.

DriftRaDegPerHr: starting value of declination drift in degrees of angular movement per hour of time.

DriftDecDegPerHr: starting value of right ascension drift in degrees of angular movement per hour of time.

PECFlag: if 1, then PEC turned on at program startup time.

AutoAltPECPin: parallel port pin(s) that auto synchronization of altitude will be read from: must be 15, 16 or 17, or 10+12+13 (3 pin combination), or deleted from config.dat (default will be 17 then).  If you use the 10+12+13, be careful not to simulate it by any of the following hand paddle key presses: UpKey + DownKey + CCWKey, or CCWKey + CWKey, or UpKey + RightKey, or DownKey + LeftKey 

AutoAltPECSyncOnFlag: turns on automatic synchronization of the altitude PEC using the AutoAltPECPin pin of the parallel port

AutoAltPECSyncLowHighFlag: if 0, synch point occurs after +5 VDC has been applied, and at the moment ground is applied; if 1, synch point occurs when +5VDC is applied after pin has been grounded.

AutoAltPECSyncDirFlag: direction that alt PEC must be moving in order to trigger auto-sync: 0 = either direction, 1 = CCW direction, 2 = CW direction

AutoAltPECDeBounce: if 1 or on, then software will debounce the synchronizing signal: the debounce period ends when the PEC index is between the and point of the PEC cycle

AutoAzPECPin: parallel port pin that auto synchronization of azimuth will be read from: must be 15, 16 or 17, or 10+12+13 (3 pin combination), or deleted from config.dat (default will be 15 then).  If you use the 10+12+13, be careful not to simulate it by any of the following hand paddle key presses: UpKey + DownKey + CCWKey, or CCWKey + CWKey, or UpKey + RightKey, or DownKey + LeftKey

AutoAzPECSyncOnFlag: turns on automatic synchronization of the azimuth PEC using pin 15 of the parallel port

AutoAzPECSyncLowHighFlag: if 0, synch point occurs when ground is removed from pin; if 1, synch point occurs when ground is applied.

AutoAzPECSyncDirFlag: direction that az PEC must be moving in order to trigger auto-sync: 0 = either direction, 1 = CCW direction, 2 = CW direction

AutoAzPECDeBounce: if 1 or on, then software will debounce the synchronizing signal: the debounce period ends when the PEC index is between the and point of the PEC cycle

FullstepsPerPECArray: This allows periodic correction for single through quad worms by tying the PEC sequence to an amount of fullsteps, not to a motor's single turn. Positive values in PEC.DAT indicate too much clockwise motion. Values are in tenths of an arc second. A total of 200 values per PEC are used regardless of number of fullsteps per PEC array. PEC must be synchronized by placing the motor shafts in the predetermined starting position and hitting the 'PEC on' keyboard menu item selection or by using the auto-sync option.

PECIxOffset.A, PECIxOffset.Z: index offsets of both axes between rotor position of 0 and synch point, for instance, if the current position coordinate is zero with the rotor in the up position, and you have 200 fullsteps for a PEC cycle, and if the PEC synch point occurs with the rotor in the down position, then the offset will be 100; leave at 0 until PEC is turned on and synchronized, at which point let the program determine these values

FRStepSizeArcsec: field rotation motor step size, set to 0 if you wish field rotation disabled

SectoredFRDrive: if using a sectored field de-rotation drive, set to 1, otherwise field de-rotator motor may slew large angles after the scope finishes a slew.

FRStepSpeedMilliSec: speed of field rotation motor when slewed by hand paddle

ReverseFRMotor: reverse field rotation motor direction

FocusMethod: can be 0, 1, 2, or 3:

0. Connecting parallel port pins 16 and 17 to a pair of relays to control a small DC motor for focusing.  Pin 16 focuses 'out' and pin 17 focuses 'in'.  This can be operated with the field rotator concurrently.

1. As above in option 0, with the addition of parallel port pins 1 and 14 for slow speed control.  Field rotation is disabled with this option.

2. Using the field rotation motor control circuit with a small stepper motor for focusing.  This uses parallel port pins 1 and 14 for pulse and direction.

3. Adding a second MC3479 bipolar stepper control circuit with a small stepper motor for focusing.    This uses parallel port pins 16 and 17 for pulse and direction.  Both the field rotation and focus motors can be operated simultaneously.  Along with the altitude/declination and azimuth/hour angle motors, this means that four motors are controlled at the same time.

ReverseFocusMotor: if 1, then reverse direction of focusing motor

FocusFastStepsSec: if using bipolar stepper motor for focusing, then this value contains the fast speed setting in steps per second

FocusSlowStepsSec: if using bipolar stepper motor for focusing, then this value contains the slow speed setting in steps per second

FocusPosition: if using bipolar stepper motor for focusing, then this value contains the focuser position in steps

MotorControlMethod:
0 = pulse width modulation of unipolar stepper motors (if in doubt, pick this option),
2 = pulse and direction control, if option 2, set the fullstep size to the amount moved every motor pulse

MotorWindings: 4 or 5: number of windings that the stepper motors have; almost all have 4 windings, but the software can work with 5 phase motors such as those from Vexta

if going with 5 phase motors then please observe the following notes:
An option is provided for driving 5-phase motors by using pins 16 and 17  for the fifth phases of the A and Z motors respectively. To use this  option, set MotorWindings to 5 in CONFIG.DATA. Note that the choice of  4 or 5 phases for  has no effect on the parallel port outputs for the  field rotation motor.
The following changes in design or usage apply in the 5-phase case:
1. Driver circuitry must use H-bridge design.  Refer to "Jones on Stepping  Motors" at http://www.cs.uiowa.edu/~jones/step/ or design data for  the SGS Thompson L298 Dual Full Bridge Driver at
 http://www.st.com/stonline/books/pdf/docs/1773.pdf
2. Interpretation of the 0's in the microstepping table above and  in variables such as HsOut changes from "off" to "grounded" (see Jones).

InvertOutput: Original designed called for 7404 inverters to drive the transistors, hence InvertOutput 1 in the original config.dat (parallel port output goes high, hex inverters go low, and drive transistors turn off, hence the need to invert the output).  In the original design, if opto-isolators were used, then InvertOutput 0 (parallel port output goes high, hex inverters go low, opto-isolators turn on pulling output low, hex inverters go high, and drive transistors turn on, hence no need to invert output). If using the printed circuit board, the pcb design uses 7408 and gates (parallel port output goes high, 7408 and gates go high, opto-isolators turn off allowing output to return to high, 7408 and gates go high, and drive transistors turn on, hence no need to invert the output).  Screw this up and you will pump a lot of current through the steppers!

KeepAlivePPortPin: set to the parallel port pin (1, 14, 16, or 17) you wish to use for input to a keep alive circuit; the pin will pulse at least 9 times per second; design the circuit so that the power supply to the motors is cut off if the pin fails to trigger after a short period of time.

ReverseAMotor: set to 1 if you wish to reverse direction of the 'A' motor (the altitude or declination motor).  This is equivalent to swapping winding leads 1 and 3.

ReverseZMotor: set to 1 if you wish to reverse direction of the 'Z' motor (the azimuth or right ascension motor).  This is equivalent to swapping winding leads 1 and 3.

HsRampStyle: set to 0 if you wish the old simple ramp, and set to 1 if you wish the new 'S' shaped ramp curve, where the ramp starts slowly, speeds through the middle range, and slows down for the highest speeds at the end of the ramp.

HsTimerFlag: set to 1 if you wish to use IRQ 8 to time the halfstep slews, this allows for realtime updating of scope coordinates, keyboard interruption of slews, and altitude limit checking during a slew, otherwise if set to 0, halfsteps are timed by a delay loop with interrupts disabled to avoid interruption; using IRQ8 works perfectly in DOS, not at all in Win 3.x, and slowly in Win95

MaxDelay, MinDelay, HsDelayX: these set the slowest and fastest slew speeds:

when using IRQ 8 timing of halfsteps, ramp speed starts at MaxDelay and achieves highest speed at MinDelay; with interrupt 8 method of timing the halfsteps, speed can be converted to halfsteps per second by dividing MaxDelay and MinDelay into 1,000,000, so that a MaxDelay value of 1000 means 1000 halfsteps per second, and a MinDelay value of 200 means 5000 halfsteps per second.

when using delay loop timing of halfsteps with interrupts disabled, ramp speed starts at (MaxDelay - MinDelay)* HsDelayX and achieves highest speed of MinDelay * HsDelayX, where HsDelayX is used as a multiplier to keep the MaxDelay and MinDelay values reasonably sized on fast CPUs.  

HsRampX: the amount of time to ramp up or ramp down is multiplied by HsRampX

InterruptHs: number of halfsteps before interrupts disabled if using delay loop timing of halfsteps

HoldReps: time to lock stepper rotors at beginning and end of slew to prevent shaft oscillation and overshoot

 

HsOverVoltageControl: for optional halfstep high speed slewing over-voltage control; if desired, enter a non-zero value.  Control line is parallel port pin #17.  Value entered here will be the Delay value at which the over-voltage control line will be toggled logical high.  Pick a value between MaxDelay (slowest speed or greatest delay) and MinDelay (fastest speed or least delay between halfsteps)

MaxConsecutiveSlews: maximum number of consecutive slew attempts to reach a desired position.  If slews cannot reach position, scope begins tracking.  This prevents oscillations when MsRepsTick or PWM values are low and tracking speed exceeds maximum microstepping speed.

MsPowerDownSec: number of seconds before idle motor will power down during microstepping.

PWMRepsTick: count of pulse width modulations per bios clock tick. Set to average value of PWMReps displayed on screen.

AvgPWMRepsTickOnFlag: if 1, then auto-averaging of the PWMRepsTick will occur, based on the actual number of PWM repetitions per timer tick as averaged over 3.5 seconds; if 0, then the PWMRepsTick value as entered in the config.dat file will be used. 

MsDelayX: repetition value of each value in the microstepping arrays, this allows for smaller arrays when needing large PWM[] values for fast PCs.

MsPause: the number of dummy loop repetitions at the end of every PWM[] loop. This allows for fine low voltage resolution when using a high voltage power supply

Ms: number of microsteps: up to 40 per each fullstep

MaxIncrMsPerPWM: maximum microstep increment per pulse width modulation.  In order to microstep faster, microsteps can be skipped. Consequently, this sets the maximum microstepping speed.  Microsteps can be skipped up to very roughly 4 per fullstep.  For instance, if you have 20 microsteps per fullstep, then you can enter a value of 5 here.  Consequently, this variable also controls the maximum microstepping or tracking speed.  For instance, if you set it to 1, then your max microstepping speed will be the PWMRepsTick * 18 (ticks per second).  The max value that you can set it to will be the number of microsteps in a halfstep, because the fastest the microstepping routine can work at is one halfstep per PWM.  (if the number exceeds MsHsToggleIncrMsPerPWM, the routine switches from microstepping per each PWM to halfstepping per each PWM)

MsHsToggleIncrMsPerPWM: while microstepping, the routine will switch into halfstep mode if necessary.  This is toggled when the number of microsteps per each PWM repetition exceeds MsHsToggleIncrMsPerPWM.  For instance, if the PMW repetitions per timer tick is 50, and if MsHsToggleIncrMsPerPWM is 5, and you ask the program to track at  more than 250 (50*5) microsteps per PWM, then the routine will toggle to halfstep movement.  Max speed is still the # of microsteps per fullstep divided by 2, equivalent to halfstepping.  In this example of 20 microsteps per fullstep, the max speed is 20/2 or 10 microsteps per PWM, or 500 (50*10) microsteps per PWM.  Overall speed in any case is still limited by MaxIncrMsPerPWM.

MaxPWM: maximum pulse width modulations, and consequently the maximum value that any PWM[] value can take.  This can be set higher than PWM[0] so that PWM[1]... can be set higher than PWM[0] to ameliorate stepper motor cogging

PWM[0] through PWM[19] : These values sets the voltages for individual microsteps. In general, these values should reflect the ratios discussed earlier. If the microstepping is not smooth, adjust these values. If the motors become too warm and take too much current, increase MaxPWM, lower the PWM[0] through PWM[19] values, decrease MsDelayX and/or increase MsPause.  When tracking, the steppers should draw no more than approximately 0.1 amp while still producing adequate torque.
The rotor is positioned based on the inverse square strength of two adjoining windings, for instance,
PWM[0] 100 : 0
means that the first microstep has a current value for winding A of 100 and a current value for winding B of 0 positioning the rotor exactly over winding A, and,
PWM[10] 100 : 100
means that the 11th microstep has a current value for winding A of 100 and a current value for winding B of 100 positioning the rotor exactly between winding A and winding B, and,
PWM[19] 29 : 100
means that the 20th microstep has a current value for winding A of 29 and a current value for winding B of 100 positioning the rotor 9/10ths of the way between winding A and winding B (there is a slight deadband where a certain amount of counts, usually about 10, are needed for the motor to feel the current pulse at all);

here are the values for 20 microsteps:

PWM[0] 100 : 0
PWM[1] 100 : 29
PWM[2] 100 : 45
PWM[3] 100 : 56
PWM[4] 100 : 65
PWM[5] 100 : 72
PWM[6] 100 : 81
PWM[7] 100 : 88
PWM[8] 100 : 95
PWM[9] 100 : 98
PWM[10] 100 : 100
PWM[11] 98 : 100
PWM[12] 95 : 100
PWM[13] 88 : 100
PWM[14] 81 : 100
PWM[15] 72 : 100
PWM[16] 65 : 100
PWM[17] 56 : 100
PWM[18] 45 : 100
PWM[19] 29 : 100

If you wish different microstepping PWM[] values for the 'Z' or right ascension/azimuth motor, then use a similar array but name each value PWMZ[], ie,
PWMZ[0] 100 : 0
PWMZ[1] 100 : 29
PWMZ[2] 100 : 45
and so forth

Optional variables: QSC_..., which stands for QuarterStepCorrection: the '_a' through '_d' indicate the winding, and the extra '2' indicates the intermediate halfstep; enter corrective values in fullsteps, for instance, if the motor moves too far for the 'a' winding by 0.1 fullstep halfway through its range, and no other corrective actions are required, here is what the entries will look like for the 'a' winding (for windings 'b' through 'd', duplicate these entries, replacing the 'a' with the winding letter 'b', 'c', or 'd'): 

QSC_a0  0   : 0
QSC_a1  0   : 0
QSC_a2  0.1 : 0
QSC_a3  0   : 0

Optional variables: PWM_... which taken together allow compensation for current variation to each stepper motor winding.  It has been discovered that the 8 output lines from the circuit may vary in output current thanks to variations in the parts themselves.  In addition, there may be variations in motors.  Some of the quarter step correction (QSC) issues may be due to variations in motor winding current.  By allowing for individual current adjustment of each output line, one can tune very output line to give the same current.  For instance, if one finds that the 2nd output line ('B' winding of the altitude/declination motor) reads a low current compared to the other output lines, the other lines can have their output current lowered by the software to compensate.  Default is no compensation and config.dat does not need to be changed.  If you wish to use output line/motor winding current compensation, add the following variables to config.dat.  A value of 1 means output 100% of available current, a value of 0.5 means output 50% of available current, and so forth.
Here is what the entires will appear to handle a compensation for a disparate 'B' winding of the altitude/declination motor:

PWM_A_a_Comp 0.8
PWM_A_b_Comp 1
PWM_A_c_Comp 0.8
PWM_A_d_Comp 0.8
PWM_Z_a_Comp 0.8
PWM_Z_b_Comp 0.8
PWM_Z_c_Comp 0.8
PWM_Z_d_Comp 0.8

PPortAddr: parallel port address: enter a 1 or 2 or 3 for lpt port 1 through 3, or enter the base address in a 3 digit decimal form where portid lpt1 = decimal 888 (hex 378) lpt2 = decimal 632 (hex 278), monochrome video card = decimal 956 (hex 3BC)

COM3Base: com3 base address in decimal form (if entry not listed in the config file, will default to 0x3E8 in hex or 1000 decimal)

COM3IRQ: com3 interrupt from 3 to 15 ( if entry not listed in the config file, will default to 4)

COM4Base: com4 base address in decimal form (if entry not listed in the config file, will default to 0x2E8 or 744 decimal)

COM4IRQ: com4 interrupt from 3 to 15 (if entry not listed in the config file, will default to 3)

EncoderString: options are:
NoEncoders,
BSeg = Bob Segrest unit,
ResetViaR = MicroGuiderIII, Ouranos, StarPort, and types that support reset by 'R...',
ResetViaZ = BBox, NGC types, and types that support reset by 'Z...',
NoReset = SkyWizard and types that are not resettable,
Ek = encoder box as designed by Dave Ek,
Mouse = using encoders from mouse (turn off acceleration, etc in mouse driver)
LM629Serial = use serial interface to LM629 servo controller

EncoderComPort: enter 1 or 2 for com1 or com2, ignored if using Mouse driver

EncoderBaudRate: baud rate to access the encoder interface box; normally 9600

SerialWriteDelayMs: millisecond wait after querying encoders before reading encoders; some wait is required, often 20-50 milliseconds

AltEncoderCountsPerRev, AzEncoderCountsPerRev: encoder counts per full revolution of the telescope mount; max of 65,534 with some encoder boxes having lower limits; if unable to set limits, then start scope.exe in serial test mode, turn on encoder box, enter commands from encoder box manual to manually set the resolution, check manual for any confirmation commands, if successful, write down what you entered and what the encoder box returned and send to the author, exit scope.exe, restart scope.exe in normal mode - do not turn off encoder box - and continue with normal operation of the telescope

AltEncoderDir, AzEncoderDir: allows changing of direction that encoder counts up, set to 0 to reverse count direction

EncoderErrorThresholdDeg: if encoder readings compared to current coordinates exceed this threshold, then current coordinates reset to encoder readings; if 0, coordinates not reset no matter how great the discrepancy

TrackEncoderErrorThresholdDeg: as above, but the error threshold to be used when tracking or slewing is on

MakeEncoderResetLogFile: set to 1 if you wish encoder threshold violations to be recorded into the file "Encoders.txt"

EncoderOffset.A, EncoderOffset.Z: offsets of encoder position from scope position in radians; let the software calculate these values

LX200ComPort: enter 1 or 2 for the com port to receive LX200 styled commands from external PC; set to 0 if not used

LX200BaudRate: baud rate for LX200 control; normally 9600, but if possible to change the external controlling program, set the baud rate to highest speed for faster data throughput and consequent less impact on motor movement

LX200MotionTimeoutSec: if no LX200 stop motion command received, motion will stop in this many seconds

LX200SlewHs: if no slew stop received, slew distance in halfsteps

LX200_LongFormat: start the program in emulate long format mode

Current.Alt, Current.Az: current telescope altazimuth coordinates in degrees

AccumMs.A, AccumMs.Z: current telescope altazimuth coordinates in accumulated microsteps; these are used for the telescope's starting and ending position.  Calculate the current altazimuth coordinates in degrees by multiplying the accumulated microsteps * the microstep size (which is fullstep size divided by number of microsteps).

StartInitState:  This controls the startup state of the initializations.  It operates exactly as the query at program startup: 0 means ask user per traditional menu options, 1 means adopt equatorial alignment, 2 means adopt altazimuth alignment, 3 means adopt no alignment at all, and 4 means to reuse last alignment.  Any other option than 0 means that you will not be queried.  This is a config.dat replacement for the query menu at startup time.  Use it if your answer to the opening query is always the same.  Default is 0, to query  the user.

OneInit, TwoInit, ThreeInit: the stored initializations used to orient the telescope to the sky; these are written by the program; each line consists of Ra, Dec, altitude, azimuth, and sidereal time all in degrees

Z1Deg: elevation offset to horizon perpendicular

Z2Deg: optical axis error in same plane

Z3Deg: correction to zero setting of elevation (this can be set to zero permanently and the altitude offset function in the program used to make an automatic Z3 correction)

DataFileCoordYear: year of the data file coordinates. Used for precession calculation. Default is 2000.

LatitudeDeg: used only for rough initial altaz alignment

CMOS_RTC_Access: CMOS Real Time Clock access: 0 = direct port access, 1 = bios call access - use 1 only if machine locks up including during ATimes test (very rare - only one reported instance)

LongitudeDeg: your site's longitude, used to determine HAOffset and local sidereal time

Tz: used to determine sidereal time, the initialization process does not depend on sidereal time or longitude, instead relying completely on the time interval between initializations

DST: also used to determine sidereal time

Eyepieces: number of eyepiece focus positions listed immediately below (maximum is three)

EPFocusPosition[0].Position: focus position of (first listed) eyepiece

EPFocusPosition[0].Name: name of (first listed) eyepiece

TestString:
NoTest = normal program execution,
PreloadGuidexx.dat = preloads the program with guidealt.dat and guideaz.dat, then runs normally,
Track = start 2 motor tracking with default value