Developer Guide - UWMRO/TCS GitHub Wiki

The Telescope Control System (TCS) hardware is composed of a PC with a motion control board that interfaces with the telescope's electronics and drives, and an X-box controller based dome paddle. The Linux PC runs software that interfaces directly with the motion control board (TelescopeDriver) and the user interface (Bifrost).

TelescopeDriver is C++ software that communicates with a motion control board manufactured by PMC Corp, controlled by their Motion Control Application Programming Interface (MCAPI). The board controls the three axes of the telescope (RA and Dec servo motors, and a focus stepper motor) and monitors both paddles. TC_Server also distributes time and axis position to other programs via a logfile. Note that we boot linux kernel 3.3 since the (then) current MCAPI drivers did not work on linux kernel >=4.0.

The user interface to TelescopeDriver is Bifrost, a GUI built in Python 2.7 that communicates with TelescopeDriver via TCP. Typically Bifrost is started by a short shell script, Bifrost/Bifrost_Bash.sh, that ensures that TelescopeDriver isn't already running. If it isn't, Bifrost (actually Bifrost/tccv3.py) initializes and starts TelescopeDriver/TelescopeDriver as a subproccess. Otherwise you can start TelescopeDriver and then run tccv3.py.

The Dome paddle is an X-box controller that wirelessly communicates to an Arduino, which switches the existing low-voltage circuits.

Python Dependencies / Installation

Note that the old version of wxPython (wxgtk3.0) is required, not the current version (wxPython v4.x, or Phoenix--a major overhaul of the package).

wxgtk3.0
astropy (implies numpy)
ephem
matplotlib
astroplan
twisted
astroquery

Pip works for most libraries except:

  • I used apt to install wxpython, haven't tested the pip install
  • matplotlib with python2.7 may fail with the error that it can't find 'py27-backports-functools_lru_cache'. Solution is to:
sudo pip2 uninstall backports.functools-lru-cache
sudo apt install python-backports.functools-lru-cache

After dependancies are met, prepare the logfile directory:

mkdir logs