Montaje de un servidor rtl_tcp con una Raspberry Pi

Buenas noches, buenos días o buenas tardes, dependiendo de a qué hora lean este post.

Hoy os traigo un tutorial algo complejo si no tenemos conocimientos en Linux, pero que veréis que al final se hace realmente simple siguiendo los pasos al pie de la letra, cuyo resultado nos dará muchas satisfacciones .

Haremos un servidor RTL_TCP con un SDR de los baratitos y una Raspberry Pi (en el ejemplo usaré la 3ª), para ponerlo en la base de un mástil y así minimizar al máximo la cantidad de metros de cable que tiene que recorrer la señal recogida por la antena y, por tanto, disminuir también al mínimo posible las pérdidas de señal.

Empecemos.

Material necesario.

  • Raspberry Pi 3 model B (la 2 también funcionaría, pero no la he probado).
  • Un receptor RTL-SDR (el más barato que encontréis será suficiente).
  • Un alimentador con salida USB de 2.1A como mínimo (el mas pequeño físicamente que encontréis).
  • Una tarjeta microSD de mínimo 8 GB, de la mejor calidad posible.
  • Un lector de tarjetas adecuado para la tarjeta microSD.
  • Un cable de USB a microUSB (para alimentar la Pi).
  • Una base hembra SpeakOn de 4 contactos.
  • Un conector aéreo macho SpeakOn de 4 contactos.
  • Un shucko macho.
  • Cable de red.
  • Conectores RJ45.
  • Manguera eléctrica de 2×1,5mm.
  • Una caja de derivación estanca (IP67) de montaje en superficie, con conos, de 150x116x67.
  • Un conector de chasis BNC hembra (o el de vuestra preferencia, pero de chasis).
  • Unos 30 cms de cable RG58CU.
  • El conector necesario para conectar a la toma de antena de vuestro SDR.
  • Un monitor HDMI o televisor con entrada HDMI (solo para configuración inicial).
  • Un cable HDMI (solo para configuración inicial).
  • Herramientas varias (destornilladores, alicates, tijeras cortacables, soldador de estaño, taladro con percutor, broca pasamuros, broca del tamaño de nuestros conectores de chasis, crimpadora RJ45, etc).

 

Pues al lío 🙂

Descargar y grabar Raspbian en la SD.

La Raspberry Pi es un ordenador. Y como todo ordenador, necesita un sistema operativo. En este ejemplo usaremos Raspbian 9 Stretch, la última versión del sistema operativo estrella para este bichito.

Para descargar el archivo de imagen, accederemos a este enlace y haremos click en «Download torrent» «Download ZIP», de la versión con escritorio, según vuestra preferencia.

Raspbian Stretch With Desktop

Una vez descargado, descomprimiremos el archivo .ZIP en cualquier carpeta de nuestro ordenador, obteniendo un archivo de extensión *.IMG. Este archivo es casi lo mismo que una imagen ISO, pero en otro formato. Para grabarla, necesitaremos un software llamado Win32 disk imager, que instalaremos de la siguiente manera:

Para descargarlo, accederemos a este enlace y haremos click en el botón igual al de la imagen:

Descargar Win32 Disk Imager

Una vez descargado el instalador, lo ejecutaremos y seguiremos las instrucciones en pantalla para instalarlo. En caso de que vuestro antivirus os de alguna alerta, se trata de un falso positivo. Añadid la excepción de seguridad al antivirus o desactivarlo temporalmente.

Suponiendo que no haya habido ningún problema con la instalación del anterior programa, conectaremos el lector de tarjetas al ordenador, esperaremos que se configure, conectaremos la tarjeta microSD al lector y ejecutaremos Win32 Disk Imager. Se nos abrirá la siguiente ventana:

Win32 Disk Imager 1.0

Haremos click en y buscaremos la imagen de Raspbian (el archivo *.IMG) que habíamos descargado anteriormente. En seleccionaremos la letra de unidad correspondiente a nuestra tarjeta microSD y, finalmente, haremos click en C<<¡ALERTA! ESTO ELIMINARÁ TODOS LOS DATOS CONTENIDOS EN LA UNIDAD SELECCIONADA Y LA PARTICIONARÁ CONFORME A LO REQUERIDO POR RASPBIAN. NO ME HAGO RESPONSABLE POR PÉRDIDAS ACCIDENTALES DE DATOS POR EQUIVOCARSE AL PONER LA LETRA DE UNIDAD.>>

