Servidor SDR sobre Raspberry pi

Voy a intentar mostraros de una manera sencilla como podéis instalar un servidor SDR (Spyserver)sobre una Raspberry Pi. Principalmente, el objetivo suele ser instalar esa Raspberry Pi en una ubicación libre de ruidos como puede ser una casa de campo o segunda residencia. El servidor puede correr tanto sobre un ordenador Windows como sobre una Raspberry Pi. La ventaja de esta última es, principalmente el consumo (si queremos que esté operativa 24h/360dias) y el espacio ocupado.

Instalar Spyserver sobre una Raspberry Pi permite que nuestro receptor SDR sea accesible a través de Internet para poder escuchar desde cualquier ordenador con el sdr sharp instalado. Para ello necesitamos realizar el siguiente montaje, en el cual, el requisito principal es que tengamos acceso al router:

spyserver raspberry pi

Materiales necesarios:

  • Raspberry Pi (Ojo, no vale cualquier raspberry, mínimo la 3B+)

  • Tarjeta SD mínimo de 8GB

  • Receptor SDR: Se puede utilizar tanto un RTL-SDR, como también un Airspy HF+ (recomendable)

Archivos a descargar:

Preparación de la tarjeta SD utilizando ordenador windows

De momento antes de encender la raspberry, lo primero que tenemos que hacer es preparar la tarjeta SD. Conectándola al ordenador windows con el que vamos a hacer el proceso, la formateamos con el software SDformatter v4.0 seleccionando la opción "Format Size Adjustment ON".

Una vez formateada la SD ya la tenemos lista para instalar el sistema operativo necesario para que funcione la Raspberry (como en cualquier otro ordenador). Para ello necesitamos por un lado tener descargada una imagen de Raspbian Buster Lite y por otro, para copiar esta imagen sobre la tarjeta, necesitamos el software win32diskimager y simplemente elegir la Unidad donde estará ubicada la tarjeta (habitualmente será la E:), seleccionar el archivo img que previamente hemos descargado y descomprimido y pulsar sobre "Write" para grabar la imagen sobre la tarjeta.

Una vez finalizado el proceso, es importante habilitar el acceso por SSH que nos permitirá posteriormente acceder a la Raspberry Pi mediante el software Putty para realizar cualquier tarea.

Para activar el acceso por SSH simplemente tenemos que crear un archivo de texto vacío de nombre "ssh" sin extensión y guardarlo en el directorio raíz de la raspberry. Ponemos hacerlo con el Notepad incluido en cualquier windows, simplemente seleccionar "Nuevo archivo de Texto" y "Guardar como" dándole el nombre "ssh" (sin extensión) y confirmando con "Si" en la ventana "Cambiar Nombre" que nos saldrá.

Primer arranque de nuestra Raspberry Pi

Introducimos la SD en el slot correspondiente, conectamos la raspberry al router con un cable de red Ethernet y la alimentamos con el alimentador micro-usb de 5 voltios, sin nada más (sin monitor ni teclado). El objetivo es controlarla mediante linea de comandos a través de SSH.

Pasado el tiempo suficiente para que arranque (no es mucho) necesitaremos saber la IP local de nuestra Raspberry para poder acceder mediante Putty. Para ello, normalmente utilizo un móvil que esté conectado en la misma red local (por wifi) y con la aplicación "FING" para Android veo los dispositivos conectados a mi router (viene bien también para controlar que no se conecten extraños a tu wifi). Localizamos nuestra Raspberry Pi y tomamos nota de la IP y de la MAC.

También podemos aprovechar para otorgarle dicha IP de forma estática a la Raspberry, es decir, para que siempre tenga la misma IP local. Eso tendremos que hacerlo entrando via web a los ajustes del router. Esto dependerá de cada router, por lo que es necesario buscar en google las instrucciones para vuestro router en concreto, pero normalmente suele venir como "DHCP Binding" en el apartado "LAN". En ese apartado podemos decirle al router que otorgue siempre esa IP a la MAC de la raspberry (los dos datos que previamente hemos anotado del FING).

Sabiendo la IP de nuestra Raspberry, abrimos el software Putty instalado previamente y escribimos dicha IP en la casilla "HostName" y clicamos en "Open" para realizar la conexión por SSH. También puedes guardar los datos de la conexión (con "Load") para futuras conexiones.

putty ssh

Una vez conectados, nos aparecerá una ventana de línea de comandos pidiendo un usuario. El usuario por defecto en todas las raspberry es "pi" y la contraseña "raspberry" (OJO, SIN COMILLAS). Al teclear el password, es normal que no aparezcan las letras mientras tecleamos (por seguridad). Por lo tanto, tecleamos raspberry y finalizamos con la tecla Enter.

