Instalación de estación terrestre con SatNOGS

SatNOGS (Satellite Networked Open Ground Station) es una plataforma de software y hardware de código abierto con el propósito de crear una red global de estaciones terrestres de seguimiento de satélites.

En este artículo veremos cómo instalar una estación terrestre para el seguimiento de satélites de forma desatendida. Para ello vamos a utilizar un dispositivo SDR y una Raspberry Pi con el software SatNOGS.

Registrar nuestra estación en la red

El primer paso será registrarnos en la red de SatNOGS para obtener nuestro identificador de estación y la API key.
Para ello vamos a la web de SatNOGS mediante el siguiente enlace:

https://network.satnogs.org/

Aquí podemos ver las estaciones conectadas a la red, a las que podemos acceder para programar y revisar pases.

Para registrarnos, hacemos clic en Sign Up / Log In.

A continuación introducimos nuestro correo electrónico, nombre de usuario y una contraseña. Hacemos clic en SIGN UP.

Una vez registrados, vamos a crear una nueva estación. Para ello hacemos clic en Add Ground Station.

Ahora introducimos los datos requeridos de nuestra estación.

Cuando los tengamos correctamente introducidos, hacemos clic en Submit para enviar los datos y registrar nuestra nueva estación.
Una vez registrada se nos mostrará una nueva página con los datos de la misma. Podemos ver que delante del nombre se nos ha asignado un identificador de estación (en este ejemplo el 1516) que debemos anotar para sucesivos pasos.

Ahora vamos al panel de control (dashboard) haciendo clic en el icono de la esquina superior derecha.

Hacemos clic en API Key y copiamos nuestro token.

Descargar imagen de SatNOGS para Raspberry Pi

Vamos ahora a preparar la Raspberry Pi. Para ello vamos a instalar la imagen que hay creada del cliente de SatNOGS y que podemos descargar desde la siguiente página:

https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags

Aquí descargamos la última versión disponible.

Una vez descargado el archivo, extraemos la imagen y la grabamos en la tarjeta SD con el programa que tengamos para ello. En este ejemplo se ha usado Win32 Disk Imager.

Configuración de Raspberry Pi

Ahora vamos a configurar algunos aspectos esenciales en nuestra Raspberry Pi.

Una vez que tengamos la Raspberry Pi iniciada, accedemos a ella mediante SSH (usuario “pi” y clave “raspberry”) y ejecutamos el siguiente comando:

1
sudo raspi-config

Se nos muestra en pantalla el menú de la herramienta de configuración de la Raspberry Pi.

Los ajustes básicos que debemos llevar a cabo son:

  • Cambiar la clave por defecto.
  • Configurar la zona horaria a UTC. En Localisation Options, Change Timezone, None of the above, UTC.
  • Expandir el sistema de archivos. En Advanced Options, primera opción:

Por último, reiniciamos la Raspberry Pi para que se apliquen los cambios.

Configuración de SatNOGS

Turno ahora de configurar el cliente SatNOGS. Para ello ejecutamos el siguiente comando:

1
sudo satnogs-setup

Se mostrará el menú principal de opciones:

Lo primero es actualizar la propia herramienta de configuración desde Update configuration tool.
Esta operación tardará unos minutos y nos pedirá confirmación para descargar algunos paquetes. Al finalizar nos mostrará la siguiente ventana para indicar que servicios queremos reiniciar. Debemos darle a Ok.

Volvemos ahora al menú principal y vamos a Basic configuration options. Aquí vamos a introducir los datos de nuestra estación:

Ajuste Descripción
SATNOGS_API_TOKEN API key obtenida anteriormente.
SATNOGS_SOAPY_RX_DEVICE Dispositivo SDR que vamos a usar.
Para el RTL-SDR introducimos driver=rtlsdr.
Para otros dispositivos consultar en https://github.com/pothosware/SoapyRTLSDR/wiki (apartado Modules).
SATNOGS_ANTENNA Para el RTL-SDR introducimos RX.
Para otros dispositivos debemos consultar el valor usando el comando SoapySDRUtil --probe 2>&1 | grep Antennas.
SATNOGS_RX_SAMP_RATE Sample rate del dispositivo.
Para el RTL-SDR introducimos 2.048e6.
SATNOGS_STATION_ELEV Altitud de nuestra estación.
SATNOGS_STATION_ID Identificador de nuestra estación obtenido anteriormente.
SATNOGS_STATION_LAT Latitud de nuestra estación.
SATNOGS_STATION_LON Longitud de nuestra estación.

