Skip to content

uniclogs/uniclogs-pass-commander

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UniClOGS Pass Commander

This software controls the local functions of a UniClOGS for sending commands to the OreSat0 and OreSat0.5 CubeSats.

Major functions

  • 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

Installing

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.

Config file

It's TOML. There are four primary sections, each with a set of mandatory configuration keys:

[Main]

General operation settings.

  • satellite (String, optional) - Default satellite ID, either index into TleCache or NORAD ID.
  • owmid (String, optional) - An API key from OpenWeatherMap API
  • edl_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.

[Hosts]

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.

[Observer]

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.

[TleCache]

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.

About

Controller for local UniClOGS GS fucntions

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages