Firmware v3.2.0 high precision slewing
This firmware release adds a new High Precision Slewing feature and improves the operation of the shutter close limit sensor under adverse conditions.
High Precision Slewing
- adds a new command
@GSR,nnnnn
"Goto step-position" that allows positioning of the rotator with a resolution of a single motor step, or about 0.006 degrees. - Note that this level of precision is far higher than can actually be achieved in practice because of backlash and other mechanical considerations.
- Drivers and applications can use this new command to implement more accurate positioning, which is especially useful for users with large telescopes (C14) that need extremely accurate scope/dome synchronization.
- The Dead Zone is still in effect for high precision slewing. The default value for dead-zone has been reduced from 300 steps to 100 steps (about 1/6th degree). To get the new dead-zone value you will either have to reset to factory defaults, or manually reduce the dead zone to a smaller value using the
@DWR
command. Be conservative when reducing the dead-zone and only reduce it as much as absolutely necessary. Setting the dead-zone too low may result in "hunting" or other adverse effects. - Drivers and application plugins must compute the target step position using the formula:
position
=circumference
/ 360.0 *azimuth
- The value for
circumference
is obtained using the@RRR
command and it is suggested that this be done once at the start of a session immediately after connecting. - Pull request #21 closes #20
Shutter Close Limit Idempotency
Per issue #22 it was found that under some (not very well understood) circumstances the close limit sensor can be re-triggered multiple times as the shutter approaches the magnet. Most installations don't exhibit this problem and the root cause, probably mechanical, could not be fully determined. However the firmware reacted badly to this situation and clearly needed to be improved.
The close limit sensor should be idempotent, that is, triggering it multiple times should produce the same result as triggering it once. The firmware has been updated to ensure that the close limit sensor is idempotent. The onMotorStopped()
event re-arms the close limit sensor and allows it to be triggered again. The effect is that the close limit sensor can now only be triggered once while the motor is running, which gives the desired result. Closes #22