This software controls the local functions of a UniClOGS for sending commands to the OreSat0 and OreSat0.5 CubeSats.
- Tracks satellites using the excellent ephem
module
- Fetches fresh TLEs from celestrak.org
- Alternatively uses TLEs from a local Gpredict install
- Calibrates for atmospheric refraction with local temperature and pressure, fetched via API from OpenWeather
- Adapts tracking information to suit az/el rotator limits
- Interacts with Hamlib rotctld to command the antenna rotator
- Interacts with stationd to control amplifiers and station RF path
- Interacts with the OreSat GNURadio flowgraph to manage Doppler shifting and to send command packets
git clone https://github.com/uniclogs/uniclogs-pass_commander.git
sudo apt install python3-pip python3-hamlib python3-pydbus
pip3 install -r uniclogs-pass_commander/requirements.txt
Running python3 uniclogs-pass_commander/ --template
will generate a
template configuration file. You should receive instructions for editing it. Go
do that now (see below for detailed description).
When your config is all set up, run with python3 uniclogs-pass_commander/
.
See the --help
flag for more options.
Testing without rotctld, stationd and a running radio flowgraph is partially
supported. See the --mock
flag, especially -m all
.
It's TOML. There are four primary sections, each with a set of mandatory configuration keys:
General operation settings.
satellite
(String, optional) - Default satellite ID, either index into TleCache or NORAD ID.owmid
(String, optional) - An API key from OpenWeatherMap APIedl_port
(int, optional) - Port to listen for EDL commands. Only open during a pass. Consult oresat-c3-software for more.txgain
(Integer) - Gain for transmitting. Usually between 0 and 100.
IP addresses for external components.
radio
(String) - IP address or hostname of the flowgraph.station
(String) - IP address or hostname of stationd.rotator
(String) - IP address or hostname of rotctld.
Physical properties of the ground station.
lat
(Float or Integer) - Station latitude in decimal notation. For best results use 3 - 4 decimal points. See here for more.lon
(Float or Integer) - Station longitude in decimal notation.alt
(Integer) - Station altitude in meters.name
(String) - station name or callsign.
Optional local cache of TLEs. Currently only 3 line TLEs are supported. Format is:
<name>: [
"<Satellite name>",
"<TLE line 1>",
"<TLE line 2>",
]
TLE cache entries may be repeated as long as <name>
is unique. Select which
entry is active by passing <name>
to the --satellite
flag.