This is an old revision of the document!
Table of Contents
Controlling the Dish
The dish control server program runs on w1xm-radar-1.mitrs.org and is used by all software that controls the dish.
Features include:
- WebSockets-based protocol making use from Python, JavaScript, etc. client programs easy
- Support for multiple coordinate reference frames, as well as automatic tracking of the sky
- Support for coordinates with target velocities, which improves the tracking quality of the motor control loops
- Support for enqueuing commands ahead of time with an “execute-at” timestamp for more precise tracking
- Multiple user access with system for viewing whether a connected user is idle and potentially kicking them
An example Python client library is provided. A web interface is also being written.
The code for the client and server is on MIT GitHub. A public mirror is located here.
TODO: actually mirror it to the mirror now that we've invalidated the passwords that were in the git repo
Application-Specific Software
Satellite Tracking
The example pointing scripts for the BigDishControlServer software include a small Python program that bridges the WebSocket-based protocol to rotctl protocol, which is used by satellite-tracking software like Gpredict. Note that currently Gpredict/rotctl cannot supply tracking velocities, so the tracking accuracy will be a bit worse.
Some ephemeris are in formats which are incompatible with gpredict. Programs to interpret a subset of these into the commands for the dish can be found here Bigdish tracking scripts and coordinate converters and can produce command files readable by WR66_run_pointing_file.py
Radio Astronomy
We use the srt-py software (modified to support our dish control protocol) for J-Lab's radio astronomy work. The code is hosted publicly here. The dual-polarization branch is the current active version.
TODO: add a separate page with references for srt-py things
Note that the srt-py code is meant to be easy to use teaching software and is fairly limited in its ability to handle wideband observations or interact more creatively with the radome and radio systems. For more advanced observing projects, writing code to control the dish and radio separately, generally using digital_rf for handling RF data, is often advantageous. Additional Examples and tools for tracking objects with direct command of the dish and analyzing the raw sample data from the radio can be found here BigDishTools
