ACE Alpaca bridge
Purpose
The ACE Alpaca bridge is the compatibility service between the observatory’s ACE telescope-control system and network clients such as the CLASSI ICS. It runs on the TCS-side computer, where the vendor ACE Connector Python modules are available, and exposes a fixed set of devices through the standard ASCOM Alpaca HTTP/JSON protocol.
The ICS uses Alpyca clients and does not import ACE Connector directly. ACE node names, credentials, and vendor-specific configuration remain on the TCS computer.
Device mapping
The bridge advertises:
Telescope 0 for J2000 position, target, asynchronous slews, and an
Offsetcustom action;Focuser 0 for the telescope focus mechanism, including position, motion, halt, and a
Homecustom action; andCamera 0 for the CLASSI guide/acquisition camera.
Camera exposures run in a worker thread. The bridge watches the configured ACE
archive directory for the resulting FITS file and returns its pixels through
Alpaca ImageArray. Subframes are not implemented, and the camera-specific
limits and installed sensor geometry still require on-telescope verification.
The ACE XYStage interface is not advertised because its motion and position
API has not been verified. The ICS therefore implements only the mock stage
backend and rejects stage = alpaca. That setting should remain mock
until a network interface for the native stage is implemented and verified on
both sides.
Installation and configuration
Install the Python requirements in an environment that can import the
vendor-supplied ace modules, then run device/app.py on the TCS computer.
The service listens on TCP port 5555 by default and supports standard Alpaca UDP
discovery.
The repository’s
README
and
device/config.toml
are the authoritative setup and configuration references. The repository is
private and these links require MLO-CLASSI access. Installation-specific values
can be placed in /alpyca/config.toml so credentials and local overrides do
not need to be committed.
Security and protocol boundary
The bridge is intentionally not a generic RPC server. It translates a fixed set of Alpaca operations into fixed ACE calls; requests cannot provide a Python expression or arbitrary ACE attribute or method name.
The default deployment uses ordinary HTTP. Restrict it to the observatory or another trusted private network, and use protected transport if traffic must cross an untrusted network. Validate the bridge with ASCOM ConformU and verify real hardware limits before unattended operation.