Home                                                Go to Page 1                 Jump to Troubleshooting                                                 

Excerpts from the Scope-drive List


Microstepping                       Microstep-Adjusting                Modem to modem             Motors-Steppers              Motors-Stalling            Mount            Mouse

Network Connection               Noise                                   Operating System              Overvoltage                    Parallel Port                Periodic Error Correction

 Planetarium Programs             Pointing                             Pointing Model Corrections                                     Polar Alignment

Power Supply                        Program Display                    Quarter Step Correction      Refraction                       Remote Telescope        Reset Equatorial 

Scroll Files                           Serial Port                             Servo system                        Siderostat                        Slewing                       Scope.exe Software 

 Software - other                 Test Strings                         Time                                    Torque                                 Tracking                         Vibration                        Weather

 Websites                             Yahoo                                Z1Z2Z3


MICROSTEPPING:         http://www.bbastrodesigns.com/operate_microstep_config.html 

The # of microsteps should be based on 2 factors: use sufficient microsteps such that an individual microstep is 1/4 to 1/2 arcsecond in size, and, sufficient microsteps such that the motor feels smooth when tracking.  Mel Bartels


If you set a single microstep on my system to 0.2 arcsecond, then max speed is 80,000 * 0.2 arcsecond or 16,000 arcsecond/sec, or 4.4 deg/sec.    Mel Bartels


The 40 microsteps is not for every situation. It will slow down the max microstepping speed, so don't go to 40 unless you need it because your gearing is coarse (under 1000:1). I continue to use my 20 inch at 20 microsteps as the best balance between max Ms speed, smoothness, and accuracy.    Mel Bartels  367


Another point to make too, is that the software does have a finite limit on how fast it can process microsteps. Make them too small, and you will not be able to move fast enough using the handpad in microstepping mode. So don't overdo it on the microsteps.  There is but one goal: smooth even motion at the eyepiece/camera. Typically you do this by making microstep size at 1/4 to 1/2 arcseconds. While that matches scope resolution, it more importantly matches dissonance of the mount (no vibrations transmitted to eyepiece) and with a modest flywheel, means even motion.  Mel Bartels


The number of microsteps needed is a function of the gearing between the motor and the mount, and also the spec's of the motor. Mel advises that you should strive for .25 to .5 arc/sec per microstep. I'll give an example of why only 4 microsteps is needed with the stock Hurst motor (3008-002) when used on a G11 mount.

Before we begin the math a few items of info. There are 1,296,000 arc/sec per 360º, the Hurst motor is 24 steps/rev, the gearbox is 150:1, and the G11 mount has a 360 tooth worm gear.

Take 1,296,000 and divide by 360 (G11 worm gear) then divide by 150 (Hurst gearbox) then divide by 24 (steps Hurst motor) and that equals 1. So without microstepping, there is a resolution of 1 arc/sec per fullstep of the motor. If we want to have a resolution of .25 arc/sec per microstep (my preference) then divide 1 by .25 and that gives us 4 microsteps. This reasoning will work for any motor and gearing combination. Just substitute the particulars for the mount and motors you will be using and the size of the microstep you want to use in arc/sec.

Considering the uneven steps of the original Hurst motor, the large gear reduction produced steady visual viewing with my C11 at f10.

Here's the PARMS that worked for the Hurst motor. You may still need to adjust the MSDelayX, MSPause, MaxDelay, and MinDelay for your system.

[*** halfstep section ***]

HsRampStyle 1          HsTimerFlag 1            MaxDelay 1700

MinDelay 600            HsDelayX 1                HsRampX 1

InterruptHs 5             HoldReps 5                 HsOverVoltageControl 0

MaxConsecutiveSlews 5

[*** microstep section ***]

MsPowerDownSec 180          PWMRepsTick 22                                       AvgPWMRepsTickOnFlag 1

MsDelayX 6                             MsPause 66                                                  Ms 4

MaxIncrMsPerPWM 8           MsHsToggleIncrMsPerPWM 16             MaxPWM 100       

PWM[0] 100 : 10

PWM[1] 100 : 60     

PWM[2] 100 : 100

PWM[3] 60 : 100                    Don D'Egidio


I would only add one thing... The only reason 0.25arcsec/ms might not work is if the structure of the scope and mount ends up resonating with the pulsing of the motor. You will not know that till you start tracking, and for an alt/az mount that rate will vary for each axis as a function of the part of the sky you are in. For an equatorial mount (GEM, fork or horseshoe) the RA motor will run at the same speed all the time, so the problem is a bit easier (same problem, fewer motors to worry about). We had a 32" alt/az scope made from old locomotive parts, and it was using TINY little gearhead SAIA steppers. When they were running at the right place (speed) the image at the eyepiece would have noticeable vibration. Does not take much energy being pumped in if its at a resonant frequency.

