# ASCOM (standard)

ASCOM (an abbreviation for AStronomy Common Object Model) is an open initiative to provide a standard interface to a range of astronomy equipment including mounts, focusers and imaging devices in a Microsoft Windows environment.

## History

ASCOM was invented in late 1997 and early 1998 by Bob Denny, when he released two commercial programs and several freeware utilities that showcased the technology. He also induced Doug George to include ASCOM capabilities in commercial CCD camera control software.
The first observatory to adopt ASCOM was Junk Bond Observatory, in early 1998. It was used at this facility to implement a robotic telescope dedicated to observing asteroids. The successful use of ASCOM there was covered in an article in Sky & Telescope magazine. This helped ASCOM to become more widely adopted.
The ASCOM standards were placed under the control of the ASCOM Initiative, a group of astronomy software developers who volunteered to develop the standards further. Under the influence of Denny, George, Tim Long, and others, ASCOM developed into a set of device driver standards. In 2004, over 150 astronomy-related devices were supported by ASCOM device drivers, which were released as freeware. Most of the drivers are also open source.
As ASCOM developed, the term became less associated with the Component Object Model, and has been used more broadly to describe not only the standards and software based on them, but also to describe an observing system architecture and a robotic telescope design philosophy. In 2004, ASCOM remained formally a reference to the Component Object Model, but the term is expected to stand on its own as new technologies such as Microsoft .NET take over functions provided by the Component Object Model, and additional ASCOM projects are adopted that dilute its concentration on device drivers.
Jonathan Fay contributed to the ASCOM standard. During his work on the WorldWide Telescope ASCOM client he created the reference .NET Framework prototype classes that led to the ASCOM Version 5 redesign.
The release of version 6 of the ASCOM Platform in June 2011 marked a transition to an open source development paradigm, with several developers contributing to the effort and all of the platform source code being made available under a Creative Commons license. Initially, the Platform developer team used servers hosted by TiGra Networks (Long's IT consulting company) for source code control, issue tracking and project management, with server licenses contributed by Atlassian and JetBrains. In 2012, due in part to differences in development style, TiGra Networks' involvement with the software development effort ceased and the source code was relocated to SourceForge.

## What is it?

The Ascom Platform is a collection of computer drivers for different astronomy-related devices. It uses agreed standards that allow different computer programs ('apps') and devices to communicate with each other simultaneously. This means that you can have things like mounts, focusers, cameras and filter wheels all controlled by a single computer, even with several computers sharing access to those resources. For example, you can use one program to find targets and another to guide your telescope, with both of them sharing control of your mount at the same time.
An ASCOM driver acts as an abstraction layer between the client and hardware thus removing any hardware dependency in the client, and making the client automatically compatible with all devices that supports the minimum required properties and methods. For example, this abstraction allows an ASCOM client to use an imaging device without needing to know whether the device is attached via a serial or network connection.
ASCOM defines a collection of required Properties and Methods that ASCOM compliant software can use to communicate with an ASCOM compliant device. ASCOM also defines a range of optional Properties and Methods to take advantage of common features that may not be available for every manufacturer's device. By testing various properties an ASCOM client application can determine what features are available for use.
Properties and Methods are accessible via scripting interfaces, allowing control of devices by standard scripting applications such as VBScript and JavaScript. In fact any language that supports access to Microsoft COM objects can interface with ASCOM.
An ASCOM Platform software package is available for download which installs some common libraries and documentation as well as a collection of ASCOM drivers for a broad range of equipment. Additional ASCOM drivers for devices not included in the ASCOM Platform package can be downloaded and installed separately.
Although ASCOM is predominantly used by the amateur community, because the standard is freely available it is also used in some professional installations.

## Licensing

There are no particular licensing requirements other than that the ASCOM logo may only be used if the client application is ASCOM compatible, and an ASCOM driver must implement all the required properties and methods (but need not implement any of the optional properties and methods).

## End user

From an astronomer's point of view, it is a simple matter of installing the ASCOM platform and suitable client software; no programming is required.
ASCOM drivers allow computer-based control of devices such as planetarium software to direct a telescope to point at a selected object. Using a combination of mount, focuser and imaging device ASCOM drivers, it is possible to build a fully automated environment for deep sky imaging.

## Developer

Developers can enhance the power of ASCOM by writing their own clients using the scripting or object interface.

## ASCOM Alpaca

Recent initiative called ASCOM Alpaca is currently under development. The Alpaca API uses RESTful techniques and TCP/IP to enable ASCOM applications and devices to communicate across modern network environments. This will enable ASCOM compatible devices to work across all the different operating systems including Linux and Mac OSX in near future.