Difference between revisions of "SatNOGS Monitor"

From SatNOGS Wiki
m (Added line about running on any non satnogs station computer in description. Added "tab key" info in "running" section.)
(Update build process and general information)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Description==
+
==Introduction==
 
[[File:Satnogs-monitor.png|800px]]
 
[[File:Satnogs-monitor.png|800px]]
  
'''SatNOGS Monitor''' is a terminal ui to monitor your and/or other ground stations of the SatNOGS network. It is written in [https://www.rust-lang.org/ Rust] and runs on Linux and has been reported to run on MacOS[https://community.libre.space/t/satnogs-station-monitor/2802/13]. Windows is currently not supported by the underlying terminal library, but might be added at some point in the future.  '''SatNOGS Monitor''' does not need to be installed on an actual SatNOGS station computer (although there are benefits to doing so as discussed below).  
+
'''SatNOGS Monitor''' is a terminal ui to monitor your and/or other ground stations of the SatNOGS network. It is written in [https://www.rust-lang.org/ Rust] and runs on Linux and has been reported to run on MacOS[https://community.libre.space/t/satnogs-station-monitor/2802/13]. Windows is currently not supported by the underlying terminal library, but might be added at some point in the future.  '''SatNOGS Monitor''' does not need to be installed on an actual SatNOGS station computer (although there are benefits of doing so as discussed below).  
  
 
==Installation==
 
==Installation==
 +
 
===Dependencies===
 
===Dependencies===
'''SatNOGS Monitor''' uses bindings to '''libgpredict'''[https://github.com/cubehub/libgpredict]. This library is not available as installable package and you'll have to build it yourself.
+
'''SatNOGS Monitor''' uses bindings to '''libgpredict'''[https://github.com/cubehub/libgpredict]. From mid July 2025 on, this library will be compiled by cargo when building satnogs-monitor. Thus it does not need to be compiled manually anymore.
  
====Install libgpredict dependencies====
+
Nonetheless, some dependencies are left:
  
 
  sudo apt-get install libglib2.0-dev cmake build-essential git
 
  sudo apt-get install libglib2.0-dev cmake build-essential git
  
====Build and install libgpredict====
 
 
git clone https://github.com/cubehub/libgpredict.git
 
cd libgpredict
 
mkdir build
 
cd build
 
cmake ../
 
make
 
make install
 
sudo ldconfig # for linux
 
  
 
===Raspberry Pi (armhf)===
 
===Raspberry Pi (armhf)===
You can run the SatNOGS Monitor on the same Raspberry Pi as your ground station. You'll need to build and install libgpredict as shown above and can build the monitor from source (see [#Hacking]) or use the prebuild Raspbian package.
+
You can run the SatNOGS Monitor on the same Raspberry Pi as your ground station. You can build the monitor from source (see [#Hacking]) or use the prebuild Raspbian package.
  
  wget https://github.com/wose/satnogs-monitor/releases/download/0.2.0/satnogs-monitor_0.2.0_armhf.deb
+
  wget https://github.com/wose/satnogs-monitor/releases/download/0.4.2/satnogs-monitor_0.4.2_armhf.deb
  sudo dpkg -i satnogs-monitor_0.2.0_armhf.deb
+
  sudo dpkg -i satnogs-monitor_0.4.2_armhf.deb
  
 
You can then run the monitor over any ssh connection to your ground station or view it directly on a display attached to your RPi. See [https://community.libre.space/t/stegoboard-satnogs-ground-station/4640 this thread] for some inspiration.
 
You can then run the monitor over any ssh connection to your ground station or view it directly on a display attached to your RPi. See [https://community.libre.space/t/stegoboard-satnogs-ground-station/4640 this thread] for some inspiration.
  
 
===Linux (x86_64)===
 
===Linux (x86_64)===
If you're running an Debian like distribution you can install the prebuild package after building and installing libgpredict.
+
If you're running an Debian like distribution you can install the prebuild package. Please mind to install the dependencies shown above.
  
  wget https://github.com/wose/satnogs-monitor/releases/download/0.2.0/satnogs-monitor_0.2.0_amd64.deb
+
  wget https://github.com/wose/satnogs-monitor/releases/download/0.4.2/satnogs-monitor_0.4.2_amd64.deb
  sudo dpkg -i satnogs-monitor_0.2.0_amd64.deb
+
  sudo dpkg -i satnogs-monitor_0.4.2_amd64.deb
  
 
See [#Hacking] if you're running another distribution.
 
See [#Hacking] if you're running another distribution.
  
 
==Running it==
 
==Running it==
The monitor makes heavy usage of braille unicode characters so make sure your terminal emulator uses a font which includes those glyphs. The screenshot at the top shows alacritty[https://github.com/jwilm/alacritty] with the tewi-font[https://github.com/lucy/tewi-font].
+
The monitor makes heavy usage of braille unicode characters so make sure your terminal emulator uses a font which includes those glyphs. The screenshot at the top shows alacritty[https://github.com/jwilm/alacritty] with the tewi-font[https://github.com/lucy/tewi-font]. Take a look at nerd-fonts[https://github.com/ryanoasis/nerd-fonts/] if you're unsure about which font to use. You could also use a forked version of yaft[https://github.com/wose/yaft] created by the same person as SatNOGS Monitor, which uses the Lucy Tewi font by default.  
  
 
Monitor single station:
 
Monitor single station:
Line 50: Line 41:
 
Monitor a local station and multiple remote stations:
 
Monitor a local station and multiple remote stations:
 
  satnogs-monitor -l 175 -s 227 -s 2
 
  satnogs-monitor -l 175 -s 227 -s 2
 +
 +
If satnogs-montor runs on the same machine as satnogs-client (typically a Raspberry Pi) you can set the satnogs client data path and enable the spectrum and/or waterfall plot to get a visualization of the received signal of the current observation.
 +
satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum
 +
 +
If you have a rotator setup you can monitor the current rotator position by configuring the rotctld address:
 +
satnogs-monitor -l 175 --rotctld-address 127.0.0.1:4533
  
 
You can also create a config file with all those informations:
 
You can also create a config file with all those informations:
Line 59: Line 56:
 
Check the help for more command line arguments:
 
Check the help for more command line arguments:
 
  $ satnogs-monitor -h
 
  $ satnogs-monitor -h
  satnogs-monitor 0.2.0
+
  satnogs-monitor 0.4.2
 
  Monitors the current and future jobs of SatNOGS ground stations.
 
  Monitors the current and future jobs of SatNOGS ground stations.
 
   
 
   
Line 66: Line 63:
 
   
 
   
 
  FLAGS:
 
  FLAGS:
     -h, --help       Prints help information
+
     -h, --help         Prints help information
     -V, --version   Prints version information
+
        --spectrum    Enables the spectrum plot
     -v               Sets the level of log verbosity
+
     -V, --version     Prints version information
 +
     -v                 Sets the level of log verbosity
 +
        --waterfall    Enables the waterfall plot
 
   
 
   
 
  OPTIONS:
 
  OPTIONS:
     -a, --api <URL>         Sets the SatNOGS network api endpoint url
+
     -a, --api <URL>                       Sets the SatNOGS network api endpoint url
     -c, --config <FILE>     Sets custom config file
+
     -c, --config <FILE>                   Sets custom config file
     -l, --local <ID>...     Adds a station running on the same machine as this monitor with this
+
        --data-path <PATH>
                              SatNOGS network id to to the list of monitored stations
+
            Enables the spectrum and waterfall plot if set to the SatNOGS client data path
     -o, --orbits <NUM>       Sets the number of orbits plotted on the map
+
            (/tmp/.satnogs/data/)
     -s, --station <ID>...   Adds a station with this SatNOGS network id to the list of monitored
+
        --db-max <DB>
                              stations
+
            Sets the upper dB bound of the spectrum and waterfall plot (0)
 +
 +
        --db-min <DB>
 +
            Sets the lower dB bound of the spectrum and waterfall plot (-100)
 +
 +
        --job-update-interval <SECONDS>    Polls the network for new jobs every SECONDS (600)
 +
     -l, --local <ID>...
 +
            Adds a station running on the same machine as this monitor with this SatNOGS network id
 +
            to to the list of monitored stations
 +
     -o, --orbits <NUM>                     Sets the number of orbits plotted on the map
 +
        --rotctld-address <IP:PORT>        Enables rotator monitoring if set to a rotctld address
 +
        --rotctld-interval <INTERVAL>      Polls the rotator position every INTERVAL seconds (5)
 +
     -s, --station <ID>...
 +
            Adds a station with this SatNOGS network id to the list of monitored stations
 +
 +
        --waterfall-zoom <FACTOR>          Zooms the spectrum and waterfall plot (1.0 - 10.0)
 
'''TAB''' key will cycle through available stations while SatNOGS Monitor is running.
 
'''TAB''' key will cycle through available stations while SatNOGS Monitor is running.
  
 
==Hacking==
 
==Hacking==
  
To build the monitor from source you'll need to install the Rust. Use your package manager or follow [https://www.rust-lang.org/tools/install this site].  
+
To build the monitor from source you'll need to install the Rust toolchain. Use your package manager or follow [https://www.rust-lang.org/tools/install this site].  
  
 
  git clone https://github.com/wose/satnogs-monitor.git
 
  git clone https://github.com/wose/satnogs-monitor.git
 
  cd satnogs-monitor/monitor
 
  cd satnogs-monitor/monitor
  mkdir ~/.config/satnogs-monitor
+
  mkdir -p ~/.config/satnogs-monitor
 
  cp examples/config.toml ~/.config/satnogs-monitor/
 
  cp examples/config.toml ~/.config/satnogs-monitor/
 
  edit ~/.config/satnogs-monitor/config.toml
 
  edit ~/.config/satnogs-monitor/config.toml
 
  cargo run --release -- -s 175
 
  cargo run --release -- -s 175
 +
 
 +
  [[Category:Operate]]
 +
 +
 
 +
  [[Category:Software]]
 +
 +
 
 +
  [[Category:Develop]]

Latest revision as of 10:07, 15 July 2025

Introduction

Satnogs-monitor.png

SatNOGS Monitor is a terminal ui to monitor your and/or other ground stations of the SatNOGS network. It is written in Rust and runs on Linux and has been reported to run on MacOS[1]. Windows is currently not supported by the underlying terminal library, but might be added at some point in the future. SatNOGS Monitor does not need to be installed on an actual SatNOGS station computer (although there are benefits of doing so as discussed below).

Installation

Dependencies

SatNOGS Monitor uses bindings to libgpredict[2]. From mid July 2025 on, this library will be compiled by cargo when building satnogs-monitor. Thus it does not need to be compiled manually anymore.

Nonetheless, some dependencies are left:

sudo apt-get install libglib2.0-dev cmake build-essential git


Raspberry Pi (armhf)

You can run the SatNOGS Monitor on the same Raspberry Pi as your ground station. You can build the monitor from source (see [#Hacking]) or use the prebuild Raspbian package.

wget https://github.com/wose/satnogs-monitor/releases/download/0.4.2/satnogs-monitor_0.4.2_armhf.deb
sudo dpkg -i satnogs-monitor_0.4.2_armhf.deb

You can then run the monitor over any ssh connection to your ground station or view it directly on a display attached to your RPi. See this thread for some inspiration.

Linux (x86_64)

If you're running an Debian like distribution you can install the prebuild package. Please mind to install the dependencies shown above.

wget https://github.com/wose/satnogs-monitor/releases/download/0.4.2/satnogs-monitor_0.4.2_amd64.deb
sudo dpkg -i satnogs-monitor_0.4.2_amd64.deb

See [#Hacking] if you're running another distribution.

Running it

The monitor makes heavy usage of braille unicode characters so make sure your terminal emulator uses a font which includes those glyphs. The screenshot at the top shows alacritty[3] with the tewi-font[4]. Take a look at nerd-fonts[5] if you're unsure about which font to use. You could also use a forked version of yaft[6] created by the same person as SatNOGS Monitor, which uses the Lucy Tewi font by default.

Monitor single station:

satnogs-monitor -s 175

Multiple stations:

satnogs-monitor -s 175 -s 227

Monitor a station on the same machine as the monitor runs (gets you more system infos):

satnogs-monitor -l 175

Monitor a local station and multiple remote stations:

satnogs-monitor -l 175 -s 227 -s 2

If satnogs-montor runs on the same machine as satnogs-client (typically a Raspberry Pi) you can set the satnogs client data path and enable the spectrum and/or waterfall plot to get a visualization of the received signal of the current observation.

satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum

If you have a rotator setup you can monitor the current rotator position by configuring the rotctld address:

satnogs-monitor -l 175 --rotctld-address 127.0.0.1:4533

You can also create a config file with all those informations:

mkdir ~/config/satnogs-monitor
cd ~/config/satnogs-monitor
wget https://raw.githubusercontent.com/wose/satnogs-monitor/master/monitor/examples/config.toml
edit config.toml

Check the help for more command line arguments:

$ satnogs-monitor -h
satnogs-monitor 0.4.2
Monitors the current and future jobs of SatNOGS ground stations.

USAGE:
    satnogs-monitor [FLAGS] [OPTIONS]

FLAGS:
    -h, --help         Prints help information
        --spectrum     Enables the spectrum plot
    -V, --version      Prints version information
    -v                 Sets the level of log verbosity
        --waterfall    Enables the waterfall plot

OPTIONS:
    -a, --api <URL>                        Sets the SatNOGS network api endpoint url
    -c, --config <FILE>                    Sets custom config file
        --data-path <PATH>
            Enables the spectrum and waterfall plot if set to the SatNOGS client data path
            (/tmp/.satnogs/data/)
        --db-max <DB>
            Sets the upper dB bound of the spectrum and waterfall plot (0)

        --db-min <DB>
            Sets the lower dB bound of the spectrum and waterfall plot (-100)

        --job-update-interval <SECONDS>    Polls the network for new jobs every SECONDS (600)
    -l, --local <ID>...
            Adds a station running on the same machine as this monitor with this SatNOGS network id
            to to the list of monitored stations
    -o, --orbits <NUM>                     Sets the number of orbits plotted on the map
        --rotctld-address <IP:PORT>        Enables rotator monitoring if set to a rotctld address
        --rotctld-interval <INTERVAL>      Polls the rotator position every INTERVAL seconds (5)
    -s, --station <ID>...
            Adds a station with this SatNOGS network id to the list of monitored stations

        --waterfall-zoom <FACTOR>          Zooms the spectrum and waterfall plot (1.0 - 10.0)

TAB key will cycle through available stations while SatNOGS Monitor is running.

Hacking

To build the monitor from source you'll need to install the Rust toolchain. Use your package manager or follow this site.

git clone https://github.com/wose/satnogs-monitor.git
cd satnogs-monitor/monitor
mkdir -p ~/.config/satnogs-monitor
cp examples/config.toml ~/.config/satnogs-monitor/
edit ~/.config/satnogs-monitor/config.toml
cargo run --release -- -s 175