Volvemos al menú principal y vamos ahora a Advanced y Radio Settings. Aquí vamos a introducir los siguientes ajustes:

Ajuste Descripción
SATNOGS_PPM_ERROR Valor de correción de frecuencia del dispositivo.
SATNOGS_RF_GAIN Ganancia del dispositivo. Para el RTL-SDR introducimos cualquier valor de ganancia soportado: 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6

Volvemos al menú principal y le damos a Apply para que se apliquen los ajustes. Cuando se termine de configurar podemos comprobar si se ha iniciado correctamente con:

1
systemctl status satnogs-client

Si todo ha ido bien tendremos la siguiente salida:

1
2
3
4
5
6
7
8
● satnogs-client.service - SatNOGS client
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-04-23 19:33:57 UTC; 26min ago
Main PID: 27871 (satnogs-client)
Tasks: 22 (limit: 2200)
Memory: 55.7M
CGroup: /system.slice/satnogs-client.service
└─27871 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client

Programar seguimientos en SatNOGS

Con nuestra Raspberry Pi finalmente configurada, es el momento de comprobar que todo funciona correctamente y podemos realizar el seguimiento de satélites.

Para programar un pase debemos hacerlo desde el panel de control de SatNOGS. Nuestra Raspberry Pi se comunicará con la red de SatNOGS, realizará los seguimientos que le indiquemos y subirá los datos a la misma.

Tenemos dos formas de programar un seguimiento. La primera de ellas es calculando todos los pases de todos los satélites que pasarán por nuestra estación en las siguientes horas. Para ello vamos a nuestro panel de control, hacemos clic en nuestra estación y le damos a Calculate Future Passes.

Aparecen ahora los siguientes pases. Seleccionamos el deseado haciendo clic en schedule.

Comprobamos los datos de la observación y hacemos clic en Schedule.

La segunda forma de programar un pase es desde el panel del control. Aquí hacemos clic en New Observation.

Seleccionamos el satélite que queremos seguir e indicamos un intervalos de tiempo. Después hacemos clic en Calculate para calcular los pases. Por último seleccionamos el pase que nos interese y hacemos clic en Schedule.

Cuando se completen los pases que hemos programado, podemos ver el “waterfall” del pase, el audio y los datos o imágenes obtenidas.

Utilización de LNA

Incorporar un LNA a nuestra estación nos ayudará a mejorar la recepción de los satélites. Si disponemos de un LNA con alimentación mediante Bias-T y utilizamos un dispositivo SDR como el RTL-SDR V3, tendremos que activar la alimentación del mismo.

A continuación veremos como hacer que SatNOGS active de forma automática el Bias-T de nuestro RTL-SDR cuando vaya a recibir un pase y lo desactive al finalizar.

Necesitamos instalar la utilidad rtl_biast que será la encargada de activar y desactivar el Bias-T del dispositivo SDR. Para ello accedemos por SSH a la Raspberry Pi y realizamos los siguientes pasos:

  1. Descargar el código fuente.
1
git clone https://github.com/rtlsdrblog/rtl_biast.git
  1. Instalar las dependencias necesarias para compilar.
1
sudo apt install cmake libusb-1.0-0-dev
  1. Accedemos a la carpeta descargada.
1
cd rtl_biast
  1. Generamos el makefile.
1
cmake .
  1. Compilamos.
1
make
  1. Copiamos el binario compilado a /usr/bin.
1
sudo cp src/rtl_biast /usr/bin

Por último, nos aseguramos de que funciona correctamente ejecutando:

1
rtl_biast

Debemos obtener una salida como la siguiente:

1
2
3
4
5
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 08201703

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner

Ahora vamos a configurar el cliente SatNOGS para que active y desactive el Bias-T de forma automática.

Accedemos al menú de configuración mediante:

1
sudo satnogs-setup

Vamos a Advanced y Pre/post observation scripts y establecemos los siguientes ajustes:

Ajuste Valor
SATNOGS_PRE_OBSERVATION_SCRIPT /usr/bin/rtl_biast -b 1
SATNOGS_POST_OBSERVATION_SCRIPT /usr/bin/rtl_biast -b 0

Para finalizar volvemos al menú principal y le damos a Apply para que se apliquen los ajustes.