Click or drag to resize


The ASCOM Library provides a broad set of enabling components that make it easier to develop ASCOM clients, Alpaca devices and COM drivers . This cross platform library targets .NET Standard 2.0 for broadest application across .NET frameworks and can be used in projects that target Linux, Raspberry Pi, MacOS and Windows.

Please see Alpaca devices and ASCOM devices for information on the Alpaca device / ASCOM device terminology used in the Library Help documentation.

The library's capabilities, supported .NET frameworks and supported operating systems are described below.


The ASCOM Library provides the following key components:

  • Alpaca Client - Toolkit that encapsulates an Alpaca device and presents it as a strongly typed class (conceptually similar to the Platform's DriverAccess component, but for an Alpaca device rather than a COM driver)
  • Alpaca Discovery - Discover available Alpaca devices on the network
  • COM Client - Toolkit that encapsulates a Windows COM device and presents it as a strongly typed class (conceptually similar to the Platform's DriverAccess component - Windows only)
  • Asynchronous Client Methods - Extension methods for long running Alpaca and COM client operations that return awaitable Microsoft Task asynchronous programming (TAP) Tasks. Each task encapsulates an operation that uses an "initiator / completion variable" combination (e.g. IFocuser.Move / IFocuser.IsMoving) and completes when the polled variable indicates that the operation has finished.
  • Cross Platform Utilities
    • New ILogger logging framework including a built in console logger
    • SOFA component, functionally equivalent to the Platform's SOFA component
    • Transform component, functionally equivalent to the Platform's Transform component
    • TraceLogger similar to the Platform's TraceLogger component.
    • ILogger console logger.
    • Utilities - A range of utility functions that have no counterparts in .NET APIs.
  • COM Utilities - Windows only
    • Profile - retrieve and set values in the Platform's ASCOM Profile
    • Chooser - Select which driver to use. (Currently this provides a thin wrapper round the Platform's COM Chooser, in future it will be refactored to be independent of the Platform.)
    • Whole driver profile load and save as an XML document
  • Developer Support - Of use if you are rolling your own communications rather than using the Client Toolkits.
    • Alpaca Devices - Detect and respond to client discovery requests.
    • Definitions of every ASCOM interface
    • Alpaca Data Classes - A range of classes representing every Alpaca message transaction defined in the Alpaca API that will be of use to both application developers and Alpaca device developers.
    • Constants used by Alpaca clients applications and devices.
    • A range of enums describing Alpaca error numbers, image array transfer types etc.
    • Richly functional APIs for discovering Alpaca devices on the network.
Package Overview

The ASCOM Library comprises the following packages:

  • ASCOM.Alpaca.Components - The Alpaca client toolkit and device discovery support for use in Alpaca client applications.
  • ASCOM.Alpaca.Device - A Discovery responder tool for use by Alpaca devices.
  • ASCOM.Com.Components - The COM client toolkit, Profile and Chooser components to support clients and drivers on Windows platforms.
  • ASCOM.Tools - A set of support components to aid development of clients, drivers and Alpaca devices.
  • ASCOM.Common.Components - Common Interfaces, enums and other types shared by ASCOM Alpaca and COM projects.
Package Dependencies

The Library has dependencies on these packages:

  • ASCOM.Exception.Library - ASCOM Exception definitions that ensure inter-operation between Alpaca clients / devices and COM clients / drivers.
  • Microsoft supported .NET packages - These provide C# Dynamic variable, Windows registry access and JSON serialisation / de-serialisation support.
Supported .NET Implementations

The ASCOM Library targets .NET Standard 2.0 and supports the following .NET implementations:

  • .NET / .NET Core - 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0
  • .NET Framework - 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Supported Operating Systems

The ASCOM Library is available as a NuGet package (search for ASCOM) and is supported on these operating systems:

  • Linux 64bit
  • MacOS - Intel Silicon
  • MacOS - Apple Silicon
  • Raspberry Pi - Arm32bit
  • Raspberry Pi - Arm64bit
  • Windows 7, 8 and 10 - 32bit
  • Windows 7, 8, 10 and 11 - 64bit
See Also