Fortunately, you have four ways to combat this with scope.exe. The first is to rebuild and change the gear ratio (not required with Mel's system, but it was the only real option for the Tangent system used on the 32"). For Mel's system doing a simple re-tune of the motors you can vary the number of ms's per fullstep, and/or you can change the PWMRepsTic value to something higher or lower, and/or you can vary the current the motor is drawing, and hence the energy in each pulse by varying the combination of MsDelayX and MsPause. For me, lowering the current with MsDelayX & MsPause has the largest effect. That's why I recommend that after you pick a value for the number of ms/fullstep, then set MsDelayX and vary MsPause with the motor turning at around 30-50 ms/sec with a pointer on the shaft to get the lowest current you can through the motor while still providing smooth motion. That keeps that pulsed energy from the motor as small as possible. This will also vary PWMRepsTic, but at this stage do not worry about that unless the sound at whatever frequency you end up with is objectionable to you. If it is, vary MsDelayX and find another MSPause and see if that helps. You will need an ammeter in series with the power supply for this...(and remember you will be measuring the combined current from the motor AND the electronics, to get the motor current only. measure the current without the motor turning and subtract that from the current with the motor turning. Most motors I have are happy pulling between 200-300ma while ms'ing at 30 ms/sec. Less current makes getting the ms's even more difficult, more current makes tuning easier, but you ae pumping more energy into the system and risk resonance pumping if it gets too much). Life's a compromise, eh???? Then tune your ms's with a laser pointer shooting at a bit of mirror attached to the motor shaft, while the motor is either mounted on the scope, or a rubber band is looped around the shaft to provides slight amount of drag on the shaft.   Chuck Shaw


When I was tuning the 17 size Vexta motors for the G11, I had an ammeter in series with the common lead from the motor so that I could monitor the current going only to the motor. I would get the motor running the fastest by setting the 2 Motor Track speed close to what Scope.exe told me was the max value. Then, while holding the motor in my hand while I was adjusting the MSDelayX, I would find the value that felt the smoothest. Next I would adjust the MSPause value until there were no perceptible vibrations and make a note of those values and the current reading. There would always be several combinations of MSDelayX and MSPause that would give very smooth motor running, so I would use the one with the lowest current reading, as a start, until everything was on the mount and a trial could be done with all components on the telescope. At that point some more adjusting would be done until the mount ran smoothly, gave slews with no motor stalling, and used the minimum current needed to achieve that condition. I do like Mel's software because of it's ability to be configured to almost any motor and mount available. Still, those Hurst motors were very stubborn in adjusting for smooth running.  Don D'Egidio


try to get the PWMRepsTick value up as high as possible.  If that means setting MsDelayX to 1 and MSPause to very small numbers, then do it. The motors tend to run much smoother.   Mel Bartels


Q.  I have an old 386 running at 16 MHz…  A. This should work ok - make sure you have no device drivers running from config.sys or autoexec.bat. Be sure any power management in bios is turned off. Then set the PWM reps (PWMRepsTick) at 20 and see if you can get it to run at that rate. If not, try lowering a bit. Otherwise the motors will run rough. Mel Bartels 


If microstepping, then speed controlled by the MsArcsecSec value. If halfstepping then speed controlled by MaxDelay MinDelay values. Mel Bartels


1. Set the microstep rate to the maximum possible (use the M hotkey and set
the maximum value suggested).

2. Try moving the scope in the Microstep mode using the handpad. If the
motors stall then the maximum microstep rate is too high. In this case:

3. Reduce the MsIncr parameter using the Motors | MsParams menu.

4 Goto step 1 and repeat until both motors will move at the maximum
microstep rate without stalling..   Chris Roland 11417


In the end we have to find the balance between current draw, reasonable margin for adjusting smoothness and saturation of the CPU, which means:  -High enough PWM values that do not strain the CPU and give us margin to adjust Microsteps, but might result in fairly high current draw -MsPause values that lower current draw and leave us with a PWMRepsTick of approx. 30   Berthold  


Q.  Is there any restrictions in less than 10 MS/step? Does it need to be and even number of MS?

A.  No - you can do any number of MS including odd numbers. But there is no harm in adding more microsteps - does not negatively affect performance or slow down the software in any manner. The software has to output a continuous pulse width modulation no matter what - might as well let it output finer microsteps than coarser ones, all things considered. Mel Bartels 


Q.   ...if the displayed PMW count is right when tracking or when tracking is turned off.  

A.   It's most accurate when tracking is turned on.     Mel Bartels


PWM's of 15/14 is a little low.  The 36/36 is a lot better although I've gone as low as 10 with decent results. Mel Bartels


Q.  I'm trying this on a 386-16 The pmw count can get up to 50 but the average is around 16.should I turn off the avr. PWM's and set it manually to 25 or so.?

A.  setting it (PWMRepsTic) to a higher number will not make the actual PWMs any faster - it's a value that the user puts in for the program to kindof expect to see as an averaged value.   Mel Bartels


Setting MsPause and MsDelay to the lowest possible values will give you maximum PWMRepsTick which for my 486DX/50 is about 180 


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.  Mel Bartels


...it is critical that the PMWRepsTick value be high enough for smooth motion. If too low, you can see and feel and hear the roughness as the motor responds to individual pulse width modulations. The PWMs must happen fast enough so that the motor responds to their average.  

So the PWM needs to be at least 10 and preferably 20 or more. Some motors like 50 to 100 or above. Turn off all the error correcting in the config.dat file. Make sure that you have no device drivers loaded on your laptop. Make sure that power saving features are turned off. Make MsPause and MsDelay 1. Make the PWM[] values a maximum of 100, and if necessary, divide all values by 2 to make the maximum 50. Even so, with a 286, you should be able to get 9-10 PWms per tick out of the software.


q.  What's the reason for "sticking to about 40 PWM"?

I should have added +- 100%!

If too fast, the motors will not see the pulse width modulations, and if too slow, the individual pulses within the pulse width modulation will cause the motor shaft to shake. 20 to 100 is fine.  Mel Bartels 


The microstepping parameters control the voltage to the motor.

Voltage is PWM value * MsDelayX / (MaxPWM * MsDelayX + MsPause)

Typically you adjust MsPause to control microstepping voltage, and adjust MsDelayX to control the speed of the PWMs.  
Mel Bartels


MaxPWM value is the maximum that any PWM[] value can be.  However, PWM[] values can be less.  This gives flexibility in assigning PWM[] values to help precisely position rotor for each microstep.  Most people including me use 100 for MaxPWM and PWM[0] as it is convenient and gives enough resolution.  However, 200 can be used. Higher than that will cause fastest microstep speed possible to be rather low, also, if MaxPWM is too great, convention DOS that scope.exe is run under will start to run out of memory to hold all the PWM[] values. 

When maximum is set to 100 you can vary the microstep only by 1 up or down, so the smallest amount of change gives you 1%. When you put a maximum on 200 , you change by 1 thus 0.5 % difference possible between 2 microsteps                         Mel Bartels


Heavy torque on the stepper motor shaft retards the shaft position by percentage of load vs capacity, so if torque loading is 30% (not unreasonable) then when rotor is between windings, the rotor will lag behind by 30%. By increasing the current draw when the rotor is between windings, an attempt is made to fight this. At least that is the idea behind the PWM values in the config.dat files that I use.    Mel Bartels

...the pwm's that I put into the config.dat have increased power in the middle of the microsteps to hold the rotor position better  Mel Bartels

As long as the ratio of current between the windings is constant, then the rotor will be positioned properly. At this point it is a matter of how much total current you wish to put into the motor, ie, if 100 MaxPWM and a particular winding is 60:40, 30:20 is equivalent but at lower power. By having one winding always at 100, you ensure max current to achieve that rotor position.  Mel Bartels   7147


Try MaxPWM of 50 and 200, but 100 seems to work best for my laptop; a 486DX50.  200 showed promise because it appeared to be much quieter, however the steps did not become smoother.  Now I know its because of the additional overhead on my machine


Q.  I am wondering if anyone have an experience with tuning a motor 2 Volt under 12 Volt power supply ?

A.  This is a 6:1 ratio, which is ok only with the current limiting circuit.  You will likely wish to reduce your PWMs to 40 or so. The greater inductance of these motors requires lower PWMs.  Mel Bartels


On a 33mhz machine, it is sometimes needed to lower the max PWM to 80. It just depends on what the PWM's are when you are tracking. If you go to 40 ms, have MsDelay at 0 and MsPause to 1 and the PWM value that show on the screen when tracking is too low, your steppers will act funny and be untunable. Too low being like 15 or so. Lowering the max PWM for all of the step values and the MaxPWM setting will raise the PWM displayed when tracking up to a higher value.  An old 386 would not run well on 20 ms so Mel tuned them by using 50 as a MaxPWM and a value for all of the steps.             Lenord Stage


The PWM controls the amount of voltage in each microstep.  The percentage of ons vs offs control the current going to the motors. For instance, a PWM value of 50 with a MaxPWM value of 100 will do 50% current, as will PWM of 150 and a MaxPWM of 300. The MsPause is a value tacked onto the end of the PWMs. So a MsPause of 100 with PWM of 50 and MaxPWM of 100 is the same as PWM of 50 with MaxPWM of 200. MsDelayX is a multiplier - if 2 then all values are doubled. This makes faster computers work the same as slower  computers if you simply increase MsDelayX until the PWMs per timer tick are the same.               Mel Bartels


it takes a certain amount of PWM numbers to get the motor to sense the current. That's why that final PWM[] number always seems high.  Mel Bartels


The PWM[] value of 100 was selected to give enough resolution to the other PWM[] values. That is, if you pick the extreme case of PWM[0] = 1, then there are not a lot of choices for the other PMW[] values! But 100 is not a magic number. Certainly 50 is a fine choice for slower machines, and even down to 25 will work.

Remember that inside the program, the actual PWM[] number is the configured PWM[] value times the MsDelayX, so the following are equivalent:

PWM[0] 100
MsDelayX 1

PWM[0] 50
MsDelayX 2

But the first example gives you twice the resolution for the other PWM[] values, which, you may or may not need.

+++  MSDelayX

The MsDelayX was added a long time ago when PCs began running too fast, and the PWM[] values  consequently had to be several hundred. If you try this (make the PWM[0] value 500 or a 1000), you will run out of memory to build the PWM[] arrays. The PWM[] array output bit patterns are allocated to a memory location for fastest retrieval when doing the actual microsteps. I could recreate the PWM output bit patterns on the fly, and avoid the array completely, but then the minimum computer would become a Pentium 166 or so.    Mel Bartels


MsDelayX cannot be fractional. It is a multiplier for PWM[] values.  Every PWM[] pulse that goes out, is delayed or multiplied in the code by MsDelayX.  So PWM[0] of 100 with MsDelayX of 1 is same as  PWM[0] of 50 with MsDelayX of 2.    Mel Bartels


Setting MsPause and MsDelay to the lowest possible values will give you maximum PWMRepsTick which for my 486DX/50 is about 180.     Andy Martyn   8162

MSDelayX is a direct multiplier of PWMs.  It is the number of times the PWM[x] value is read before it is executed.  If you increase the PWM Value, you will also need to adjust down the MSdelayX value accordingly for the same performance to get the same PWMRepsTick value (i.e. how many PWM pulses get crammed into a cycle, etc.).  Changes to MsDelayX also require adjusting MsPause to control the current and smoothness   Chuck Shaw


Simplified, MSDelayx is used to keep the arrays of PWMs reasonably small on faster machines. Setting Msdelay at ie. 2 and having a PWM of 50 equals to having Msdelay 1 and PWM of 100. Since on a slow machine you are not likely to get prohibitively high PWM arrays, there is no need to set Msdelayx to anything but 1.

The PWMs control the voltage sent to your motors . Also simplified, each microstep is divided into 1 PWM and 1 MsPause. Each PWM is divided into a certain number of parts (Ons and offs) and so is MsPause, defining such the voltage the associated Ms will receive.

Lets say for example (simplified again!):
Ms1 has associated PWM1 with a value of 100
Ms2 has associated PWM2 with a value of 50
MsPause stays constant all the time.
Ms2 (or better the associated motor winding) will receive 50% of the voltage that MS1 received.

The point is that the higher the PWM values are, the more you strain your CPU as well. The lower they are the less margin you have for adjusting them for smoothness.  Interestingly using the same motors, a high PWM value on a slow machine will result in higher current draw then on a fast computer. I guess it must have something to do with the way the waveform is generated.

In the end we have to find the balance between current draw, reasonable margin for adjusting smoothness and saturation of the CPU, which means:  -High enough PWM values that do not strain the CPU and give us margin to adjust Microsteps, but might result in fairly high current draw -MsPause values that lower current draw and leave us with a PWMRepsTick of approx. 30   Berthold  


MSPauseX – dummy loop at end of each PWM[] loop to take up time.  After equalizing the microsteps, use an ammeter to adjust MsPauseX till the current reading is no higher than the rated wattage of the steppers when the system is in track mode   Chuck Shaw


Lowering the numerical values (of MSPause and MSDelay) gives you more juice to the steppers. Raising the number values takes away juice.   Lenord  Stage


MsDelayX sets the overall frequency of the PWM (the Humm) 

MsPause controls the Duty cycle (current flow)

With stepper motors (any coil/inductor) as the frequency applied rises so do the resistance of the coil, thus you need to adjust the duty cycle to compensate to get the current flow back up, as current flow often = Torque.          James Lerch


Q.  I have found that THE MSPAUSE IS VERY IMPORTANT TO PULSE METHOD, with this parameter, 1 you can adjust the width of the "pulse" 2 control that the pulse train has a correct frequency.

A.  Yes, on faster computers, this is very true. My testing is usually on slower 486/pentiums, and they are not so sensitive since their cpu speed is so much slower.  Mel Bartels  


With a pointer on the motor shaft, and the invertoutput set correctly, select MSDelay=1, use the tracktest (now Motors | MSSpeed) and set the rate to step the motor at about 20-30 ms/second. Then vary MSPause up and down in value looking for smooth motion at the lowest current reading (this is a tradeoff, too low  current will get jerky). 

Then increase MSDelay=2, and repeat looking for the best tradeoff between smoothness and low current.

Keep increasing MSDelay and repeating the MSPause/Current experiment till you feel things are not improving. I suspect with a 30mhz machine you would not go beyond MSDelay=2 or 3, and for your 50mhz machine maybe you would get as high as 3-4 in your testing.....

Also watch the PWMReps value being displayed. If its not in the 30-60 range, decrease ALL the PWM[x] values in your array by the same  percentage (i.e. reduce them to 50% of their current value, or maybe 70% or 80%, etc..... That will help increase the PWM's being displayed. A very low PWM will work, but its hard to get smooth motion at very low PWM's being displayed. Setting the PWMRepsTick in config.dat does NOT change the PWM's being displayed.... The PWMRepsTick in config.dat is part of what tells scope.exe how fast it can track in ms mode. The displayed PWM value is showing you what your CPU is able to do. When you are all done tuning, set the PWMRepsTick in config.dat to the value shown on the display...

Once the MSPause/MSDelay setting are picked, then move to tuning your ms's to get smoothness there, using a very slow ms/second rate (0.5 to 1.0 ms/second).   Chuck Shaw 2777


I've seen laptops that operate nicely with a couple of sets of numbers, yet operate rougher and noiser if you pick numbers between... Mel Bartels


From my understanding PWMRepsTick is derived from MsDelayX. Basically decreasing MsDelayX will increase PWMRepsTick with the maximum value you can achieve on your machine reached when MsDelayX = 1 (About 180 on my 486 laptop). As you change MsDelayX and thus PWMRepsTick you change the frequency of the pulses sent to the motors which changes the frequency the motor tends to vibrate at which you can hear via a change in the noise pitch of the motor. It would seem that a MsDelayX = 11 is produces the frequency at which vibration is at a minimum for your setup.

MsPause will change the effective current you supply the motor with so that by increasing MsPause you will decrease the current used by your system which may make the motor run smoother but will definitely reduce torque.  Increasing MsPause may also reduce PWMRepsTick to a lesser extent than changing MsDelay but I cannot remember at the moment.

After all the above I truly believe the best way to set MsDelayX and MsPause is to use the AutoMsParms feature which will automatically work out the values for you if you give it the PWMRepsTick and % current values you want to use.  Andy Martyn


MsPause adds dummy loops to the PWM cycles. Those dummy loops strain the CPU, which is why normally you should keep them low on slow PCs.  An indication for, whether your computer keeps up is the PWMRepsTick.  If it goes below 25 then smoothness of microstepping will be seriously compromised. I got a decent balance between smoothness and power consumption at around PWMRepsTick 35 on my old 386.


MsPowerDownSec 600 in config.dat that will keep the motors powered if no movement for 10 minutes  Mel Bartels


How did you set your MsDelayX and MsPause???? It has been my experience that unless these are set pretty close first, it is impossible to get any good results with setting the PWM[x] values......

The technique I have found to get pretty close values for MsDelayX and MsPause is as follows (this came originally from Tom K.):

1. Hook up an ammeter to the power to the motor. attach a cardboard pointer about 8-10" long to the motor shaft (you need a good visual indicator for the first part of this technique, NOT something super accurate for movement measurement....)

2. Start with the default values for PWM[x] in config.dat. Use the test routine to run the motor at about 20-30 ms/sec

3. Pick a value of MsDelayX, and then use the menu test routine to vary the value of MsPause up and down until the motion is smooth. Watch the current going to the motor, and try to get as low of a current reading as you can, while still achieving smooth motion. Write down the MsDelayX and MsPause value that goes with it.

4. Pick another value of MsDelayX, and repeat step #3.

5. Repeat step#4 as many times as you feel you want to.....

6. Update Config.dat with your best combination of MsDelayX and MsPause, and  THEN (and ONLY then) you can attach a laser pointer or an encoder to the motor to adjust the individual PWM[x] values to achieve individual ms of equal size.

7. Set the rate to zero ms/sec, and then use the +/- keys to move the motor one ms at a time to adjust the PWM[x] values. You can take as much time as you like between commanding the motor to the next ms.

8. Once you think you have things about right, repeat step #3 to verify the MsPause value you are using with the MsDelayX still gives smooth motion at 20- 30 ms/sec. If yes, you are done. If you had to tweak anything while repeating step#3, you will also have to repeat steps 6 and 7.....

This is an iterative process, and one that should NOT be rushed. Enjoy it, the results will amaze you and really be worth while at the eyepiece!!!!   Chuck Shaw   5630


I just came in from tweaking the msDelayX and msPause setting for my scope due to too much "jitter" in the eyepiece. I was operating at 715x looking at Mars and the image had an annoying viabration to it. I am using 0.9 deg vexta motors, and 32 ms. I also have QSC and current comps in config.dat.  The ms spacing is very even. I think the viabration from the motor is coupling into the structure of the mount.  The system works well for deep sky imaging.

I was able to pretty much totally eliminate the vibration by letting the system track Mars, and going to Motor/msparams, and adjusting msdelayx and mspause while watching the results in the eyepiece and watching an ammeter in series with the power supply input to the PCB. 

I had previously been using MsDelayx=2, and MsPause=112. Things smoothed out when I changed things to MsDelayX=1 and MsPause=200. The current also dropped, which seems to have the effect of making the "energy" in the motor's pulses weaker, and thus coupling less energy into the structure.  The sound is also a bit "smoother"....

This was the first time I tweaked the motor tuning steps while tracking something at high power to see the results. Its a pretty easy way to get things really smooth!  Chuck Shaw


Q.  What is used to determine the current percentage? Is it the motors voltage rating and the voltage used to power them? I'm thinking that if 6V motors were powered with 6V, then the current percentage would be 100%. A 6V motor powered with 12V would be 50%. Is this correct? 

A Correct. Also, during microstepping, you usually don't need all the torque that the motor can deliver, so you can reduce current percentage down by another half often. This makes noise quieter and saves battery.  Mel Bartels

A.  Yes   100 % means only relative and not the absolute value of the current. The beauty of mels system is that it uses Pulse width modulation to achieve microsteps. What is meant by 100 % is that the pulse is "on" at all times and motors draw as much as they can. and by 50 % means that the pulse train has "on" states 50 % of the time or in other words the average value of the current is 50 % of max . If u use a 6 V stepper on 12 volts the current drawn by it in the 100 % will be double the current it will draw at 6 V .  Higher voltage is prescribed so that u can manage a higher RPM. .  Sanat Kumar-


On my 486DX-25 I use:

MSdelayX 1

MSPause 0

MaxPWM 100

PWMRepsTicks 180

This is the max at which my computer will run at. I have tried lower PWMRepsTicks but the higher values give lower vibration.  Andy Martyn


Q.  Are the following parallel port "out" commands exactly the same for micro-step one?

 Out 1
 PWMRepsTick = 40
 MaxPWM = 100
 PWM[1] = 90
 MsDelayX = 2
 MsPause = 50

 Out 2
 PWMRepsTick = 40
 MaxPWM = 200
 PWM[1] = 180
 MsDelayX = 1
 MsPause = 50

A.  MsDelayX doubles each PWM output, so the two options are essentially identical. el Bartels


Q.  Can you give a brief description/explanation of how 'auto adjust ms parms' works? 

A.  Well, there are three values

The pwm value which is the frequency of the pulse width modulations (times this number by 18 to get pwm freq per second, ie, a value of 40 means close to 600 Hertz) 

The mspause which is the dead quiet time at the end of every pwm (adjusts voltage or current level into the motor) 

The msdelayx which allows for equivalent smaller pwm values which is good for the software so that you don't push the old DOS memory limits, ie, a pwm[0] of 50 0 with msdelayx of 2 is same as pwm[0] of 100 0 with msdelayx of 1 the auto adjust ms parms menu option calculates these values for you, given a few seconds of time, based on your desired current percentage and desired pwm number   Mel Bartels


Auto Ms parms, under the control section.  Here, you input the desired PWM repetitions per timer tick, and the percentage of current draw you wish going to the motors, and the program will do its best to settle in on the appropriate MsDelayX and MsPause values. Values are updated every 3 seconds, so allow a few seconds for the program to reach the best numbers. Desirable PWM reps per tick range from the lowest suggested of 10, to the best range of 30 to 100, with 200 as highest suggested. Percent of current draw should be minimized so that only the current required to microstep track is actually pulled from the power source. For instance, with 6 volt motors and a 12 volt supply, current % should be no more than 50, and can often be 20%. In combination with the new auto PWM reps tick averaging, this should speed up  configuring the microstepping parms.             Mel Bartels


Maximum microstepping speed is MaxIncrMsPerPWM.  At some point before reaching this speed, the program will switch from PWMs to halfstepping, this speed being MsHsToggleIncrMsPerPWM.  MsHsToggleIncrMsPerPWM should be less than or at most, equal to MaxIncrMsPerPWM.     Mel Bartels


make MaxIncrMsPerPWM equal to half of your total microstep number, and make MsHsToggleIncrMsPerPWM about half of that. Mel Bartels 2795


Microstepping switches from pulse width modulation to halfstepping at MsHsToggleIncrMsPerPWM. Microstepping speed using halfsteps can increase to a maximum of MaxIncrMsPerPWM. Either employing pulse width modulation or halfstepping, the current to the windings is timed by the PWMs that occur approximately the same count per bios clock tick. This is to be distinguished from halfstep slewing which is timed differently.   Mel Bartels


Let me try to explain these variables.          MaxIncrMsPerPWM    MsHsToggleIncrMsPerPWM

The motor needs a small period of time in order to feel or sense the pulse width modulations. The PWMs are a fast series of ons and offs sent out through the parallel port to the amplifier circuit. If these occur rapidly, the motor feels an averaged value. For instance, if 50 ons and 50 offs, then the motor will feel a current or voltage as 50% of maximum. So this combined series of ons and offs have to occur over some finite small period of time in order for the motor to feel or sense the desired current.  

This value, from my empirical experience ranges from 300 to 2000 Hertz (frequency per second).  

Now, if you are doing a PWM displayed value of 20, and knowing that the timer tick on all PCs operates at 18Hertz, your PWM frequency is 360 Hertz.  So that's ok.

But that also means that you can only step through 360 microsteps per second.

Consider a PWM displayed value of 110. That computes to 2000 Hertz. But the difference from the first example is that you can do 2000 microsteps per second.

When I went from 10 to 20 to 40 microsteps capability in the software, I found that the maximum microstepping speed dropped too low for my tastes. I reasoned, why should people running at 40 microsteps be penalized to moving at maximum microstepping speed 1/4 that of people using the 10 microsteps per second? In addition, when moving at highest microstepping speed, the microsteps occur so rapidly that it is not necessary to have such fine microstep resolution. So, why not allow the people running at 40 microsteps to temporarily pretend that they are using only 10 microsteps and thus move at 4x the maximum microstepping rate they would otherwise have?

Hence, the MaxIncrMsPerPWM value was born. That is the number of microsteps that can be skipped. If running at 40 microsteps, and this value is set to 4, then at maximum microstepping speed, scope.exe skips to every 4th microstep value, or in effect, treats the microsteps as if there were only 10 per fullstep.

Whether you can achieve that rate of speed with your motor and power supply considering the torque loading or friction on the motor shaft is another matter.


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)

Now in order to move even faster, how about if the PWMs are set to maximum voltage once the microstepping speed exceeds a certain value? That's where MsHsToggleIncrMsPerPWM comes in.

I did this mainly for tracking through high altitudes in the 89+ degree range. You can watch the program start to skip microsteps and eventually move into full current halfstepping (in effect, skipping microsteps down to the halfstep level). If all works with motor shaft friction and power supply and so on and so forth, the scope will smoothly track through a very high rate of speed, up to 1 deg/sec.

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.    Mel Bartels


Lets assume: PWMRepsTick = 50

MaxIncrMsPerPWM = 8

MsHsToggleIncrMsPerPWM = 4

Ms = 32, and microstep size = 0.2 arcsec

When the scope is tracking the scope will switch to halfstepping using timing based on the PWM rate when it hits  MsHsToggleIncrMsPerPWM. This will occur when the number of microsteps required to be moved per PWM exceeds 4 which equates to a tracking speed of 18.2 * 50 * 4 * 0.2 = 728 arcsec/sec. 

The drive will then continue in tracking mode using halfsteps timed by the PWM rate until it gets to the next limit set by MaxIncrMsPerPWM at which time it will exit tracking mode and go into slew mode. The tracking speed at which this will occur in the example given will be 18.2 * 50 * 8 * 0.2 = 1456 arcsec/sec.   Andy Martyn


MaxIncrMsPerPWM sets the acceleration rate for microstepping slew. This parameter is used by Scope when it moves the mount on "its own", that is as the result of the difference between target coordinates and where scope is pointing at. If you press your handpad button in microstepping mode there is no acceleration - it simpley picks the rate given by MsArcsecSec and applies it flat.  Now, look at the above parameter (MaxIncrMsPerPWM) : it tells program how many microsteps can it add EVERY PWM (not bios tick!). There could be lots of PWMs in case of fast PCs. Even with my ancient 486 I'm reaching 250+. Now 5 microsteps doesn's sound much, but accumulated over every PWM that is a LOT of microsteps in a very short time!  200 PWMRepsTick means that every second there is 200*18.2=3640 PWMs.

If you have MaxIncrMsPerPWM set to 5, even if you start at zero, at the end of first secound you would reach 3640*5 = 18200 microsteps per second ! That is a LOT ! Of course Scope will not let this happen and will switch to halfstepping long before, but that's not the point. Point is that this acceleration rate is way too high. Motors have no chance to keep up, so even when Scope switches to halfstepping, the rate of pulses is way too fast for a stationary  stepper (as it will be just jittering at this point). In other words, motor will make a 'bliiip' noise, but not move.

My suggestion is that eveyone starts with MaxIncrMsPerPWM of 1 and gradualy increase it (which I can't really see the need for, all this will only be used for very short slews like applying the final correction at the end of the long slew - so who cares if it takes say 2 seconds instead of 0.5 seconds). Especially for people with ultra high PWMRepsTick - I'd say that even going to values less than 1 (0.5 or 0.2) for MaxIncrMsPerPWM could be in order.   Bratislav


100 microsteps or 256 or 1000 microsteps can be implemented with my code, but then the issue becomes one of managing all those steps and trying to tune them. I think 32 microsteps the optimum compromise.Mel Bartels


Q.  have been trying to tune some RS Component steppers cat#440-442, 200 step 5v 1 amp. I am unable to get them to rotate smoothly in microstep mode. I have tried 2 laptops, a Toshiba 486 33mhz, and an IBM 2.0 gig p4. Using a 12volt battery power supply.In all cases I get a sort of cogging rotation, slow/fast, a bit like a second hand that does not smooth out despite many hours trying various combinations of parameters. I have tried 10, 20, 32 and 40 microstep versions, and every conceivable figure for mspause and ms delay, had currents up to 1.5 amps flowing and I have had pwm figures from 15 through to 100. Has anybody ever tuned these to work smoothly?

A.  Most likely causes of erratic motor operation:

--- not running in a pure DOS environment

--- other software running in the background like device drivers

--- power saver mode on, in BIOS, in a device driver, in the operating system

--- inadequate power supply

--- bad circuitry

--- mistuned software configuration     Mel Bartels


1. make microstep speed as high as you can - eventually the software will not be able to keep up, and or the motors will be unable to handle the startup inertia and stall    Mel Bartels


You can use the hotkeys of F1-F4 to simulate the handpaddle buttons for microstepping motion.  The F1/F2/F3/F4 keys actually do microstepping.                    Mel Bartels


Do this with menu selection:   motors | auto adjust ms parms set pwm for 30 or 40, and current at 100% (assuming 12 volt supply and 12 volt motors, if 6 volt motors (and 12v supply), then set current at 50%); let run for a few seconds to stabilize now hit the f1 or f3 keys and see if the motor turns in microstepping mode go into menu selection   move | halfsteps   entering 400 steps - see if motor spins  Mel Bartels


There are 18 ticks per second, so you want the motor to feel several hundred to a couple of thousand PWMs per second for smooth motion.  The software may be a tad slower now but should not be too much slower - this is because of the additional code in the microstepping function that automatically turns off the non moving motor after 5 seconds, and that automatically switches to halfsteps for tracking when necessary.Mel Bartels


Try to pick motor speeds where you have a whole number of microsteps per timer tick which occurs 18.2 times per second)                Mel Bartels  


AccumMs. are the motors' absolute position in accumulated microsteps  Mel Bartels


Q.  Why 32 microsteps max? Is there a specific reason for this number?

A. Yes, there is a reason. I use integers for fastest speed for the slower computers. It is possible to run over the max integer at 32k if you have larger MaxPWM and higher count of microsteps per fullstep.  I will probably convert these numbers to 'long' values when the slowest computer in use running scope.exe can handle them with decent speed.  Mel Bartels


The ms parameters (PWM[x]) can be tailored to each motor.  However the parameters that control current (MsDelayX and MsPause) are common to both motors.   Chuck Shaw


Q.   ...when I turn tracking on (just having the RA/AZ motor connected it just sits there juddering erratically. 

A. Have you adjusted the microstep speed, via the menu option msspeed? Go to a little lower speed.   Mel Bartels


you can calculate % of current by:
MaxPWM * MsDelayX  /  MaxPWM * MsDelayX + MsPauseMel Bartels


Go to Motors | msparms    use the + and - keys to advance/decrement single microsteps

Check the display in the lower right to verify that steps are being made

After you cycle through all microsteps (beginning at 'A00', for example)  you will be on next fullstep indicated by a 'B00' and so forth


To disable microstepping, do not turn on tracking, and leave the handpad in halfstep mode. Mel Bartels


Q.  Is it possible to turn off microstepping? 

A.  You might try setting MsHsToggleIncrMsPerPWM 1. No guarantees!  You might also try a microstep setting of 2 with PWM[0] and PWM[1]                    Mel Bartels

I have done that for setting up a drive testing system and it works just fine. PWM[0] was 100:0 and WM[1] was 100:100     Chuck Shaw


Changed how the end of each bios clock tick cycle terminates the pulse width modulation. This cycle occurs 18.2 times per second. Now the PWMs are immediately terminated and the motors set to power off condition. Mel Bartels


Microstepping power down occurs regardless of motor's shaft or rotor positioning. Before, power down would only occur if rotor positioned on a fullstep. If the motor is not commanded to move in microsteps during an interval lasting MsPowerDownSec, motor will be powered down. Any subsequent microstep command will power up the motor.Mel Bartels


..that backwards microstepping jitter and possibly missed steps came from the MSPowerDownSec. Apparently when moving fairly slowly, as the motor would reach a winding and then immediately power down, the motor would sometimes kick back to the previous fullstep thanks to residual magnetism in the stepper motor windings and torque on the motor shaft. So I have changed this to not power down the motor for 5 seconds. This seems to be the ticket. So for equatorial mounts, the declination motor will humm in place for 5 seconds, then power down, after concluding a slew. Mel Bartels 109


In addition you can turn off microstepping completely for the declination motor via the menu system. This is handy if you have a perfectly  aligned scope with no practical declination drift.   Mel Bartels


it is possible to bring the dec motor to rest on a fullstep. You can do this by hitting the 't' for track on/off twice rapidly. This forces the dec motor to the nearest fullstep to end tracking, then resumes RA motor tracking immediately. Mel Bartels


MICROSTEPS - ADJUSTING:    http://www.bbastrodesigns.com/operate_microstep_config.html 

The "Ms" area shows the number of microsteps per timer tick (occurs 18.2 times per second) for altitude and azimuth motors, the winding from 'a' to 'd', the microstep within the winding for altitude and azimuth motors, and the quarter step correction for altitude and azimuth motors in decimal fullsteps.     Mel Bartels   4201


The microstep display line on the lower right hand side of the screen will always indicate what winding and what microstep you are on, for each motor.  For example, this screen shows the altitude/declination motor on winding C microstep 0, and the azimuth/right ascension motor on winding A microstep 0.     Mel Bartels


Lots of things can change the evenness of the (micro) steps, such as increasing the torque load by unbalancing the tube assembly.             Mel Bartels


To step through individual microsteps, go to the menu option:
motors | msparms and use the + and - keys to advance or retreat individual microsteps.
Use the 't' or 'q' key to quit.                mb


If using an equatorial mount, tune your motor with the other motor powered down, since most of your time will be spent with the declination motor powered off.  mb


what you tune (on the bench) with a touch of drag on the motor shaft is fine for use at the scope. The steps mainly have to be smooth and roughly similar in size unless the gear ratio is very small in the 300:1 area. I've never gone to great lengths to tune my motors at the telescope (a 20 inch f/5) as local seeing effects obscure issues below 1 arcsecond anyhow.  Mel Bartels


I totally agree with Mel's opinion that smoothness is more important than totally even ms's. I use my Alt/Az scope almost totally for CCD imaging with my CB245. I have not gone to any greater lengths than using a pointer on a motor to get the smoothness and even-ness settings. Visually (watching the 8" long cardboard pointer tip thru a magnifying glass) gets me very close to even ms's (I use 20 ms's). My step size is only 1.5 arcsec/full step though, so I rationalize the very slight potential unevenness as being buried in lots of other errors like seeing, etc.. I suspect I will remeasure things with a mirror on the motor shaft and my laser collimator bouncing off the mirror just to see how accurately I CAN get the steps, but that is stuff for cloudy nights.....

I use a simple and quick technique passed on by Tom Krajci for getting the motor motion nice and smooth:

Hook a pointer up to your motor (cardboard, about 8" long or so) Configure an ammeter in series with the power going to the motor (use the highest range initially).  Use the Test Motor routines [note: these routines are no longer in the software- use MsSpeed from the menu - bd] to start spinning the motor at about 20 to 30 ms/sec.  Pick a value for MsDelayX, and then vary MsPause up and down watching both the motion of the pointer tip and the current the motor is drawing.

Write down the MsDelayX and MsPause value combination that gives the smoothest motion for the lowest current drawn. As current decreases, the motion will be less smooth. At too much current, the motion is smoother. The idea is to lower the current till the motion starts to NOT be smooth, the raise it a little. You will be surprised at how changing MsPause by only ONE number will make a big difference when you get close to the optimal values....

Repeat this for other values of MsDelayX. Then pick the best of the different MsDelayX/MsPause combinations.

THEN lower the rate the motor is spinning from 20 to 30 ms/sec to around 1 (or less) ms/sec and play with the PWM [x] values to get the ms's each of equal size.

Finish up by re-checking the MsDelayX and MsPause settings at 20 to 30 ms/sec again to see if MsPause needs to be tweaked a tiny bit.   Chuck Shaw


Some of the things that I have learned with my motors are.  First that the step sizes get much more equal if you use higher current.  I run my steppers at 12 volts and they are rated at 5.2V 7.28Watts which means I'm pulling .6 amps at 12 volts instead of the .1 that’s recommended.  This gives me good motion both forward and reverse.  Second my steppers would not draw constant current through the halfstep.  The 1/4 point drew less and the 3/4 point drew more for all four full steps so that the current would oscillate from .4 to 1 amp as the motor microstepped.  The slower the step rate the more pronounced the Oscillation.  The motors turned very smooth and even on the bench but this change in current was evident when the motor was mounted to the scope.  I fixed this by altering the PWM values.  I got the microstepping equal then I took the ones that were drawing to much current and lowered both sides of the PWM values so as to maintain the same ratio.  So now not all of my MS have a PWMmax of 100 some are lower and the current draw is smooth and so is the motion on my scope.  I did use the QSC to help equalize the 1/4 steps. This helped but I still want to measure some more.  You have to make sure that the laser is mounted really firm and the motor vibration does not change the motor orientation.

One last thing.  If you can measure the current draw during the 4 fullsteps you might find that the large change in half step sizes is due to a big change in current for phase A B C & D.  You can control this with the (current compensating) software also which should change the half step sizes.  It is explained briefly on Mels web page under configuring the software close to the end.  It was page 8 of 10 on my hardcopy.                          Andy Martyn


Made laser spot analysis over a four-fullstep interval. (That was tedious!...and for two motors!!) Set the first laser spot (microstep 0 of the first fullstep...where winding A is energized) as zero and measured the distance of every laser spot from this 'zero point.' I did this all the way up to the next time the A winding was energized, at microstep zero. This point was the end of my four fullstep analysis. The distance between the first and second point (first time A winding was energized, and the second time the A winding was energized) was my baseline distance...and I divided that distance by the 80 microsteps in between to determine the "ideal" spacing of micro, quarter, half, and full step positions.

Then I loaded all the distance data of the 80 microsteps in a spreadsheet and compared the real world distance data to the 'ideal' positions. Based on the difference/deviation of real world data from 'ideal'...that was the basis for my QSC values for each motor. (Actually I did a linear fit to the data deviation, every quarter step.)

I've uploaded the spreadsheet I used to do this analysis to the list's "microstep" file area...it's called: QSC.XLS.    Tom Krajci  2682


Start scope.exe. Using MsSpeed in the menu set microsteps at 1/10 (.1) microsteps per second. This will give you 10 seconds between each microstep and allow your test apparatus to stabilize between readings. If necessary, stop down your laser pointer with a piece of tape with a pinhole in the middle.

At step 0, make a pencil mark in the center of the dot. As the program advances, keep marking each microstep in a like manner, making marginal notes where necessary.    Bob Norgard   http://home.gci.net/~rnorgard/Scope/Microsteps.html" 


Q. Did you "curve" the paper you took the data points (microstep lengths) on to match the radius of the data points or did you just keep it flat, and use a long projection distance to keep the tangent error small? (I assume the latter)

My projection distance was about nine feet, with the mirror on the shaft (to double the angle sensitivity of the setup). I did not bend the  paper...and for analyzing movement over only one motor step (1.8 degrees for a 200 step motor) you can get away with that.

Even for four fullstep analysis I did not bend the paper...but I did apply a trig correction to the data to reduce the distance values on flat paper into angles at the motor shaft. In that case I needed to keep track of where along the trail of spots on paper that the projection angle between the paper and laser spots was perpendicular...that was my 'zero trig correction factor' point, and I adjusted from there...which is not hard to do with a spreadsheet...the relationship/correction factor is something like (in Excel spreadsheet language):   =1/((TAN(C2*PI()/180))*(180/PI())/C2) ...where in this case C2 is the cell value in my spreadsheet that represents the angle distance of the laser spot from the 'zero trig correction point' (the point where the laser line of sight is perpendicular to the paper).            Tom Krajci    2710


I don't know if Vincent Steinmetz's method of determining the PWMs ever made it to the list... here it is in case not...  Mel Bartels

"I just have tuned pwm table, because astromeccanica motor makes 11.25 arsc per step, after testing everything i could test , with not much success , i did following :

(1) I have constructed a cosinus current from 0 to pi/2 curve from 600mA to zero on paper.

(2) Then i have make a second curve with intensity i could measure in mA in one coil versus the corresponding PWM value ( i started from 200 down to zero ) : this curve makes easy to choose any intensity , and to "read" the PWM value with the graphic.

(3) On the first curve, i cut the curve in 40 step, and for each step i take the current value on the cosinus curve, then i search the corresponding PWM value with the (2)

(4) i take "opposite" value for the second pwm value

(5) When scope is tracking , motors are fed with cos/sin current, and motion is very smooth.

(6) To fine tune , i make a third graph from agular value ( 40 values from 0 to pi/) versus measured position in mm.

I take ideal position in mm, and i read the ideal angular value , i put the value of current on the cos curve, and finally the PWM to take. I wanted to tell this first to you, since i did not know the right words in english, but i feel it is a good method, and it is not iterative : for example the spot never stops or go"back" , as it did when i tried other method ...One advantage is with this kind of PWM table, an example of what i get is this :

PWM[0] 201 : 0

PWM[1] 200 : 110

PWM[2] 201 : 132

PWM[3] 201 : 145

PWM[4] 200 : 152

PWM[5] 200 : 158

PWM[6] 199 : 162

PWM[7] 198 : 167

PWM[8] 197 : 170

PWM[9] 197 : 172

PWM[10] 196 : 174

PWM[11] 195 : 176

PWM[12] 194 : 178

PWM[13] 193 : 180

PWM[14] 193 : 181

PWM[15] 192 : 183

PWM[16] 191 : 184

PWM[17] 190 : 185

PWM[18] 189 : 186

PWM[19] 188 : 187

PWM[20] 187 : 188

PWM[21] 186 : 189

PWM[22] 185 : 190

PWM[23] 184 : 191

PWM[24] 183 : 192

PWM[25] 181 : 193

PWM[26] 180 : 193

PWM[27] 178 : 194

PWM[28] 176 : 195

PWM[29] 174 : 196

PWM[30] 172 : 197

PWM[31] 170 : 197

PWM[32] 167 : 198

PWM[33] 162 : 199

PWM[34] 158 : 200

PWM[35] 152 : 200

PWM[36] 145 : 201

PWM[37] 132 : 201

PWM[38] 110 : 200

PWM[39] 24: 201

the qsc position are also more stable , more near to the mean value."


you can use the quarter step correction (QSC) to fix microstep positioning, particularly if the microsteps are fairly evenly spaced but yet tend to bunch up such that the middle microstep comes early or late.


.14 amps current consumption while microstep tracking is close to ideal for many people - it's more a measure of the friction requirements of the drive reducer than anything else     Mel Bartels


I see significant improvements going from 10 to 20 microsteps, and others like Tom Krajci have seen benefit going to 40. This is not only in terms of smoothness but also in terms of absolute positioning. As you mention, the software allows compensation to make each microstep meaningful     Mel Bartels


Q.  The motor has not load. Is it necessary to do the adjustment with the motor under load?? 

A.  Highly recommended, even if you have to put a little clamp on the stepper motor shaft while tuning the microsteps. Mel Bartels


I found that the way to adjust the microsteps is go into the MsParms menu where you can advance the stepper motors one microstep at a time using the + and - keys and adjust the PWM values in the same menu. This feature only works for the Altitude motor output so to tune the Azimuth motor you have to plug the Azimuth motor into the Altitude output. The standard config file only has one set of PWM values but you can create another set of values called PWMZ that will be for Azimuth motor while the existing PWM values will drive the Altitude motor.

I always start the tuning with 10 ms. I get that evened up and double it, (Press D on the MS#). After 20ms is even, I go to 40.   ls


You should mark the A0, B0, C0, and D0 positions first, based on actual pointing, and not on calculated position. These are fullstep positions and are motor/gearing dependent, not software or voltage dependent. Now you can go back and adjust the microsteps to evenly fill the gaps between the fullstep positions. Variations in fullstep position from the ideal need to be compensated with the quarter step correction (QSC).  Mel Bartels


general advice:  Have read through the answers to this question and I can say from my own experiences tuning the motors can be a frustrating process and what you have experienced is not uncommon. From my experience:

1. Try and get motors with halfstep sizes that are within 10% of each other. QSC can make the motion smoother but it you will still have unequal step sizes between difference half steps.

2. Use the minimum number of microsteps you can get away with. The more you have the harder it is to get steps near the halfstep position accurate.

3. If you find you are running out of tuning resolution you can increase the PWM values from the standard 100 to 200 to give more fidelity in your tuning steps. Also increasing current helps resolution so when setting up in AutoMsParms set a high PWMRepsTick and high % current value.

4. Always set the middle microstep to have equal current applied to both coils ie 100:100 and then adjust your values so that you get equal microsteps for the half step each side.

5. Always make sure you are making the adjustments for microstepping over the same coils ie from a0 to b0. If you really want to get technical, get the best PWM values over each of the 4 full steps ie a0 to b0, b0 to c0, c0 to d0, and d0 to a0 and then average them.

6. When marking and measuring the microstop positions always go in one direction which means if you want to measure a position a few steps backwards in the opposite direction, take more backwards steps than you need, and then step forward to the required step. Andy Martyn


One way I like to do it is to set up a laser pointer system (or use a magnifying lens and precision scale with a long pointer on the stepper shaft). Make a mark, move the stepper motor two halfsteps, and make another mark. Now divide that up into 20 steps. Go into microstep track parameter mode, and set it up to do 1 microstep per 10 seconds.  Tune that microstep so that the pointer goes 1/20th of the way. You have 10 seconds... :)                     Mel Bartels


Generally, when expanding the number of microsteps, only lower the last value a bit. So if PWM[9] = 30 and you wish to go from 10 microsteps to 20, make the new PWM[19] = 27 or so. The proportion the other values accordingly. If you get into real trouble, a linear progression will work, but the motion will be a tad uneven. But you can adjust from there if nothing else seems to work. Generally the PWM[] numbers will follow a sin/cosine type curve or progression.    Mel Bartels   378


Stepper motor construction 'issues' affect the PWM[] values. You will see, with certain motors, the middle PWM[] value shift earlier or later in the microstep PWM[] series. My basic rule is to make the PWM[] values whatever it takes to get the steps as smooth as possible. Sometimes really funny looking numbers result. A different motor will act differently, but as long as you can reasonably tune the microsteps for smooth motion at the eyepiece, then you ought to consider things successfully configured.     Mel Bartels


1. Set your half step size.

2. Set your half step speed parameters.

3. Put in best guess PWM values for your microsteps,

4. Adjust microstep parameters (MSDelay, MSPause, MaxPWM etc) so that your motor turns with minimal vibration and minimal current.

5. Adjust PWM values for each microstep to get step values fairly even.

6. Do step 4 again.

7. On motor coil a, microstep through a full step and using a laser pointing at a piece of paper on a distant wall mark the starting position, the half step position, and the full step position.  

8. Divide the two half step distances equally by half the number of microsteps you are using and mark them on the paper (As half steps are often not equal, your microstep sizes may be different for the two half steps).

9. Adjust the PWM values for each microstep so they are as good as you can get them and record the values.

10. Repeat steps 7 to 9 for the other three coils (b,c, and d).

11. Average the 4 recorded PWM values for each microstep and use this as your final PWM value.

12. Then the final thing you do is QSC which will even out your different half step sizes on a coil and also the differences between coils.

Andy Martyn   http://www.spin.net.au/~afmartyn/software.html     Andy Martyn


  1. Input guesstimate PWM[X] values for each microstep and then use the AutoMsParms menu to get the motor to turn as quietly and smoothly as possible. I found that the higher PWMRepsTick and higher current values gave me the best result. I ended up with a PWMRepsTick of about 180 and 100% current. The main reason I use 100% current is that I am running 24V motors with only a 17V supply.

    2. The next step is to adjust the PWM[X] values to get the microstep sizes right. To indicate the step sizes I Fattached the laser to the output shaft of the motor and projected it onto a piece of paper about 5m away. I tuned both motors separately and averaged over the 4 coils to get the best possible result but you may get good result by using the same values for both motors and tuning over just one coil.

    3. To tune the azimuth motor you must plug it into the altitude output of the control box as tuning via the MsParms menu only works for the altitude motor.

    4. Using the + and - keys in the MsParms menu move the motor to position a0   and mark the position of the laser pointer on the paper, move to the halfstep position a16 and place another mark, and then move to the fullstep position b0 and place another mark. Then divide the halfsteps into 16 equal microsteps and mark them on the paper. While the marked microstep distances may be different for the two halfsteps by using this method you can keep the middle PWM or halfstep value at 100:100 and then fix the different sizes using QSC.

    5. Now step through the microsteps from a0 to b0 and adjust the PWM values so that the laser points at the correct microstep mark on the paper. After you have done this record the PWM values. This can be a fiddly process and you will probably find that results will change depending on the direction you are moving and the adjustments you make. My hints are to increase MsPowerDownSec to 100 sec so that the motor does not power down at full step positions, always move the motor in the same direction, and after you have made a correction check it by backing off a couple of microsteps and then advance it again to check the adjusted microstep position.

    6. Repeat the previous two steps for the other 3 coils, ie b0 to c0, c0 to d0, and d0 to a0.

    7. Average the recorded PWM values for each microstep and input these values.

    8. Next you work out QSC which is worthwhile if you see large differences between halfstep sizes. First point the laser at the paper on the wall for fullstep position a0 and make a mark. Advance the motor through 4 fullsteps until you get back to a0. Divide the distance between the two marks equally into 16 equal distances which gives you the ideal quarter step sizes. A point to note is that because the motor is moving a few degrees over the four steps and the laser is projecting onto a flat surface you will small tangential errors. You can adjust the marks to allow for this error, or make an adjustment when you are working out your QSC values.

    9. Now just step through the microsteps and mark on the paper where the laser says the quarter steps are.

    10. Calculating the QSC values is then just a matter of measuring the difference between the measured quarter mark and the ideal quarter mark and then dividing it by the fullstep distance. For example if the distance covered by the 4 fullsteps is 600mm then the full step size is 150mm and the differences for the first 4 quarter steps are 0 (the first value is always 0), +10, +5, and -10, then the QSC values are 0, 0.067, 0.033, and -0.067.

    11. This completes the process for the azimuth motor and you transfer the PWM values for the microsteps into the PWMZ values which drive the azimuth motor.

    12. You now plug the altitude motor into the altitude output and repeat the whole process again for the altitude motor.       Andy Martyn


PWM(Z):   In the tuning mode, with your laser pointer etc., put the Dec. stepper on the RA axis and see how well it is tuned compared to the RA stepper. If it still looks fairly well tuned, don't bother doing two arrays.  Lenord Stage


If you find at lower current you have repeatability problems with microstep positions (when microstepping from one direction or the other...the laser spot doesn't fall in the same place for a given microstep), and that increasing current improves the situation, then you are at least partially solving the problem.  If there is no improvement in repeatability in microstep position with higher current, then something else is the culprit.     Tom Krajci


I am using a 133mhz pentium. First to setup your microsteps, Mel has changed this to menu access. Instead of setting the teststring n the config.dat, you go to MOTORS. Under MOTORS arrow down to MsParms. Here you will begin your microstep adjustment. Andrew was correct for my fast pentium, I needed at least a MaxPWM of 200. You may require an even larger value. My final microstep values are as follows:  PWM 57, MXdelay 5, MSPause 90, MS 20, 5 and 5 for the HSdelayX and or HSrampX up and 200 for the MAX PWM. 

PWM (0) 200,0

PWM (1) 200,88

PWM (2) 200,122

PWM (3) 200,143

PWM (4) 200,152

PWM (5) 200,160

PWM (6) 200,168

PWM (7) 200,177

PWM (8) 200,185

PWM (9) 200,193

PWM (10) 200,200

PWM (11) 192,200

PWM (12) 183,200

PWM (13) 176,200

PWM (14) 168,200

PWM (15) 160,200

PWM (16) 151,200

PWM (17) 144,200

PWM (18) 120,200

PWM (19) 84,200

These are the averaged values from adjusting the steps for ao,bo,co, and do. After changing the MaxPWM from 100 to 200, my halfsteps are within 1 mm, and after adjusting the microsteps, I cannot visually see steps in my laser pen rotation. The only need to adjust my mxdelay and mspause a little more, because my motor is still very warm.   Henry Sipes

Q.  My problem is that when set to microstep test mode the first 4 steps are backward to the zero step. The next 16 are forward.

A.  Try some other rotor angles on the stepper motor and if possible try another stepper. Poor or misaligned stepper internals can cause this.

Next, look at the circuit board and make sure that there is no leakage of current from one side of the winding to the other. For instance, if winding A is turned off, make sure no current is flowing through the A- winding.


Q   can we assign different MS values to them also? Like MS=10 for Az and MS=20 for alt?

A.  No, but you can simulate this by making 10 distinct entries in the PWM[] tables, ie make PWM[0] and PWM[1] exactly the same.  Mel Bartels

I mean 10 unique entries, total of 20 since every pair is identical.  Mel Bartels


Q  I just got my steppers motors to micro-step great with a Pentium 90.   If I switch to a faster Pentium computer, would I need to re-adjust any of the parameters?

A.  Just adjust the MsPause to maintain the same PWM repetitions per timer tick  as the old machine. Use the auto adjust ms parms to make this automatic.   Mel Bartels


Q.  It occurred to me that there might be a refinement possible of setting values such that the sum always equals 200. i.e start at 200 0 midpoint 100 100 and finish with 0 200. All points in between to add up to 200. I felt that this would enable smoothing of current flow throughout the step and thus enable a higher current and stiffer motors throughout the step, rather than setting things for peak current.   Tim Scott

A.  This makes for most even current flow to the motor, and may make the motor quieter. Disadvantage is that torque is not maximum while rotor is producing the microsteps between the fullstep positions, thus potentially a source for the microsteps dragging slightly behind. If torque loading is less than 10% of motor output, then this is not a problem.  Mel Bartels  



I encourage anyone that wants to use two serial ports on their old laptop and has an unused internal modem to give this a try, it works GREAT!!!!! The only catch is, of course, that the 2nd laptop (running the planetarium or autoguider program) must also have a modem to interface with... 

I put together a small webpage to describe the technique, what I have to do to configure my system to use this capability, and provide a place to download Dave's program he donated. You can access it at http://www.ghg.net/cshaw/modem.htm

Ben captured the information on his circuit on his website, and the techniques he uses to configure his laptop (which is slightly different than what I need to do). His website is at: http://ben.davies.net/computers.htm The two website are also linked to each other.      Chuck Shaw


Q.  I cannot configure modem. (in DOS)

A.  Do you have a WinModem? Some of them will not work at all in dos.   bd

Q.  are there some PCMCIA modem cards that work in DOS, or do I have any  other options?

A.  I am successfully using a quatech pcmcia serial port adapter under DOS. It has not been a cakewalk to install it.  I ended up booting DOS from a floppy with all the drivers and enablers.  It works, and 2 serial ports are very handy with scope. -Luca Grella

A.  http://www.quatech.com/catalog/rs232_pcmcia.php                ftp://ftp.quatech.com/manuals/ssp-100.pdf http://www.quatech.com/support/discontinued.php   Don D'Egidio

A.  I use, is a docking port which has two serial ports built into it.  Works great without any modems problems.  Gary Mueller

MOTORS – STEPPERS:      http://www.bbastrodesigns.com/steppermotors.html         Connecting the stepper leads     more     Specific Stepper Motor recommendations      Correct Stepper Wiring       5 Phase Steppers


Q.  If you have a 6 or 8 lead surplus motor how can you tell if it is 2- or 4-phase?

A  Mel's program is set up for four phase steppers.  Bob Rubendunst

A.  Almost all 5, 6, and 8 wire steppers are unipolar or 4 phase motors. They only vary in the number of discreet power leads - 1, 2, or 4 going to the windings.  Mel Bartels


CW is clockwise rotation when looking at the motor face on. However, depending on how the windings are hooked up, this can be reversed. Best to trial and error it. CW should cause the motor to move the scope upward or northward or towards the west.  Mel Bartels


Q.  how you calculate for motor requirements:

A.  There are two calculations that can be done.  First is static and dynamic friction requirements. Second is inertia loading.  

The static and dynamic friction calculation is hard to do by equation. Best to simply measure it at the drive input shaft. Attach a lever to the input shaft and measure force required to initiate movement and force required to continue movement. Express in terms of force and distance. 

The inertial calculation can be done by equation but is rarely needed for amateur sized scopes unless you are discussing one meter or so scopes. This equation is based on calculation of scope's moment arm and varies as the square of the geared ratio. So the quick solution here is for heavy scopes with lots of mass in the moving parts to go with higher gear ratios as the square of the ratio quickly brings the required motor force within range.  Again, not something for amateurs and scopes under one meter to worry about. By the way, if gearing is 10 000 : 1, then inertial loading is close to zero for even rather large moving mass scopes and can be handled by a very tiny almost forefinger sized motor.   Mel Bartels


You can easily measure your static and dynamic friction with an adaptor and a small (let's say 40 oz-in or metric equivalent) torque wrench.  You can get a suitable one (cheap, not super accurate, almost throw-away) for very little. Try a couple times reading the maximum reading just before the gauge drops and the scope starts to move for your static and take the average. Take the lower reading once it is moving for the dynamic.  That gives you your start and stop requirements. As Mel stated, the rest is moment of inertia which is only a factor in acceleration and can be compensated for with gearing and slowing down/speeding up your ramp-up speed.  Howard Douthat


Do you need identical steppers?

A.  the motors can be configured individually for the microstepping pulse width modulation, so that the individual
microsteps on each motor can be fine tuned for equal stepping.

The halfstep parameters are not individually tunable - not enough cpu power to turn around and output that kind of individual timing control
in real time!  Mel Bartels


Q. I have two steppers on, one is an astron  23lm-k250-pi (6 leads) the other is a vexta 5 phase a3337-9215 (ten  lead) stepper. Will the 5 lead stepper and the ten lead stepper work together well in this system?

A.  No - cannot mix motor types. Unless, however, you switch to a separate standalone stepper motor controller for each motor that accepts pulse and direction input. You are far better off financially to scrounge another 5 or 6 lead motor from somewhere - a junked printer or a floppy drive for in.      Mel Bartels


Q.  Is there a general relationship between amps and holding torque?

Well, compare the current flow at a common voltage. That's usually a good indication, +- 50%  Mel Bartels


In general, higher winding resistance steppers use less current, tend to be smoother and less noisy, but have a harder time going very fast. So pick your best compromise! You can add resistance in series with the stepper winding if you wish to decrease current usage by the stepper (current usage by the power resister can be substantial) and make the motor spin faster (time constant of the stepper goes down).     Mel Bartels


Q  This motor got exceedingly hot after about 10 minutes so I shut off the system (the motor is cooling down as I write).  What can I do to remedy this heating problem?  

A.  Too much voltage/current is being supplied for the motor's tastes. You can either

1. reduce the power supply voltage
2. use the current limiting add-on circuit by Jean-Charles Vachon
3. use series power resistors - one power resistor of high wattage per motor winding
4. manipulate the configuration settings in config.dat so that the software controls the current going to the motors; do this by a. setting the HsDelayX to a smaller value so that the motors start up slewing faster
b. increasing the MsPause value so that the current is reduced while microstepping  Mel Bartels  494


NEMA frame size 17 specs ..... are a little smaller than a NEMA 23 frame size stepper.  You can buy steppers that size from a number of sources. www.candhsales.com had them IIRC. Like $9.00 each, 200 step, torquey, reasonably quiet and work with Mel's PCB.  Lenord Stage


A few things I look for when I buy steppers:

5-7 volts         single stack (magnets)      1 amp or less      unipolar        3/4" long shaft         .250" shaft dia       400 steps (.9 degree)     dual shafts           Lenord Stage


Q. is it possible to apply microstepping with the various modifications posted for bipolar steppers?  The circuit developed by Marcello Cucchi (Cumarit_PCBs - PCB_L298_&Focus.zip) looks very promising. Any experiences with this circuit, especially concerning microstepping?

A.  As long as you use a bipolar stepper circuit that gives direct control of each stepper coil, such as that used by Marcello Cucchi or various others, then Scope sees no difference between unipolar and bipolar motors ... so all functions are available. I've used a circuit very similar to that used by Cucchi to drive an EQ5 equipped with bipolar steppers with no problems ... except that the slew speed was very slow due to the high ratio gear train.  Bernard Heathcote


if using interrupt method of timing slewing (DOS):  to get speed, take MinDelay and divide it into 1,000,000 to get halfsteps/second for example, a MinDelay of 100 means a speed of 10,000 halfsteps per second if 200 fullsteps per motor revolution, then motor shaft rotating at 10,000/400 = 25 rev per second over one minute, speed is 25*60=1500 rpm    Mel Bartels


Q.   I see that .72 degree stepper motors are available but they appear to be 5 phase motors I was wondering if you can utilize Mel Bartel`s Scope program to control multi-phase stepper motors? 

A. The multiphase stepper motors will not work with my drive circuit or software. Mel Bartels


You can tell which leads are part of each coil by shorting 2 leads at a time while turning the motor shaft by hand.  If the motor offers more resistance to turning, then the leads are common to a coil.  If you get only 1/2 the full resistance, you have a center tap and one end.  Jay LeBlanc


Question: If at one end of a long shaft I attach  stepper motor of normal torque with 6 leads ....and at the other end attach another identical motor. Can the leads be reversed so one will run CCW and the other CW from the same input signal from the program?  I would want to double my torque without doubling the size of the steppers. (space consideration)

A.  Certainly! I did that with an equatorial platform (two motors being pulsed off of one set of pulses). Worked great! You need two sets of TIP120s though, one for each motor......Each "pair" of TIP120's are tied together at their bases and both conduct at the same time. Otherwise running the windings in parallel from a single TIP120's output can screw things up....(at least it did for me).  Chuck Shaw

Bipolar / Unipolar Steppers  

Specific Motors

Q. Can anyone recommend a satisfactory stepper from the C&H website?  http://www.aaaim.com/u/web/aaaimc/cgi-local/shop991/shop.pl/SID=1373528130/page=STMS.htm#SSM2000 

A.  I like the SSM9751.   Mel Bartels


I found 400 step, dual shafted, steppers from http://www.orientalmotors.com Part number PK-264M-01B to be the quietest to date. This is with 4 other steppers tested side by side. Torque output is great on a Pentium class CPU. There is little torque on the 486-25 laptop though. Make sure you have a fast CPU if you use these steppers.  Lenord Stage



A.   HP Laser Jet 2 & 3 have some really nice 6v 200 step motors in them. I'm using a pair of these on my over-weight bino-scope and they work really well.  James Lerch

A.  you can try : http://www.alltronics.com/stepper_motors.htm  they have a nice unipolar that should work for you :

6-WIRE UNIPOLAR STEPPER MOTOR       3.9V @ 0.35A, 1.8/step = 200st.        22M010 $9.95 each

if these get too warm then just add a current limiting resistor . they also have other things you may want .  Prof


Q.  Is there a source for known good steppers and gearbox combinations for a 20" scope to use with Mel's software. I guess I want to know if I did not need to save every last dollar, is there a consensus of where to get a set?

A.  I am rather partial to the Oriental pk264m01b steppers and the RS gearheads.  You can use just about any gearing you wish however. Spurs, wheel and worm, velcro/splined knob, nylon, plastic, HDPE, aluminum, brass, threaded rods, epoxy.  Lenord Stage

A.  I've had excellent luck with the Slow-syn, 5V, 1 Amp motors. I run them at 12V from a car battery and get very good torque.  Larry Bell


The better the motor, the fewer the issues. Probably the nicest motors I've seen are the higher end ones meant for microstepping and the 400 step per rev Vextas which I now use. Mel Bartels


Q.  I have a couple of the HURST steppers with a powerful drive train these motors fit the Byers gears I have perfectly.  However as someone advised me on this forum they are slow motors and he wasn't kidding. SO my question is two fold (1)Does anyone know of a way to increase the speed DRAMATICALLY with these motors. I have been all over the board with the HS parms and there is little they can do to change the speeds with these particular motors without stalling.

A.  The motors I used for my G11 mount were from C&H Sales. Their part number is SSM9354 and they still show them for $8.50. They can not be heard when tracking from 3 feet away, and when slewing the small amount of noise comes from the gearbox and not the motors. I'm using 4 microsteps and they have very even steps, both forward and reverse. It's a very good motor. I'm running with 6V tracking, and 24V slewing.

The website says it has a 3/16" shaft, but the ones I have are 5 mm.   Don D'Egidio


Q.  Has anybody tried these motors or know anything more about them:  Vexta PX245M-01AA 4V 1.2A 400 Steps 2 Phase (unipolar)?

A.  These are excellent smooth easily tuned motors - but watch the current because at 12 volts you are looking at 3x over voltage and 4amps per winding at the start and end of every halfstep move.  Mel Bartels


Q.  I've found some Vexta PX245M-01AA. The specs I can find are 0.9 deg/step, DC 4v 1.2A, 2 phase, 6 wire unipolar.  Are these suitable for driving the scope?

A.  Yes, they will draw a lot of current, so make sure software is always in control.  Mel Bartels


Q . I need a motor that can do 1 amp or operate at 6 volt. What's a good source for these more powerful motors, old printers, etc?

A You can get a decent stepper from www.candhsales.com  , 6 volt/1 amp/200 step/unipolar for $35 each. www.herbach.com  is out of what I like to use at the moment. You can get new steppers from www.orientalmotor.com   Last time I ordered, the 400 step, NEMA 23's, 6 volt, 1 amp, unipolar were $162.00/pair delivered in the US.-        part number PK264M01b   http://www.orientalmotor.co.jp/cgi-bin/WebObjects/UPOMStep.woa/wa/F3?typeNameId=3&modelName=PK264M%2D01B&seriesId=2PK&frameSize=56.4      Lenord Stage


A.  These are the motors that I sell all cabled up and tested. The 75/80 in-oz torque is very strong, and the slew characteristics are acceptable.   Mel Bartels

Q MINEBEA 23LM-K307 Current by phase up to 2A 5 Ohm  1.8 degree / step  60 Ncm at 1.4A (85 oz.in)  57 x 57 x 50 mm  I can t found the voltage.  Would it be OK to use it with Mels drive? 

A.  These are very powerful motors that will draw lots of current. They are great to use but do observe all precautions about motors being powered on only when software is actively running. Mel Bartels


STEPPING MOTOR VEXTA #PH266-E1.2. 200 steps per revolution 1.8° per  step.Permanent magnet stepper motor. Ball bearings. 8-lead. 4 phase.  Coils are rated 6VDC nom. 1.2 amps per phase. Holding torque is 83 oz- in. Running torque is approx. 55oz-in. At 100 steps per second with a unipolar constant current driver. Shaft: 1/4" dia. x3/4" long. Has > 3/16" dia. holes in corners for mounting. Dimensions: 2-1/4" sq. x 2- 3/16"deep (excluding shaft).

A.  These are excellent steppers.   Mel Bartels


I use bipolar Sanyo Dennki steppers with scope. These are 1.8deg 3.6V 1.8A steppers. Use it with discrete drivers based on the schematic  published on Mel's page. I used Philips Darlingtons 8A 100V which work fine. No curent limiting was needed at 16V. At microstepping
these motors take some 300mA, at the start of a ramp may take up to 2 - 3 A. Work quite fine in microstepping. These are good steppers
and require little adjustment of PWM values @ 40 microsteps.  Pawel Lancucki 


I'm currently running these $15 motors I picked up from All Electronics http://www.allelectronics.com/cgi-bin/category.cgi?category=400&item=SMT-67&type=store They work reasonably well at 700:1 gearing on an equatorial mount.  However, if I had to do it again I would go direct to Vexta. Their pricing on new motors is very reasonable and the hassle of finding matching motors on Ebay/other is just not worth the trouble. Also, their new motors have much greater torque due to more efficient magnets. Check out their PK266M-01A on the orientalmotor.com website. It's a 400 step motor for only $79 that's rated at 127 oz/in torque.  Chuck


Mel's board won't drive 5 phase motors, but his software will.  Ben Davies


Q.  Can Mels board be modified to drive these motors directly or is a intermediate driver required?

A.  If you 've got some basic electronics experience, it will be an easy job to modify it yourself.  The original circuit uses for the RA motor parallel port pins 6, 7, 8, 9 and for for the DEC motor parallel port pins 2, 3, 4, and 5. As you can imagine, to drive 5 phase steppers, you need to use extra  pins. These are for RA pin 17, and for DEC pin 16.

Now let's get inspirred by Mel's original design here, http://www.bbastrodesigns.com/cot/steppercircuit.html, and an other  important source of inspiration here: http://www.cs.uiowa.edu/~jones/step/circuits.html.

Follow the first hyperlink above, and check out the second circuit diagram. (I strongly recommend people also to build the  optocouplers, this can limit damage in case of trouble with power supplies). In your modified design you copy for every parallel port pin the left part of this diagram. These are from left to right the 1/4 part of the 74LS04, the optocoupler, the 220 ohm resistor, the 4k7 resistor and the other 1/4 part of the 74LS04. Skip the rest of the circuit. (And of course, you will put these 74LS04's in separate casings). 

Now we 'redesign' the second part, the power section to drive the coils. For every coil on your 5 phase stepper, we need half of the H-bridge design. Go to the picture 3.14 in the second hyperlink.  This circuit diagram was designed for bipolar  steppermotors. Copy everything from 'x' on the left side until the coil. Fix 'x' to the  right (exit) of the right hand 74LS04 of the first circuit part.  Build this for pin 2, 3, 4, 5, 6, 7, 8, 9, 16, and 17, and you can make your 5 phase steppers run. The only other thing that needs to change is one 'config.dat' setting: "MotorWindings 5".

The motor wiring: I hope your motors have got 5 wires. I believe 5-phase steppers can come with 5, 6 or 10 wires, mine have 5. When you have got the wire order OK, you can force your motors to step one-by-one by manually triggering the parallel port on the controller. The steps should be small and in equal size and direction. 

Actually, in my own circuit, I needed to put in some small modifications. I am using transistors I scavenged from an old line 
printer. Make sure you are using Darlington transistors (that's what they actually are). If the BD769 is hard to find, try the  TIP120.  Components really aren't too critical, play with them. You will get your motors running.   Marc Fokker


Q. The declination motor ramps up, but at a point stops rotating, as the software ramps down the motor starts again. I guess this is stalling?    
A.  Yes, this is stalling - the MinDelay is too low (or fast) of a value. You can adjust this through the menu option hs parms. Mel Bartels


Q The steppers will move perfectly, in both directions, if you tell them to "move HS". Both will run very smoothly. But when you give it an object to slew to one or other of the motors will stall.  

A.  An inadequate power supply that is ok for one motor but not two motors working at same time is most likely culprit.  Wire size can constrict  current (think of current as water flow in a pipe and voltage as the pressure behind the water). Halfstep move is always one motor at a time, while a slew to position will almost always activate both motors at once.    Mel Bartels


Q. finally got my nippon stepper motors for my Super Polaris mount, got the wiring figured out and connected them to mels board,  here's what's going on,  the MIN-DELAY- to 900,  and the MAX-DELAY to 2800,  just to get them to move,

A.  Maxdelay is the starting speed. Mindelay is the top speed when slewing.  Raise the 900 to 1400 or so. Stalling should stop.  You might try the max delay at 2300 or so too.  Lower/raise each number by 100 at a time until the steppers stall, then add back in 50. That should get you to the max for each without stalling any further.

Change (ramp speed) to 4 or so after you do the  above.                        Leonard Stage


MinDelay  Unless you are using more than 12 volts or flywheels, getting the MinDelay down to 350 is about normal, if not better than average, from what I have seen. The faster the steppers spin, the less torque they have.                               Lenord Stage


The MsHsToggleIncrMsPerPWM sets the transition for tracking to occur using halfsteps instead of microsteps. If your microstepping is very tiny, or your Ms speed is too high, and this var is set low, the software may conclude that it cannot track fast enough either micro or halfstep, and will sit there quietly awaiting instructions that it can execute!                Mel Bartels


Cut to the chase: I'd located the current limiting resistor in the 24v line supplying both motors. Either motor would run fine on its own, but when running together, the Azimuth motor would stall. When testing, I'd used the handpad to move around - which can only move one motor at a time. Slewing under the stars, I'd not seen or heard the stalling, as the other, louder, motor was still running. Due to my gearing, the altitude movement is quick, so stalling in azimuth was just for a short time... but enough to fubar me. 

Finding the problem was a bugger, but the solution is simple. I added gave each motor its own resistor and the stalling is a thing of the past. Mark Rice



Q.  Got a real surprise when I found that the rms accuracy was 3.2 arcmin and there were no errors greater than 5 arcmin. As the errors were quite random and probably mainly due to gear inaccuracies

A.  Excellent! This is about as good as any amateur mounting gets. The PMC error correction routines, if you can duplicate your errors, will improve this another 10x.  Mel Bartels  


When an object approaches the zenith, the azimuth is basically fixed, and the altitude creeps up to 90. When it crosses zenith, the azimuth must change 180 degrees very quickly, so the altitude can start creeping down from 90 to 0. If the object is too close to zenith, the scope can't slew the azimuth around fast enough. Mike Lindner   129 . ...The zenith problem with alt-az mounts is due to the axis of the mount being different from that of the earth. With an equatorial mount, the problem doesn't exist, even at the pole (assuming the mount is reasonably well polar aligned). 


An Alt-Az mount having perfect orthogonally between the optical axis and the altitude axis and perfect orthogonally between the altitude axis and the azimuth axis can indeed access any part of the sky. But if there is any misalignment between the optical, altitude and azimuth axes then there is a region near the zenith that the optical axis cannot point to.    -Dave Rowe-


To comment on the three mount options:       I strongly recommend roller drives. Either the split ring or the horseshoe or yoke will work fine. Pick the one that you think you will be most inspired to do well. I personally like the horseshoe because it is easy to build very accurately, though it is bulky. Leaving completely assembled and rolling in and out of a small trailer (always packed with the essentials so that you are ready to go at moment's notice) might be a possibility. In the end though, your execution of the design will matter more than the particular design you selected. --  Mel Bartels


Alt-Alt or El-El telescopes (abbreviations for Altitude-Altitude or Elevation-Elevation) look like yoke mounts laid flat. The yoke is horizontal. Typically the polar axis of the yoke points towards a pole, as that area is usually deemed less important and thus left inaccessible, unless the mount is made more complicated by an offset-yoke design or horseshoes at each end ala a mirrored-Palomar 200 inch. By moving the scope in the primary axis, the scope rises in elevation. By moving the scope in the secondary axis, the scope also rises in elevation, but at a 90 degree angle to the primary axis. Since movement in both axes raises the scope in elevation, the name is appropriately given.

For people in the mid-latitudes, field rotation can be obtained by looking at the field rotation of a standard altazimuth (Dobsonian styled) mount near the polar horizon. That is, an Alt-Alt telescope is essentially a Dobsonian that is tipped over at 90 degree angle to point to pole. The Alt-Alt's field rotation at the sky's zenith is the same as the field rotation of a Dobsonian aimed at the polar horizon. A typical rate would be 0.18 degree per minute of time. So if aimed at the sky's zenith, a digital imager can go for several minutes before rotation shows in the corners of the digital frame. A traditional Dobsonian might have say 6 times more image rotation when aimed within 10 degrees of the sky's zenith, and will have to cut the exposure that much shorter.

Consequently, often the imager will keep exposures to a couple of minutes and avoid the zenith when using an altazimuth scope, or, add a field rotator unit at the focuser. This field rotator unit can also be a mechanism that rotates the entire tube assembly, instead of rotating the focuser. Some consider this no more difficult to make than the focuser/derotator. And, it is possible to move this third axis of motion, added to eliminate field rotation, to elsewhere in the mount. More on this in a bit. 

The primary axis of an Alt-Alt telescope need not be aimed at a pole. It can be aimed anywhere, depending on what you wish to optimize. Imagine a star or a satellite moving in a short arc across the sky. It is possible to orient the Alt-Alt in such a manner as to minimize overall motion of the two axes, or to minimize the highest speed of the two axes.

As long as we are moving the Alt-Alt's primary axis in a circle and aiming it at different horizon points, why not turn it into a full fledged axis and motorize it? We have what is called a 3-axis mount, or what I will call an Alt-Alt-Az mount. By suitable orientation, any object (ie, a satellite) scribing a great circle can be tracked with motion in a single axis.

By tracking in the third additional azimuth axis, the field rotation that occurs while tracking a celestial object can be stopped completely. 

For instance, consider the following scenarios (I wrote out an algorithm in Java last night and tonight to do the 3-axis initializations and tracking numbers - that's where the data comes from). All these use my northern latitude of 44 degrees.

Primary axis aimed at northern pole, object at zenith: to null field rotation over a 1 minute exposure, the axes must move the following amounts:  

alt-primary 0.1798 degrees

alt-secondary -0.0012 degrees

azimuth 0.1737 degrees

That's pretty nice - easy small amounts of motion in all three axes to track a celestial object with no field rotation.

Primary axis aimed at northern pole, object in the east: to null field rotation over a 1 minute exposure, the axes must move the following amounts:

alt-primary 0.2699 degrees

alt-secondary 0.1799 degrees

azimuth 0.1737 degrees

Hmm, what's this - the azimuth rate seems suspiciously similar. Let's try it again for an object to the south.

alt-primary 0.1797 degrees

alt-secondary 0.0000 degrees

azimuth 0.1737 degrees

Ok, too much for coincidence, and, if you think about this 0.1737 number, and think about the distance tracked in equatorial coordinates over 1 minute of time, which is 0.25 degrees, this 0.1737 is the sine of the site latitude times the tracking time! No matter where you are aimed in the sky, with the primary axis aimed at the polar horizon, the tracking rate in the azimuth axis is constant.

Let's try this same game but with the primary axis aimed say at 90 degrees azimuth, towards the east instead of the north.

At the pole:

alt-primary 0.0000 degrees

alt-secondary 0.1798 degrees

azimuth 0.2357 degrees

Now aimed at object in the east:

alt-primary 0.0578 degrees

alt-secondary 0.1222 degrees

azimuth 0.2357 degrees

Ah, so the azimuth tracking rate is constant no matter where the scope is aimed with the two Alt-Alt axes, and is about 1.36 times greater with the azimuth axis aimed to the east - hmm, what relationship applies here <smile>?

Remember where I mentioned that the field rotation compensation can be at the focuser, or at the optical tube assembly? Well, it can also be at the azimuth axis of an Alt-Alt-Az scope. We can generalize that any 3 axis telescope can be made to track and null field rotation no matter its orientation with respect to the sky. The 3 axis scope can be an altazimuth-field derotator, or, an Alt-Alt-Az mount.

I an imagining all sorts of interesting Alt-Alt-Az designs that could be built by amateurs with ordinary skills and tools. I have the software routines - any takers <very big grin>?      Mel Bartels   05/27/03


Just returned from the machinist.  Here is a sneak preview of the new (alt-alt-az) mount.

http://www.c2optical.com/3am01.jpg   http://www.c2optical.com/3am02.jpg   http://www.c2optical.com/3am03.jpg  http://www.c2optical.com/3am04.jpg     Tracy Wilson


Q.  Does anyone know an equation to calculate the cg of a "C" shaped figure (my alt bearings) in terms of inside diameter and outside diameter of the "C". I can't even remember how to describe the shape mathematically! The bearings will be 180deg of a circle.

A.  To find out a center of gravity of any shape without knowing its mathematical description or having to make lot of fancy calculations or reading communist literature, there is simpler method possibly sufficiently accurate for practical cases.

Cut out desired shape from cardboard, not necessarily in full size, and hang it on thread fixed subsequently to several points on the circumference. When in equilibrium draw a line extending thread direction ( vertical) across the shape.
CoG will be always somewhere on this line ( per definition).  All such lines will intersect in the CoG. All identical shapes will have CoG on the same relative position disregarding actual scale.  Vladimir Galogaza  atmfree.  
PS   This can be done with the complete telescope in order to find its actual CoG. 

A.  When I can't figure out an integral like that and need an approximate answer I usually use a spreadsheet program to "integrate" the area by  creating 100 or more slices along the curve. Use one column to create the points on top of the curve, a second to create the points on the bottom of the curve, a third to compute the area of the slices, a fourth for weighted areas. Sum the weighted area and divide by the sum of the areas and you have the balance point.  Jeff Andrson-Lee  atmfree

A.  The correct formula is the moment divided by the area. I assume that the ends of the "C" are radii. So the area of the C is the area of a ring times the fraction of a circle that the C includes (typically 3/4 circle).  The moment can be calculated by 2*[ri^3 - ro^3]*sin(t)/3. where t is the enclosed angle (typically 270 degrees), ri is the inside radius, and ro is the outside radius.

Sanity check: the center of mass should be between -r0 and 0.    Richard Schwartz  atmfree


Q.  I screwed a stainless steel plate of 0.5 mm (0.02") thickness, for the six (three pairs of two) azimuth rollerbearings (rolerskate type) to ride on. The stainless is not hard enough to prevent the bearings from tracking 6 'grooves' into the plate. The total weight of the telescope o the bearings is about 66 kilo's (145 lbs).  Would it be better to use thicker stainless? Or is stainless simply too soft  and is there a better material to use (maybe galvanized steel)?

A.  I used 22 gauge stainless to face the rolling surface of my altitude sectors many years ago, thinking it would be VERY hard, Its not, and I have small grooves in the stainless from the bearings it rides on. Does not seem to hurt the performance however.

Since stainless was expensive in larger pieces (at least around here) I use 10 gauge (about 2.5mm) galvanized steel plate under the rockerbox. No grooves! And my total scope with guidescope and cameras, etc probably weighs about 250 lbs! I was concerned the tiny imperfections in the surface would affect tracking, but it does not show up in the eyepiece or ccd. It was also very cheap (a 2ft x 2ft piece was only about $15). Make sure the material you get, if you change to galvanized steel) does not come off of a roll, since getting it flat would be difficult.  Chuck Shaw

MOUSE:       http://www.bbastrodesigns.com/mouse.html 

Mouse won't work:     I found that config.dat had listed the LX-200 interface as being on COM1, the same port that the mouse was on. I changed the LX-200 port to COM2, and now the mouse works fine.   Allen Gilchrist


In the old DOS and WIN 3.0 days, there used to be a small compatibility problem with device drivers to support "non-Microsoft Corp. " mice (e.g. Logitec). The windows drivers would work fine, but some DOS applications didn't, unless you updated your mouse driver. It happened to me. New DOS drivers solved it. As I recall, I had to add a MOUSE.SYS statement to config.sys, or MOUSE.EXE to autoexec.bat, to make my LOGITEC really compatible.       Joe Zeglinski


I am thinking about the Gyro mouse for wireless control. Is it easy to use? The note on Mel's page sounds like it might be complicated to use in practice.  Daniel Bakken

I have used it at the eyepiece. You basically 'wave it around' to achieve scope control. It works most of the time but takes practice to get the hang of.   Mel Bartels


NETWORK CONNECTIONS:      see modem to modem

Q.  Has anyone run this type of setup on a network rather than using Null Modem cable?

A. PcAnywhere works, as does xpc (remote control from unix workstation), but LapLink appears to bite too heavily into the cpu time and causes scope.exe to run rough. Tried vnc through windows and that was rough too, but have not had the chance to try vnc-dos yet.        Mel Bartels


Q.  I don't remember what a null modem cable is. Can someone enlighten me?

A. Pins 2 (transmit) and 3 (receive) are reversed. 6 and 20 can be reversed too along with 5 and 8 (???) for full null modem. Most programs are written to use but 3 wires, the 7 pin being the ground. If you hook up to a lease line modem, for instance, all the pins have to be correct.   Mel Bartels

A. Radio Shack and most computer stores carry the NULL MODEM adapters in both sizes. They Look exactly like GENDER CHANGERS though so make sure you get the NULL MODEM adapter.   Ken Hunter

A.  Microsoft's page for cables for direct computer to computer connection http://support.microsoft.com/default.aspx?scid=KB;en-us;q142324 


I control the DOS PC from a Windows PC. The PC running Scope.exe is a DOS machine that runs a DOS version of PC Anywhere. My desktop system is Windows98 and runs a Windows version of PC Anywhere. They can communicate over any of the network common protocols and talk to each other just fine.   Marty Niemi

I have had good luck remotely controlling a DOS 6.22 box using the IPX protocol and old PC Anywhere for DOS. I believe it is something like version 2, which is certainly no longer sold. I have been working this way for quite some time. I ran some simple tests when I first tried this and it appeared to me that IPX took the least overhead on the DOS box. PC Anywhere after Version 9 or 10 no longer supports the IPX protocol.  I believe that others may be using a freeware program called VNC to remotely control the DOS box. As far as I know, VNC is TCP/IP only. The protocol stack for DOS is free from Microsoft.  Marty Niemi


I use a 486DX2 66MHz running Scope with MS LAN Manager for DOS and PCAnywhere 5 for DOS with NetBeui protocol.  Most of the program are loading in the high memory.  This PC is controlled by a Pentium 100 with 32Mel Bartelsand PCAnywhere 9 and Scope is working fine.  They are connected with ISA LAN cards and UTP cable.     Garry Lang


I use it with an older version of Skymap (Skymap Pro 5) running on a Windows 98 Laptop connected to an old 386 Laptop running Scope.exe (old laptops can be found very cheap, $50 or less). I use a Laplink cable to connect the 25 pin printer port on the Windows 98 machine to the 9 pin com port on the Scope machine. I then enable the LX200 commands and open a connection to the telescope on the com port in Skymap. Works just fine.     Brad Davy


Q  How would you recommend connecting the PCs?

A  Ethernet - I use Tridia VNC for remote control.    Mel Bartels


...by using pcAnywhere 5.0 (the Dos version) on the computer running "Scope" and using pcAnywhere 9.01 (the Windows version) on the computer running Windows 98se. By establishing a serial port null modem cable connection and getting every setting correct on both computers I was finally able to use pcAnywhere remote control and remain connected all night.   Rusty Fletcher


...the best solution is to leave the two PC's (one running scope and the other for CCD, planetarium...) in the observatory and to set the cables for the screen and the keyboard (or mouse) in the garage/control. You have also the opportunity to have an other keyboard /screen close to the telescope (with a switch system).  Finally, I adopt this solution and it works very well.  Marc Storme


I have just updated the MODEM SPLITTER schematic to include DB9 pinout references, to make things simpler for builders.  http://groups.yahoo.com/group/scope-drive/files/circuits/MODEM%20SPLITTER.pdf  Joe Zeglinski

Joe,  I finally got things wired up and have two PCs serially communicating with a third. The hookup is like this: Signal ground common to all three.  Transmit from the master goes to receive on each slave and transmits from the slaves are connected to the receive of the master through 1N914 diodes.  When the master transmits, both slaves receive. Either slave can transmit to the master without seeing the others data. Looks like it is working exactly exactly as I was hoping it would. Guess I better exercise this setup a bit more to check things out. I am always worried when things are too easy.  Marty  Niemi


Q. would like to know if anyone has made a Mel system work over the internet? 

A. With high speed internet access you can get a very reasonable remote control session going. I control a Scope I system used for imaging this way. The images are setup to automatically transfer from the remote system to my home PC as they come in. I now use a free VPN (Virtual Private Network) package called Hamachi that requires very little setup. The nice thing is that it provides a consistant virtual IP address for your machine. What I had been doing previously was having the main PC send an email to me so that when I remotely powered it up I could determine from home what IP address it had been assigned by my ISP. The VPN package also removed the requirement to fool with forwarding ports through my NAT routers. There are a bunch of remote control packages like PC Anywhere available ranging from free to $$$. I am very happy being able to work this way. My goal was to be able to start a remote imaging session and then go to bed. I have it worked out where I can con trol the dome, my CCD camera, live video that lets me check on the setup, and power on and off all of the equipment remotely. Only way for us poor working stiffs to get any imaging done and still get some sleep. I love it. Marty Niemi 

NOISE:                 http://www.bbastrodesigns.com/steppermotornoise.html

The motor attached to the scope should be no noisier than it is when held unattached in  your hand.  Mel Bartels


The best thing I have found to isolate the steppers are flexible shaft couplers from herbach.com and plate mounts from small parts.com. Alexander Urban has some decent pictures of them mounted on his web pages (linked at Mels site)  Lenord Stage 8639


Tracking will be a lot louder than slewing speed. If you isolate and tune the stepper well enough though, the difference is maybe~ 50% between the two speeds. There are a lot of variables that can make that percentage higher or lower however.     Lenord Stage


See if you can isolate motor more - rubber is not best - try sorbathane or keyboard armrest or similar and isolate motor shaft too.  www.sorbothane.com  available from http://www.mcmaster.com   Mel Bartels


keep the flexible shaft to almost zero length - just a millimeter is all that is needed. That way there is no windup between motor and input gearing.           Mel Bartels


You can add a flywheel to the stepper motor shaft to slow down the motor shaft resonant frequency, or you can add a hard rubber coupler between the motor shaft and the scope input shaft. This will absorb the motor shaft resonances             Mel Bartels


I don't think they (flywheels) made a difference in noise levels. At best it was a very slight difference. Tom Krajci  40


1. If possible, use plate mounts to mount the steppers. They are from http://www.smallparts.com This virtually eliminates noise and vibrations from the steppers when they are tracking. Nylon bolts and rubber grommets will work, but not as well IMO.  

2. Tune out the torque from the steppers to the bare minimum for good overall operation. This is done in the Msparms section while running your scope.

3. Make sure you are running 40ms, not 10 or 20.

4. I found 400 step, dual shafted, steppers from http://www.orientalmotors.com Part number PK-264M-01B to be the quietest to date. This is with 4 other steppers tested side by side. Torque output is great on a Pentium class CPU. There is little torque on the 486-25 laptop though. Make sure you have a fast CPU if you use these steppers.

5. If you are able to do so, use flexible shaft couplings with the rubber insert. Those can be had from http://www.herbach.com and other places  too.  If you are using gearheads, put a piece of mouse mat between the stepper and the gearhead. Use nylon bolts.                 Leonard Stage


I've applied poster putty around my alt and az stepper motor bodies, and found that it's cut the motor noise by more than half. 

Poster putty is an adhesive putty that is used to hang lightweight objects on the wall without damaging wall paper, etc.  It's sticky enough to stay in place, but the best advantage is that it's moldable to just about any shape, so I can get it into tight corners.  

Since it's always sticky, before I take the scope outdoors I'll cover the exposed putty with some plastic sheet so it won't collect dirt and grass.  Tom Krajci


I remembered Berthold asking about noise coming from the gearheads. I mentioned using mouse mats between the steppers and the gearheads, thick ones, to help with the noise/vibration transmission. I also remembered Paul Shankland telling us about the gel inside of a wrist rest. That material was suppose to keep the vibrations of a stepper to a minimum, it does indeed do just that !  I now have put the gel/goo that is inside a wrist rest into the INSIDE of a gearhead. 

It required adding in a piece of galvanized sheet metal to separate the inside of the gearhead into two parts, diagonally. (I just cut it a little long and bent it ). I then used the open, separated space, to insert a piece of the gel stuff. It does work rather well           Lenord Stage


- great idea to put the stuff on the inside of the stepper - I'd just wrapped the motor with it on the outside.  Not as pretty, but plenty there to deaden sound. And boy it works well! I can't hear 'em at all! As for freezing, at least the gel doesn't freeze in the 20-30 degree range outside, and it didn't harden in my fridge... but being on the outside of the motor is likely "safer" for me were it to freeze on me..  Paul Shankland


In my setup the major source of noise are the gearboxes (250:1). The steppers contribute very little noise. I have been experimenting a lot with cork (5mm) lately and found the results quite satisfying. I "coated the outside of the gearboxes with cork and found that noise was reduced significantly. I am thinking now about gluing cork also to the inside walls of the gears.               Berthold


in my hard combat against the noise, I have tested a lot of microstep values. With high values in these parameters noise becomes more and more bass and even disappears, but then the laser pointer oscillates drawing a line (not a point) in the wall. If I decrease MSPause and DelayX, oscillation disappears but noise appears again.  Other curious effect occurs when I reduce the voltage supply until the nominal motor voltage, the noise reduces but the oscillation appears again and I have to decrease MSPause and DelayX to eliminate it, appearing the noise... 

My conclusion was that MSPause and DelayX high means low frecuency PWM and two coils in the motor are being excited but with such a low frecuency that the shaft has time to move from one coil to the other, instead of keeping in a balanced position between both coils.      Antonio   7182


My "solution" to quiet running systems is the use of new 400 step steppers from Oriental, dual shafted, 6 volts, with heavy flywheels on them.  Lenord Stage  see motors


you might try some heavy wattage series resistors in series with those steppers and see if that adds enough inductance to quiet the motors down and make they smooth out their steps.  Mel Bartels


I had the same problem (noise) than you for weeks. It is a complex problem and any mechanical/electrical assembly has its own characteristics.  I was trying lots of materials to isolate OTA from mount and column.  This is one step, another (in my case more useful) was the use of a power supply with an output close to the motors nominal voltage.  This power supply should be use for tracking (microstepping) and a higher output one should be use for slew (halfsteps). Mel´s system uses a pin in the parallel port to switch a relay controlling which of these voltages is apply to the motors.  Antonio.


Q.  If I set HSTimerFlag to 0, all I get is a high pitched ringing when trying to slew. Halfstepping works fine though. Am I doing something wrong here? 

A.  Slow down the halfstepping if you use HsTimerFlag of 0. The high pitched ring is from way too fast motors.       Mel Bartels


*Using Mels PCB, 12 volts and typical MSParms*         NEMA 23 steppers can vary widely in noise volume on the mount. IMO, generally speaking, steppers with a higher rated voltage (8-12) will have less torque and a slower slew speed BUT they will be a lot quieter. I have grown to like the 7.8 volt variety in a 200 step model.  400 step steppers will be quieter in the NEMA 23 frame size.  NEMA 23 frame size stepper with the shorter magnet stacks will be quieter too.

Some users have gone to using higher PWM's, over 100 instead of the typical 30-40.

I have had some NEMA 17 frame size steppers that were quieter too.  Remember, on the bench, the noise can be magnified. When on the mount and isolated well, the noise levels can be diminished significantly.    Lenord  Stage


I found that while a rubber coupler on the shaft helps reduce noise, it produces too much backlash. A more expensive, but I think better way to couple the shaft is with the Oldham Blind Bored Coupler that Small Parts (and others I'm sure) sell. They don't transmit noise, compensate for shaft misalignment, and are backlash free.  Ben Davies

OPERATING SYSTEM:    www.freedos.org        www.bootdisk.com    DR-DOS  $30 (the same as Novelle DOS)     OPENDOS                                            http://www.bbastrodesigns.com/operate_halfstep_config.html   win98bootfloppy

My HD's formatted in ntfs, and DOS can't handle that on its own. Anyways, I did some research in the meanwhile, and found this:
http://www.ntfs.com/boot-disk.htm works like a charm.  Toine


Windows and Unix are multi tasking but not real time, they provide access to CPU resources for a number of programs but make no promises about when this access happens.  Scope requires real time access, that is the program must have access to CPU resources when it needs it, not when the PC allows it.

Early versions of Windows are partially multi tasking, once a program has access to the CPU it keeps it until it releases it, Scope will work with this because it will simply hang onto things while it needs it and the rest of the system stops. Later versions of Windows won't do this.  W2K will not run Scope at all because Scope needs to take control of the whole PC system, including the parallel port, Rs232 port and even the clock interrupt. In W2K, NT and XP these resources are protected and special drivers are needed to communicate with them. Chris Rowland


HsTimerFlag: set to 1 if you wish to use IRQ 8 (dos) to time the halfstep slews, this allows for realtime (DOS) updating of scope coordinates, keyboard interruption of slews, and altitude limit checking during a slew.  Otherwise if set to 0 (for WINDOWS), 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        Mel Bartels


There are some things you can do in Win9x to give more cpu power to the DOS session, including adequate memory, a fresh install of Win9x to eliminate as many of those background processes (do a ctrl-alt-del to see these processes - you only need 2 or 3 critical ones running), simple display settings, various screen savers and background schedules turned off, settings for DOS priority and processing turned up to the max, and so forth. Also, there may be some PC architecture reasons why DOS session under Win9x won't run well on certain machines. I can say that I haven't come across a machine that I couldn't get to do an adequate DOS session, but then at work, we are limited to certain name brands like IBM, HP, Compaq, AST, and so forth.    Mel Bartels


Scope.exe is a dos program, and will run under win3x fine, and will run under win9x ok too, but not under win2k.   Mel Bartels 


In Win3.1, you can use the interrupt method of halfstepping.  Otherwise, you can at boot up time, go directly into the command line, and run scope.exe under Dos 7, or alternatively, simply boot with a disk with DOS 6x on it (any Dos from 3 up is fine) and go from there. Mel Bartels


Running Scope under Windows:  Go to scope.exe and left click to bring up the Properties. Click the Program Tab and then the Advanced button. Check the box "Prevent MS-DOS-based programs from detecting Windows" and click OK. See if that helps.   Don Egidio


Q...if the window scope.exe is not highlighted, then the scope moves mysteriously slow, and as soon as the widows is focused, it moves normally. What is this caused by, and  how can I avoid it? Does it affect anything, mostly regarding missing moves and pointing accuracy?

A.  This is a Windows issue. Give the DOS window that scope.exe runs in all the execution time possible, including foreground and background processing. A 2g processor helps, but most important is adequate memory.     Mel Bartels  


old DOS commands like mem/c/p/p or mem /d/p that will report what's loaded into conventional memory.    Mel Bartels


I found though was without Himem, I could not load DOS into upper memory (DOS=High), and that was eating up conventional memory. I added HiMem back into the config.sys file and the PWM's stayed up (EMM386 was the culprit for slowing down the PWMReps), and now I can shell out to DOS and run Planets, or edit, etc.       Chuck  Shaw  895

(Do not use) emm386 because it actively manages memory, and intercepts every call to memory - which my program uses quite heavily. Mel Bartels 896


There is no usage of expanded or extended memory in my program.  (no emm)    Mel Bartels76


These files get me 625k "largest executable program size" on Win98 DOS (DOS 7.1) Pentium 133

device = c:\windows\himem.sys\ /TESTMEM:OFF /Q
device = c:\windows\emm386.exe noems 
dos = high,umb,auto
@echo off
prompt $p$g
Loadhigh c:\mouse\mouse.exe
cd =c:\scope
Note:  To boot these from the floppy, copy
The FILES BELOW get me 628k "largest executable program size" on Win98 DOS (DOS 7.1) Pentium 133.  I do believe this is the max possible.
Download these zip files and extract them to C:\UMBPCI
Then Config.sys
Switches=/f /e
SHELL=C:\Windows\COMMAND.COM /E:1024 /P
@echo off
prompt $p$g
cd c:\scope

If you are worried about legality, use FreeDOS (search engines will pull up the website - can't remember it at the moment).  I've tried it on a number of machines and it works great. Scope.exe should work on DOS 3 and higher.          Mel Bartels          www.freedos.org


Try www.bootdisk.com   I used them before and got good stuff there.    Mark Hogue  9642


Q.  I have downloaded a boot disk for dos6.22 (an IMG file?), but don't know how to use it.

A. Use Winimage http://www.assysm.com/winimage/winima61.exe  to extract it to a floppy. Chuck Hartkoph


Q.  If the hard disk is formatted with FAT32 won't it cause problems if used with anything less than the version of DOS that comes with WIN95?                   Martyn Cole

A.  Yes, if the HD is formatted FAT32, then booting into DOS 6 will be a problem. In this case, just running off a bootable floppy is fine, or partitioning the HD, or adding a 2nd HD with the old styled formatting, are also fine.  Mel Bartels


I've had very good luck with Windows 95/98 DOS version 7. I use a very simple config.sys with himem.sys as the only device driver. The mouse is usually not loaded but a cdrom driver in config.sys and mscdex in autoexec.bat are loaded.  Mel Bartels


method of handling Windows 95-98 / DOS.

There is a text file in the C:/ directory (or Windows directory) named MSDOS.SYS. Back it up. Change the Hidden and Read Only attributes.  Under [Options] Change the line "BootGUI=1" to "BootGUI=0"  Add the line "Logo=0" 

This causes the computer to boot clean to a DOS screen. No Windows. Type "win" on the DOS command line if you want to run Windows.  The Windows splash screen doesn't appear.        Ben Davies  7205


To my knowlegde an ATX Win98 computer canNOT be forced to shut down to the native/true MS-DOS prompt, as we were accustomed to in the good ol' Win95/OSR2 days, due to the inability of the Win98 kernel of accepting such redirecting commands. The Win98 shut-down sequence does not allow to exit the GUI without performing a complete system power off   http://members.cox.net/mocoffeesa/TIPS98.TXT


Running Scope.exe + anything else under Windows :

As I see it, the problem with Scope.exe, or any Re-Write of scope.exe for windows that controls when a stepper coil is ON/OFF directly, has nothing to do with "I/O port access" or a "Precision Timer" and everything to do with the unexpected "Pause" while windows goes off and does it's thing every now and then...

For example, I'm almost done with some code to do Automated Foucault testing using a video camera thru windows, and direct port access to control a stepper driven Foucault platform. No problem getting it to run under NT4/Win2K, you just need to install "GiveIO.sys" or call  "AllowIO.exe" to directly access the parallel port. WinXP is even easier, as you just select "Legacy Mode" from the executable's properties menu.  As far as precision timers, windows has them. There's the Window's Multimedia Timer, used to sync video and audio playback. There's the kernel32 calls of "QueryPerformanceFrequency" and "QueryPerformanceCounter" which are great tools for Calculating Frame Rates, and execution time of various bits of code. There are other methods of timing as well, so getting your code to know how long its been since it did something, or what time it is, isn't a major problem..

As I see it, the problem with windows is the unexpected "Pause" caused by various events like: 

A) User clicks Start/Programs and windows has to load the icons for all the programs on the start menu from the disk drive.

B) Power management has spun the disk drive down, and windows now needs to wait for the disk to spin back up

C) A screen saver kicked in

D) User decides to Format a Floppy drive :)

Here's some scenarios where the "Pause" is an insurmountable problem for code that DIRECTLY controls ON/OFF state of the stepper motors #1) During a high speed slew. 

The "Pause" leaves your code stuck with the last coil energized.  The high speed slew is suddenly stopped. When the pause ends the slew turns into a noisy stall. You'd get the same effect if you reached up and grabbed the Flywheel during a slew. The worst part is, there's no way to predict when a pause is going to happen, so there's no way to "protect yourself"...

#2) Microstepping from coils A->B  

Lets say were 90% of the way between coils A & B, so that coil A is on 10%, and coil B is on 90% of the time. If an unexpected "Pause" happens, there are 4 possible states our code could get stuck in until the "Pause" ends.

A) Coils A & B are both off

B) Coil A is ON, B is OFF

C) Coil A is OFF, B is ON

D) Coils A & B are both ON

Situation A isn't so bad. Situations B,C, &D really SUCK, as the stepper is going to snap all the way back to the Coil A full-step position, or the Coil B full-step position, or the half-step position between coils A & B. For visual use, this may not be a problem. For photographic work, all your polar alignment, Micro-step tuning, And Periodic Error Correction will have been for nothing. 

The only way to prevent the "Pause" is to have an Operating System that GUARANTIES our code "X" amount of time, every "X" amount of CPU clock cycles. Windows doesn't do this, 90% of Unix OS's don't do this.  One answer to all these problems is a real time OS, not a lot of fun to play with.

Another answer is to offload the actual Motor control to a dedicated board, with its own little clock,cpu,memory and operating system. This is pretty much how the Servo system works (I believe...) If you really want the stepper version of Scope.exe and windows to co-exist on the same machine, don't try and re-write scope.exe. Instead, lets look into developing a "VMware" like program, that loads BEFORE Windows, or Dos, or anything else. This little bit of code would create two virtual computers, sharing the same hardware, and would guarantee each OS received a specific amount of time to do with as it would like..

The problem with this idea is, our "Vmware" like code, will have to natively support all the video, Ethernet, sound and other type of IO cards out there, and present these resources to our virtual machines in a manner that they can share them.. (Boy, that sound like fun :) MAYBE, just MAYBE, this might be where a Real-Time Unix style OS may be helpful. Our real time Unix only runs two copies of VMware to create two virtual machines. We then load Dos on one virtual machine, and Windows on the other. The real time Unix ensures that each OS gets its exactly the same amount of CPU time, thus allowing scope.exe to run AS-IS, and lets us toggle over to our Windows environment.

The overhead on such a system might be a nightmare. The Joy of installing THREE operating systems, one being a real time Unix system, might also be a "bucket of fun" as well! However, with today's 2+ gigahertz CPUs and memory measured in gigabytes, it just might be doable, perhaps not  fun, but doable......

If you REALLY want one computer to do everything, the easiest answer might be to get the following:

#1 a Sun Ultra 10 workstation (cheap off Ebay)

#2 Two SunPCi cards

(http://sunsolve.sun.com/handbook_pub/Devices/Miscellaneous/MISC_SunPCi_IIpr o.html)

This will give you 3 CPU's, one being a 64bit Unix version, a Stable Unix operating system, two Intel based systems, More ports than you know what to do with, and all can share a single Ethernet, Hard drive, and Display (or you can have 3 headed system!) plus you'll probably have earned "GEEK of the YEAR" status to boot!

Oh what tangled web we weave, sure seems like two cheap laptops, or one laptop and a Servo-version of Scope.exe is a fairly simple answer 

James Lerch


The goal was to run Scope.exe and windows programs at the same time on one PC. One example would be to run a planetarium program, scope, and maybe a video capture at the same time. Currently scope consumes all the resources of the system and will not run in a windows multitasking mode very well. Part of the goal was to use standard windows so that no other software would need to be purchased. It should also run on the typical hardware used by Scope.exe users.  Here are the results of my investigation into using a windows driver to step the motors so that scope.exe could run along with other windows applications at the same time. The goal was to write a driver that would step the phases of the motor as scope.exe does now but not consume all the CPU resources so that other windows programs could run at the same time. That required that the driver would be called at the start of every step time and the relinquish control until the next step time. In other words deterministic scheduling is needed. The time period needs to be in the few microsecond range with an accuracy of about 1 microsecond. The bottom line is I could not do it.

I learned how to write windows drivers and what timer, scheduling and interrupt options were available. The documentation described timers with up to 100 nanosecond resolution. But it also said the only guaranteed accuracy when giving up the CPU to other processes was based on the system clock increment which is typically 10 milliseconds. I wrote a parallel port driver that could step the steppers. I tried it on a 1GHz desktop running windows XP. The fastest that I could get it to go using Kernel-mode scheduling to relinquish control was one step every 10 milliseconds. This was not fast enough and I could not find anything better so  I'm giving up for now.  Dale Eason


OVERVOLTAGE:                      also see current limiting resistor

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)        Mel Bartels6003


... for microstepping the current control is already in place ala the control software. Thus except for edge rates ( the rate of current change is directly proportional to the applied voltage - the constant of proportionality is the inverse of the inductance ) there is no benefit.  For slewing there is a very large benefit to go with higher voltages. The one caveat is that it also increases the mechanical resonances of the system (the stimulus is  harder!). To overcome the latter you need to have properly flywheeled (damped) shafts. If this is done you will see a very significant increase in max slew rate.  When at the high slew rate (and when getting there for the most part) the inductance in most motors limits the actual current the phase can obtain.   Gary Myers    8005


For the benefit of those contemplating building a circuit, check out the files area, circuits/overvoltage/ folders for schematics for a circuit that is known to work.   a file has been uploaded to the Files area of the scope-drive group.  File : /circuits/Overvoltage Switch Circuit/overvoltage_schematic.jpg  

I recommend anyone planning to add any overvoltage circuit take a few simple precautions: 1) Build with care, and test the system with small capacity batteries (9v or similar) before connecting the circuit to your system.  Simulate pin 17 by connecting between +5V and Grd. 2) Make sure you have a solid ground (power return) line to the supplies, Mel's circuit board and the motors. DON'T daisy chain your ground wires. A single point ground with beefy wires will be less prone to ground loops and switching noise. 3) Once you know its working correctly, connect your power supplies (hi & low) and make sure the circuit still works as expected. No load/motors connected, or use a resistive load that is comparable to your motors. Be careful not to exceed current ratings for long periods.  4)If it still works, hook everything up and try it out in the full-up system. Use an O-scope to look for glitches, transients, oscillations on the power leads as you switch from hi-low-hi. Check out all voltages including the computer power supply. If you see oscillation greater than 5-10% of the supply voltage, or oscillations that lasts more than a fraction of a second you need to find the source of the problem before using the system -- especially if you see the problem on the computer supply or grounds. Usually, you'll need to replace your power supply and/or rework your power returns to eliminate ground loops, resistive or floating grounds etc.     Larry Bell    8389


when the program wishes the overvoltage activated, you will see pport pin 17 go to logical low.     Mel Bartels  8170


I have not found that 6v motors being driven at 12v require the current limiting circuit. Adding it would not hurt, but a lot of us operate in this configuration and have done so for a long time without problems. The 2x voltage ops do not provide the slewing speeds that a 4x voltage config  provides, but that is the only downside I have found to taking the more conservative approach.  Chuck Shaw  2964


My layout of the overvoltage circuit was pretty simple. I used a Radio Shack Perf board (about 2 inches square) and hard wired everything -- basically it is configured as a daughter board mounted piggy-back on Mel's board. I used a 6-pin connector for connections between the daughter board and Mel's board for easy disassembly and testing.  I've used it with absolutely no problems for almost 6 months at temps from over +100 F to well under -20 F.  Larry Bell


...it's good to be concerned and knowledgable about the potential problems of overvoltage and lack of ground connectivity plus other issues.  That's what the warnings are about. I have to have them in there.... On the other hand, I have operated (the entire board) in 2x to 4x overvoltage for 10 years now without a single failure. If you heed the warnings ... your equipment will be fine.   Mel Bartels  11824


Rule of thumb for overvoltage control is 4x the motor's rated voltage. You might eek out a little gain by going to 6x. Remember that at more than 3x overvoltage, you really need to have a dedicated circuit that regulates or throttles the current to the motor, otherwise, you will burn out the power transistors.           Mel Bartels


Q  I'll be using a relay for voltage switching when slewing. Compared to processing time in the PC, it takes a large amount of time (always milliseconds) to perform the switching.

I was wondering that if, in this situation, scope.exe sends pulses to the motors then some steps will be lost as there is no power supply applied during this lapse of time.  This effect could be cumulative each time the switching takes place and finally degrades pointing precision. Rafael  6222

A.  Yes, this is bad, however there is a fix:  Increase HoldReps in config.dat to cover this time delay.  Mel Bartels  6226


For the last nine months I have been driving my 6V motors at 24V straight  from Mel's board with good, reliable results. The only thing that I would advice if you go at 24V is that you install a big heat sink on the board's voltage regulator,    Juan Herrero 


only for info:  I power the board since some years with round 36 Volt, (you can go up to 48-50 Volt, but-sure-be careful with this voltage) and use 12 Volt Nema (Decl.) and an real expensive 12 V stepper from "Nanotec" Munich) in Ra.  Never have problems.  8460


I use 26V DC to supply my 6V stepper motors. No problem with overheating of motors, etc., as long as things are tuned properly. (Note: some use a different voltage supply to run the 5V votage regulator, but it should be able to handle 28V...but not too much more than that. Make sure the 5V regulator is heat sinked.   Tom Krajci    5499


I implemented the overvoltage feature on my 12v/24v battery powered system.  I use a 5V relay. One side of the winding is connected to +5V, the other to pin 17. I placed a diode in parallel to the winding (diode's band towards 5V side) to short out back EMF. I set the HsOverVoltageControl parm to MaxDelay + 1. You can hear the relay click just before ramp-up and right after ramp-down. It works like a charm. I get smooth and quiet 12V tracking.  And reliable 24V slewing.   Juan Herrero  8405


4X voltage is really a limit and I do not personally like to operate my circuit near the edge. I would recommend not to go over 3X voltage without some limitation. I found no advantage to run the motors with very high dc currents. The TIP-120 will have a tendency to heat and even if the motors display a little more torque, it is not necessary because around 2.5A, we normally have plenty of it.  An other consequence of higher current is vibration. The higher the current the higher the vibration. This vibration will eventually stall the motor at high speed. Of course, you can use Kajci's flywheel to absorb it, but why not control this vibration right from the start. There is an excellent explanation on motor operation in Mel's documentation where the bouncing effect or kick back is well explained. If you are interested, I recommend you these readings.                Jean-Charles Vachon


I use 6V steppers on my sixteen inch scope, driven at 24V. the motors have 10 ohms series resistance to help limit current during the ramp up/down portion of halfstep slewing (at max slewing speed, back EMF limits current, so the resistors do the important job at slow motor speeds while slewing).

PWM settings will help control the amount of current to your motors.  Normally, while tracking, you'll find you don't draw much current from your motors. When slewing, you'll draw 1-2 amps for a few seconds while they ramp up/down for the short time that they are moving at slow speeds...after that they will draw about as much current as when they are microstep tracking.      Tom Krajci    6166


Q  Is is safe to apply 36 V to Mel's PCB? Has anybody tried it?

A.  The 7805 are rated at 30V maximum and I personally do not recommend to operate components near their maximum values.  36V is definitely too high. I would also add an adequate heat sink on the 7805. I see no problem with the transistors or diodes. Again the TIP should have adequate heat sinks.   Jean-Charles Vachon

A.  I'm powering my PCB with a 12V DC-DC converter for 24V and was also worried about the 7805 getting hot. What I've done is to power that section of the board with a (12V) DC. Now the 7805 stays cool.  Don D'Egidio


If you check the specs of the 7800 series (voltage) regulators you'll find that they NEED 2 volts OVER their output voltage in order to provide regulation. Running a 7805 at 6 volts will not give you a 6v regulated output.   Ken Hunter


We are using a 1.5 V stepper on 12 V with a current limiter to 2 A. Works great and gets motor rpm to more that 400 !!. Every thing heats up but does not get very Hot !!. Using a series resistor and current limiting circuits there should be no limit to the voltage u can use.. The power transistors should have a Vce rated at more that twice the operating voltage (Switching Inductive loads) and mounted with appropriate heat sinks .. And of course use optocouplers to isolate the pc from ur circuits .!!      sanath kumar


While tinkering with the system, I noticed that the motors would run MUCH faster and quieter if I put my finger on the flywheel disk -- effectively increasing the drag on the motor.  At the same time I noticed, the motor current dropped from ~0.6A to 0.3A. 

I suspect, the motors are becoming unstable without friction.  I can't add more inertia to the shaft due to mechanical space limitations.  I considered adding a drag-brake mechanism, but it occurred to me that I might be able to achieve the same effect by lowering the overvoltage.

I experimented and found that at about 16V, I could run the motors almost 2X faster than on 12V and still have plenty of torque to prevent stalls.  The motors are stable and quiet at 16V but won't run wthout significant drag at 24V.                larry bell


Pin 17 is controlled in Menu:  Motors/HsParams/HsOvervoltageControl.  The number must be between  MinDelay > # < MaxDelay


HsTimerFlag 1

MaxDelay 1500

MinDelay 750

HsDelay X 2

HsRamp X 6

InterruptHs 100

HoldReps 20

HsOverVoltageControl 1300

In this case the motor will start with a delay of 1500 tics and ramp towards a delay of 750 tics. At 1300 tics the Overvoltage control pin (17) will go to Positive state to toggle relay etc. To disable the pin 17, set the number lower than MinDelay.    Ken Hunter


If everything is right, you can achieve 10k halfsteps/sec with my unit with 4x overvoltage. For the 20k halfsteps/sec mentioned you are looking at 10x overvoltage. Many commercial units that offer these high speeds require 48 even 90 VDC input voltages. I made a conscious decision a long time ago to stay away from these voltages in the field. In an observatory setting they are safe enough with precaution, but out in the open, it makes me concerned.          Mel Bartels   2400


the (current) limiting circuit will have no effect on most motors being used here unless they are being run with very - very high overvoltage. The inductance of a typical motor will not allow the current typically to get up to its ratings let alone above them.  (However the) circuit is perfect for overall protection and (is) one I would recommend.  5235    ...so again the only time the protective ckt is needed is for shorts. BUT I would agree in your situation, using very low volt motors, it WILL come into play as you are already many times overvolts (1.9v motors @ 13.6volts)!  I think most are using 5-6 and even 12V motors though.     Gary Myers5254


Q.  I have half a Dozen PC power supplies and they come with +/- 12V, I was wondering if I could make some modifications and utilize the 24 volt potential.   James Lerch  6582

A.  What you can do is to tie the -12 to the gnd of the card, cut the track (there is a place to do this on the board) going to the regulator and tie the gnd of the power supply to this point (thus the 5v reg will only see 12V and won't run as hot), then tie the 12V supply to the supply input on the board thus providing 24V to the motors. This assumes there is a common gnd on the supply AND that the supply is an isolated one! If there are concerns on isolation then you will be better off (actually better off in all cases) to isolate the serial supply). If not isolated then you need to measure the voltage between the serial common of the computer and the common of this new supply (when not connected to anything!). It should read essentially 0V. If it reads more than this tie a 5-10K resistor between the 2 points and measure it again - this will load any earth capacitance there and show the true differential voltages. this should red 0. If not then you do not want to use that particular supply.

The current draw in this series arrangement should be less than the smallest of the 2 supplies. Also if you have a -5 and a +12 (or 24?!) you can make things even better - tie the -5 to gnd, tie the gnd of the supply to the output of the regulator thus providing 5V directly (remove the regulator), and tie the +12 or 24 to the supply -  best of both worlds even if tied to the AC mains.]   Gary Myers  6586 


Q. I 'm looking for a way to have HsOverVoltageControl be turn on at the beginning of a slew but delay the slew about a half of a second to insure that my relay switches the voltage from 12V to 24V. 

A.  Increase the HoldReps - that's the number of times (timing based on starting ramp speed) that the stepper is locked into position. Normally it's to prevent oscillation and control scope inertia at start/end of ramps, but you can use it as a voltage delay.  Mel Bartels

PARALLEL PORT:        http://www.bbastrodesigns.com/parallel.html    http://www.bbastrodesigns.com/5PortPin.jpg


Parallel port cable length - I've tested up to 100 feet without problems. If you do have problems, see if a separate power supply at the telescope location or power carried out separately via heavier cable, will help.Mel Bartels


InvertOutput inverts the output of the parallel port, so that high becomes low and visa versa. Depending on what electronics you have you may need to have the output inverted. An improperly inverted output will turn on all eight stepper motor windings, each drawing the maximum current from the power supply. This can be a fair amount of current!      Mel Bartels


make sure that InvertOutput in config.dat is set properly (either 0 or 1). With software running, but tracking off, the motor shafts should be free to turn. If not, change this value.  Mel Bartels 


My understanding is that the LPT pin usage closest is as follows:

2 altitude stepper motor - red

3 altitude stepper motor - green

4 altitude stepper motor - red/white

5 altitude stepper motor - green/white

6 azimuth stepper motor - red

7 azimuth stepper motor - green

8 azimuth stepper motor - red/white

9 azimuth stepper motor - green/white

10 handpad input (pulled to ground via 220 ohm resistor)

11 handpad input (pulled to ground via 220 ohm resistor)

12 handpad input (pulled to ground via 220 ohm resistor)

13 handpad input (pulled to ground via 220 ohm resistor)

18-25 ground

1 optional DC motor slow focus control out

14 optional DC motor slow focus control in

16 optional DC motor fast focus control out

17 optional DC motor fast focus control in

15 - PEC automatic synchronization signals 

  In other applications, pin 17 controls the overvoltage circuit.   Pawel


I found that when I ran “TestParallellPort “ that the computer was giving me a high on all pins irrespective of whether I told it to be low or high through the software. Mel said try changing the LPT port from “888” to “956” and this fixed the problem. The port address on some laptops are like this as I understand it


There is a table in BIOS that equates lpt number to port numbers. If you run the parallel port test from scope.exe, it will show you the table.  Mel Bartels


I don't recall exactly but the parallel port sources very little current - something like 5-7 ma. Mel Bartels


Never turn on the stepper power supply when scope.exe is not running.  The state of the parallel port is unknown and it could be set by the computer accidentally to power up the windings.   Mel Bartels


Parallel port - I would try running the parallel port test and see if any of the handpad,(10,11,12,13), pins are active


Parallel port pinouts : http://f5.grp.yahoofs.com/v1/cNBwP8CHg_sv8wXelG2bS71V9Z7E7dTEMpFCpO8vPPFfR38AjBz-Advax4421R5nji2ezpJCGqzJz1urvSzV9_57MxvGOvMOCgRNjQ/Parallel%20Port%20Data 


Pin 15:  This pin is unique in that it responds to grounding only. So, you want to devise some sort of circuit that pulls pin 15 to ground when you wish a signal to occur. Pin 15 also inverts the incoming signal so the software sees it as a logical high. For instance, your mechanical switch could close a switch on a wire leading from pin 15 to ground.    Mel Bartels 


          AutoPECsync          Analysis of PEC Data  Joe Garlitz' webpage


11/24/04  Added two new config variables: AutoAltPECDeBounce and  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       Mel Bartels

This was put in to answer a request to debounce the PEC synchronization signal in software (or at least an attempt to do so). The very first instance of transition of the synch signal (that is, as soon as it turns on), sets the synch signal. No more synch signals will be acknowledged until the PEC index goes past 90 degrees or under 270 degrees of the motor shaft angle.   Mel Bartels 



In the past, scope.exe did all, consequently it made best sense to make the save of guiding efforts a handpad mode. Now guiding commands can come from external sources, so the process of recording guiding efforts is decoupled. The handpad mode Guide+Save (also called GuideStaySave) is defunct. Put the handpad into guide mode, press the left mode key to start guiding after you've centered a star, then press the left mode key again to begin recording of your guiding corrections.

Changed and enhanced how guiding efforts are recorded for periodic error correction. Now, any handpad guide mode and guide commands from the LX200 command input can be used to start guiding. After guiding has begun, a second push of the handpad left mode key will initiate the saving of guiding efforts for periodic error analysis. A push of the right hand mode key will end the save, as will filling the guiding arrays. The underlying guiding commands will continue without interruption until the right hand mode key is pressed for the second time, or the LX200 command input changes from guiding rate commands. 

Procedure is:

1. start guiding either with a handpad left mode key press (requires that the handpad is already in a guide mode), or, have the controlling program begin issuing guiding instructions via the LX200 channel

2. when ready, press (first) the handpad left key mode again to start the recording of guiding efforts

3. when finished, press (second) the handpad right mode key to stop the recording of guiding efforts

4. at your leisure, end guiding with (third) a handpad right mode key or the stoppage of guiding commands from the LX200 command channel   Mel Bartels


What is as important as the overall error, actually more important, is the acceleration or rate of change of error. If it is reasonable, scope.exe can correct for startlingly large errors. If it is fast, then there will be difficulty. Real time control software like scope.exe with instantly responding motors like stepper motors has the best chance of working with fast changing errors, but the limit will always be the finite time to create the feedback cycle and time the error changes. It is not hard to get a gear that has fast changing errors that go high then low quickly. If you mis-synchronize the timing, the error correcting routines will actually make the error worse, as it will try to make the scope go low to compensate for the high error (being late) just when the low error occurs, causing a doubling of the error!   Mel Bartels 


Q  Would it be possible to correct for an error of 0.45 degrees?

Maybe - possibly. What is as important as the overall error, actually more important, is the acceleration or rate of change of error. If it is reasonable, scope.exe can correct for startlingly large errors. If it is fast, then there will be difficulty. Real time control software like scope.exe with instantly responding motors like stepper motors has the best chance of working with fast changing errors, but the limit will always be the finite time to create the feedback cycle and time the error changes. It is not hard to get a gear that has fast changing errors that go high then low quickly. If you mis-synchronize the timing, the error correcting routines will actually make the error worse, as it will try to make the scope go low to compensate for the high error (being late) just when the low error occurs, causing a doubling of the error!    Mel Bartels


Q.  Would someone please refresh my failed memory as to what the PEC display numbers mean? 

The "PEC" area, if PEC is on, shows the altitude and azimuth indexes and correction values in tenths of an arcsecond, respectively. In addition, if the auto-sync of altitude PEC or azimuth PEC is enabled, the PEC index at synch point is shown, and if an error, the PEC display is highlighted with the current selection color.   Mel Bartels 

PEC Synch is not handled during slews - the timing is too critical and I don't think it is of much use - there's no error correcting going on during slews.   Mel Bartels


periodic error usually dominates drift by an order of  magnitude     Mel Bartels


..polar alignment error will show as declination drift, while PE will show as right ascension drift.  Paul Lefevre 


Periodic Error Correction works from the motor's viewpoint and provides for a table of 200 corrective values. Each value can be of any length, from 1 fullstep to many many fullsteps. So the PEC can cover a full rotation of the motor of 200 fullsteps up to a revolution of a gear further downstream that might take 30 minutes to rotate fully in normal tracking. I have found that 200 points, with interpolation in between, will adequately describe the PE. For corrections of larger scale such as a lump on the ground board, use one of the other corrective methods like alt-az or az-az or alt-alt or the pointing model. All you have to do is to start the PE at the same consistent point - it may be necessary to mark this point to a small angle of the motor revolution in the case of 200 fullsteps being covered all the way to merely marking a point on the ground board of the PE covers a significant fraction of a revolution. Mel Bartels


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.   Mel Bartels


Q. . a 400-step motor with 50 X 1 gearbox attached to a 2" friction roller that directly turns the ALT and AZ circles.  Seems like the gearbox output would be the most critical and have most effect on the PEC measurement.    Mike Malowski

A.  Generally moves too slow and its effects are reduced by the gear ratio. If you have a 50:1 then the output error is reduced by 50x. So it is the input gear that turns at same speed of motor that is most important.  The PEC is usually applied to the reduction closest to the stepper. Further reductions downstream like the final roller drive or split ring rim also have PE, but the PE is so slowly changing that it is ignored by PEC routines. For instance, PEC in the reduction closest to the stepper might happen every minute or two, and PE in the main roller might happen once a night. So the PMC pointing model corrections are used to capture the main roller PE, and guiding with drift is also used. Mel Bartels  851

Q.   what is the best way to set up the scope at the beginning of each session so that the "repeatable" errors always occur at the same place? mm

A.  The immediate gearing in front of the motor is most important, so, usually by marking the motor shaft orientation, that is sufficient to know when periodic error correction should start.   Mel Bartels

Q.   What is difference in pressing "r" to reset equatorial coordinates and simply using "guide" to compensate for the difference as drift?  mm

A.  Depends on your mount type - if altazimuth then resetting to equatorial coordinates implies that your altazimuth coordinates are no longer perfect.  Using guide to calculate drift is independent of resetting coordinates. It makes for more accurate tracking but not necessarily more accurate gotos.     Mel Bartels

Q.   Is it correct that if PEC and alignment are perfect there would be no drift? mm

A.  Yes, but that's a very big 'if'.....<smile>     Mel Bartels

Q.  What are the PEC Sync ALT and PEC Sync AZ menu options for? From all of the  messages that I have read so far I got the impression that PEC is synchronized automatically when it is turned off, the motors set to start position and then PEC turned back on.

A.  But if the software and motors get 'off' from each other, say due to motor stalling, then some way has to exist to tell the software when you have PEC synchronized again. That's what the menu options are for.    Mel Bartels

Q.  Does PEC even have to be turned on to generate PEC array?  Maybe you just turn on PEC to begin using the PEC array after it is generated. Is that correct?

A. Yes, PEC has to be on, because guiding efforts are tagged to the PEC index or angle of rotation. That's the only way to know where the beginning of the PEC cycle should occur vis-a-vis the guiding efforts.     Mel Bartels


My question is: Will scope automatically sync the PEC with "every" rotation (passing of the flag) It seems to me that this would be nice, if for some reason, say during a long slew, that you missed a step or two, or stalled the motor for a bit.

A.  That's how it works!   Mel Bartels


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.    Mel Bartels


Q.  If I have the HPDriftUpdate menu option turned off and have Guide+save (2/04 Guide + Save is no longer an option bd) enabled will anything be saved when trying to generate PEC data? Seems like the drift information is what is used to generate the PEC data and having drift calculation turned off would keep PEC generation from working at all.

A.  I think we are getting hung up on drift here. Drift is not critical to guiding efforts and can be dispensed with if you desire. Drift is essentially the drift in position over the time period between the beginning and ending of guiding. So if you start guiding at position '5' and after some time find yourself not at '5' but at '10' and the time was '100', then drift is 0.02.  

If you have drift update on, the 0.02 is adopted and used. If not, then nothing happens and presumably the small amount of drift that guiding 'discovered' will continue at the eyepiece.  Drift information is derived from the guiding information, not the other way around. Because periodic error usually dominates drift by an order of magnitude, it is important if you wish accurate drift to be calculated, to have PEC turned on, as this will force drift to be calculated as the difference in position over a PEC cycle, not merely the beginning and ending of guiding.

If you have PEC turned on, guiding will be displayed for the PEC cycle, and the algorithm or calculations go like this:

1. the guiding values are in an array, and the start/end of each PEC cycle in the array is figured out (because it is highly unlikely that you will start guiding with PEC at the starting point)

2. missing values in the PEC array are filled in (it's possible that a couple of PEC indexes were consumed in a single guide value)

3. the drift is calculated and subtracted from the guide array (start at '5', end at '10')

4. the offset is subtracted from the guide array (with drift subtracted, the array looks like starting at '5' and ending at '5', so subtract an offset of 5 from all values)

5. the resulting guiding curve, which is hopefully a reflection of your PE, is written to a file

If you have drift update on, then drift is adopted, if you don't, then drift is discarded. If you adopt the PEC and you discard the drift, then again, presumably the drift will show at the eyepiece. If you do adopt the PEC and accept the calculated drift, then presumably the object will be  stationary.

Main thing to realize is that the guiding action is recorded if you wish. Typically, you have periodic error as the grossest error so you tend to push one direction button for a while then the other direction button. If you have PEC turned on (and at first all values will be zero so nothing happens except that the software now knows what index to associate what guiding action with) then you can use the guiding efforts to generate PEC files. As a result of calculating the PEC file, you can also deduce drift if you desire, but it is optional.    Mel Bartels


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: fixup an already generated PEC or generate a PEC from scratch  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.  

***STEP 1***

 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.

 ***STEP 2***

To generate PEC from scratch, or to to fixup an already generated PEC, put the hand paddle into guide+save mode (there is no longer a guide + save mode  bd), and guide until at least two high beeps and two medium beeps are heard, preferably until a low beep is heard, indicating that the guide array has been filled.  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.

 If using an equatorial telescope, or using an altazimuth telescope where one axis is moving very slowly (altitude axis when on the meridian for instance), then you will have to either misalign the scope or find another section of the sky where both motors are moving at a nice rate.

 ***STEP 3***

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.    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.           


Added prompting of individual PEC files to average. Before, all PECALTxx.TXT and PECAZxx.TXT files were averaged, now, you select which files to average.            Mel Bartels


you must guide from the start beep to at least another beep indicating a complete revolution of the pec cycle. You can guide for 3 cycles.

Here's a little secret for people in your situation: Scope.exe only stores 200 values per pec cycle. If an individual value (1 of these 200) lasts for some seconds at the eyepiece, and you hit the guide buttons multiple times, scope.exe will average those guide button presses into a single  value.   Mel Bartels


Q.  How many iterations of worm cycles do most of you use to create your > final array, and what pros/cons are there to using the median smooth?

A.  Continue with worm cycles and median smoothly at the 5-7 level until the curve looks decent. It's a judgement kind of thing.  MelBartels


 In that case, you get to do something repulsive - purposefully and temporarily misalign your scope on the pole so as to induce declination
corrective action sufficient to generate a PEC curve.  Mel Bartels

Q  The RA drive on this GEM is a series of good quality spur gears that combined total up to a non integer ratio.

A. In this case you can make PEC work as follows:  make the PEC cycle for the next higher integer number and use auto-synchronization of the PEC point.  That way the fractional part is ignored.  Mel Bartels


Changed FullstepsPerPECArray to type long from type int so that the number can be up to 2,147,483,648. Before it could range up to 32,768. The number of data points to define the PEC array shape remains at 200   Mel Bartels 1069


Q   Does the PEC function of scope.exe apply to the "step and direction" output? If so will it be ok with about 3000 full steps  (FullstepsPerPECArray) for one rotation of the worm?

A  Yes, PEC along with all error correction is applied at a module level above the actual motor driver functions, so the error correction ala PEC is not aware of exactly what motor controller type is being used. 3000 is fine.    Mel Bartels


resetting any coordinates (for example, reset eq) does not confuse PEC. (you will see the PEC offset in config.dat change, specifically PECIxOffset.A and PECIxOffset.Z         Mel Bartels  


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   Mel Bartels


Q.   Are the ALTAZEC and PMC corrections tied to the PEC index?

A.  No, they are only tied to the current altitude and azimuth values. PEC is tied to some repetitive # of  fullsteps, because the most important periodic errors come from the worm or reduction that the stepper drive shaft is attached to. The ALTAZEC and ALTALTEC and PMC are corrective values to be applied based on altitude and azimuth.             Mel Bartels


if you leave pec on at shutdown and save config.dat upon exiting, and do not touch the scope while all is powered off, then you can start exactly as you finished   Mel Bartels


Q  As I understand, scope will save last PEC starting point offset at exit - 

A.  if you choose so!  If you want to move your mount by hand (btw, worms only), you need to know PEC sync point. This can be done manually (attach a disk say 50mm or more dia to worm shaft and mark "sync point" on the disk and on a mount), or you could build auto pec sync circuit, where scope would sense sync point using photodiode. Pawel  Jean-Charles Vachon circuit


An autoguider is great for doing the corrections to build a PEC table.  Marty Niemi


Using a CCD camera to autoguide to get PEC values is no different than doing the guiding manually with the handpaddle as far as scope.exe is concerned, except there are a lot better guiding commands with no human errors introduced (I am a really poor manual guider it seems)....Do not have the autoguider so sensitive that it "chases" the seeing. But you can get in a LOT more guiding inputs than you can manually!  

As fast as you can after entering Guide+save mode (there is no longer a guide+save mode bd) , start the autoguider autoguiding..... Have the guidestar as well centered as possible first, since as the autoguider tries to re-center it, those commands will also get recorded....

The trick is to know when to STOP the autoguider from sending autoguiding commands. The problem is after 3 PEC cycles in Guide+save mode, scope.exe kicks out of the guide mode and back into ms mode. If guiding commands continue, instead of the tiny corrections being "added" while the motors are tracking using the gs speed, the motors will stop tracking, and interpret the ms move as simply the slew command that it is, and the speed will be at ms speed rathe than gs. The result is a move much bigger than planned and losing the guidestar in your ccd. It will not mess up the data that scope saved however...

To get around this problem and know when to kick the autoguider out of sending guiding commands, there are a number of cues to use:

1. Scope generates "tones" as each cycle completes. 1st motor to complete3 cycles kicks things out of mode. When you hear the 3rd tone (each motor has a slightly different tone) stop the autoguiding inputs. The problem is that my hearing is not what it used to be, and the motors are making their happy little singing noise. So I generally cannot hear the tones.... Maybe I will try plugging in a headset to the audio out jack on the laptop????

2. You can watch the PEC index number on the screen. Note the numbers each motor is at when you enter guide+save mode, (there is no longer a guide+save mode bd) and just as one of them rolls back up for the 3rd time, stop the autoguider. I lose track easy on this one, especially if I am also talking to someone (usually the case).... I have LEDs for each PEC autosync indicator (Luv those litte LEDs!!) and those also help me keep track. There is NO NEED to try and start guide+save mode right at (or just before) the start of a pec cycle by the way.......

3. If you use a "slow" machine to run scope.exe like I do (25mhz 486), when scope.exe kicks out of guide+save mode, it will write the guide and guideaz files. When it does that, it stops tracking for just a second. Thats my cue to stop the autoguider. When tracking starts back up, scope will re-center on the guidestar and resume tracking, and meanwhile you have stopped the autoguider commands. The result is a nice clean stop.

The rest of the process is the same as if you had guided manually. You use scope.exe's routines to get the pec file data out of the guidexxfiles,(again scope.exe stops tracking, but will recentr when done), and you are ready for another recording session. Gotta remember to pull the pec files out of the guide files before starting that next session though!!!!! Otherwise they will be over written!

It might be nice one day to not have scope.exe kick itself out of guide+save mode at the end of the 3 cycles, and perhaps have the capability to manually set how many cycles ARE recorded (an autoguider would mindlessly let you record 10 cycles and then you do all of your data reduction all at once, etc.). You would simply watch the screen for when guide+save no longer indicated ON without having to time when to stop the autoguider. However, it works well as is, you just have to pay a bit of attention!!   Chuck Shaw


....Or, (maybe) the stepper motors are dropping steps.

Is there a way to observe the stepper shafts? If so, put a mark on them, move the steppers to a handy 'zero reference point', turn on the PEC option in the software (tracking is off at this point), turn on tracking, make many slews, turn off tracking, use the software's Move to Zero PEC option, and see if your RA shaft is at the zero reference point...where it's supposed to be.             Tom Krajci     6168


Q.  As I understand it, Scope.exe will fix only ONE instance of Periodic Error for each axis (this is correct, yes?). James Lerch 11128

Correct, but, but, you can carefully embed multiple higher frequency cycles into the main cycle. For instance, if you have a 3:1 spur gear, you can train the pec on the main worm, resulting in its single pec cycle. During that cycle, the spur gear rotated 3 times, so you can carefully adjust the main pec cycle to include 3 smaller pec cycles for the spur gear. There is a limit to resolution as only 200 'measurements' per main pec cycle are stored.  Mel Bartels


As I understand it, Scope.exe will fix only ONE instance of Periodic Error for each axis. In Andy's example, an off-centered worm wheel, could be fixed as long as he had a perfectly centered and true worm shaft attached to the stepper motor. In addition, if Andy had more than one reduction stage, each stage would have to be perfect as well.

Our example drive has a 2000:1 total gear reduction, consisting of a 400mm diameter 2000 tooth worm wheel, and a 200 step stepper motor. If the worm shaft is straight and true, and perfectly centered on the stepper motor shaft, and the worm wheel is off center causing 0.45Deg of Periodic Error Total (+/- 0.225deg), then our PEC array might look like this:  

FullstepsPerPECArray = 2000:1 reduction * 200 step Motor = 400,000 Full-Steps

PEC                           Index OFFset (in tenths of an arcsecond):

0                                0

|                                  |

49                              +8100 (0.225deg * 60arcmin * 60arcsec * 10

(Positive half of pec)

|                                  |

99                              0

|                                  |

149                            -8100 (Negative half of the Pec)

|                                  |

199                             0 (Back where we started 24hours hours ago!)

If by chance the worm wheel is off-center, AND the worm shaft is not true, or off-center from the motor axis, then you going to have to manually fix one, and correct the other in software.     James Lerch


Then there is Dan Gray, who on his motorized dob, uses two motors per axis and two gears per motor for total of 4 gears per axis, with each gear carefully adjusted so as to cancel the PEC of the matched gear. He has pretty close to zero measurable PE. Mel Bartels


Q  As I understand it, I can do a Guide/Save mode on the fly and, so long as the motor doesn't stall, PEC will stay sync'd with where I left it (sort of like the Losmandy drive). I am not worried about coordinate resets since my plan is to center and focus the object then run the PEC train right before I image. This would be done for every object. Also, this is a GEM so I only want to work with the RA axis.

A.  Mark your worm gear with an "index" mark. The position of the worm is totally arbitrary. Mark it where the mark can line up with something so you can use the handpaddle and slew RA till the worm lines up again with the mark. Then turn PEC OFF, and then turn PEC back ON. This will tell scope to sync the start of the PEC cycle with the start of your arbitrary index mark. In the future, if you re-sync the worm to this mark you will not have to re-train PEC to use the pec.dat file that you will build.  

Building the PEC.dat file is a 4 part process.  The first is to use Guide+save mode as you described.  (there is no longer a guide+save mode  bd)

The second part is to extract the data from the guideaz.dat file that was built while in guide+save mode.  

The third part is to extract the pecazxx.txt files from the raw guiding data in guideaz.dat The 4th part is to build the pec.dat file from the several pecazxx.txt files that get extracted from the raw guiding data (and also to save the pec.dat data into the pec.dat file)

Sounds terribly complex, but its actually pretty simple and MUCH easier than a long time ago when we had to use an excel spreadsheet to extract the data.  Scope.exe even plots the pec curves for you now!!   Chuck Shaw


Q  I've been informed that turning off PEC will help AstroArt guide properly.

A.  This is opinion. Some say so, others say otherwise.  My feeling is that a well done PEC can only help.  Mel Bartels


Q Will autoguiding make PEC obsolete? (Or will an autoguider corrects for PE?)

A  I agree with Chuck Shaw and other seasoned imagers that PEC helps the autoguider. However, other advanced imagers disagree.  Of course, the amount and rate of change of PE probably factors into people's experiences. In other words, how you feel about this may depend on your mount!   Mel Bartels


You really do not need the sounds or to watch when things have spun twice I have found. Instead, make sure you are tracking and PEC is enabled. If there is a pre-existing PEC table, your corrections will be made "on top" of those corrections being made by he existing table. Otherwise you will be building a table from scratch. Make sure you have the number of steps he motor takes per turn of the worm entered (if  here is gearing between the motor and the worm, that multiplies the number of turns the motor makes per turn of the worm, etc.).

I use a barlow with an eyepiece with a crosshair in it. If you do not have such an eyepiece, they are easy to make, but in the meantime, just place  the guidestar at the edge of the FOV. All you are really needing is a reference point for keeping the star stationary.

For a GEM, you will only have to guide in RA (AZ). For an Alt/Az, aim due south and do the guiding corrections only in AZ. Then aim due east or west and do the guiding corrections for Alt. Trying to do them both at the same time is much more difficult (at least for me and my slow reactions!! <grin>).

Even though the routine works quite well with drift correction enabled, I find the guiding chore, especially for the initial guide sessions is much easier if I have corrected most of the drift rate first. To do that (and to dry run your guiding), go to Guide+stay mode, with drift correction  enabled, and AFTER centering up the star, enter Guide+stay mode and guide for a while. Then exit the mode (mode switch to the right) and the drift will be corrected. Repeat this a couple of times to nail the drift. I then turn OFF the drift correction update for the PEC guiding sessions so the guiding commands do not change the drift that was nailed. You do not have o do it his way, but the motion for the first couple of guiding cycles seems easier this way for me.

Make sure the guidestar is placed exactly where you want to keep it, and PEC is enabled, and then enter the Guide+save mode (no longer available) and use the guiding corrections to keep it there for the axis you are guiding. When the motor has completed the 2 PEC cycles that Mel referenced, the scope will temporarily interupt tracking and store the guide data. Then it will slew back to the guidestar. Use the u and v keys to inspect the data, but gain, do NOT stop tracking during that process. The reason is when its completed, the scope will slew back to the guidestar like magic! You should expect to get 1 or 2 complete cycles. Be critical of them as you inspect them, since its just too easy to repeat the process. Write down the file names as you save them. The reason is later when you choose files for calculating a new PEC curve, you only want to use the files you guided since the last time you updated the PEC. 

Adjust the guidespeed faster or slower if you are having trouble keeping the guidestar centered. I have found a smaller guidespeed and a series of a LOT of tiny corrections results in a much smoother curve. Too large a guidespeed results in my overcontrolling my inputs..... Do not just HOLD the correction button down to re-center. That will work, but the curve you get will not be as smooth.

If you had no pec curve, and you chose, for example, 5 files to average and then update PEC, and then you go back and guided 5 more times to "tweak" that new PEC curve, be sure when you average the guiding files the second time you only use the files 6-10. Otherwise the guiding commands from the 1st 5 files will be added into the process again.....(thats the reason for writing down the file names so you remmber what you have used already).
My system uses 4" 360:1 worm gears that turn a 12:1 roller drive ratio for each axis. The worm gear has about 60 arcsec of PE. The worm drive reduction drops this to about 5 arcsec. Visually this is really great, but for unguided CCD astrophotography at the focal length of my 14"f/5  scope, 5 arcsec is simply not good enough. Mel's PEC routine allows me to get the PEC down to less than the seeing we have around here in Houston (~1.5 to 2 arcsec).

I have also started using my autoguider to provide the PEC guiding commands during the PEC commanding process instead of doing it manually, and the result is *undetectable* PE.....even in the CCD camera.... Chuck Shaw

If you have a grayscale quickcam, you can use Marty Niemi's Guide.exe and put it into record mode. It will record the x/y position of the centroid of a selected star each time it snaps an image, and write it to an ascii file. Open that file in excel and plot it, and you have a very accurate (sub pixel) plot of your tracking performance. The trick is to start recording at the "index" point for the worm (an arbitrary point in the worm's rotation that you can repeatable identify). I used to simply use a painted line on the worm shaft till I went to electronic PEC autosync.

If you don't have a grayscale quickcam, but have a camera compatible with using registrax, take a look at a new app Paul Shankland pointed out to me at http://home.online.no/~arnholm/astro/software/rxpec/index.htm for plotting data from a CCD camera.

Now, I use the quickcam in Guide+save mode to allow scope.exe to record and then use scope.exe's capabilities to calculate the Pec.dat. It simply does it too easily and too quickly to bother with any other way.   Chuck Shaw


All I can say is don't expect scope.exe to give you what you want unless all the mechanical variables are as they should be and you understand what settings scope.exe expects.  Don't add bad PEC data to ones that are good; it will certainly throw off the average. After going back through all my pecazxx.txt files, I found some that didn't even look like the others! I was not paying attention when I added new ones from night to night.

Also, if you use an auto-guider to train your PEC, do not instruct it to be overly aggressive. I use 5 asecs/sec guide speed and tell it to ignore any movement less than 0.5", however if seeing is really bad, that might need to be increased. If you have some really fast, deep errors, I can see where your might need to increase the guide speed.    Brian Sherrod


Q.  can someone explain or point me to how to best use the pec median function? When I select that function it asks for a value - how do you know what value to enter? 

A.  The number is simply the number of points considered in calculating themedian. Use as small a number as possible that still provides a "smooth" curve. The tiny bumps in the curve can be from chasing the seeing, or incorrect commands if guiding manually.

The system simply updates the PEC in memory when you apply the median smoothing. To save it, display the pec curve (menu item), and it will ask if you want to save the pec.dat file (i.e. save the pec in memory to pec.dat)  If you do not like the results of the median you tried, then say no to saving the pec file and you are back to where you started. Try a different median value, display, and save if you like or try again.....Chuck Shaw


Q. ...want to measure PEC at the output of a 50:1 gearbox) Maybe with the new automatic PEC calculation routines you have incorporated it is no longer necessary for me to know exactly how many full steps are in one PEC cycle as long as the starting point is known. Is that correct?

A.  You need to know precisely how many fullsteps you are defining the PEC for. For instance, if 200 step motor and if you did want to do PEC for the output, then you would enter 200*50=10000 in config.dat. Mel Bartels (If measuring PEC at the input, or motor, it would be 200 full steps per cycle) 


There are many ways of implementing this function.  The idea is to switch pin 15 (Az) to ground or to send +5v to pin 17 (alt) every time that the shaft that you are PECing performs one revolution. Some have used reed switches that are triggered by a bump on the shaft. I've selected a simple infrared circuit (only 5 components).
That works better than I expected. It uses one IR led, one IR photo-transistor (looks just like a LED), one 2N222 transistor, one 600 ohm resistor and one 10Kohm variable resistor to adjust the sensitivity. I glued to the worm shaft an small piece of flat tin bent at a 45 angle. It blocks the IR light between the diodes at every revolution.  The LED's should be shielded from incident light to avoid false triggering 
 I've uploaded a drawing of the circuit in the list's vault. It's in the circuit folder at: http://www.egroups.com/docvault/scope-drive/circuits/pecsync.JPG   Juan Herrero


Switches are not instantaneous.  In quick sequence, they all will close and then open.  You can tell Scope to detect either of these signals.  AutoPECSyncLowHighFlag: if 1, detect off-on transition, if 0, detect on-off transition.  That is; for pins 16 and 17 a value of 0 tells Scope to detect the transition from +5v (logical high) to 0v (logical low).  A value of 1 tells Scope to detect the transition from 0v to +5v (logical low to logical high) For pin 15, 0 tells scope to detect the signal change from 0v to +5v (low to high).  1 tells scope to detect the signal change +5v to 0v (high to low).

for altitude: Look at parallel port pin 17; touching +5VDC then grounding the pin will trigger autosynch when first grounded; if  AutoAltPECSyncLowHighFlag (=1), autosynch occurs at moment of +5 VDC

for azimuth: Look at parallel port pin 15; toggling the pin by grounding it will trigger autosynch when the grounding is removed; if  AutoAzPECSyncLowHighFlag (=1), then autosynch occurs at moment of grounding.   Mel Bartels


The problem originally was that folks were trying to use pin15 with a +5v PEC Sync Signal, and Pin 15 does not respond to that. It only looks for being grounded....... So to be able to use a +5v signal, we needed to either change the PEC Sync signal from providing a +5v signal to instead provide a ground, or use a different parallel port pin than 15 to send the +5v signal to (i.e. send to 16 rather than 15).

Since pin 17 DOES look for a +5v signal, it did not need to have a change option provided for it.......

With the addiion of the two variables (AutoAzPin and AutoAltPin) each builder can select what he/she needs to meet their system's  configuration.... If you are already using pin 16 for 5 phase motor commands, obviously you will need to stay with pin 15 for PEC sync, and need to have a different PEC Sync signal than that being sent to pin 17.   Chuck Shaw


parallel port 15 is a different beast. Basically it only responds to grounding. So you have to feed it either +5vdc or the ground. Use  pullup/pulldown resisters to make the connection to the 5vdc rail or to the ground rail, and make your circuit/switch choose between one or the other.  You can practice this by touching a lead from the 5vdc source to the pin and then touching a lead from ground to the pin. You'll see  scope.exe respond.  Mel Bartels 

use a 5k or so resistor and attach one side to pin 15 and the other side to +5VDC. The pin will then respond when it is grounded.  Mel Bartels


A "pull up" resistor is something that "guarantees" a certain logic state when the low condition is NOT the CURRENT condition. It is  implemented by "pulling up" the input pin to the HIGH LOGIC LEVEL by using a resistor that will draw a negligable current from the local power supply. In most logic systems we are concerned with , the local supply is 5 volts and a typical current would be 1 milliamp. Using OHMS law the resistor value would be 5000 ohms, (5K). the closest standard value would be 4700 ohms (4.7K) connected between the 5 volt supply and the input pin which would be pulled to ground (LOW LOGIC LEVEL) by the PEC SYNC Circuit.  You need to put one end of the resistor on pin 15 (and the other end at +5 v which) "pulls up" pin 15 to +5 volts whenever the PEC Sync circuit is not "grounding" it.  Ken Hunter 


My Laptop must have an internal pullup then, since All I do with my autopecsync is ground pin 15.  Chuck Shaw


The auto synch pec will work only if the motor is moving in the direction set by the auto synch direction in config.dat. Mel Bartels

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


I have a new enhanced parallel port test that will explicitly show the pins 15, 16 and 17 lines, so you might want to use that when testing the auto synchronization of the pec circuitry.

The default setting on pin 17 requires that you go from ground to +5VDC and upon return to ground, the pin will trigger. If AutoAltPECSyncLowHighFlag is 1, then the pin will trigger on the ground to +5VDC  transition.

As far as the circuitry goes, if you can't get the proper voltages (must be at least 3.5V high and no higher than 0.7V low), use a transistor that has its rails pinned to +5VDC and ground. Then use the pec autosynch circuitry design of yours tied to the transistor base such that when 'on' the base of the transistor is saturated (you can find this from the transistor info sheet), and when 'off' the transistor conducts no current and thus the line stays pinned to the low rail. A 2N2222 will work fine.  Mel


I discovered that my laptops do not receive signals on pins 16 and 17 like some laptops do. (they are only "send", and a buddy at Compaq confirmed they are only send)  So, Mel was kind enough to update scope.exe to use a combination of pins 10,12,and 13 receiving a signal simultaneously to  trigger the PEC Sync signal. I use that for the altitude axis, and I use a signal to pin 15 for the azimuth axis.

The triple signal to 10,12,13 is pretty simple. The detector (an LED and Phototransistor wiith a slotted disk between them), generates a weak signal when the slot comes by. That signal goes to the base of a 2N2222 (I use an NTE123A as a replacement). The collector is attached to +5v from the PCB.  The emitter goes to the base of a 2nd 123A (forming a darlington pair). The 123A #2 also has its collector attached to +5V, and its emitter goes to the bases of 3 other 123A's.(is this overkill?? maybe, but....) The collectors of each of these 123A's are all attached to +5v, and their emitters each go to one of the pins (one to 10, one to 12, and one to 13). The base of 123 #2 also has a 10k pulldown resistor to ground, since the output of the  detector phototransistor never seems to totally turn off. I do not use any pullups.

The circuit to pin 15 requires that pin 15 be grounded rather than get a +5v signal sent to it. This circuit also has a darlington pair, with a pulldown attached to the base of 123A #2, but #2's collector is attached to pin15, and its emitter is attached to ground.   Chuck Shaw


Q.  a problem with Pin 15 on my port. It is possible to use it as an output, but not as an input !!

A.  You might get it to act as input if you can change parallel port settings in bios to something better than standard mode.  Mel Bartels


Q.  How will it work - i.e. will it load a PEC file and turn PEC on just after passing sync point or do I need to perform some manual actions anyway (after reseting to equat)? 

A.  The auto-synch will reset the PEC to zero at the appropriate time. Manual actions required would be to have the PEC turned on. That should be about it.  Mel Bartels


Documentation says I can use a combination of pins 10,12,13 grounded together instead. Can anyone suggest a simple way to do this? 

Put all three outputs through two sides of an AND gate (7804). The output from the final AND gate can be used then. Mel Bartel 


thought I would just add my experience of providing PEC to my telescope. Because of space concerns I had to use a very simple
switch. Basically I made a small sharp lump by pushing a small nail into the roll pin that holds the worm gear onto the RA drive shaft
such that it was slightly proud of the shaft. I then had a piece of bent metal that contacted the pin but not the shaft. I connected
wires to the horseshoe that hold the worm gear and also to the metal contact. Thus once every revolution I had a switch I thought !! The problem was that at the very low speeds of tracking the switch made several contacts however sharp I made the pin. I asked if it would be possible to put a bit a switch debounce code in the scope software but apparently it wasn't. In the end I used a timer chip
and circuit that had the same effect as switch debouncing in code. A circuit for achieving this is at http://www.mitedu.freeserve.co.uk/Circuits/Switching/debounce.htm  
Note the 555 is a LM555 chip.           Tim Scott

PLANETARIUM PROGRAMS:              http://www.bbastrodesigns.com//operate_interfacing.html 

For those of you using (the DOS version of) Guide from Project Pluto with Scope.exe, here is an improved guide.bat file (necessary when scope.exe switches control to Guide), suggested by Bill Gray, author of Guide This should help prevent corrupted startup.mar files, which Guide critically depends upon.


 cd <guide directory>

@echo off 

if not exist scope.mar goto err_msg

copy startup.mar startup.old

del startup.mar

rename scope.mar startup.mar

goto start_guide


echo WARNING: Scope.mar wasn't found! Guide will not actually go to the echo position selected from AltAz.



dosguide.exe                                            Mel Bartels


Q.  In Guide do I choose 'alt-az' in the Scope Control Box when using it with Scope.exe?

A.  ...when using AltAz, Guide doesn't send anything to any serial port. Instead, it creates a file, 'slew.dat', containing assorted data such as the selected RA/dec, its alt/az, rate of field rotation, etc. (expressed as cubic polynomials in time).  When the 'AltAz' radio button is selected in Guide, the com port selection is ignored.  Mel's program is capable of interpreting LX200 commands. Set Guide's Scope Control dialog to work as an LX200, rather than in AltAz style, and it'll send LX200 data out over the selected serial port. 

(Choose 'AltAz')_if_ you've got Guide and scope.exe running on the same machine.  In that case, Guide writes out the 'slew.dat' file in its own directory, and you have to switch tasks back to scope.exe, which is then bright enough to load up that file. Scope can then say, "Hey! Guide is telling us to go to thus-and-such RA/dec... let's go!"   -- Bill Gray


In line 18 of the startup.mar file in the Guide directory, change the directory to where you have all of the directories/files from the cd-rom stored on the HDD. Make SURE you have the \ at the end of where the location is. Guide won't work with scope if you don't.   Lenord Stage


Q    I am looking for a way to synchro scope and Guide program after a slew. Or how to "reset to equatorial coordinates" from Guide through  LX200 protocol.

I have asked in Guide-user group about synchro function. This has been the answer...

Slew the telescope to an object.   Take an image and notice where the center of the image is.  Then click on that location in Guide.(in other words center Guide on the image Now click on the "Add Alignment star" box on the Scope Pad.

The telescope will now be aligned on that location. You can now center your target by clicking on it in Guide and then clicking on  the "Slew Scope" button on the scope pad.. The scope will make a small move to center your target on the CCD. This saves the process of guessing how far to move the scope to get the image centered on the CCD and taking a second or third image.

A    I am using Guide 6.0 and on its menu I have two functions respectively : 'slew-telescope' 'slew-guide', if I click on 'slew-telescope', scope.exe receives the commands sequence of the position of the object centered on the guide reference frame ( I am using my CCD rectangle) if I click on 'slew-Guide' guide 'asks' to scope.exe the current AR+Dec and position itself on that RA+Dec accordingly . What I do in practice is to point the telescope, enter on scope.exe the object coordinates ( I have an equatorial mount ) reset the position, than click on guide menu 'slew-guide' and the two software are synchronized.           Alberto Sebellin


I went into the telescope configuration setup in Carte de Ciel and played around with the various timing values until I got some that worked. In case anyone else has this trouble Carte stores them in Scope.ini in its directory and I finally got the following values to work

inttimeout=500                        Tim Scott


Can you find a setting in StarryNight pro to turn down the aggressiveness of contacting scope.exe? If the contact is too fast and too often, then scope.exe and delays in the serial processing on both machines may cause StarryNight to see that a coordinate was not returned. Updating coordinates once a second is more than adequate.   10403
Mel Bartels


I finally solved my problem linking TheSky with SCOPE. The problem is with the LX-200 long format. I had to change a Windows Registry entry for TheSky that had been set to LX-200 long format, and set the parameter in CONFIG.DAT to 0 as well. I'm not sure why it won't work  in long format, but it does work if both programs are set for short format. Once the link is established, I can change to the long format in TheSky. This doesn't appear to make any difference in the coordingates loaded into SCOPE from TheSky, but the link will continue to work until I exit TheSky. Before I can restart TheSky and reestablish a link to SCOPE, I have to edit the Windows Registry again. I can't change it from inside TheSky because this option is only available after I establish a link. The long format isn't worth this much trouble. Anyway, I can get it to work.   

To edit the registry open REGEDIT and immediately export the registry to a file as a precaution. Next click edit and find then search for LX200.  Right click on UseLongFormat and then select Modify. Set the value to 0 and click OK. Exit REGEDIT.   Allen Gilchriswa


I just peeked at the source code, and TheSky uses the current Registry setting to check or uncheck the "Use Long Format" option (it is "on" if the Registry setting is absent). So, if you manually set the Registry entry to 0, then TheSky should use the short format by default.  For example, set:  HKEY_CURRENT_USER\Software\Software Bisque\TheSky\LX200\UseLongFormat  to 0 rather than 1 to turn off the Use Long Format option.  Daniel R. Bisque 12125


The long format does work with SCOPE. Megastar will link with SCOPE  in the long format. It is not necessary to edit CONFIG.DAT.  Megastar sends an LX-200 command that switchs SCOPE to long format.  The parameter is then saved in CONFIG.DAT file. Apparently, TheSky expects expects the LX-200 to be in short format when it is turned on, because if SCOPE is set to long format TheSky will not make the link. After a link is established, however, TheSky can be set to long format in the telescope menu, and it will send an LX-200 command that will switch SCOPE to long format. The problem is that the change will be saved in the Windows registryit will not l, and the next time an attempt is made to establish a link to SCOPE it will not work regardless of whether SCOPE is in long or short format.

The only way I've been able to make the connection is to have both programs set for short format. If someone connects with Megastar the long format parameter will be set to 1 in CONFIG.DAT, and it will be necessary to reset it to 0 before a link can be established from TheSky.  Allen Gilchriswa  12130

The ACP that comes with SNP did not work for me. If you are using SNP V3 or higher you should check out the good folks at ASCOM. The URL is  http://ascom-standards.org/downloads.html. Their plug-in can select Generic Lx200 Type Scopes. This will allow you to Slew Scope to the current gaze in SNP. Mouse to an object in SNP, Double Click. A Dialog box comes up. Select Center.(You should turn off the zoom function) Go to Telescope. Select Slew to Current Gaze. Scope slews to the object. Magic is happening here people. The Follow Telescope option does not work for me but I do not care. SNP becomes a GUI DAT  file. Bryn Jones


Starry Night Pro gives Ra/Dec coords. Better: they provide a little dll that can be used from Visual Basic to get Ra/Dec from the center of StarryNight's screen. You can also tell SNP to go to a specified coord. I used that to make a little add-on that sticks to SNP window and communicate with scope.exe via LX200 commands. With this add-on, you can just center an object in SNP and a button hit makes scope to move to that location. Also SNP's screen can follow scope's movement. I will add so  on Init buttons to issue directly init commands to scope from SNP.    http://groups.yahoo.com/group/scope-drive/files/SOFTWARE/   Jonathan Lavoie


The fundamental problem with viewing accuracy from the direction of a planetarium program + encoders is that you are limited to encoder accuracy. Knowing that encoders may be +- 1 or 2 pulses, and that each pulse may be several arcminutes to many arcminutes, the pointing accuracy will always be fairly unacceptable. If encoder is 2048 quad decoded to 8096, accuracy is maybe +- 10 arcminutes. Acceptable pointing accuracy visually means never having to remove a high power eyepiece.

So it is best to let scope.exe keep track of the positioning. Attach the encoders to scope.exe. Scope.exe uses encoders to coarsely close the loop 1 per second. Encoders really only come into play if you slip the scope manually, or move it manually on purpose.

I suggest letting Megastar and scope.exe interact via the lx200 serial port. Let scope.exe send back equatorial positions accurate to arcsecond, and tell Megastar that scope.exe is a lx200 scope, and tell Megastar the latitude and longitude so that it can do any horizon displays that are necessary.

That way you avoid the fundamental problem of scope.exe returning corrected encoder counts that can only resolve to a large number of arcminutes because they are limited in overall range.  Mel Bartels3557


Cartes du Ciel works fine controlling scope in LX200 protocol.  The latest versions are working fine and the author say that is compatible with scope.     Richardo Sanchez


Q. Perhaps Autostar is not even suitable for SCOPE?

That's correct. Scope.exe needs lx200 protocal commands send over a serial link. Autostar is meant to talk directly to the motors in the Meade telescopes.  Mel Bartels


POINTING ACCURACY:    see Analysis  and  Periodic Error Correction     http://www.bbastrodesigns.com/operate_local_finding.html


I consider 1 arcminute RMS pointing across the sky, with 1 arcsec localized pointing from known offset positions, a truly admirable and final goal for amateurs. The best rigorous result that I've heard of (that means that the survey is spread out across the sky, that the estimation is done with measuring devices of some sort and not guessed at with the eye, and that all data points are considered - none rejected to make results look better), is with a Meade 12" using TheSky and TPoint on a permanent observatory mount, the result was something around 1/2 arcminute RMS.

There are a whole host of pointing issues when considering 1 arcsecond RMS pointing across the sky that the software does not address, many of them with the coordinate values themselves.                   Mel Bartels


Using these EC, Tom Krajci with a *portable* mount is able to do 30 arcsecond rms with horizon to horizon slews. (my software contains  analysis functions to determine rms pointing) This contrasts favorably with amateurs using permanently mounted scopes and TPoint also achieving 30" rms h-h slewing. Scope.exe does not handle the arcsecond range of EC that TPoint and observatory scopes will do. I do not regard this as necessary for amateurs. If it becomes necessary I will add arcsecond EC for h-h slews.        Mel Bartels


Q.  What's the point of having .1 arcsecond pointing accuracy when your seeing is >.5 arcseconds?"

A.  Tracking smoothness and relaxed tracking error constraints.   Mel Bartels


Q.  I've been working on pointing accuracy. At one time about 2 years ago someone built a test scroll file as a test of mount accuracy. I have run the test a couple of times indoors with a laser pointer attached. I marked a spot were the laser started, let the scroll file run its course and the recentered the laser dot at the starting point. I find that my mount after running the scroll file was off by .072 deg Alt and .093 deg Az. This seems very good to me and I am very excited to see how this translate into goto accuracy when I get a clear night. Does anyone else remember this old thread. What were your results. Striving for perfection and knowing I didn't have any slip in the worm and wormwheel drives I think the error must be from either the full step size entries or the backlash compensation. Does the program compensate for backlash at HS speed or only MS. 

A    .08 deg error ~ 5 arcminutes.  That's about ballpark for what people are getting today without advanced methods such as the error correction to push the error down a magnitude.  The error can come from a variety of sources. In addition to what you mention, don't forget tube droop and mechanical flexing, along with optical axis changes. Mel Bartels

A.  I do remember writing and posting a scroll file test.scr that basically slewed the scope all over the place for about 30-40 minutes and then returned it to the same place to determine if there was any slippage in a system. The test does not test overall pointing accuracy around the sky which you can only do by going into analysis mode and analysing stars all over the sky.  If you are using a roller driven drive rather than directly geared drive then the results you have achieved are great. 

When I originally ran the test  3 times on my roller drive system I got the following results: 

Azimuth errors of 0.156, 0.853, and 1.134 deg.

Altitude errors of 0.045, 0.021, and 0.072 deg.

Don't remember anybody else posting results. While this slippage appears large, if you do an equat reset on a known object every now and then it zeros any slippage that may have occurred and accurate pointing can still be achieved.  With a fixed gear system and no slippage you should get no error (or only as accurately as you can measure the error) as the scope away from and then returns to the same spot and it doesn't matter if your step sizes are a bit inaccurate as it steps the same number of steps to move away as it does to return. The only error will be any backlash you have not compensated for correctly. And yes backlash works for both slewing and microstepping.   Andy  Martyn


For those interested in comparing the accuracy of their roller drives with others I have uploaded a scroll file called Test.scr into the Analysis folder. This moves the scope around within a 360 deg azimuth and 90 deg altitude envelope and then returns to the starting point. The idea is to see how close the scope returns to the original starting point given a standard routine.

To run the test set your scopes current position to 0, 0, note where it is pointing ie by attaching a laser and marking a spot on the wall. Run the scroll program. When complete, note how many degrees you have to move the scope to get it back to the original position.  Andy Martyn


whenever I 'miss' an object, I usually slew back to where I started.  This checks for a number of things including slippage and motor stalling.    Mel Bartels


... tonight I did a two-star alignment of my sixteen inch dob, and then analyzed pointing errors of four reference stars across about 200 degrees of azimuth...a good chunk of sky. My pointing accuracy was 3.6 arcminutes RMS, just by correcting for the typical  non-perpendicularity mount errors we all have to some extent.

After I incorporated the next level of pointing correction back into Mel's software...pointing accuracy to these same stars was....0.6 arcminutes RMS.  (By the way, all this pointing was done in the blind...look Ma!...no encoders!...just Mel's software keeping count of motor steps.)

The one-arcminute pointing barrier for amateur scopes has been broken. Many doors open up for high mag visual observing, long focal length imaging, and others. Soon this pointing accuracy will become a common occurrence...especially considering that my scope is driven by surplus stepper motors and home made, molded, inexpensive, large worm gears, meshing with nylon threaded rods.     Tom Krajci  177
PS. "What hath Mel wrought!?" ;-)



Q.  Are the PMC corrections implemented only using the Z1,Z2 and Z3 values, or does/will PMC allow coefficients which will vary with time/scope position?  I.E. varying radius drive rollers/sectors.

A. The PMC is a general all-sky pointing correction routine. So you have your errors

possibly drift
Z1 (axis misalign)
Z2 (az offset)
Z3 (alt offset)

(working on these two now)
rocker base
altitude eccentricity (tube flexure and so forth)

then comes the all sky PMC which calls for you to take an analysis file composed of points all over the sky in a grid like fashion; basically it works by adjusting your position by giving more weight to the closest PMC points to your current position  Mel Bartels


...scope.exe has a pointing model error correction function which uses unlimited numbers of alignment stars to make local corrections.   Mel Bartels


General Pointing Model Corrections, called PMC, can now be analyzed and adopted.  Generate a new analysis file by going to the menu option init / purge analysis, then making analysis points in a grid back and forth and up and down the sky, with points about 30 degrees apart.  Go to the menu option init / graph PMC.  Here you will see the errors displayed.  If the errors look common sense, then you may generate the PMC by using the menu option init / AnalysisToPMC.


Q. In re-reading Mel's info on his website the ALTAZEC, ALTALTEC, AZAZEC  & PMC are all done in that sequence from the SAME analysis file after the Z1Z2Z3 corrections have been done.
However in an article, I think, by Tom Krajac; it appears a NEW analysis file is used for each of the above four (4) error correction
efforts done in sequence.
A.  It's best to make separate analysis files for each correction, building on 
the previous correction values.

Q.   If Tom's is correct, then do I have to set the variable flag (ie UseAltAzec etc) to "1" for each of the four error correction test after each test is completed and then re-start Scope for the previous?
A.   Yes, if you are using that corrective method, then analyze it, turn it on, and use it, before moving onto the next corrective stage. PMC is the final stage.     Mel Bartels 

POLAR ALIGNMENT:        http://www.bbastrodesigns.com/operate_equat_startup.html 

5-2-06  Totally revised Polar Alignment Routine.  Now uses only two stars.  I've
also attached a draft of a monograph describing the solution.
Q. don't quite understand what an asymmetric fuzzy zone is. 

A. In the original code, a parameter in config.dat called AutoGEMFlipFuzzDeg allowed the user to define a zone around the mount where the bottom of the scope could go in both the GEM On and GEM Off state, a fuzzy zone. If set to 15 degrees, say, in GEM On state, scope could point west of the meridian by one hour and in GEM Off state, it could point east of the meridian by one hour. New code allows you to set different values for each side of the pier. In the original code, the parameter could be set negative, which should prevent the scope from getting to the meridian or colliding with the pier. This worked in the GEM On state, but didn't work in the GEM Off state. New code prevents scope from hitting pier on either side. As long as sum of AutoGEMFlipOnFuzzDeg and AutoGEMFlipOffFuzzDeg is positive, scope can cover entire region around the pier. If negative, user will be warned if attempt is made to go into the safety zone. Hope this helps. Don Ware

Q.  Can you shortly point us to description how the new polar alignment routine works??

A. I went through the source code of this and the procedure is that you select two stars, it will reset to the star a coordinates. Then it will slew to star 2 coords. When this is entered, the offset is calculated and it will slew to where the second star should be for proper alignment so you center that via moving the MOUNT and then it will reset the coordinates on star 2. If you want the mathematics, they are fairly complex so just look at the source code. Eric Carlson 

Q. I can assume that the user starts the instructions you wrote after they have selected GEM mode at start up and reset to a bright star ? Scope would need to know where it was basically pointing to start with in order to go to the first star. 

A. you must start in Equatorial Mount mode. Select GEMFlip On or Off depending upon which side to Meridian you wish to select stars. I've set my config.dat file so I start up with Alt/Az set to 0/0 and in GEMFlipped Off state. If I start with scope pointing at Meridian and Celestial Equator, the first slew will get me in the vacinity of Star 1. Alternatively, you could select Star 1 and manually move to it, Reset to it as you suggest and then start the Polar Alignment routine. The first thing that happens after you center Star 1 and Handpad Leftkey is a ResetEquatorial command so the scope knows where it's pointing. Don Ware 

+++end of 5/2/06 update section

I imagine that the Z123 errors are already characterized. If not, then a first pass at polar alignment ... will give some sort of reasonable polar alignment, that can then be used to generate an analysis file to determine Z123. May have to iterate a couple of times. If both polar alignment and Z123 are unknown, then there is no solution - too many variables for 2 inits or for drift algorithm to distinguish.  Mel Bartels


Polar misalignment will masquerade as an incorrect step size with incorrect tracking rate. Mel Bartels  


Again, any type of polar misalignment also masquerades as fast or slow tracking depending on where in the sky you are pointing. Mel Bartels6206


If your polar alignment is off by 10 arcminutes, then I'd expect goto pointing errors to be of the same magnitude.  Mel Bartels


You can use scope.exe to do the align, but you need to make sure the gear ratios are set up quite well, and the mount is functioning good for GOTO, etc..  Chuck Shaw


I've used this procedure before:
1. get scope.exe's config.dat longitude accurate to a degree
2. get laptop system time accurate to a few minutes
3. using a predefined 90 deg dec mark, align scope to 90 deg dec
4. tell scope.exe that you are 90 deg dec, using equatorial alignment
5. now 'goto' polaris
6. physically manhandle mount until polaris is centered in field     Mel Bartels



The three star polar alignment routine as currently distributed has a serious flaw in it. I'm currently having some ScopeI users perform beta testing on a new version.  Don Ware


New Procedure 4/26/2003  Added polar alignment procedure, extensive code and documentation courtesy Don Ware. Procedure is: 

"Polar Alignment is split into five parts to allow operator intervention between stages.

The process is started via the Init Menu or via hotkey '*'. Subsequent stages are entered via hotkey '*' or via the handpad left key. 

In Stage 0, three stars are selected from the databases and the coordinates of the first star entered as input. After slewing to start#1, the operator then centers this star in the eyepiece with the handpad. 

In Stage 1, a ResetEquatorial is executed (by the software), the coordinates of the second star entered as input and a slew to those coordinates executed. The operator then centers this star in the eyepiece using the handpad. Then "*".

In Stage 2, the apparent coordinates of the second star are read (by the software) and the offset of the polar axis calculated. Then a set of coordinates are calculated for the third star which are offset so that when the polar axis is moved to correct alignment the star will be centered in the eyepiece. A slew to these coordinates now takes place. The operator then adjusts the polar axis using altazimuth mount corrections only.  Then "*".

In Stage 3, a Reset Equatorial is performed (by the software) using Star 3's correct coordinates. Finally, a slew back to the first star takes place.

In Stage 4, the operator is given the choice of repeating the process or of quitting. If the handpad is to be used, the Select HP Option "Polar Alignment" should be set prior to the start of the polar alignment process."

I want to thank Don Ware and say how impressed I am with his routines and code. The polar alignment routine in particular is an important innovation that should speed up accurate polar alignment.  Mel Barrtels


Three Star Polar Alignment Procedure The Three Star Polar Alignment procedure does not depend upon local latitude or local sidereal time so neither of these need to be set in the config.dat file. The values for Azimuth and Declination are also not needed so the four limit values in config.dat can be set to 0.0 and Az/Dec ignored or set as normally used.

The mount should be adjusted so the polar axis is roughly polar aligned. Start scope.exe with startup option 1, select equatorial alignment. As scope.exe starts up with Current Alt/Az set to the current values the last time config.dat was saved, you must either have the scope pointing in that orientation or pointed at a star selected from the databases, followed by a ResetEquatorial.

If the handpad LeftKey is to be used to step through the alignment procedure, select menu option Handpad/SelectHPMode/ Polar Alignment BEFORE starting the polar alignment procedure.

Note In this mode, the slew distance limit warning is turned off. If the polar alignment procedure is aborted, the Handpad Mode should be changed manually. Three Star Polar is initiated by menu option Init/PolarAlign or by hotkey '*'.

Note If the polar alignment procedure is aborted, it can only be restarted via the menu option. 

Upon starting, the user will be asked to select three stars from the datafiles. The Star 1 can be in the east (or west) and about 45 degrees elevation. Star 2 and Star 3 can be in the northeast and south- east (or northwest and southwest) and at about 10 - 15 degrees elevation Tracking will be turned on. The user should then center Star 1 in the eyepiece manually and/or using the handpad Up/Down - CW/CCW buttons. When Star 1 is centered, hotkey '*' or Handpad LeftKey should be pressed. You cannot use a star that's almost due East or West for Star 3. Try with Pollux or Castor as Star 1 and pick stars in S or SW for Star 3.

The scope will now slew to the epoch 2000.0 position of Star 2. If the polar axis is correctly set, the star will now appear in the eyepiece. If it isn't, it should be positioned using the handpad Up/Down - CW/CCW buttons. Reset should NOT be pressed. When Star 2 is centered, hotkey '*' or Handpad Leftkey should be pressed.

The scope will now slew to a position calculated from the difference between the apparent position and epoch 2000.0 position of Star 2. The user should then physically move the polar axis up/down and east/west until Star 3 is centered in the eyepiece. When Star 3 is centered, hotkey '*' or Handpad Leftkey should be pressed. The scope will now slew back to the epoch 2000.0 position of Star 1, which should now be centered in the eyepiece. Pressing hotkey '*' or handpad LeftKey will give the user the choice of repeating the process or quitting. If a repeat is selected, the same three stars will be used for the next pass.   Don Ware


"-  just move the scope to Star 1 manually and/or with handpad and then use hotkey ''*' or Handpad Left."

Actually I added a 'slew to star1' to the code. And the ResetEquat is done for you.  Mel Bartels 


....to suggest that after you start up the mount in Eq mode (assuming the mount is already roughly polar aligned), that you move the scope to your star 1, and then do a reset to Input Eq on the coord of star 1 BEFORE you start the procedure (actually you could do this on any star, not just the one you are planning on using for star 1). Then, start the procedure and run it as written. 

The reason is if you have not done a reset to Eq BEFORE you start the procedure, as soon as you have selected all 3 stars and continue the procedure it will try to slew to star 1. However, with no Reset to Eq, it is clueless as to really where star 1 is, and will use whatever was already in memory as the "current" position, and it will obediently go trucking off to someplace it "thinks" where star 1 is. The only way that would be accurate is if the mount has an accurate picture of where it actually is before it stars the slew.   Chuck Shaw


(The first time) I manually pointed in the general direction of Star 1 and used the handpad to center. A ResetEquatorial happens automatically when you hotkey * or HandpadLeft.  

To work with the May 6 version, I set the declination arm level with scope on the East side and pointing to Polaris. Set equatorial to DEC = 90, RA = local sidereal time. This gives Alt = 90, Az = 0. Then save config.dat. The next time you start up, your equatorial coordinates will be DEC = 90 and RA = local sidereal time. Scope knows where it is and will slew towards Star 1 ok.  

If you want to align using eastern stars, do a Manual GEMFlip. Swing scope to West side to pier. Equatorial coordinates will still be DEC = 90, RA = local sidereal time, but now Alt = 90, Az = 180.  If you ever save config.dat again, make sure equatorial coordinates are as above before saving.   Don Ware


You want to start scope.exe by selecting equatorial alignment. This aligns your scope perfectly in software. Now your job becomes one of aligning it physically by pointing it correctly at the pole.

Do not do your own inits. This initializes the software to a pole that points away from the true pole. The polar alignment procedure will not work  in this circumstance.   Mel Bartels

Start with the telescope at least roughly polar aligned...remember to never do any initializations at any time because it will confuse the original equatorial initializations made by the software at program startup time.    mb


If the polar alignment routine is aborted in the middle of the sequence of going from Star 1 to 2 to 3 and then back to 1, you cannot restart it using hotkey '*'. You must restart using Menu/Init/Polar Alignment. The reason for this is that the routine is divided into a series of steps and hotkey '*' goes to the next step after you stopped the previous time, not back to the beginning. This is true even if you're using the handpad to do the stepping. Of course you will have to rechoose you're three stars when you restart.  You can always define one of the user defined hotkeys F9-F12 as Menu/Init/Polar Aligment. This will always start at the beginning.   Don Ware


-  when Handpad mode is selected, the warning message about slews greater than X degrees is turned off. Some people may not want to work in that mode, even when doing polar alignment.

when polar aligning, during the time you're slewing from Star1 to Star2, centering Star2 and slewing to Star3, the scope is tracking around a misaligned polar axis . The longer that process takes, the poorer the alignment will be after adjusting Alt/Az of the mount. I almost always do a second pass.      Don Ware


Q.  Does this feature allow the datafiles to be placed in directories, ie. Messier dat files a Messier directory, NGC files in NGC directory etc., so that the "D" hotkey will pull up a listing of directories and then selecting a directory will pull up the dat files in that directory?

A.  Yes    Mel Bartels


6/13/03  Enhanced and changed the initialization display to include offset from zenith (for altazimuth mounts, the offset should be very little assuming the scope was setup eyeball level), and equatorial pole offset (for equatorial mounts using manual initializations, will give an indication of where to adjust the mount for better polar alignment).  Mel Bartels


Q.  Using the latest version of Scope.exe, I tried the Polar Align Routine with my G11 that had been drift aligned with a drift time of 30 minutes with no movement of the star off the crosshairs.

I used Dubhe, Spica, and Denebola as they were the brightest unobstructed stars in my western sky. After having done a Reset on Dubhe, and the handpad in Polar Align mode, I started the Polar Align Routine and when the scope went to Spica it was about a half degree off. I centered it using the handpad and then went to Denebola which was also about half a degree off. I did not adjust the mount as I know it is polar aligned.   Don D'Egidio

A.  Polar Align routine assumes that your mount is perfectly constructed. ie Z1 and Z2 are equal to zero or corrected for. Also assumes that polar and declination bearings are smooth and there is no eccentricity in either drive mechanism that would result in inaccurate goto performance.

None of these errors affect drift alignment over periods of an hour or so.  The fact that you get a 1/2 degree offset going between star 1 and star 2 indicates that one or more of the above errors are likely present.   Don Ware


Polar misalignment is just one of many possible mount errors, and the polar alignment routine will not be very precise until your other mount errors are characterized. Periodic error, backlash, Z1Z2Z3, etc. So it is best to start with is the drift method. Otherwise, you have to iterate on polar aligment and mount errors. Ben Davies




There's a formula based on cos(declination) and sin(hour angle) that shows how long you can expose given a particular polar misalignment - but I can't recall it specifically - perhaps someone else can?

Basically, as I recall, if you can get polar alignment down to 1-2 arcminutes, you can expose for 30 minutes. This gets you down into the range of refraction variation, differential flexure of the mount, and a host of other errors that we amateurs usually don't bother messing with,  particularly on portable or semi-permanent scopes. So, that's the goal I see - 1 arcminute polar alignment.

There's a log file that's generated from the polar alignment procedure      Mel Bartels


...do a 2 star init via the altaz init method, then view the polar alignment numbers in the 'display init' (hotkey 'i') menu option.  Mel Bartels


You can improve the polar alignment as follows:

1. center a star close to the meridian then go to a star on the celestial equator about 30 degrees above the horizon
2. adjust telescope polar axis until star is centered
3. go back to first star and recenter
4. repeat #2 as desired
That should do it.    Mel Bartels


Q.  My problems relate to accuracy. My mount is not accurately polar aligned (a long story...) As a result I have quite a bit of drift and  longer slews will result in the object being out of the field.

A.  You have two options: do a full 2 star init so as to align your scope correctly with the stars, or, do the equatorial startup, and let the software calculate drift for you by doing a little guiding (this will have  to be repeated for different parts of the sky, but you can do this as you observe).   Mel Bartels


Further, if you don't know if you are polar aligned, you can do the 2 inits, look at the init values via the 'i' key, and reposition your mount (for instance, a latitude of 89 degrees and a small hour angle error indicates that you are 1 degree too low), starting over with either 'adopt equat mount' if you are satisfied that you have the alignment, or go through another series of 2 inits to look at the init values once again.  Mel Bartels



Q.  Is it a problem to use a 14V battery and not 12V as stated in Mels circuit-diagram?

A.  It is not a problem, in fact, many 12 volt batteries actually output 13.7 volts. Mel Bartels  10038


Q. I have a power supply which will give 12v. at 300 ma. which.....

A.  Not near enough capacity. A 3 amp supply is probably minimum.   Mel Bartels


Q.  If the circuit is OFF it is 11.70V or something, but when the circuit is ON it drops to about 7V. Is this a indication that my batteries are not powerful enough?

A.  The voltage drop is caused by your batteries not being able to supply sufficient current. You can increase the available current by putting more batteries in parallel, ie having two series of 8 batteries in parallel will double the available current. A better alternative is to use something that can supply more current like a car battery. Andy Martyn   9985


Q The steppers will move perfectly, in both directions, if you tell them to "move HS". Both will run very smoothly. But when you give it an object to slew to one or other of the motors will stall.  

A.  An inadequate power supply that is ok for one motor but not two motors working at same time is most likely culprit.  Wire size can constrict  current (think of current as water flow in a pipe and voltage as the pressure behind the water). Halfstep move is always one motor at a time, while a slew to position will almost always activate both motors at once.    Mel Bartels


Q.  I am using 0.4A 12V steppers to move my 20" scope; the power being supplied by a AT computer PSU. The steppers are pretty much on the limit as far as getting reasonable slew speed goes. I would like to try 24 V with these but haven't found a suitable power supply. 

A.  Take a look at the data sheet for the LM350 posted on the National Semiconductor site, there is a current limiting variable voltage power supply among the examples which uses a MJ4502 PNP pass transistor and an LM301. The supply when built with a suitable transformer will supply around 2 to 35V @5A.  Jay LeBlanc

A.  I use two car battery chargers in series with no ill effect.    Juan Herrero


Q. Has anyone taken a power supply from an old junk computer to use to power Mel's circuit, rather than buying one?

A.  ...a garden variety ATX power supply should have plenty of current capability (you can even buy them surplus pretty cheap - I got one from MECI for only $10 plus shipping). The only thing you need to be aware of is there's a minimum load spec, usually 5-10% of the full rated current on the 5V supply. If you try to power one up with no load, it won't work   Just figure out a resistor to put on one of the 5V outputs that will give a current that's high enough. You might have to experiment if you can't find the documentation on the supply (and make sure the resistor wattage is high enough).  I'm planning on using some resistor rope as anti dew heating for the focuser and secondary mirror so the mirror and eyepiece don't fog (a big problem here in Florida during the very humid summer nights) to put me over the minimum load requirement. All in all, it's a very cheap, perfectly suitable power solution.  Steve Rivet   1556


I was running the entire board off 24 volts for a while with a heat sink and a fan on the 7805 to cool it. Even so, the regulator ran too hot to touch and after several hours operation, I began see flaky behavior such as the handpad would only slew the telescope in microsteps, ignoring the halfstep switch. It would take a restart to fix.

So I changed to a 22v/12v/5v switching power supply, fed the motors with 22v, removed the 7805 and fed the logic with 5v. The encoders and fans at the mirror run off the 12v supply. After many hours now, so far so good. No heat and no flakes. Ben Davies


Q.  what kind of battery set-ups are folks using in the field?

A.  34 amp hr marine grade (fishing) battery. It has a reserve of 41 amp hours.  Inverter (150 watt) for the laptop and 12 volts for the pcb. It will run easily for 2 nights.  The battery was purchased at Walmart for ~US$30.   Lenord Stage  1500


A deep cycle lead acid battery is a battery that is designed to be discharged to 80-90% of its total amp-hour capacity. A regular car battery will fail quickly if repeatedly discharged that amount. A deep discharge (90%) battery will last much longer than an standard battery in the kinds of use we astronomers will put it to.  A marine battery is a deep dishcarge battery. The kind fishermen use to power electric trolling motors on their boats.  Tom Carey


I built a box, with a hinged lid out of 3/4 inch plywood to hold the battery. In the lid of the box, I put 4 cirgarette lighter recepticles so I can easily plug in accessories in the field. It works great and is very easy to build. I have stout handles on each side to aid in lugging it around. Then I purchased a solar charger to recharge it a bit in the field during the day. Harbor Freight sells one for about $40.00 that will replenish some of the previous nights' drain.  Mike Hotka


If you can find an old fotocopier machine, they have very stable, heavy duty power supplies with lots of power.  Mine produces 18 volt 9 amps (witch i do only need during 0.5 seconds in the ramp up or down. when slewing or microstepping, the consumption is about 2 amps with both motors connected.  I know this sounds a lot but i am overpowering the motors 5 times nominal voltage to achieve high speed slews. Johan Coussens  9128 


I think there's a high probability you'll damage the PC's motherboard. (tapping in to the desktop's power supply) You can buy surplus PC power supplies for less than $20 at places like Jameco, H&R, etc. Having a separate supply would isolate any spikes from the motherboard's sensitive electronics. Steve Rivet  9125


PC power supplies have several outputs. 5v, +12v, and -12v and some may have other voltages for the new processors. The 5v side usually supplies quite a bit of current, as most of the pc motherboard runs on it. the 12v sections of the power supply have a very low current rating. At the very least, you will keep locking up your pc during slews. At the most, the power supply will go into overcurrent shut down or smoke.

I power my scope electronics from an old computer power supply, however, it was quite beefy in the 12 v department. Also, it's powering the scope electronics and motors alone. It's a bit bulky with all the gizmos hooked up, but works fine.

However, most pc's have quite a bit of excess room inside the case. That should allow you to mount your scope electronics in it and also a second 'scope' power supply.

One point is, you'll have enough of a challenge getting the system to work  properly without having to worry about power supply glitches and computer  lockups. Save yourself some trouble.   Bob Norgard  9126


PC supplies generally have hordes of protection features and it's hard to damage them - they also make it hard to damage the PC electronics they were designed power, and that brings up another problem. PC power supplies generally require a 10% minimum load (10% of the total maximum rated current on the 5V outputs). This little quirk had me convinced I had received a bad supply from a surplus company until one of the engineers here at work pointed out this feature.  If that current draw is not present, the power supply won't start up - it won't damage the power supply, but it will shut itself down by disabling all of the outputs. Mel's board only draws a few mA, so that's not enough. You have to create this minimum load, how much depends on the max 5V rated load. I solved this problem by connecting the 5V output to enough anti dew ropes to get over the min threshold - the current draw of Mel's board is low enough that it won't be noticeable compared to the dew ropes. If you don't want to hook up an anti dew system, you can just hook up a power resistor to draw enough current to get you over the threshold. You can hook the load to any of the 5V supplies (12V might even work, but I haven't tried that). Either the resistor or the dew ropes (the same thing really) are purely resistive, steady loads that won't generate noise and upset the electronics on Mel's board. Steve Rivet    8456


All of the electronics in a laptop use voltages much lower than 10V. The battery voltage is regulated down to a level usable by the electronics; if the battery voltage is a little higher, the regulators can still handle it - there is a safety margin built in. As long as you stay below the charger voltage, you should be OK. However, the charger voltage does need to be somewhat higher than the nominal battery voltage if you want to charge the battery in a reasonable amount of time. If the battery voltage equals the charger voltage, you will never really charge the battery.    Steve Rivet  7316


I try to run the laptops and the pcb off the same battery. I have three different way of doing so:

1. 1 splice into the cable that powers the laptop from AC with 3 db-9 connectors. One goes to the the cord and plug that attaches to the laptop.  The second to the ac power line, after the voltage converter. The third to a 2 wire line to the battery, with clips to attach it to the battery. This allows the ac converter or the battery to be used and is less intrusive.

2. If the plug to the laptop is available from radio shack, I just use one of their plugs and solder a 2 line cable to the battery and the new plug.  This does not always work though.

3. If I have a dead battery to the laptop, I take out the cells of the battery pack and solder in 2 wires (where they need to go) inside the battery pack where the batteries were. Then I solder two wires to a plug type that I have a male and female for. The female goes inside the battery pack where the old cells were and sticks out the side. (I drill a small hole in the side of the old battery pack housing for this). The other plug gets two wires and 2 clips to attach to the larger pcb battery 

I have found that this third arrangement works best when the factory ac converter supplies more than 15 volts to the laptop. The first two work when the ac converter supplies less than 15 volts to the laptop.

Most of the factory battery packs I have seen only supply 12 or 13 volts to the laptop making them easily usable from a 12 volt marine grade battery. Lenord Stage  6669


it wasn't that the power supply was too small.  My meter showed a total current draw of 1.7 amps with both steppers slewing and the supply was rated for 6 amps @ 12.8 volts.  When I put my O-scope on the output of the power supply I found that there was almost 2 volts of spikes above and below the 13 volts. Over 20% noise !!!

I installed 2 4700 uf caps right on the voltage rail on Mel's card. (Used the space intended for the derotation components).  This reduced the noise to 1/10 volt on the 13 volt rail.  My slews got faster and the stepper noise was slightly less.  Bob Nielson


Q.  My manual slewing via the handpad is fine. I took a lot of time fine tuning config.dat to get halfsteps and microsteps just right. When I go out to use the system I carefully polar align, reset to eqat on a star then pick a nearby star and select "move to eqatorial" the motors the accelerate until a stall occurs and I lose alignment.

A. This can be caused by a power supply that can not provide enough current to drive two motors at the same time. It works ok for handpad because only one motor is being driven. But a slew will drive both motors at the same time. If you have a volt meter measure the DC voltage at the supply while the slew is in progress if you see the voltage drop by a few volts then that is your problem. It can also be caused by too small and too long of a wire from the main supply. Again you can measure the voltage drop from on end of the supply wire to the other. If you see more than a volt then that is your problem.    Dale Eason


get rid of the battery charger...  They DO NOT put out 12 volts DC which is what the circuit is needing.  A battery charger puts out anywhere from 15 to 20 volts DC with the same amount of AC riding on it because a battery charger is usually only a half wave rectifier and the output is not filtered or regulated. You'll need a REGULATED power supply with a current capacity TWICE the listed rating of your motor (you are running 2 or more?). At the very least if you cannot find a regulated supply, hook the battery charger to a battery and run the circuit from the battery.     Ken Hunter


If you want to build your own try looking at Ian Purdie's http://my.integritynet.com.au/purdic/ web site and use an LM350 instead of LM317 for the 0V- to 15V regulator - it is good up to 3 Amps, but make sure you heat sink the regulator. Also instead of the "wall wart" sue a transformer and rectifier.  nmlearner


A small suggestion re the use of batteries (auto or marine) for power would be to get a small "conditioner" from Sears for about $28.00 (probably more by now). These are little black boxes which are solid state trickle chargers made to continually keep a charging current flowing. This way the battery will last MUCH longer than when it is just charged periodically and allowed to sit idle between uses.   Jerry Limber


Q.  I'm wondering if I could get better performance from my system if I  replaced my constant voltage power supply with a constant current  supply.

A.  In the end, both work about the same. The current needs to be increased to increase the voltage to combat the back EMF thanks to high speed switching. Depending on the details, one might work better than the other. Mel Bartels


Anyone interested in using a constant current source may find the Silicon Chip (Aussie mag) article at http://www.siliconchip.com.au/cms/A_30554/article.html interesting.

This kit is available from Oatley Electronics for around US$20, and I have a couple on order. Bernard Heathcote


PROGRAM DISPLAY:              http://www.bbastrodesigns.com/operate_program_display_servo.html 

Q  I just executed scope.exe and hit 't' key to switch tracking on. Then I used the handpad to center some star through the finder, a few numbers appeared just below the line of AZEC, AAEC, ZZEC and PMC.  What do they mean?

A   These should be the slewing numbers - 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 steps, and the current speed index (larger numbers = slow speeds, smaller numbers = high speeds).   Mel Bartels



Don't forget to make the current compensation before making the QSC one. Mel Bartels


If the spacing between fullsteps varies, then you might look into the quarter step correction (QSC). This allows the software to readjust the timing of the microstep occurrence, such that some microsteps are moved up in time and others delayed in order to make the smoothest motion when tracking.  The QSC is for microstepping tracking only - not for slewing. In addition, if you see strong variations between microstepping distances of A B C D windings then you might also look at the winding compensation factor. The better the motor, the fewer the issues. Probably the nicest motors I've seen are the higher end ones meant for microstepping and the 400 step per rev Vextas which I now use. In the end, make it as smooth as you can then try it at the eyepiece - most of these errors are below what the seeing can resolve in terms of tracking accuracy.     Mel Bartels


QSC or quarter step correction works the same as the other error correcting factors. They are applied to the motor position to arrive at a sky or celestial position. So when you advance the motors ahead and behind discreet microsteps, you will not see the error corrections applied, but when utilizing the tracking and goto, you will see the error corrections applied. QSC is linearly interpolated, as are most of the other error correcting values, except for the PMC Pointing Model Correction, which is computed with a weighted factor.

For example, if the accumulated motor microsteps is 1,000,000, and the fullstep size is 5 arcseconds, and there are 40 microsteps per fullstep, thn the raw motor position is 1,000,000*(5/40) = 125,000 arcseconds, or 34.7222 degrees. If we are on the first quarter step of the sequence (winding A, microstep #10), and the corrective value is 0.1, then the corrective value is 0.1 fullsteps * 5 arcseconds/fullstep or 0.5 arcseconds. So the  corrected position is 125,000.5 arcseconds or 34.7224 degrees.

The effect while watching the motor will be to smooth out its motion.  Compared to an uncorrected motion, the motor will appear to speed up or slow down slightly.     Mel Bartels    6729


I did not realise that QSC acted like the other correction factors. I had visions that it actually effected the PWM array values to physically alter the microstep position. So basically when the scope is tracking at a constant rate, the software is subtly increasing or decreasing the microstep rate to account for varying microstep sizes over the four coils and thus the scope tracks across the sky at a constant rate.  Andy Martyn


do not confuse individual winding current compensation with quarter step correction.

The former corrects for variations in output current from a circuit board, while the latter corrects for variations in step size in the motor. The former will make consistent sized microsteps across all four windings easier to achieve, while the latter makes even sized fullsteps easier to achieve.       Mel Bartels    6745


Q.  Should I attempt to correct with QuarterStepCorrection before doing the microstep ratio adjust ?

A.  No - the QSC only works like the higher level error correcting options - it adds/subtracts based on stepper rotor winding position to the tracking too coordinates.   Mel Bartels


The "Ms" area shows ....... the quarter step correction for altitude and azimuth motors in decimal fullsteps.    Mel Bartels  4201


for stepper motors, physical variations in the quarterstep spacings over the sequence of windings (called QSC for QuarterStepCorrection)


since QSC is applied externally to the PWMs, you can tune the PWMs after QSC.  However, it is likely that the quarter step QSC correction will need to be tweaked slightly.         Mel Bartels


Q.  the actual spacing between microsteps or fullsteps does not change when you apply QSC but the program slows or speeds up the steps so that the rotational speed stays constant? So after I apply QSC and look at the positions of the microsteps projected by the laser on my piece of paper on the wall I will see that the actual microstep positions have not changed?

A.  Exactly, qsc will change nothing when tuning individual microsteps.  Mel Bartels 6736


Q.  My midpoint PWM at 100:100 puts the laser pointer about 30% off from the true half way point between full steps. So the laser dot first moves through the longer distance half step and then slows down as it moves through the tighter spaced second half  step.

A.  That might be tolerable at the eyepiece. You might give it a go and see if you need to tune up performance or decide that the 30% variance is geared down so much that it is not visible by the time it gets to the eyepiece.

30% is about the limit of what I would reasonably expect to hide by the gear down ratio.

Better than setting ms speed to 1 arcsec/second is to use the 2 motor track and set a tracking rate of say 1. That's a bit more consistent as basically all other distractions are turned off in this tracking routine.    Mel Bartels


you can use the quarter step correction (QSC) to fix microstep positioning, particularly if the microsteps are fairly evenly spaced but yet tend to bunch up such that the middle microstep comes early or late.  

QSC is really meant to fix smoothly varying stepper motor errors over the sequence of 4 repeating windings. For instance, you might find that the first microstep sequence has its midpoint early while the second microstep sequence has its midpoint late.

If you find that the QSC values are pretty much the same over all 4 windings, then it is clearer to adjust the PWM[] A : B values and turn off QSC.

QSC started with Tom Krajci's observation of what many of us had seen in certain steppers, namely that the halfsteps were not always evenly spaced, and his further observations that this extended down into the quarter step level.      Mel Bartels   4255


Q.  Isn't this exactly what I need to correct the over long steps on the motors I wrote in about? Certainly sound like it. If I've got two short steps (a0 and b0) and two long steps (c0 and d0) should I be able to apply this to the shorter or longer steps to correct it? The 400 step motor may be a cheapo but the Vexta wasn't and it was used for microstepping but driven off a commercial Parker Compumotor type drive unit originally. If I'm getting 2.84" 2.84" on the first two full steps and 3.6" and 3.5" on the last two (400 step) can the QSC correct for that disparity. That is at a 200" radius. The Vexta was 5.8", 6.0", 6.5" and 6.6"

A.  Yes, this is exactly why the QSC is meant for.   the corrective factor will speed up the motor during the shorter steps and slow down the motor during the longer steps to make an even velocity.      Mel Bartels  6743


Q.   (A0), which is the starting position of the first quarterstep, must always be 0?

A.  Doesn't have to be zero. The numbers are all relative to each other. QSC is quarter step correction, where every quarter step a corrective value can be entered for each motor. These error correction values are applied in the same spot as refraction, periodic error, guiding error, and the like. So you will never see it when you are doing individual microsteps. You will see it when the scope is tracking on an object. Since tracking is also position vs time, you can observe the QSC in either the positional domain or the time domain. The net result should be that the motor moves at a more constant velocity. Mel Bartels


Next you work out QSC which is worthwhile if you see large differences between halfstep sizes. First point the laser at the paper on the wall for fullstep position a0 and make a mark. Advance the motor through 4 fullsteps until you get back to a0. Divide the distance between the two marks equally into 16 equal distances which gives you the ideal quarter step sizes. A point to note is that because the motor is moving a few degrees over the four steps and the laser is projecting onto a flat surface you will small tangential errors. You can adjust the marks to allow for this error, or make an adjustment when you are working out your QSC values.

Now just step through the microsteps and mark on the paper where the laser says the quarter steps are.

Calculating the QSC values is then just a matter of measuring the difference between the measured quarter mark and the ideal quarter mark and then dividing it by the fullstep distance. For example if the distance covered by the 4 fullsteps is 600mm then the full step size is 150mm and the differences for the first 4 quarter steps are 0 (the first value is always 0), +10, +5, and -10, then the QSC values are 0, 0.067, 0.033, and -0.067.

This completes the process for the azimuth motor...You now plug the altitude motor into the altitude output and repeat the whole process again for the altitude motor.   Andy Martyn  7858


QSC_a0 Alt : Az      Lefthand side is altitude/declination, righthand side is azimuth/right ascension    Mel Bartels


Q.  Can I create separate QSC tables for the different steppers ?? If so, what is the format ???

A.  use the ' : ' to separate motor values

ie  from http://www.bbastrodesigns.com/cot/config.html 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


Step by step:

1.- Take the full length of the four steps and divide it in 16 equal segments. These are the ideal positions. Make this for AR/AZ motor and for ALT/DEC motor.
2.- Take the difference of the real data to each ideal data (you have 16 points per motor).
3.- Divide that difference by the MEAN length of a step (in ALT/DEC is 668 / 4 and in AR/AZ is 661 / 4). This result is what is needed to input in  SC_a0 x:y values. x for ALT/DEC and y for AR/AZ.

There are more questions, not directly related with the maths mentioned.

I realized that "tangent" errors may accumulate. What we are really measuring are angles, and a projection to a wall is a mix with tangents.  I've calculated that on a 5 meters distance there is a very little error with 1 step (in a 200 steps/rev motor). But four steps give an important error (4.5 mm in 661 mm). I corrected the data given in my mail to make the QSC adjustments, but I choose to send raw data to simplify and get "concepts".

With these corrections and the concepts Mel and Tom gave, my QSC correction is:

;Quarter Step Correction ALT/DEC : AZ/AR
QSC_a0 0.000 : 0.000
QSC_a1 0.015 : -0.031
QSC_a2 0.025 : -0.025
QSC_a3 -0.002 : -0.037
QSC_b0 -0.024 : -0.019
QSC_b1 -0.036 : -0.035
QSC_b2 -0.039 : -0.033
QSC_b3 -0.040 : -0.040
QSC_c0 -0.025 : -0.029
QSC_c1 0.003 : -0.034
QSC_c2 0.008 : -0.033
QSC_c3 -0.009 : -0.035
QSC_d0 -0.021 : -0.038
QSC_d1 -0.012 : -0.026
QSC_d2 -0.003 : -0.015
QSC_d3 -0.022 : -0.007                       jprieto   2853


I have gotten my 20 microsteps even and have been trying to apply the QSC to get the full steps the same size. I have (finally) figured out that the correction value is derived from:

1. measure the actual distance of four full steps from a0 to a0. Divide that by 4 to get the ideal full step size and by 4 again to get the ideal quarter steps. While getting the 4 full steps, mark where each 5th microstep falls giving you 16 measured values.

2. divide the measured qs by the ideal qs to get a positive or negative result. Divide that number by the ideal full step size and the result is what is entered into the QSC table. The measurements are all from a0 to whatever quarter step is being measured, a0 to b15, a0 to d10, etc.
What I have in my table is entered as 
QSC_a0 0.000 : 0.000
QSC_a1 -0.023 : -0.058
QSC_a2 -0.091 : -0.023
and so on with a single space between each number or colon. I placed the list in the microstepping section of config.dat. Lenny Shaffer7362


QSC or quarter step correction works the same as the other error correcting factors. They are applied to the motor position to arrive at a sky or celestial position. So when you advance the motors ahead and behind discreet microsteps, you will not see the error corrections applied, but when utilizing the tracking and goto, you will see the error corrections applied. QSC is linearly interpolated, as are most of the other error correcting values, except for the PMC Pointing Model Correction, which is computed with a weighted factor.

For example, if the accumulated motor microsteps is 1,000,000, and the fullstep size is 5 arcseconds, and there are 40 microsteps per fullstep, thn the raw motor position is 1,000,000*(5/40) = 125,000 arcseconds, or 34.7222 degrees. If we are on the first quarter step of the sequence (winding A, microstep #10), and the corrective value is 0.1, then the corrective value is 0.1 fullsteps * 5 arcseconds/fullstep or 0.5 arcseconds. So the  corrected position is 125,000.5 arcseconds or 34.7224 degrees.

The effect while watching the motor will be to smooth out its motion.  Compared to an uncorrected motion, the motor will appear to speed up or slow down slightly.     Mel Bartels    6729


REFRACTION:      Atmospheric refraction

Airmass is the number of atmospheres that the telescope is looking through. At zenith, the Airmass will be 1, for instance. CCD imagers may have a particular airmass (say 3) that they will not image through. For those looking at primary equatorial coordinate side of scope.exe, the zenith angle may not be immediately obvious, hence, the Airmass value is calculated and displayed now for you.     Mel Bartels


6/5/03 Added equatorial refraction correction. Correction based on site coordinates as found in config.dat and on the computer's time and date. Set RefractFlag in config.dat to 2 if you wish equatorial refraction correction to be turned on.  Updated altazimuth refraction calculation routines. (Set RefractFlag to 1 for Alt-az)  Mel Bartels  


Q.  Anyone using Scope.exe for unattended remote operation?

The real question is not cable management, as I think this is solved by a little planning, but instead, it is the difference between computer control and remote control. Computer control means that you can reach over, or at least dash out of your bedroom to fix a problem. Remote control means every contingency must be planned for and feedback from the site like weather and cloud cover becomes important.

Internet control is no biggie - I had a PERL script someone wrote that takes email messages and outputs LX200 serial port commands, so the interfacing from the network view is straightforward.

I would like to see more interest in this arena, and I am sure that this will gradually occur as the number of remote sites increase.                    Mel



Q.  is there a way to "reset to equatorial coordinates" via the handpad? 

A.  No. You have to walk over to the keyboard and hit the 'r' key.      Mel Bartels   10245


If you kill the inits, then until you do both inits, the reset to equatorial coordinates will not do much.     Mb  #8584


"R" leaves all init data untouched.  You basically tell the program that a specific set of input coordinates corresponds to the center of your FOV. It greatly enhances local finding but does nothing for global pointing accuracy. I use it all the time while observing and also in all my scroll files after each object entry as a quick and dirty pointing improvement. Practically speaking, to observe M57, I would for example point the scope to Vega, center it, do a "r" and then move to M57. As mentioned all this can be conveniently included in a scroll file.  Berthold Hamburger


..select equatorial option (for an equatorial mount) at program startup the scope will track accurately for any position in the sky, and, if the laptop's time and date is accurately set and the longitude value in the config.dat file accurately set then the scope will also slew accurately but most likely these values will not be exactly accurate, so to refine the positioning: 

center an object in the scope

enter object's coordinates via one of the data files, or manually if necessary

then do a reset to equat coordinates to inform the software where you are pointed

remember to never do any initializations at any time because it will confuse the original equatorial initializations at program startup time     Mel Bartels


Q.  On my Alt/Az scope, when I do inits, I often forget to do an Altitude Offset. This results in good tracking, but terrible goto's. Since I believe its the same bit of code for both Alt/Az and EQ mounts, does this mean if you have an EQ mount, and you do an Init 1 & 2, that you will need to do an Altitude Offset as well    James Lerch

A.  Less necessary for equatorial mounts as the simple 'reset to equat' usually guarantees accurate altitude, ie, declination... Mel Bartels


Q.  what is the difference between 'initializing' and 'synchronizing'???

A.  Well, this can be confusing. Initializing means building a relationship between the telescope's coordinates and the celestial sphere's coordinates. Because the celestial sphere is two dimensional, we need two points to define this relationship. Each point carries information on the celestial coordinates and telescope coordinates and what time this connection between the two coordinate systems was made (of course, in sidereal or star time). 

Once we have this relationship, we can calculate coordinates in one system given coordinates in the other. For instance, celestial coordinates are RA 99:99:99 Dec 99:99 (9 means some digit) so what should altitude and azimuth be? Once we have calculated altitude and azimuth, subtracted out the current altitude and azimuth, we now have the distances we should command the motors to move.

Now let's say that we have relationship built, that is, we have initialized the telescope to the sky, and we aim the telescope at a star, but the star is to one side. This means that both coordinate systems are equivalently incorrect, and we need to adjust them. Typically, we know what the celestial coordinate system ought to be since we can look up the star's position. We then change the telescope's coordinate system to make. We do NOT change the alignment between the two coordinate systems: instead we merely true up the numbers of one coordinate system based on what the other system should be. This is called synchronizing the  telescope to the sky. In my program, I call it 'reset to equatorial coordinates' since we are resetting the telescope's coordinates to that of the sky's.   Mel Bartels9870


Q.   What is difference in pressing "r" to reset equatorial coordinates and simply using "guide" to compensate for the difference as drift?  mm

A.  Depends on your mount type - if altazimuth then resetting to equatorial coordinates implies that your altazimuth coordinates are no longer perfect.  Using guide to calculate drift is independent of resetting coordinates. It makes for more accurate tracking but not necessarily more accurate gotos.Mel Bartels


I do increase the accuracy some though by making the final slew to the target as short as possible from some nearby target/star that is easy to verify that you are on. Simply slew to that known star, sweeten up its centering and then hit an "R" to reset to input Eq. Then load the target's coordinates and hit a 1 to move to input Eq, and there you are!   Chuck Shaw


SCROLL FILES:     http://www.bbastrodesigns.com/operate_scroll.html     http://www.bbastrodesigns.com/operate_grandtour.html

Q.  I've read Mel's manual on the available commands for a scroll file...but as a non-programer, how do I go about actually creating one?

A.  c:\scope>COPY CON try.scr

a 10 8 22 11 58 0 0 regulus (press enter)

a 13 25 12 -11 9 43 0 spica (press enter)

press F6

The scroll file "try.scr" is created.     Marc Storme

A.  If you are running Windows on any of your computers, open Notepad, type in the commands using the syntax you see for the scroll file from Mel's website, then save the file in the DOS format of 8 character file name and a three character extension, i.e. scroll12.scr, and then use a floppy to transfer to the computer (and directory) running Scope.exe.

Myself, I have Windows 98SE on the computer I use for Scope.exe and use Notepad for editing any dat or scr files, saving me the extra step of having to transfer files from one computer to another. However, when I run Scope.exe, I always boot the computer into the command prompt. I do not run Scope.exe in a Window from Windows.    Don D'Egidio


if you put    ‘auto_scroll’     at the start of your scroll file the scroll file will be stepped through automatically as soon as each step is finished.  Of course any motion limit hits or abnormally long slews beyond the MoveHsMsgDeg limit (default is 10 deg) will cause a message to appear interrupting the automatic step through.               Mel Bartels


4/27/03     Fixed grandtour so that it will use datafiles not in scope.exe's file directory Remember you can run scope.exe with scroll file autostart, for example: scope.exe -x init35.scr”         mb


Sept 5, 2004: 1. Courtesy Don Ware: added ability in grand tour files to toggle the righthand mode key press between previous grand tour object and reset equat coordinates to grand tour position with '@' key.  Mel Bartels


Assuming good polar alignment and good fullstep size numbers in config.dat:

Your First Equatorial Initialization and Goto Run create a scroll file called startup.scr composed of these commands:


data_file bstars.dat


move_file messier.dat

prompt finished

the first command turns on tracking

the second command says to find an object from the bright star data file

the third command says to reset the telescope's position to the object's position

the fourth command says to move to a Messier object and the last command displays a 'finished' statement indicating that the scroll file has finished

run scope.exe with the following command      scope -x startup.scr

this says to run scope and execute the scroll file startup.scr

answer 1. adopt an equatorial alignment and turn on the power supply to the motors when instructed start the scroll file by pressing the left mode key on the handpad or the 'B' key on the keyboard as you do so, tracking will start

move onto the next scroll command via the left mode key or the '<' key on the keyboard which loads and displays the bstars.dat file, where you pick a nearby bright star now center the telescope on the star using the handpad slew and microstepping speed switch and the four direction buttons after centering, move onto the next scroll command via the left mode key or the '<' key on the keyboard which resets the telescope's coordinates to the star's coordinates

now move onto the next scroll command using handpad or keyboard, and select an object from the messier.dat file; the scope will slew to it finish by moving on to the last scroll command which displays the finish command exit the scroll function by pressing any key         Mel Bartels


Q    Is it possible to fill automatically the "input fields" in a scroll file, without asking the user to select something in a datafile ? For example, select a star in a file directly ? Or select automatically an object in a file.

A.  Yes, use the absolute equatorial move command: Here's the format for a move to absolute equatorial coordinates:

a <RaHr> <RaMin> <RaSec> <DecDeg> <DecMin> <DecSec> <TimeForMove> <comment>

ie, a 23 0 0 15 10 0 10 <comment>

The A indicates absolute positioning, here, the scope will scroll to 23:0:0, +15:0:0 over 10 seconds. If the telescope cannot microstep to the position over time given, it will immediately halfstep slew to the absolute position.   mel bartels


Q.  Is it possible to add a pause command to the (scroll file) script language?  e.g. 'pause hh.mm.ss'

A.  Yes, repeat the equatorial coordinates you are currently at and give it a time delay, ie

o 0 0 0 0 0 0 30 pause30sec

which says to do offset equatorial over 30 seconds with no change in equatorial coordinates (the pause30sec is merely a comment that will
appear on the program display)     Mel Bartels


I frequently plan a nights observing session based upon articles in "Sky and Telescope," etc. that give a list of interesting objects. I found it difficult to constantly refer to the article while at the telescope and entry the next item on the list to goto. 

I have uploaded a program I wrote called makefile.exe that creates a scope.exe datafile that can be scrolled through. I usually name the output file 2night.dat so it appears at the beginning of the files list.  http://groups.yahoo.com/group/scope-drive/files/ 

The program looks for the following files in the same directory as the program:

NGC_ALL.DAT - a concatenation of NGC0.DAT - NGC7.DAT

IC_ALL.DAT - a concatenation of IC0.dat - IC5.DAT

FLAMS.DAT - a concatenation of FLAM_A_C.DAT - FLAM_P_V.DAT

BSC.DAT - a concatenation of BSC_A_C.dat - BSC_O_V.DAT


It also accepts actual coordinates for other objects.   Don Ware

Q.  Does your program read any of the Scope's dat files or just the ones you listed? I want to add a planet or a comet into the scroll file.

A.  The program decodes your input and then opens the appropriate .dat file to look for the input object. If the object isn't in one of the files, entering ** will allow you to enter epoch 2000 data and name for a comet or whatever.  Perhaps I could allow entering other file names after the ** prompt in addition to epoch 2000 data. Let me work on that.  Don Ware


SERIAL PORT:           see Modem to Modem connection

DOS users (like card manufacturers) tend to confuse logical and physical names. COM1, COM2, etc. are _logical_ names for the serial ports 0, 1, etc. found by the BIOS during POST (Power-On Self Test).     Chris Blum     more background inf about serial ports and modems


4/27/03  Added ability to define address and IRQ of serial ports com3 and com4.  Com1 and com2 continue to be hardcoded to standard values.  Mel Bartels


Scope.exe expects no flow control – plain bare 3 wire stuff. Mel Bartels


(scope) works successfully with 9600 baud, n,8,1, no flow control.  Mel Bartels


Do not use xon/xoff. If scope.exe has trouble reading values returned by the encoder interface box, it will tell you.

The serial port baud rate affects how fast scope.exe can query and listen for answers from the encoder interface box. How fast the encoder interface box can count encoder pulses is an entirely different matter.   Mel Bartels


My problem was in the SerialWriteDelayMs parameter. I had a 50 value, and it was not enough time to read the serial port in my 486-25 laptop. If this parameter is not enough, then the scope.exe reads an erratic encoder value, many times the last value corresponding to the initial point of the slew, making the scope to oscillate between the initial and final point of the slew. This last night, I tried with a 100 value and it works ok.  Roger Artigas


I have just updated the MODEM SPLITTER schematic to include DB9 pinout references, to make things simpler for builders.  http://groups.yahoo.com/group/scope-drive/files/circuits/MODEM%20SPLITTER.pdf  Joe Zeglinski

Joe,  I finally got things wired up and have two PCs serially communicating with a third. The hookup is like this: Signal ground common to all three.  Transmit from the master goes to receive on each slave and transmits from the slaves are connected to the receive of the master through 1N914 diodes.  When the master transmits, both slaves receive. Either slave can transmit to the master without seeing the others data. Looks like it is working exactly exactly as I was hoping it would. Guess I better exercise this setup a bit more to check things out. I am always worried when things are too easy.  Marty  Niemi


I bit the bullet and opened my AJP 486 laptop. The trackball was directly plumbed to COM2, so by soldering up a cable to a DB9 connector (which I put into the space where the battery used to live), I now have two COM ports.  I've not tried encoders yet, but the port works fine. Of course you lose the trackball, but on a "scoped" laptop, that's no real loss.  Mark Rice


I encourage anyone that wants to use two serial ports on their old laptop and has an unused internal modem to give this (modem to modem connection) a try, it works GREAT!!!!! The only catch is, of course, that the 2nd laptop (running the planetarium or autoguider program) must also have a modem to interface with... Chuck Shaw


Recently some of you really helped me out by suggesting a Quatech SSP-100 serial card as the only PCMCIA card that works in DOS. Some said I would also need to buy software (CARD and SOCKET SERVICES for DOS). I finally picked up one of these cards and the docs suggested Card & Socket services but another possibility is the Enabler. I'm happy to report I have the 2 laptops talking to each other, and it didn't take too long.(Didn't need the software). I wrote a .bat file for the scope computer(Toshiba Tecra 510 CDT). 
cd \
ssp130en.exe (s1,b02f8,i3)
cd \scope


Got no serial port on your laptop?  Try this:  http://www.electricstuff.co.uk/diyserial.html 

SERVO          http://www.bbastrodesigns.com/NewProductAnnouncement.html 

Q.  you don't have to take your laptop in  the field anymore (does this also apply to autoguiding?)

A.  The controller directly supports autoguiding, so you don't need a laptop in the field, at least for the 'operate the telescope' sake! You will certainly be surrounded by all sorts of processors and the like, and have the equivalent of several laptops w/o displays, from the need to operate surrounding equipment.

For Goto, you need some sort of controlling software. Right now it's the Java multiplatform program. Planned for near future will be a Windows specific ASCOM (the Java program works with ASCOM as of this moment, but through an intermediary) driver, a simple handheld driver, and in the longer range plans a wireless handheld computer/controller that will communicate with the motor controller.  

I do not consider the servo unit superior to the stepper unit. It depends on the user and their goals as to which one to pick. I started the servo side of this project for two reasons: mainly, to explore and offer another possibility, and to push off the nitty gritty motor control code into a standalone controller such that the overarching control program can run in modern operating systems and be network aware and work hand in hand with other software that people have.  Mel Bartels

Q Will tracking/guiding be more accurate than with the stepper motor system, making this system (even) more suitable for (long-exposure)  astrophotography (assuming you're using a field derotator)?

A.  The stepper system here has real advantage in that the motors respond instantly, or at least within a few milliseconds. The servo system typically goes through a delay called the 'servo delay' or 'servo lag' that has to be tuned for in the autoguiding setup. This has caused much guiding grief, though often the cause is unknown to the user. What Dan and I have done in this controller is remove the guiding servo delay from the controlling program and put the guding signals right into the input ports of the controller itself. So when you are in guiding mode, the response from the controller will be a millisecond or two, not the more typical 1/2 second. This took a lot of time and planning and design on our part, but we anticipate that it will be worth it down the road. However, this only brings it up to par to the stepper system in responsiveness!  Mel Bartels


Q.  What would I look for in a 12VDC servo motor. I was at RXDesign's site and can no longer find the motors and gearboxes he had for sale for DIY. I'm very tempted in ScopeII to get rid of one laptop in the field. 

A.  Any servo with an encoder from 12 v to 24 v should work fine. I have been using the surplus Pitman servos that you can find with built in gearhead reducer for +$40.  Mel Bartels


Ok, a single servo controller operates two servo motors. Two controllers can be chained together to get four motor operation.

The current servo controller supports guiding as one of its modes of operation. Modes of operation are:

1. control via input commands from RS232 line: requires some sort of external computer running control application

2. equatorial/platform mode: standalone: tracks at sidereal rate, with a fast speed platform rewind (has dec adjustment)

3. drag n track mode: standalone: for handpushed motorized scopes with clutches

4. slew n track mode: standaone: for motorized scopes without clutches

5. all modes emulate Tangent DSC protocol, for passive position feedback

I really recommend you read http://www.siderealtechnology.com/ and download the manual.

There is a handpad input. The current stepper handpads will work, but I am including a new handpad design where you can get two direction movement at once. This handpad is wired.

Dan Gray is well along in his R&D for the wireless handpad. It even includes LED flashlight option, because, as we found, it's easy to lose a wireless little palm sized black device in the dark!


On the split ring mounts, you can set  Siderostat 1 in config.dat to allow the scope to take advantage of the split ring design to move below the pole without rotating the RA 180 degrees. This is important for supernova hunters in the higher latitudes who want to gain an advantage on surveys that operate closer to the equator! Mel Bartels


Is there a setting in Mel's system that says the (alt-az) mount can't go past vertical?

Default is to not allow this. Turn on the siderostat option in config.dat if you wish to go past the (meridian) without rotating the base 180 degrees.     Mel Bartels


The siderostat option works if you set the AzLowLimit and AzHighLimit to approximately 90 and 270. This tells the program when to allow the scope to travel past the pole. Do not use the GEM flip with it.

This option was originally developed for a guy in Connecticut who had a 27" telescope pointed downward to the SE into a mirror that was angled around the sky. Later others who had split ring mounts used the option.

Sometimes you have to slew the scope back towards the south before slewing to an object as the program may go ahead and do a shortcut when close to the low and high limits.         Mel Bartels


SLEWING:     http://www.bbastrodesigns.com/operate_slewing.html

I think of max slew speed in terms of the dynamic range of the motor and drive system. If you adopt 1/3 arcsecond microsteps at 40 microsteps per second with a 200 step per revolution motor, and a max motor rotation of 1000 rpm with a flywheel and minimum torque loading, then your max slew is 12 degrees per second.

Most of us are using 20 microsteps at 1/4 arcsecond size without flywheel with max speed of 2-3 deg/sec.

You can adjust the steps to be coarser or finer or adjust the max slew speed up or down, but you cannot stretch both ends at the same time.   Mel Bartels


Consecutive slews message appears when the scope is supposed to be tracking using microstepping but has had to slew too many times in a row to try and keep up. The number of consecutive slews allowed before the warning message appears is controlled by MaxConsecutiveSlews in config.dat.           Mel Bartels


The 'consecutive slews' can be turned off if it is a problem - but it does indicate that something is wrong, namely, that the scope cannot catch up to the encoder coordinates after a certain number of tries (MaxConsecutiveSlews in config.dat).                       Mel Bartels


Q  The coordinate on screen are correct but it cannot arrive to destination in one slew , it takes 10/15 consecutive slew.

A.  This sounds like what I call a 'consecutive slew' problem. This means that the software cannot run fast enough or the speed requirements are too high to do microstepping. Consequently the program shifts gear into halfstepping mode, making a series of short slews to try to keep up.

Reasons for this

1. slow computer

2. microstepping skip parameters not properly set

3. too close to zenith of RA/azimuth pole

4. too small of step size in config.dat            Mel Bartels


Consecutive slews message appears when the scope is supposed to be tracking using microstepping but has had to slew too many times in a row to try to keep up. The number of consecutive slews allowed before the warning message appears is controlled by MaxConsecutiveSlews in config.dat.

So it means that maximum microstepping speed is not enough, or, that the scope has been incorrectly initialized and consequently the tracking speed asked for is way out of bounds.

Was your scope in altazimuth orientation and pointed right at the zenith? That is what usually causes this.   Ml Bartels


Yes, if you slew to an equatorial position (an object) and continue tracking, the scope may very well land on a microstep instead of a fullstep. To get it to go to a fullstep, hit the track on/off key twice rapidly. This will turn off the dec motor then in 5 seconds.             Mel Bartels


Q  I just executed scope.exe and hit 't' key to switch tracking on. Then I used the handpad to center some star through the finder, a few numbers appeared just below the line of AZEC, AAEC, ZZEC and PMC.  What do they mean?

A   These should be the slewing numbers - 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 steps, and the current speed index (larger numbers = slow speeds, smaller numbers = high speeds).   Mel Bartels


Halfstep slewing is run at full current. You have provision to add an optional software controlled overvoltage signal line that you would have to tie to a power transistor switch with high voltage on the input side.          Mel Bartels


The max/min delay numbers don't mean much when compared between systems because the resulting motor drive speed is dependent on the motors, computer I/O, computer processor, and motor voltage. Thus, I can't say if your numbers are OK or not. I suggest you put an ammeter in series with the motor ground line (common voltage return winding) and read the current during slew. In most cases, the starting slew speed should be set to draw nearly the full rated current to get things moving. As the motor speed increases, the current will decrease due to the "motor effect" (back EMF in windings). The result of this decrease in current is that the motor loses power the faster it runs. The main way to increase the operating speed is to increase the operating voltage. A 24V overvoltage circuit is common on 12V stepper motors.  Larry Bell


Q.  Is it possible to use -360 degrees for the az offset? Nothing happens when I do that in a scroll file. I wanted it to help me unwrap the cable that winds up around the az axis from time to time. 

A.  No, break the move into three moves of 120 degrees. The program always looks for the shortest route, hence, a -360 means no move at all.


Q.  If I set HSTimerFlag to 0, all I get is a high pitched ringing when trying to slew. Halfstepping works fine though. Am I doing something wrong here? 

A.  Slow down the halfstepping if you use HsTimerFlag of 0. The high pitched ring is from way too fast motors.       Mel Bartels


The MsHsToggleIncrMsPerPWM sets the transition for tracking to occur using halfsteps instead of microsteps. If your microstepping is very tiny, or your Ms speed is too high, and this var is set low, the software may conclude that it cannot track fast enough either micro or halfstep, and will sit there quietly awaiting instructions that it can execute!              Mel Bartels


Q.  What is the maximum number of pulses per second supported by the software when slewing?

A.  Depends on speed of your CPU et al, but you should be fine even on slow 386 machines as max speed will be at worse 50k/second pulses. On faster machines you can approach megahertz rate.  Mel Bartels


I do increase the accuracy some though by making the final slew to the target as short as possible from some nearby target/star that is easy to verify that you are on. Simply slew to that known star, sweeten up its centering and then hit an "R" to reset to input Eq. Then load the target's coordinates and hit a 1 to move to input Eq, and there you are!   Chuck Shaw


Q.  if I try to make a small slew, then the motor just buzzes, just like when it is told to operate too fast. By "small slews" I mean, if I move the scope with the handpad, say, 10 arcmin and then press "1"(move equat.).

A.  That is because microstepping is invoked for short slews. Make sure that your msarcsecsec and backlasharcsecsec values are reasonable. 1200 might be too high - I personally like 300.  Mel Bartels


Runaway Slews:  Do a reset to either equat or altaz coordinates, then turn on tracking to fix this, then save the config.dat.

This number (AccumMs.A, .Z) is what is used to actually set the motors' position. This number can go bad when the step size is changed without the above reset.  Mel Bartels


Pressing any key on the handpad will stop a slew.  Mel Bartels


PEC Synch is not handled during slews - the timing is too critical and I don't think it is of much use - there's no error correcting going on during slews.   Mel Bartels


SCOPE SOFTWARE:        http://www.bbastrodesigns.com/config.html        Program display

Scope.exe version history:  Prior to 2000    Jan 1  2000 - Jan 1 2002   Jan 1, 2002 - present


Added new config.dat variable, 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

1 means adopt equatorial alignment

2 means adopt altazimuth alignment

3 means adopt no alignment at all

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.   Mel Bartels


Never turn on the stepper power supply when scope.exe is not running.  The state of the parallel port is unknown and it could be set by the computer accidentally to power up the windings.   Mel Bartels


The return or enter key is the same as answering 'y' to questions posed by scope.exe.Mel Bartels


(The) Space bar is a kindof page down - there is no provision to page up. If someone wants to try their hand at helping with the software, then that would be terrific.   Mel Bartels10383


run the new version of scope using my old config.dat.  Then save config.dat when exiting scope. This writes the new variables into Config.dat while preserving the existing setup.      Chuck Shaw


you can make multiple config.dat files and select by using command line scope.exe -c <name_of_config_file>     Mel Bartels


A quick way to generate the new variables with their default values is to run scope.exe, then immediately quit, saving config.dat on the way out. Then you can go back in and modify the new variables. This will avoid spelling mistakes. If you misspell, the program will adopt a default value, and you may wonder why your new circuit interface isn't working. All the variables in config.dat are case insensitive.            Mel Bartels


If any variables are duplicated, the last one is the last value adopted. I use this to sometimes have a couple of numbers - by moving them around in config.dat I can hide them or make them active.  Mel Bartels


Q  I cannot say how many times I pressed quit accidenially and lost all alignment - including a dim object in a FOV of my tiny CCD  chip.

A  Scope.exe saves your alignment-data in config.dat upon exit. So when you start up next time, you can use the "4. use previous  alignment data" option, and nothing is lost.   Soren Madsen

A.   You can turn on the safety catch --- are you sure you really want to quit? option in config.dat   ConfirmQuit 1      Mel Bartels 


The colors are controlled via the opening values in the config.dat file. You can make them blink if you add 128 to them                         Mel Bartels


Q   I tuned my steppers with Scope and had them right on (quiet, fast, plenty of torque).  But when I tried to use EQ, tracking was VERY LOUD and current pull was up.  Does anybody know if this is just the PC running faster with a simpler  program ?

Yes, the special equatorial only version has a lot of fancier code that slows the execution down cut out of it. So simply increase the MsPause by 50? or 100? until you get similar results.     Mel Bartels


Q.  What is this about "optional pulse and direction control" - what does that do or make possible?

A.  Pulse and direction, along with output enable or "motor on/off" will let Mel's program run a number of different commercially available motor and controller combinations. Most of these motor controllers use these three logic level signals to control the motors they drive. For example, I use a commercial controller and stepper motors that were taken off of an industrial machining center to drive a large GEM. Works great! Marty Niemi


Since real time control is something that you impress upon DOS, I have a control function that decides when tasks are done. These are all tied to the timer tick, which I let run at the default rate of 18.2 times per second.  Everything that the program does - reading your keystrokes, reading the encoders, updating the status on the screen, is tied to the timer tick. Some things are done every timer tick, others are done about once a second.  Sometimes these updates are suspended, for instance, while you respond to a prompt in a window.  Mel Bartels403


Q.  what compiler can I use to test this (Scope) out with.

A.  I use Borland C++ 4.5. Any compiler from 3 onward will do as long as it has the compile to DOS executable module.  Mel Bartels  11988


Software expects the circuitry to be powered down during startup sequence. Detection of unexpected signals on the handpad line is treated as defective or no handpad. The consequence without this detection is that the program often takes off with a move, and with no handpad to stop the move, can only be stopped via powering down circuit, starting up again, centering object, and doing a reset to equat. Mel Bartels 10383


the program is growing rapidly (a dozen years ago I tried hard to keep it close to 100k, but it now is 505k). Recently the linker barrier 'dgroup exceeds 64k was reached'. The solution (well, the problem first of all is that there is more than 64k of static data) is to turn on 'automatic far data' in the compiler options. For those compiling their own code, this is how I have the compiler setup:

16 bit DOS large memory model compiled with Borland C++ 4.5x

project options | compiler | compiler output | turn on generate comdefs

project options | linker | general | turn off include debug information

project options | 16-bit compiler | memory model | automatic far data

(large amounts of static or global data may exceed 64k dgroup [data group] limit, so 

enable data to be loaded into far segment include bc45/lib/graphics.lib

include egavga.obj

include *.c

tabs set at 3 char spacing                                      Mel Bartels



         http://www.bbastrodesigns.com/softwaretools.html +++ makefile.exe

I frequently plan a nights observing session based upon articles in "Sky and Telescope," etc. that give a list of interesting objects. I found it difficult to constantly refer to the article while at the telescope and entry the next item on the list to goto.

I have uploaded a program I wrote called makefile.exe that creates a scope.exe datafile that can be scrolled through. I usually name the output file 2night.dat so it appears at the begining of the files list.

The program looks for the following files in the same directory as the program:

NGC_ALL.DAT - a concatination of NGC0.DAT - NGC7.DAT

IC_ALL.DAT - a concatination of IC0.dat - IC5.DAT

FLAMS.DAT - a concatenation of FLAM_A_C.DAT - FLAM_P_V.DAT

BSC.DAT - a concatenation of BSC_A_C.dat - BSC_O_V.DAT


It also accepts actual coordinates for other objects.       Don Ware

Q.  Does your program read any of the Scope's dat files or just the ones you listed? I want to add a planet or a comet into the scroll file.

A.  The program decodes your input and then opens the appropriate .dat file to look for the input object. If the object isn't in one of the files, entering ** will allow you to enter epoch 2000 data and name for a comet or whatever.  Perhaps I could allow entering other file names after the ** prompt in addition to epoch 2000 data. Let me work on that.  Don

+++  Planets.dat

Planets.dat is very inaccurate in my experience.  Rob Johnson

+++  Solar Sys

SolarSys.exe and Comets.exe are been updated. Two minor bugs fixed.  Cmt.txt data file is now the latest data set.

My programs gets the date and time from the system clock and calculates the position of the objects. The data is place into a data file that Scope can read. The format of the files is exactly the same as any other data file that scope can read. SolarSys calculates the position for the Sun, Moon and the planets. Comets takes a datafile (needs periodically updating to maintain accuracy) and computes the position of current comets.

To download go to either the files section of this group or my website.  http://www.geocities.com/kindellism/index.html  Rex Kindell

+++ Solar Sys

The accuracy of "SolarSys" is generally within +/- 2 arc second to the object's current position. The objects are the Sun, Moon, and the planets. You run the program before running "Scope" and you can load the data just like any other data file, example. Messier.dat.

FYI: "SolarSys" creates two output files. There are SolarSys.dat (location only) and SolarSys.cdf (location plus drift rate). Use the CometFile command to input the CDF file into "Scope".

CDF stands for Comet Data File. Mel and I created this special file format. The file contains position and drift rate information. My program "Comets" calculates the position of Comets. It also creates two output files: Comets.dat and Comets.cdf.  Rex Kindell - Author

+++ Solar Sys

When you download the ZIP file for SolarSys, extract it into the Scope directory. When that is finished open the file LOCALE.TXT and edit the four lines for your location. The first line is your longitude (west is a positive value), the second line is your latitude, the third line is your altitude in feet, and the fourth line is your timezone i.e. EDT is -4. After you are finished editing, close and save the file.

Next open for editing the Scope_SS.bat file and where you see these two lines, rem For Manual Input, use the following command SolarSys place a rem in front of SolarSys so it reads as follows,

rem SolarSys     then close and save the file.

Now when you want to run Scope.exe, and providing you have Scope.exe installed in the Scope directory on C drive, all you need to do is type Scope_SS.bat at the C\> prompt instead of Scope.exe. What that will do is automatically run SolarSys and answer several prompts, generate the DAT and CDF files for Scope.exe to use, then it will start Scope.exe for you.    Don D'Egidio

+++ planets.dat (another one)

my own ephemeris program can be used to generate a planets.dat file with positions accurate to ~1 arc sec. The main disadvantage is you need Windows (3.1 will do on a 486)

The program can be downloaded here:  http://www.fornax.myby.co.uk/software.html 

Run the program and hit F3 and planets.dat is saved to the same folder as the program.  I have used this to locate all 5 classical planets in the daytime without any problem. The program also generates positions for comets and minor planets.  Rob Johnson


Q.  Are all the possible "TestString" parameters documented somewhere?

A.  Tests were moved to the main screen. For the handpad, use the testpport. 

The only teststrings allowed:    if( strcmpi( TestString, "NoTest") != 0            && strcmpi( TestString, "PreloadGuidexx.dat") != 0               && strcmpi( TestString, "Track") != 0)   Mel Bartels


Tz or timezone can be positive or negative. Make it positive if you are in time zones west of Greenwich, negative if east. Tz and DST and LongitudeDeg all work together to determine your sidereal time. If sidereal time is incorrect, then investigate all 3 settings.  Sidereal time does not have to be exact. It doesn't matter in the inits for altazimuth. For equatorial mounts, the computed position uses hour angle offset, so if you do a  quick 'reset to equat' after object is centered, then an appropriate hour angle offset (known as HAOffset) is calculated, compensating for your bad sidereal time.   Mel Bartels


Q.  .....set time (makes the scope drive better to the first alignment star) (sends the actual computer time via LX200)  Alexander Urban

To get Guide8 to set the LX-200's date/time, edit the file 'toolbar.dat' and look for the following lines:

# 2373 !focusslo.bmp Focus slow (LX200)
# 2374 !addframe.bmp Add a 'movie frame' .BMP

Add in a line between these two, as follows:

# 2373 !focusslo.bmp Focus slow (LX200)
2422 !17.bmp Set LX-200 time
# 2374 !addframe.bmp Add a 'movie frame' .BMP

...and increase the number of buttons, given at the top of the file.

The next time you run Guide, you'll see a toolbar button reading '17', and when you move the cursor over it, you'll see the hint "Set LX-200 Time". Click on this button, and Guide will send the date/time to the LX-200 (or Autostar or similar Meade-compatible telescope).

Some warnings about this: I've learned that some scopes don't handle the "officially documented" method for setting the time zone; they insist that time zones be integer hours from UTC. I'll be posting a fix for this.   Bill Gray


If you figure the following: UTC is (plus) or (minus) XX.X hours from your location... you'll have the correct TZ entry.  Ken Hunter

In the case of the Netherlands, the time at Greenwich is:  (Netherlands time) - 1 hour, so you have Tz -1.    Ben Davies


Q.  I'm also confused on the time zone tag used in config. I've had it set at 6 for the East coast. Is this correct?
A.  East coast should be 5.


DST is daylight savings time - set to 1 if true, and set to 0 if not Mel Bartels


Q.  Am I correct in assuming that the DST (daylight saving) variable in config.dat only needs changing if the computer used to run scope.exe    Bernard Heathcote

A.  Scope.exe uses the realtime cmos clock and the dos clock.  I have not experimented to see how daylight savings time affects the OS's calculation of these times.

If in doubt, run scope.exe and see if the local time and sidereal time make sense.             Mel Bartels


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)

value in config.dat

The default should be zero - I don't know why some of you have 1. The default of zero says to talk directly to the real time clock. But this does not work in a few computer setups as it is not a guarantee where the real time clock ports will be located - just a consensus. The bios calls always guarantee access, but are much slower, and in Rolf's case, appear to drop entire minutes. I don't know why - I cannot duplicate nor can I see anything in the code that would cause this to happen with most recent scope.exe versions.

The talking to the realtime clock is necessary because of the option to time the halfsteps with delay loops. There is no way to calculate the time of slewing. With the timer interrupt method of halfstepping I do know the exact time for each halfstep - that's why you see the sidereal time continue to be updated during slewing with this option. So at the end of delay loop timed halfsteps, I have to query the realtime clock to get the time and date.    Mel Bartels


HAOffset - hour angle offset, that is, the difference between what the sidereal time at the zenith is and what it ought to be: this can be caused by an altazimuth mount not being perfectly leveled, or slight errors in your computer time or entered longitude  Mel Bartels


HAOff is the hour angle offset. That's the difference between what the right ascension on your meridian is, and what is ought to be, based on your Tz et al values. It is a value that can help in pinpointing goto/tracking issues. AzOff is the azimuth offset - the altazimuth equivalent of the HAOff, if you will.   Mel Bartels


Sidereal time is the only time that scope.exe uses. It is calculated every bios clock tick (18 times per second), and as I just said, the only time that is referenced in the program.

What you can do is to watch the sidereal time and local time displays, to be sure that the laptop/computer is not running fast or slow. This should not be an issue - last computers I saw run badly out of time were some of the 386 machines.

... turn off tracking then you can slew in equatorial offset one hour in RA. Wait one sidereal hour, and instruct the program to slew back to the object. If time drift is a problem, it will show in the display and object centering.

Again, any type of polar misalignment also masquerades as fast or slow tracking depending on where in the sky you are pointing. Mel Bartels6206


Sidereal time calculated in scope.exe based on:  longitude in degrees (measured west from Greenwich), timezone, daylight savings time, local computer time and date.


Correct sidereal time is not needed for either mount type. Both use Taki's coordinate conversion routine which relies solely on elapsed time. So as long as your PC keeps good time, the tracking/goto accuracy will be perfect. However, it is ok for sidereal time to be exact! Additionally, if you have an equatorial mount, and have your location entered precisely, you can goto an object directly without any inits or resets. In any case, a simple reset to equat after an object is centered will fix the pointing accuracy regardless of the accuracy of your sidereal time. Tz, DST, longitude deg, and your PC's time/date are all used for sidereal time calculation. Elapsed time, calculated from when the program starts, is used for goto/pointing accuracy, so it does not matter really what Tz et al you have in config.dat.  Mel Bartels


When doing the initializations using the handpad, the sidereal time is calculated for you - you have no opportunity to enter the time as this is supposed to be real time. The sidereal time calculation is based on the longitude and time zone as entered in config.dat. It is really the time difference between inits and coordinate conversion when slewing to an object that counts. That's why you don't have to enter correct longitudes and time zones - the relative time between the inits will be correct, and when you do a 'reset to equat' the program handles the time error for you. If you do enter correct longitude and time zone values in config.dat, then you do not have to do a 'reset to equat' when you startup scope.exe again.   Mel Bartels


Q.  In what time must the PC clock be set up? (Local or UT)?  

A.  Your local time  Mel Bartels

Does the accuracy of the PCs clock effect scopes accuracy?

If your laptop/computer clock drifts, then so does scope.exe, as it relies directly on the clock. All other telescope control software does too! Mel Bartels


The lat/long/timezone are used for the sidereal time calculation. If you are using an equatorial mount, then sidereal time is important as it determines the hour angle of the object to be observed (HA = SidT - RA).

Otherwise it has no bearing on the initialization process. That's why for altazimuth mounts you can go into the init display menu option (hotkey 'i') to see if the calculated latitude matches your geographic latitude. Allowing for unlevelness of your mount, they should agree.                   Mel Bartels


Q.   We changed to daylight saving time since I last had the scope outside.
A.  It might cause early or late GEM flips, but will not cause tracking and goto to be really off.  Mel Bartels


if you find the scope tracking too slow, check your sidereal time vs local time after running the program for an hour. I found a Win9x machine where the bios clock ticks are being dropped every so often, causing the sidereal time to run a few seconds slow after an hour of tracking.  Mel Bartels 


Scope.exe uses the motherboard's real time clock as a basis for civil time, and then calculates and uses sidereal time per the 1.002737909 ratio for calculating moves and tracking    Mel Bartels  12370



Most situations can be happy with 10in-oz torque and 1a at supply voltage.     Mel Bartels


To increase torque while microsteppping, lower the microstep parameter MsPause to 0 in config.dat.  To increase speed for slewing, lower the MinDelay value in config.dat.    Mel Bartels


Number of microsteps do not affect torque output. The PWM values and MsDelay do affect it directly however. Decrease MsDelay until torque is satisfactory.  Mel Bartels 


use the AutoMsParms menu to set the % current to 100 and  PWMRepsTick to a value of around 50 to produce maximum torque.                Andy Martyn


#1 Rotational speed vs. Torque while Micro-Stepping:   The PWM values MsDelay and Mspause will affect this, but only during  micro-stepping.   MsDelay controls the over all frequency of the PWM, Higher frequency = Higher coil resistance, and lower torque MsPause controls the duty cycle, which directly affect torque while Microstepping. Decreasing MsPause will increase torque.

#2 Rotational speed vs. Torque while Half-Stepping  The HS values MinDelay and MaxDelay will affect the Speed, which will result in 'X' torque

After the above software options comes the Hardware categories,

#1 Add a Flywheel to the stepper shaft:   The flywheel acts as a buffer to ensure the motor keeps spinning between steps and avoids stalling, much like a flywheel on an automotive engine.  Since you can't get something for nothing, you do trade Acceleration for an increase in motor speed and/or torque.

#2 Increase input voltage to increase current flow, which increases torque.

Mel's software allows for an option to engage a Higher Voltage during Halfstep slews, which can solve for many problems   James Lerch


Unless you are using more than 12 volts or flywheels, getting the MinDelay down to 350 is about normal, if not better than average, from what I have seen. The faster the steppers spin, the less torque they have. Ls


 I have exactly the same conclusion: I use scope with two laptop, one with 486 DX 25 the other with 486 SX 25. The torque is lower on the second (with the same settings). It seems better to use computer with math co-processor.          Jean Claude Amacher


Should be no difference between altaz and equat operation - the motors do not know the difference.  My first guess is that the equat mount needs more torque, so decrease MsPause in the config.dat file. Mel Bartels


Tune out the torque from the steppers to the bare minimum for good overall operation. This is done in the Msparms section while running your scope.                         Leonard Stage


1) Make sure you have a flywheel on each motor.

2) put a current meter in series with the common lead to one of the steppers..what is the current? Measure it at start of the slew. The current should start out high, then ramp down as the motor speed increases. If you're having trouble with torque, you want to increase the current. When slewing, you must decrease the motor RPMs via the half step parameters in Mel's program, or increase the supply voltage to increase torque. As a starting point, try adjusting the HSparams to get the current close to the max rating on the motor. The slower the motor turns the greater the current. For example, my motors are rated at 5Volts and 1 Amp = 5watts. I operate my motors from a 15 volt supply. When I start a slew, the current is about 0.6amps. At max slew speed, the current is 0.3amps. 15Vx0.3A=5watts. Notice, I'm running my motors at their rated power, but over their rated voltage. Using the higher voltage allows the motors to run faster while keeping the current/power (this torque) near max. 

3) Now measure the current during tracking. Adjust MSdelay and MSpause to lower the tracking current to the minimum your motors can take while providing adequate torque. If possible, you'd like to get the power down to les than the rating (~1/2 rated power).   

4) Stepper motors also have a tendency to become unstable if they are stepped very fast without a load on the shaft. In such a case, the stall is not due to inadequate current or torque. My motors can be made to run extremely fast if I simply put my finger on the flywheel to add drag while running them with a large overvoltage. Try holding firmly on your motor shafts while slewing. If you can easily stall them with your finger, then you need more current and should consider increasing the voltage. If they run better with the resistance from your fingers and you can't stall them, then you might be ahead to lower you voltage a little.      Larry Bell 9498


The slower you move the steppers the more torque they will have when half stepping. ...referring to tracking torque, the motors/msparms, mspause and msdelay will give you the adjustments for that. Lower number values for each will increase torque typically.  

Typically 12 volt steppers run at 12 volts have less overall torque that 5, 6 or 9 volt steppers run at 12 volts through Mel's PCB. So much so that I won't use 12 volt steppers on any system I make. Lenord Stage


Q.  If I know torque of my scope how calculate torque of motor required to pushing my scope.

A. Your motor simply has to overcome the torque required at the input shaft to your drive system. Ideally it is good to have a motor rated at 10x the required torque, but you can squeak by with a motor that has 2x required torque. Mel Bartels


While the motors are microstepping, have you tried grabbing the shaft of the stepper and seeing how hard it is to stall the motor? Its kind of a poor man's Torque test.  I'll wager you can stall your motors fairly easily (Yes, that is a very ambiguous quantity!), I found Higher Torque = smoother micro steps, and torque depends on this:

Stepper Coil Resistance

Supply Voltage



I found that it was best to play with MSdelay and MSpause to balance Noise/Torque/Shaft rotational smoothness/Current Draw.  Once you find that balance, then move onto micro step "FUN" land :)

In My case, using a 12V supply and 5 ohm/coil steppers, my MSdelay = 2 and MSpause = 47, which results in a PWM around 120, and a fair amount of current draw, great torque and very low noise. Using a 700:1 reduction I found I could live with the default micro step values for visual use, even though the stepper motor shaft output visually isn't perfect, it looks fine at the eyepiece.    James Lerch


Suprisingly, the torque requirements of the motor are a lot more related to the amount of friction that you have rather than the weight of the equipment. The huge mass of the 200" Hale is being pushed about by an actually very small motor and it does work a bit getting the mass up to the rapid speed of the earth turning about on it's axis.    Bob May


The tracking in scope.exe is simply an attempt to stay centered on the current equatorial coordinates. If you are accurately aligned, then this will result in sidereal or star tracking. If you wish solar tracking, then there will be some drift. Same for lunar tracking.  Drift can be calculated for these instances ahead of time and input, or one can guide and let the software calculate the drift. For instance, simply recentering a particular crater  minutes later will result in approximate lunar drift values. If you are precise and use a reticle high power eyepiece, then the resulting calculated drift will be correspondingly accurate.     Mel Bartels  5438


Q   friend asks for this: " In tracking mode, every time the RA motor stops when Decl. motor is turning up or down by handpad, ("find" mode or "slow"); is it possible to change that??

A.  The work around is to set a guiding speed of 30 arcsec/sec, then go into guiding + stay mode. Now you'll have equatorial motion with the handpad.  Mel Bartels 


Tracking is turned on for you when you slew to an object. Hope that is ok 'cause that's the way it is in order to keep the object centered - otherwise where would the scope slew to in terms of the object position  over time? If you wish a nontracking slew, use the menu option to move in altaz.                       Mel Bartels


Scope must be initialized before tracking will work.  Dale Eason


Set speed of tracking by adjusting the fullstep size in config.dat, specifically AltFullStepSizeArcsec AzFullStepSizeArcsec You gotta figure this from gear ratios or from observation Mel Bartels 


To track the moon, put in a drift rate that mirrors the moon's rate across the sky. For instance, the moon revolves around the earth in 27.3 days or 53 min/day, or 2.2 min/hr. That's the drift rate to enter into the drift right ascension field   Mel Bartels  


My program "SolarSys" ....computes the position and of the Sun, Moon and the planets plus their drift rates.  Run the program before running "Scope" and it creates two datafiles.  One for position only and the other with drift rates.  Use the Comet dat file command to load the datafile with the drift rates.  The program is in the file section of this group.   Rex Kindell


Scope does not have the ability to track planets other than at the Sidereal rate. The Skymap command track only tells scope to track at the current eq coordinates of where the skymap cursor is. Thus you cannot make scope track planets this way. I don't think there is any way to do it.   Dale Eason


tracking will stop when you are in most menu items. When I first wrote the framework of the software, that seemed safest. What happens when you quit the menu item is that the scope slews back to the position it would have been tracking to so all is always ok.  Mel Bartels


MsHsToggleIncrMsPerPWM  At some point before reaching this speed, the program will switch from PWMs to halfstepping, this speed being MsHsToggleIncrMsPerPWM.  MsHsToggleIncrMsPerPWM should be less than or at most, equal to MaxIncrMsPerPWM Mel Bartels

Assume PWMRepsTick = 50, MaxIncrMsPerPWM = 8, MsHsToggleIncrMsPerPWM = 4, Ms = 32, and microstep size = 0.2 arcsec

When the scope is tracking the scope will switch to halfstepping using timing based on the PWM rate when it hits MsHsToggleIncrMsPerPWM. This will occur when the number of microsteps required to be moved per PWM exceeds 4 which equates to a tracking speed of 18.2 * 50 * 4 * 0.2 = 728 arcsec/sec. The drive will then continue in tracking mode using halfsteps timed by the PWM rate until it gets to the next limit set by MaxIncrMsPerPWM at which time it will exit tracking mode and go into slew mode. The tracking speed at which this will occur in the example given will be 18.2 * 50 * 8 * 0.2 = 1456 arcsec/sec. Mel Bartels


The MsHsToggleIncrMsPerPWM sets the transition for tracking to occur using halfsteps instead of microsteps. If your microstepping is very tiny, or your Ms speed is too high, and this var is set low, the software may conclude that it cannot track fast enough either micro or halfstep, and will sit there quietly awaiting instructions that it can execute!                Mel Bartels


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.  Mel Bartels


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)  Mel Bartels13478


MsHsToggleIncrMsPerPWM says how many microsteps can be skipped over before the program goes into halfstep tracking mode.  Halfstep tracking mode is a sort of last ditch effort by the program to attempt tracking when the microstepping speed is otherwise way too slow.  Sometimes it works and sometimes it doesn't.   Mel Bartels 13843

MsHsToggleIncrMsPerPWM says how many microsteps can be skipped over before the program goes into halfstep tracking mode.  Halfstep tracking mode is a sort of last ditch effort by the program to attempt tracking when the microstepping speed is otherwise way too slow.  Sometimes it works and sometimes it doesn't.  Mel Bartels  13843

there is a different timing method used depending on whether the drive was slewing or tracking.    Lets assume PWMRepsTick = 50,  MaxIncrMsPerPWM = 8,    MsHsToggleIncrMsPerPWM = 4,    Ms = 32,    and microstep size = 0.2 arcsec    

When the scope is tracking the scope will switch to halfstepping  using timing based on the PWM rate when it hits MsHsToggleIncrMsPerPWM. This will occur when the number of microsteps required to be moved per PWM exceeds 4 which equates to a tracking speed of 18.2 * 50 * 4 * 0.2 = 728 arcsec/sec. The drive will then continue in tracking mode using halfsteps timed by the PWM rate until it gets to the next limit set by MaxIncrMsPerPWM at which time it will exit tracking mode and go into slew mode. The tracking speed at which this will occur in the example given will be 18.2 * 50 * 8 * 0.2 = 1456 arcsec/sec.            Andy Martyn   5918 


it is possible to bring the dec motor to rest on a fullstep. You can do this now by hitting the 't' for track on/off twice rapidly. This forces the dec motor to the nearest fullstep to end tracking, then resumes RA motor tracking immediately. Mel Bartels


put the handpad into one of the guide modes if you wish tracking to continue while using the handpad. Otherwise the handpad moves the scope in one direction at a time. Mel Bartels


Q.  I can´t understand that you say as "a bigger hole at the zenith that is not trackable "

When an object approaches the zenith, the azimuth is basically fixed, and the altitude creeps up to 90. When it crosses zenith, the azimuth must change 180 degrees very quickly, so the altitude can start creeping down from 90 to 0. If the object is too close to zenith, the scope can't slew the azimuth around fast enough.     Mike Lindner


1. At the lowest speeds...the software moves in 1 microstep increments (no matter if it's 10, 20, 40, or 6 microsteps per full step.)

2. At slightly higher speeds, the software will skip microsteps...it'll move from microstep 0 to 2, to 4, etc. (or 0 to 3, to 6, etc.) to maintain the required motor shaft speed. (This is still microstepping.)

3. At higher speeds halfstepping can be incorporated in the PWM microstepping routine. The point at which this transition happens is defined by MsHsToggleIncrMsPerPWM.

4. The highest microstep tracking speed attainable is defined by MaxIncrMsPerPWM, which is effectively microsteps/2...which results in halfstepping at the PWM rate.

5. Above the speed of MaxIncrMsPerPWM halfstep slewing is used.

In the above discussion, the number of microsteps does not determine how fast you can track...that limit is set by MaxIncrMsPerPWM, which can never be higher than microsteps/2. (Ok, if you are running at 40 microsteps per full step, and set MaxIncrMsPerPWM = 3...it'll be a far slower speed than if you are running at 6 microsteps per full step, and set MaxIncrMsPerPWM = 3...but then you can set MaxIncrMsPerPWM = 20 and have the same max speed.)

Based on config.dat entries...there is no extra torque available for configurations with smaller numbers of microsteps. Software skipping of microsteps makes 40 microsteps per full step behave like 6.  Tom Krajci


I too feel that it is easier to get smoother tracking from older laptops than newer ones.  2/26/2000  Mel Bartels


Q.  When tracking turned on, the scope would go nuts trying to slew, with immediate GEM aborts. If I did not do the reset GEM, the scope would not slew, but still had major tracking errors

A.  Whenever you get into a situation where tracking and goto are very bad and resets happening all over the place, then the inits and scope position are bad. Kill the inits with the 'k' key, manually enter altitude and azimuth values (eyeballing is good enough to get going), and try the init sequence again.   Mel Bartels


Q  Any hints to get 50%-50%-pulse at track-mode?

Yeah, set MsPause to zero. That's a delay in the pulse direction motor control method that I added for compatibility with other settings in config.dat for the PWM motor control. Relatively speaking, that should make the pulsing a little more even. Let me know. Mel Bartels


VIBRATION:      see noise    


I developed a beta version of SKY TRANPARENCY forecast. This new forecast is based on moisture in the airmass. I do integration of the moisture throughout the air column for each gridpoint of the regional model and give more weights for the boundery layer (surface-1000 metre) and at the jetstream levels. I did many adjustment to the variables to fit my own and a friend observations of the sky transparency and water vapor satellite pictures. It seems to work quite well and this will be helpful for observers looking the the darkest sky or planning to drive long distances to have access to dark skies.  

Hoping these new images will be usefull to the community.... I invite you to publish the site to all your club members and include a link in your local web page. http://www.cmc.ec.gc.ca/cmc/htmls/mainpage.html   Allan Rahill         


...Yahoo has just made a sneaky change to everybody's 'Marketing Preferences', the result of which will be a load of spam. So, I've just been in and changed back what they've done so that I won't be receiving their ads! They had changed ALL of my *No's* to *Yes!*

Here's what you need to do: Go to My Groups and click on Account Info, verify your password if it asks you to, and your Yahoo ID card comes up. Click on 'Edit your Marketing Preferences' and change all those Yes's back to No's! Click Save Changes.  Paul Greenhalgh


Yahoo groups has instituted another policy without informing its users.

They are using web beacons ('pixels') to track users OUTSIDE of Yahoo's sites "to conduct research on behalf of certain partners on their web sites and also for auditing purposes." You can opt out of this program by going here:


After you click on the "opt out" link, pay attention to the next page. The gray button that comes up CANCELS the opt out, so don't click it; just close the browser tab or the browser window instead. You may also want to note that you are opting out of for a specific browser & a specific computer. If you use multiple computers or browsers, you need to opt out for each.   Chuck Shaw

Z1 Z2 Z3     see also analysis files

+++ 6/15/03  Z1 Z2 Z3

I rewrote and greatly amplified the section, particularly on dealing with Z1 Z2 errors on my webpage.    Mel Bartels   6/15/03

I've been doing a lot of what-ifs with different scenarios and simulations now that we have the improved Z1 Z2 routines from Larry Bell and Toshimi Taki.

What I found is that altitude offset or Z3 error is critical to determining Z1 Z2 error. Even a handful of arcseconds of error in Z3 makes a difference and likely a bad one in determining Z1 Z2 numbers. So I went back and looked again at the best way to get Z3 or altitude offset. I found that averaging Z3 over a number of points in the sky did a great job of removing the influence of Z1 Z2 on the altitude offset. Remember that we do not necessarily know what Z1 Z2 is when we first start characterizing a scope, but we do want to get a good altitude offset since absolute altitude numbers are almost impossible to obtain (you have to do the spin the scope while pointing at the zenith looking at a target routine to set 90 deg, then build a stop against the rocker box so that you can move the scope accurately to 90 degree). This is because any re-collimation in the slightest will call for a Z2 and Z3 recalculation, since these are essentially optical axes versus mechanical or tube axes misalignments. Taking only one Z3 or altitude offset measurement from a single pair of stars does not cancel out the impact of Z1 Z2 - in fact you are almost guaranteed a less than perfect Z3.

So, what you do now in scope.exe is to make ten or so analysis points spaced around the sky, and then run the Z3 routine. The routine averages all altitude offsets obtained from every possible pairing of stars. Now you can redo the analysis and run the Z1 Z2 routine .....After you accumulate the analysis data (don't change the initializations in mid-stream), go into the init | best z123 from analysis file menu option.  It will calculate the best z123 values for you and ask if you want to adopt  them.   Mel Bartels

(The Z1 Z2 Z3 combined analysis does the Z3 first, so you can do all three at once if you pick a nice series of analysis points across the sky.)   Mel Bartels


Q.  So which coordinates are used to determine the errors which are plotted in the GraphZ1Z2Z3 option?

A.  Consider 2 altazimuth coordinates: 1) the altazimuth coordinates as they ought to be for a given equatorial coordinates including time, and 2) the altazimuth coordinates that scope.exe had to arrive at in order to center the object in the eyepiece per your handpad commands. These are the two altazimuth coordinates that are plotted and used to determine altazimuth error                 Mel Bartels


Q  I have started down the road to fix my mount's pointing accuracy and need some verification of the following thoughts for an ALTAZ mount. I could not find anything directly saying the following but it seems to make sense, well at least at this point.

Z1 (Rocker side hi/low)

If I get a positive number for Z1, from the Z1Z2Z3 analysis, this would tell me that the Right rocker is low, as the correction is to make the true point more positive in both Az and Alt. (this one I am less sure about)

Z2 (Az offset)

If I get a positive number for Z2, from the Z1Z2Z3 analysis, this would tell me that the mount is pointing more CCW (lower Az values) as the correction is to make the true point more positive in Az. Z3 (Alt offset)

If I get a positive number for Z3, from the Z1Z2Z3 analysis, this would tell me that the OTA is pointing low as the correction is to make the true point more positive Alt.   John Ritzel

A  .... correct.  Mel Bartels


Q. Would there be any reason to do the Z1Z2Z3 corrections manually instead of letting the program calculate it?   Berthold

A. Not really, though, manual entry of an average value that you gradually come to over many nights is a good idea.    Mel Bartels 5027


The best way to get the Z1Z2Z3 is this :

--- do your standard 2 star init

--- do the altoffset function  (altaz; for equatorial do a 'reset to equatorial')

--- create a series of analysis points - say 10 or so varying in azimuth and altitude (slew to object, center object, put handpad in analysis mode, hit left/right mode key to record point --- you can use a scrollfile to automate this)

--- use the menu option analyze Z123 from analysis file         Mel Bartels


Q.  When in analysis mode, does Scope.exe use the coordinates needed to center the star vs. the coordinates in the data file for the star?  Does this pertain to an AltAz scope.

A.  Yes, it pertains to all mounting types. And yes, both coordinates - the input coordinates that were used to slew to the object, and the actual coordinates resulting from centering the object - are used. It is the difference between the two coordinates that is the error that is analyzed.    Mel Bartels


Q.  how do you pick the stars for Z3 adjustment in case of equatorial mount ? Use similar declination (  altitude ) ?

A.  A good question that can stand some thinking. The algorithm compares angular separation in equatorial coordinates to the angular separation as given by the altazimuth coordinates, adjusting the altitude iteratively until the angular separations agree. So what you want are coordinates that have nice angular spacing in both coordinate systems. The separation in azimuth is particularly important because the altitude is varied against it (consider the extreme case where azimuth difference is almost zero - it gives a very coarse value for the altitude offset).    Mel Bartels

A.  I have try the Z3 routine with stars scattered around the sky and also near meridian. I get Z3=150 DEG ????  

But with stars well separated in AZ, I find a more realist value :  Z3= -0.05 DEG.  In my opinion, we must avoid stars near meridian.  Marc Storme


For an equatorial Z1 is the error between the RA axis and the Dec axis. For example, if you measure the angle between the RA axis and the skyward end of the Dec axis to be 89.9 deg, then Z1=+0.1 deg.  

Z2 is similar. On a GEM, Z2 is the angular error between the optical axis and the mount's mechanical declination axis. The optical axis should be perpendicular to the declination axis. If not, Z2 is the angular error. For example, if the angle between the telescope's optical axis and the declination axis is measured to be 90.1 degrees, then Z2=-0.1 degree.

Z3 is a bit more complicated to visualize. Z3 is really just the error in the declination setting circles. Taki calls it the "Mount error angle, zero point shift". I believe the Altoffset function under the init menu in scope calculates this parameter after init.  In my experience, you will not need to measure this directly unless you have mechanically fixed declination setting circles on your mount.   Larry Bell


In his (Taki's) program there are 3 mounting errors which can be taken into account. I think I know how I can measure the Z1 error. I just put my dial indicator on top of one of the altitude bearings, note the reading, swing the azimuth until the indicator is under the other bearing, take the difference, do a little trig, and I have it. Also, for the Z3 error, I center the scope at polaris, note the altitude reading, swing my scope 180 deg in azimuth, center the scope on polaris again using altitude adjustments, and note the altitude reading again. Then I divide the difference by two, add it to one of the readings, and slew my scope there. I then put my inititializing stop at this point, and use a value of zero for Z3.  Dan Gray


The telescope coordinates as measured against the celestial coordinates are expected to have the mount errors built in. That is, the mount errors are 'real' in the sense that they report what perfect shaft encoders would report, axis misalignment and all. If a scope had a bad axis misalignment, one would expect to see differences between the perfect altazimuth numbers and the real world altazimuth numbers. The Z123 errors are then removed when converting to celestial coordinates in order to give accurate hour angle and declination. Similarly, on the back end, Z123 errors are added back into the mount's altazimth encoder values when translating from celestial coordinates back to telescope coordinates.  Mel Bartels


Q.  On subsequent setups of a portable scope do I revert back to standard 2-star inits following by "a" like usual or does the new Z3 calculation need to be done using a new analysis file each time I set up the scope?

A.  I'd do the Z3 with the analysis file at some point to determine the Z1 and Z2 numbers. Once you get Z1 and Z2, via an accurate Z3, then you can adopt those Z1 Z2 numbers, and do a simple 'a' altitude offset. If Z1 and Z2 are fairly accurately well characterized, then the 'a' altitude offset will work quite well.  Mel Bartels


Q.  Why is the Altoffset done before the Z3 calculation? I thought Altoffset and Z3 were the same thing. Why would you do an AltOffset before doing your Z analysis if it is the Z analysis that computes the best Z3 (altoffset)?  Maybe I'm just mixed up about the difference between AltOffset and Z3.

A.  AltOffset is Z3, however, I confuse people because the AltOffset routine in scope.exe calculates the AltOffset or Z3 based on the two initialization points, nothing more, whereas the Z3 routine does it from the analysis file containing the list of your accumulated analysis points. AltOffset per the two initializations is fed into the Z3 routine as the initial starting guess.   Mel Bartels


Q.  I guess that when you find Z1,Z2 and Z3, they are used by some routine to correct the errors. Are these routines the AltAzEC, AltAltEC, AzAZEC and PMC features on the Error Correction menu?

A.  You want to get the Z1 Z2 Z3 errors figured out first, as they can make the axis to axis error corrections confusing otherwise.  Mel Bartels


Q,  On a DOB mount does Z1 and Z2 need to be adjusted or do the PEC and drift corrections take care of this? According to your manual the "analysis" file must be used to set these but I can't find any information on how to actually generate the analysis and what it does? I'm sure I have overlooked it but could you point me toward some information regarding it?  mm

A.  Drift can help with Z1Z2 for tracking but will not help with goto.  You record analysis points by using the appropriate handpad mode after getting the object's coordinates into the input fields (typically by using one of the data files) and centering object. The difference in actual and expected location is recorded. Then you use a menu option to analyze these errors across the sky.  mm

Try recording a couple of points to get the hang of it.   Mel Bartels


Q.I wonder how many people actually align the optical axis with the polar axis on a GEM?

A.  Practically no one. The error can be 1/4 even 1/2 degree if considering a large fast newtonian without offset diagonal.

Scope.exe can ferret this out using the Z1 Z2 Z3 error analysis, and correct for it, but it is best to eliminate it as much as possible to start with.    Mel Bartels


Here is what I have done to align the optical axis with the polar axis, (Z2?) on my GEM. Center Polaris in the polar scope instead of it's usual offset position. Then sight through the main scope with it at the east side, top and the west side of the mount. Starting with a wide FOV, Shim the OTA until polaris makes as small of an arc as possible. I feel that getting the mechanical errors minimized will perhaps make the software error correction more accurate when I get there.   Marty Niemi


You can look for optical vs mechanical mis-alignments by running a series of 2 inits, and after each init 1 and init 2, do the 'a' altitude offset option. Do NOT adjust the offset - just jot down the value. If the value is fairly consistent as you re-do both inits, then this tells you that you like optical:mechanical misalignment. The alt-offset will fix one direction of this. The other is more complicated. If you see consistent alt-offset values, then post back to scope drive list and we can talk more about the perpendicular component.   Mel Bartels


Q.  The main purpose for me doing the spin alignment http://www.ghg.net/cshaw/spin.htm is to make the scope as orthogonal as possible. I do have a way to get the base level that is repeatable and I also have the hard stop for altitude. Now all I have to do is get around to doing the spin alignment. :-)  

A.  The spin align will allow you to absolutely nail the Z errors that are a result of the OTA not being vertical side to side. The altitude offset you get for free with an accurate 2 star init if you do an "A" after the inits, so I would not worry too much about the vertical hard stop or trying to get the base "perfectly" level.    Chuck Shaw


Q.  What do the white lines (horizontal and vertical) in the top-left corner of the grid mean?

A.  Look in the lower right legend. The white bars are 1 degree markers.  They should be very large so as to indicate the error bars are much less than 1 deg., otherwise your pointing errors are very large and likely due to reasons beyond what the analysis file is going to tell you.  Mel Bartels

Q.  Does the length of the green and blue lines stand for the magnitude of the Alt and Az errors, for instance: if a blue line in one of the graphs is as long as one cell of the grid, is the magnitude of the error 30 degrees?

A.  Yes   Mel Bartels

Q.  At page 41, just below the graph, the manual says about 'the far right graph': 'A tilt in this graph indicates that the Z1 (...) be changed'. In the manual this graph is just a vertical (so: not tilted as I see it)line, parallel to the vertical grid lines, with small blue and green lines perpendicular to it. This was also the case with the graph I got. Does the fact that the line of the graph is vertical mean that everything is OK? If so: what do the red and blue lines perpendical to this line mean?

No - the reference line is always vertical. Look at the trend of the blue horizontal bars. They may show a tilt one way or the other. That's what the 'tilt' refers to.  Mel Bartels

Q.  If an analysis is done after Z1,Z2 and Z3 values are already adopted, which criterion is to be used for deciding whether the corrections should be changed or not?  

A.  Your judgment as to likely errors and results at the eyepiece if things are better or worse. Mel Bartels


Woe to us portable telescope users! It's next to impossible to reassemble the scope (especially plywood/truss tube scopes!) the same way every time you take it to an observing site. Mel's software gives us great capabilities to correct for mount/pointing errors, but how should we use the software to quickly and correctly analyze the mount pointing errors?

Here's what I have come up with:

1. Set up the mount the same way, as closely as possible (for example - same leg of the ground board pointing due south, bubble level the base with reasonable care.)

2. Do a two star alignment the same way, every time...taking advantage of your mount's 'sweet spot.' (From previous testing of your scope, and comparing observing site lat/long to the 'derived' lat/long from 2 star init's...you should have found certain altitude/azimuth combinations for two star alignments that give you good results. For example, I like to use this scroll file for alignment:

abs_altaz 30 200 0
f1 00000000.dat
abs_altaz 30 320 0
f1 00000000.dat

When it works right I get repeatable 'derived' latitude that is within 0.01 deg of the site's actual latitude.

3. Do a quick pointing analysis of stars at 180 az, at varying altitudes. Here's a scroll file I use:

abs_altaz 25 180 0
f1 00000000.dat
abs_altaz 40 180 0
f1 00000000.dat
abs_altaz 55 180 0
f1 00000000.dat
abs_altaz 70 180 0
f1 00000000.dat

Examine your pointing errors graphically...you will probably find that you need to tweak the value of Z2 to minimize the changing azimuth error that crops up at various elevations. Last night, during a calm spell, I got 0.5 arcmin RMS pointing error for my four star pointing analysis once Z2 was nailed to the nearest 0.01 degree. I find that Z2 varies a little bit every time I put the scope together...so this 'four star Z2 analysis' is needed to tune the pointing correction model. I also find this is a good way to quickly check to see if your step size in altitude is correct or not...if correct you'll get small/consistent/equal altitude errors at different altitudes...if step size is wrong, there will be a trend obvious in the graph...as you move higher the scope consistently points too high (or too low)..and the the higher the altitude the larger the error. Tom Krajci  2055



Websites of Scope-Drive members:

Albert van Duin     Andrew Wall    Antonio Pena     Ben Davies   Berthold Hamburger     Bob Norgard   Brad Davey     Chris EveraerChuck Shaw     Dan Gray       Frederic Gea     Francois Tisserant     Greg Granville   Jack Shell       James Lerch        Jan Boyle       Jan van Gastel     Jay Leblanc     Jean-Charles Vachon     Joe Garlitz      Johan Coussens      John Pike      Jurgen Liesman      Lenord Stage      Marc Durey      Mark Rice    Marty Niemi     Martin Cibulski   Mel Bartels      Michael Linder     Nils Olof Carlin   Paul      Paul Shankland       Rafael Gonzalez     Raoul Alverez    Rex Kindell  Richard Bowden      Roberto Pepitone      Rolf Apitzsch     Ron Depack       Sloboyko      Steve Goldman            Steve Mitchell      Soren Madsen  Stan Kohut       SteveB  Tracy Wilson     Thomas Janstrom      Thom Iwancio      Tom Krajci     Tracy Wilson      Vincent Steinmez      Wilfried Wacker     William Carroll       Yvonne and Alexander Urban