El proceso tarda bastante, este sería un buen momento para tomarse un café o aprovechar de medir los metros que hay entre donde irá colocada nuestra Rasppi y nuestro router. Medid y apuntad bien esta distancia, nos servirá para saber cuántos metros de manguera eléctrica y cable de red necesitaremos. Si cuando hayáis terminado de medir dicha distancia el proceso aun no ha finalizado, podéis crimpar el cable de datos en uno de sus extremos con un conector RJ45 según el estándar 568B:

Código de colores EIA568B

Bueno, creo que le hemos dado tiempo de sobra a nuestro ordenador para preparar la tarjeta microSD para empezar a darle caña. Si todo ha salido bien, deberíamos ver algo así:

Proceso terminado.

Una vez hecho todo esto, ya tendremos la tarjeta microSD preparada con nuestro sistema operativo. Ahora solo deberemos insertarla en la ranura que la Rasperry Pi incorpora para ello y encenderla (se enciende al conectarle la alimentación).

 

Preparar Raspbian para poder acceder remotamente

Una vez que tengamos nuestra Rasppi en su ubicación final, lo mas probable es que no nos apetezca mucho subir al techo cada vez que queramos configurarla o añadir funciones (creedme, querréis hacerlo). Para poder acceder a ella por red, debemos realizarle algunos ajustes primero. Empezaremos conectandole un raton y teclado via USB y un monitor HDMI. Recomiendo hacerlo antes de encenderla, aunque si ya la tenéis encendida, no pasa nada por apagarla y volverla a encender.

Cuando la encendamos y después de que haya cargado, deberemos ver en el monitor algo como esto:

Raspbian 9 Stretch

No os asustéis si no veis exactamente lo mismo. En la imagen estáis viendo la Raspberry que yo tengo en mi techo, que ya está configurada.

Antes que nada, dejemos claro que el botón que hay en la esquina superior izquierda con una frambuesa, es algo así como el menú inicio de Raspbian, y le llamaremos desde ahora Menú rasppi. Empecemos.

Haremos click en el menú rasppi -> Preferences -> Raspberry Pi Configuration. Nos aparecerá la siguiente ventanita:

Raspberry Pi Configuration – System

Haremos click en Change Password… y pondremos una contraseña segura pero que nos sea fácil de recordar. Es muy probable que necesitemos recordarla en los próximos pasos. Para el ejemplo, la contraseña será passie. Dejaremos el resto de ajustes como vemos en la captura anterior. Os noto ansiosos porque vuestra rasppi está en inglés. Tranquis. No es el fin del mundo. Haremos click en la pestaña Localisation y nos aparecerá algo así:

Raspberry Pi Configuration – Localisation

Haremos click en Set Locale… y nos aparecerá una nueva ventanita que dejaremos así:

Raspberry Pi Configuration – Locale

Haremos click en OK y accederemos a la pestaña Interfaces. No os asustéis si seguís viendo la Rasppi en inglés. Dejaremos la pantalla que nos aparece tal que así:

Raspberry Pi Configuration – Interfaces

Una vez hayamos configurado las interfaces como en la captura anterior, haremos click en OK y nos pedirá reiniciar. Obviamente haremos click en Yes para que la Rasppi se reinicie con los valores que acabamos de ajustar:

Reboot needed, reinicio necesario.

Una vez la Rasppi se haya reiniciado (no debería tardar mucho) ya deberíamos ser capaces de acceder por remoto y verla en español. Pero antes de apresurarnos a desconectarle el ratón y el teclado, vamos a instalar el servidor RTL_TCP, que es para lo que estáis leyendo este testamento. Podríamos hacerlo también por remoto, pero si surge algún problema preferiría que tengáis acceso físico a ella. Vamos a ello.

 

Instalar el servidor RTL_TCP

Para este paso, disminuiré el número de capturas de pantalla, pues el procedimiento es relativamente sencillo y no debería fallar nada si habéis seguido al pie de la letra los pasos anteriores.

En la Rasppi, abriremos una terminal (Menú rasppi -> Accesorios -> LXTerminal) y ejecutaremos, en orden, los siguientes comandos. Si en alguna parte del proceso nos pidiera alguna contraseña, usaremos la que establecimos en la configuración (passie). Si nos preguntara si estamos seguros de llevar a cabo algún paso, le diremos siempre que si.

Instalando prerequisitos:

sudo apt-get update

sudo apt-get install git

sudo apt-get install cmake

sudo apt-get install libusb-1.0-0.dev

sudo apt-get install build-essential

♦ Instalando controladores RTL

git clone git://git.osmocom.org/rtl-sdr.git

cd rtl-sdr/

