November 2019 update

With the introduction of ASCOM Alpaca (see below) lots of new things have been happening within ASCOM. From now on this page will list only current projects and their status.

ASCOM Alpaca - ASCOM is not just for Windows any more

The introduction of ASCOM Remote in 2018 began the process of extending the ASCOM ecosystem to include the internet, Linux, and MacOS, to include small embedded controllers like the Arduino and Raspberry Pi. As of early 2019, this effort has grown into a new wave of development, with several astronomy instrument vendors embracing the implementation of the ASCOM Interfaces as ReST resources, reachable over the internet. Now known as ASCOM Alpaca, the next steps are being taken. This effort is much farther along that you might imagine. If you are interested in learning more, visit the ASCOM Alpaca page:

Learn More about ASCOM Alpaca

Alpaca Discovery Protocol

Alpaca currently requires supplying the IP address or domain name of a device in order to connect to it. This is a bit burdensome and crude, so we have a project underway to design a lightweight discovery mechanism to augment Alpaca. With the discovery mechanism, users will be able to select a device from a user-friendly list. The list will be dynamically created, no static setup will be needed. Each device will broadcast its identity and addressing info.

One very tight constraint is that the protocol must be simple enough to implement in tiny dedicated processors with no Linux, etc. This rules out complex protocols such as MDNS. Also we decided that centralized hub-and-spoke architectures are also out (single point of failure).

Status (Nov 2019): The discovery protocol has now passed its testing phase and has been incorporated into a beta version of ASCOM Remote middleware as well as several drivers and tools. In addition, a discovery diagnostic tool has been developed and is being used to exercise the protocol. As of a team meeting on 03-Nov-2019 this project is very near completion, probbly in the next 6-8 weeks.

Python Projects

One of the core group team members has completed an Alpaca Rotator simulator in Python which is factored into modules such that it can also be used as a template for other drivers. It uses Flask and Flask-RestPLUS and provides its own live Swagger UI, as well as implementing both the Alpaca Rotator API and the Management API. This should be publicly available in weeks not months.

There are several Alpaca projects currently listed on GitHub which can be found by searching for repos with "ASCOM Alpaca".

ASCOM Camera Interface Update

We expect to have CMOS cameras addressed with at least a sub-exposure duration added to the interface for possible future cameras that provide hardware stacking within the camera. With the recent rise of CMOS cameras and their unique capabilities and needs for routine usage, we are reviewing the ASCOM Camera interface for additions that may be needed to accommodate CMOS. We are soliciting input from camera manufacturers and application developers to make sure we address their routine usage needs while protecting the standard against needless complexity. It is a complex problem because the Camera area has been the slowest to adopt ASCOM standards, and ASCOM Camera drivers, if they exist, are not as reliable and robust as they should be. This project does not have a firm schedule yet, but it is near the top of the priority list. We expect to personally interview camera makers at the upcoming Advanced Imaging Conference.

ASCOM Rotator Interface Update

This is in its final stages. The primary motivation for this is feedback from rotator manufacturers indicating that a "sync" feature is needed so that the rotator angle can represent the Equatorial Position Angle (PA) rather than the raw mechanical rotator angle. Some applications are currently doing this internally, but each has their own idea of the offset. It is better if all applications that use the rotator can get the true PA without having to do their own plate solutions and PA determination. This change will add new functions to the interface while maintaining 100% backward compatibility for existing applications.

Updates to Deprecate Synchronous Operations

Early in ASCOM's history, the interfaces were designed with "synchronous" functions as a convenience. This means that calling a function, for example SlewToTarget(), would not return until the operation, the slew in this case, is complete. Thus a synchronous function call could take minutes before it returns. 20 years later, and with the Alpaca protocols rapidly gaining acceptance and usage, synchronous function calls present a real problem. Furthermore, there are some functions in the interfaces for which it is "up in the air" whether it must be asynchronous or not.

For example, the Telescope.Park() function has a companion property Telescope.AtPark. Even so, some Telescope systems implement Park() as a synchronous operation where it could take minutes to return. We are currently studying various approaches to this problem, all of which will involve deprecating synchronous operations. It will take time, and it will have impact on applications which use synchronous calls, or depend on implicit synchronous behaviors (the latter is a bad idea today). This project is in the study phase.

Soliciting Developer Satisfaction Feedback

During May, June, and July (2019), we conducted surveys of application developers, and separately, device developers. The purpose of the surveys was to determine the level of satisfaction with the ASCOM standard interfaces and the ASCOM-provided support libraries and tools. The response was excellent compared to a typical survey response, showing that the developers want to be heard. We asked if the interfaces were sufficient to cover the routine (night-to-night) usages of the devices, and if there were things they would like to see added. One outcome was the Rotator Interface Update described above. But the vast majority of responses indicated that the interfaces meet the design objective of providing the functions needed by applications for day to day use.