Una vez conectados, lo primero será entrar a la configuración para modificar idioma, distribución de teclado, contraseña de acceso...... Para ello tecleamos:

sudo raspi-config

En cuanto tengamos la configuración a nuestro gusto, es conveniente actualizar la raspberry. Para ello, tecleamos:

sudo apt-get update

sudo apt-get upgrade

Instalación de drivers para que reconozca el SDR

Si lo que vamos a utilizar es un pincho RTL-SDR, tan sólo necesitamos teclear:

sudo apt-get install rtl-sdr librtlsdr-dev (esto instala los paquetes necesarios para que funcione el SDR)

Pero si lo que vamos a utilizar es un Airspy HF+ tendremos que teclear un poco más. Teclear cada una de estas lineas, lo que está en negrita, confirmando con Enter al final de cada una y esperando a que finalice la acción correspondiente (unas tardan más que otras).

En cada línea os pongo entre paréntesis lo que realiza la orden que habéis tecleado:

sudo apt-get install build-essential cmake libusb-1.0-0-dev pkg-config (Instala los paquetes necesarios para que funcione el servidor)

wget https://github.com/airspy/airspyhf/archive/master.zip (descarga el programa del airspy)

unzip master.zip (descomprime el archivo master.zip que hemos descargado en la linea anterior)

cd airspyhf-master (nos movemos a la carpeta airspyhf-master creada al descomprimir)

mkdir build (dentro de la carpeta, creamos otra, de nombre "build")

cd build (nos vamos a la carpeta "build" para compilar el archivo de instalación)

cmake ../ -DINSTALL_UDEV_RULES=ON (compila el archivo de instalación)

make

sudo make install (realiza la instalación del servidor)

sudo ldconfig (crea los enlaces con las librerias necesarias)

Instalación de Spyserver (tanto para RTL-SDR como para Airspy)

cd (para volver al directorio raíz)

mkdir spyserver (Crear carpeta para el spyserver)

cd spyserver (vamos a dicha carpeta)

wget –O spyserver.tgz https://airspy.com/?ddownload=4247 ( Descarga del archivo spyserver. Ojo,es una letra O mayúscula lo que aparece después del wget - ). Además tampoco vale copiar-pegar ya que no funciona y no descarga el archivo, por lo tanto, habrá que teclear esta línea.

tar xvzf spyserver.tgz (descomprime el archivo descargado)

sudo nano spyserver.config (Abre el editor de textos para configurar el spyserver)

device_type = AirspyHF+ (Indicamos en el archivo el Receptor que vamos a utilizar. En caso de utilizar un RTL-SDR sería device_type=rtl-sdr)

./spyserver spyserver.config (Ejecutamos el spyserver)

Si todo ha ido bien, tendremos en la ventana de comandos, algo como esto, que significa que nuestro servidor spyserver está funcionando y a la espera de una conexión entrante desde otro ordenador con sdr sharp:

spyserver

Auto-arranque del servidor SPYSERVER al arrancar nuestra Raspberry Pi

Para que arranque el servidor spyserver de manera automática cada vez que arranque nuestra Raspberry, tendremos que añadir una línea a nuestro crontab, utilizando el editor de textos Nano (editor de textos incluido en Raspbian). Desde la ventana de comandos que abrimos desde Putty, tecleamos:

crontab –e

Seleccionar la opción [2] Nano () y añadir la siguiente línea:

@reboot sleep 30; /home/pi/spyserver/spyserver /home/pi/spyserver/spyserver.config

Ctrl+O para guardar cambios y le decimos que Si con Enter

Ctrl+X para cerrar el editor Nano

Acceso desde fuera de nuestra red local

Una vez instalado el SDR en su ubicación definitiva, para acceder desde cualquier lugar del mundo a nuestro servidor SDR, tendremos que abrir el puerto 5555 en el router de dicha ubicación, apuntando a la IP de nuestra raspberry (192.168.1.160 por ejemplo). Recordad que podemos utilizar la aplicación FING de Android para ver la IP local de nuestra Raspberry.

Para abrir el puerto 5555, tendremos que seguir las instrucciones adecuadas al modelo de router que tengamos. Simplemente buscando por Internet "Abrir puertos" con el modelo de nuestro router, seguro que lo encontramos.

Desde un PC con SDR Sharp instalado, seleccionar "Spy Server Network" e introducir la IP Publica (externa) de nuestra red, seguida del puerto (62.82.62.182:5555 por ejemplo).

¿Cómo podemos averiguar esa IP Pública Externa de nuestra red? Pues simplemente desde abriendo nuestro navegador web y buscando la página www.cualesmiip.com/

sdr sharp