mkdir build

cd build

cmake ../

make

sudo make install

sudo ldconfig

Para finalizar la instalación de los controladores, abriremos el explorador de archivos y navegaremos hasta la carpeta localizada en /home/pi/rtl-sdr y copiaremos el archivo llamado rtl-sdr.rules  a la carpeta /etc/udev/rules.d . Si tuvieramos algún problema haciéndolo de esta forma (permiso denegado…), seguiremos los siguientes pasos en LXTerminal:

cd rtl-sdr/

sudo cp rtl-sdr.rules /etc/udev/rules.d

Así no deberíamos tener problema, y nuestra Raspberry debería estar lista para reconocer nuestro SDR y compartirlo por TCP.

Reiniciaremos la Raspberry (Menú rasppi -> Shutdown -> Reboot) y cuando haya iniciado, volveremos a abrir una terminal.

♦ Liberando el controlador oficial del SDR

En Windows, cuando conectamos por primera vez nuestro SDR, tenemos que reemplazar el controlador oficial con uno modificado con la herramienta Zadig. En Linux también necesitamos deshacernos del controlador oficial, para lo que ejecutaremos el siguiente comando:

sudo rmmod dvb_usb_rtl28xxu rtl2832

Cada vez que reiniciemos la Rasppi, el controlador oficial volverá a cargarse, por lo que tendremos que volver a ejecutar este último comando.

♦ Conociendo la IP de nuestra Rasppi

Para el siguiente paso, necesitaremos conocer la dirección IP de nuestra Raspberry. Pero…¿como? Ejecutaremos el siguiente comando en LXTerminal y nos aparecerá la siguiente pantalla (en la que señalizo cuál sería nuestra IP) El resultado que os de a vosotros puede diferir del mío:

Terminal – ifconfig

♦ Ejecutando el servidor RTL_TCP

Una vez que conozcamos nuestra IP, ejecutaremos el siguiente comando en la terminal:

rtl_tcp -a 192.168.1.16

Dejaremos esa terminal abierta e iremos al ordenador desde donde queremos acceder al servidor que acabamos de configurar.

En el ejemplo, usaremos SDRSharp para conectarnos a nuestro servidor. Sin embargo, cualquier otro software de SDR con soporte para RTL_TCP, debería funcionar a la perfección.

En nuestro ordenador cliente, abriremos SDRSharp y seleccionaremos RTL-SDR (TCP) como source, tal y como podéis observar en la imagen:

SDRSharp – Source

Acto seguido, haremos click en la rueda dentada () y configuraremos tal como vemos en la siguiente imagen (no entraré en detalle de qué es cada cosa, pues se supone que ya habéis usado SDRSharp y sabéis lo que es cada cosa. Si necesitáis explicación, preguntar en los comentarios más abajo 🙂

RTL-TCP Settings

Acto seguido le daremos a Play () y ya tendremos nuestro SDRSharp funcionando por TCP. No recomiendo un Sample Rate más alto o empezará a daros problemas (creo que tiene que ver con el ancho de banda en tcp).

Por ahora tenemos la parte de software totalmente lista, y solo nos quedaría meterlo todo en la cajita estanca, pero esta parte del tutorial la dejaré para más adelante. Por ahora, disfrutad y usad vuestra imaginación.

 

Junto con un saludo, me despido.

EA8DEP.

Comentarios

También te podría gustar...

9 Respuestas

  1. Felicidades me parece un articulo genial , yo utilizo este sistema en radio fm broadcast para emitir en vivo mediante ADSL , de la estación de radio al centro emisor, es genial.

  2. Jorge dice:

    Buenas noches Eduardo, me han sido muy útiles tus tutoriales, por favor, contacta conmigo por email porque me gustaría comertarte varias dudas. Muchas gracias.

    • Buenas noches Jorge! No tengo problema e incluso estaré encantado de atender a tus dudas, pero para eso hay diferentes secciones. La primera y más cercana a este punto, sería comentar tus dudas en esta misma sección. Por otra parte, tienes la opción de enviarme un correo a soporte@ea8dep.com, y como última pero no menos recomendable opción, puedes acceder al foro en https://foro.ea8dep.com.

      Saludos!

  1. 12 noviembre, 2017

    […] Historia previa Montaje de un servidor rtl_tcp con una Raspberry Pi […]

  2. 28 enero, 2018

    […] todos los pasos. Por esto, he creado un proyecto para los que usamos nuestro SDR directamente por rtl_tcp (2) y otro para los que lo usamos por USB (3) y los he puesto dentro de la […]