- Joined
- Jul 28, 2017
- Messages
- 2,565
A design goal of 10 arc seconds accuracy should be compatible with most common stepper motors -- if one complete revolution of the worm is 8 minutes, you'd only need (8*60)/10 = 48 steps/rev. to achieve that. So your data suggests a mechanical issue of some kind. The fact that the error is periodic relative to the worm seems pretty definitive.
One thing that would be helpful would be to know what the diameter of the big gear is. With the +/-10 arc seconds design target, you can calculate what that means in terms of the required mechanical tolerances needed to get there. For example, if the big gear is 6 inches in diameter, the length of a 10 arc second chord on the circumference is .29 mils, .00029 inch (10 arc seconds = 4.85E-5 radians). Wow!
If you look at the +/- 45 arc second information as an indicator of the tolerance variation you DO have, that comes out to +/- 1.3 mils (again based on a 6-inch diam. gear) -- something that might be about right for a relatively inexpensive off-the-shelf gear set. Not looking good for what you want to achieve, though.
It might not be necessary to use a high-accuracy encoder for this (although that would be the most robust solution). As has already been mentioned, if the error is periodic relative to the worm's rotational position you could characterize it and then compensate for it in software. So how to get the compensation factors? Maybe you could use the telescope itself, since that is where you are observing the problem.
However, running in an open loop mode does have its problems, like determining what the worm's rotary position is the next time you use the telescope, and, of course, mechanical wear. Putting an encoder that retains positional information of the worm gear (if there is such a thing) might address the former issue. Or perhaps having a shutdown procedure in your controller S/W to store the worm gear's rotary position in nonvolatile memory? I believe that can be done on an Arduino; but you'd have to make certain you actually go through the shutdown procedure every time. And how would you handle a power failure? More worms in that can.
You have an "interesting" problem. Please let us know how you address it!
One thing that would be helpful would be to know what the diameter of the big gear is. With the +/-10 arc seconds design target, you can calculate what that means in terms of the required mechanical tolerances needed to get there. For example, if the big gear is 6 inches in diameter, the length of a 10 arc second chord on the circumference is .29 mils, .00029 inch (10 arc seconds = 4.85E-5 radians). Wow!
If you look at the +/- 45 arc second information as an indicator of the tolerance variation you DO have, that comes out to +/- 1.3 mils (again based on a 6-inch diam. gear) -- something that might be about right for a relatively inexpensive off-the-shelf gear set. Not looking good for what you want to achieve, though.
It might not be necessary to use a high-accuracy encoder for this (although that would be the most robust solution). As has already been mentioned, if the error is periodic relative to the worm's rotational position you could characterize it and then compensate for it in software. So how to get the compensation factors? Maybe you could use the telescope itself, since that is where you are observing the problem.
However, running in an open loop mode does have its problems, like determining what the worm's rotary position is the next time you use the telescope, and, of course, mechanical wear. Putting an encoder that retains positional information of the worm gear (if there is such a thing) might address the former issue. Or perhaps having a shutdown procedure in your controller S/W to store the worm gear's rotary position in nonvolatile memory? I believe that can be done on an Arduino; but you'd have to make certain you actually go through the shutdown procedure every time. And how would you handle a power failure? More worms in that can.
You have an "interesting" problem. Please let us know how you address it!