_images/Bug72.jpg

Managing a Telescope Mount’s Knowledge of Time and Place

In order for an astronomical mount to operate in equatorial coordinates, it must know its location on Earth (and ideally its ground elevation) and the current time. Location is easy, it doesn’t change over the observing session. either the mount’s hand-box can set the lat/long, or an ASCOM-based application can use SiteLatitude, SiteLongitude, and SiteElevation to supply this info to the mount. Time is not so easy, yet it is critical for pointing accuracy.

Simple Internal Clock

Mount designs vary in their methods of getting the current time. Most commonly, a mount will have an internal clock, which may vary in accuracy and stability, whether it remembers the time through power-down and power-up cycles, and whether it must be set via the mount’s hand-box. In this case the mount can provide for an ASCOM-based application to update its clock to remove long term drift or just setting it after power up.

This is provided for apps by their writing to UTCDate to provide a time update. The usual time source for a time update is a PC/Mac/Linux system (“system clock”). While most systems have reasonably stable clocks, for astronomical uses it is desirable for the system to have some source of time updating like Network Time Protocol (see What is NTP? (external)), or an external GPS-based time source with an app that periodically updates the system clock. In this case UTCDate should be made both readable (required) and writeable (to provide the time updates to the mount).

Important

For mounts that depend on a host system clock, the mount designer should strongly suggest that the host’s clock be synchronized with a precise time source such as NTP or GPS.

Internal Precision Time Source

It’s also possible for a mount to have its own internal precision time source, such as a GPS receiver. The mount designer may choose to prohibit external time updates and always use the mount’s GPS time source (e.g. the system clock does not have a precise source of time). In this case the mount should refuse to accept writing to UTCDate, and instead raise a PropertyNotImplementedException on writing to it. This tells the application “I don’t want you to change my time, I know better.” Always include a meaningful error message with the exception.

Internal Source of Position

A mount with a GPS receiver will always provide geodetic position (obviously), and probably ground elevation. Similar to having a precision time source, the mount designer may choose to prohibit external position updates and always use the mount’s GPS site location and elevation. In this case the mount should refuse to accept writing to SiteLatitude, SiteLongitude, and SiteElevation, and instead raise a PropertyNotImplementedException on writing to them. This tells the application “I don’t want you to change my location or elevation, I know better.” Always include a meaningful error message with the exception.

Unavailablilty of Internal Precision Time or Location Source

At Initialization: Mount designers should consider what the mount should do in case a normally available internal source of precision time and location is not available or becomes unavailable after a successful initialization. If it was not available at initialization, then the mount should act as though no input of time and/or place has ever taken place, and allow both the hand-box and an application to set these parameters. Reading these unintialized properties must raise InvalidOperationException (never set). Writing to these parameters should be allowed since the precision sources are not available.

After Initialization: If, on the other hand, the internal precision time/place becomes unavailable after initialization what to do? If the position was successfully initialized then the mount should refuse updating SiteLatitude, SiteLongitude, and SiteElevation since they would not change during the session. Or if the mount’s internal clock would drift “too much”, it may decide that, without a “recent” update from the precision time source, its performance would be degraded “too much”. In this case it may choose to raise exceptions on not only reading time/position, but also on equatorial coordinate reads and writes and even slew operations. “I lost my time source so I have no idea where I am pointing or where to go”. Give this scenario some thought.