domingo, 17 de febrero de 2013

Radio Definida por Software para pobres (Episodio I)

¿Qué tal si les dijera que por unos 20 dólares es posible hacerse de un receptor para sintonizar desde los 24 Mhz a los 1200 Mhz en AM, FM, LSB, USB y otros modos? Si, lo se. Suena tan poco real como esos llamados telefónicos que anuncian que nos hemos ganado un auto 0 Km. Pero confíen en mi y lean hasta el final esta nueva entrada de mi blog. 

Del kernel Linux a la estación de radio

El desarrollador finlandés Antti Palosaari colabora en el proyecto LinuxTV escribiendo código para que el kernel GNU/Linux soporte dispositivos tales como webcams, capturadoras de video y sintonizadoras de televisión analógica y digital, como así también los controles remotos que suelen traer estos dispositivos. En el año 2012, mientras trabajaba con una sintonizadora de TV digital de la marca Ezcap EzTV 668 DVB-T/FM/DAB, Antii descubrió que el chip Realtek RTL2832U de su interior tenía ciertos registros y comandos no documentados. Con ellos podía llevarlo a un modo de funcionamiento donde transfiere las muestras I/Q en banda base sin procesar por el puerto USB 2.0 hacia la PC.
Fig. 1. Antii Palosaari.
Para no entrar caminos sinuosos, podemos decir que estas muestras son la representación digital de la amplitud de la señal modulada (componente Q, de Quadrature) y su fase rotada 90 grados (componente I, de In phase) para un instante de tiempo dado. Dicho de una manera aún más simple, cada muestra I/Q es como una fotografía digital de la señal modulada.

Por medio de algún software en la computadora es posible demodular el flujo de muestras I/Q provenientes de la sintonizadora.

Este modo de funcionamiento del RTL2832U es el que permite a estas placas (o dongles) brindar FM y DAB, a diferencia de DVB-T que se demodulada generalmente por hardware.

Combinando lo anterior con las características del sintonizador de RF Elonics E4000 de esta placa, el cual soporta un espectro de 50 MHz a 20000 MHz, y un software apropiado en la computadora para demodular las muestras I/Q en bruto se podía conseguir un muy interesante radio definida por software o SDR (Software-defined radio) para pobres. O para un radioaficionado del Tercer Mundo como quien les escribe ;)

Quizás el post de Antii del 2 de Febrero de 2012 en una de las listas de desarrolladores del proyecto Linux TV donde explica sus impresiones sobre su descubrimiento haya sido el puntapié inicial para una serie de desarrollos que provocó una especie de fiebre por los sintonizadores basados en el RTL2832U.

Primero fue Steve Markgraf del proyecto OsmoSDR quien crea el paquete rtl-sdr el cual permitía sintonizar la placa y volcar las muestras I/Q a un archivo para su posterior procesamiento. Unas semanas después Balint Seeber anunciaba la aparición del bloque rtl_source_c para GNU Radio en su paquete gr-baz. Con este bloque GNU Radio podía recibir las muestras I/Q en bruto y procesarlas, permitiendo decodificar señales de diferentes tipos de modulaciones.

Teniendo en cuenta que un receptor con ese espectro de frecuencias disponible puede tener un costo de varios miles de dólares y que las sintonizadoras USB de TV digital con el chip Realtek RTL2832U rondan entre los 15 y 20 dólares, no sorprende la amplia repercusión que tuvo el descubrimiento de Antii entre los radioaficionados y SWLs. 

Quiero eso

En la búsqueda de una sintonizadora de TV Digital norma DVB-T encontré que la mayoría traen en su interior el deseado RTL2832U. Sin embargo, no todas estas placas usan el mismo chip sintonizador.

La elección del sintonizador es un punto fundamental a la hora de decidirse por una sintonizadora USB para usarla como SDR . La razón de ello es que no todos los chips sintonizadores están soportados. Además, la elección del sintonizador define el rango de frecuencia con que contaremos.

Actualmente, están soportados cuatro chips sintonizadores:
  • Elonics E4000: Durante bastante tiempo fue el clásico compañero del RTL2832U y el único soportado por los programas para SDR. Pero Elonic ha discontinuado este integrado, con lo cual los fabricantes de estas sintonizadoras han empezado a reemplazarlo. Permite sintonizar señales de radio de entre 52 MHz a 2200 MHz, con un hueco entre las frecuencias de 1100 MHz y 1200 MHz (aunque puede variar).
  • Rafael Micro R820T: Con la caída del E4000 este chip ha ganado popularidad, teniendo un rendimiento comparable. El rango de frecuencia de operación va de 24MHz a 1850MHz.
  • Fitipower FC0013: Proveen de un rango de frecuencias de entre 22 MHz y 1100 MHz. Los chips FC0013B/C y FC0013G tienen una entrada separada para la banda L que normalmente está sin conectar en las sintonizadoras.
  • Fitipower FC0012: Proveen de un rango de frecuencias de entre 22 MHz y 948.6 MHz.
  • FCI FC2580: Brindan un rango de entre 146 MHz a 308 MHz y de entre 438 MHz a 924 MHz.
Por todo esto, me decidí por una placa con el Rafael Micro R820T como sintonizador ya que permite un rango continuo de sintonización y muy amplio.

Luego de unos 10 días de espera llegó el pedido a mi casa, conteniendo la sintonizadora USB, un control remoto, una antena con conector MCX y soporte magnético, un CD para la instalación en Window$ de los drivers y el software para la visualización de TV.

Fig. 2. La placa sintonizadora en su embalaje.

De todo eso, sólo interesa para la función como SDR la sintonizadora USB. La antena sólo sirve para las primeras pruebas, esto es, para sintonizar radioaficionados locales en VHF y UHF y estaciones de FM comercial cercanas. Para un uso más profesional es necesario cambiarla.


Hackeando mi sintonizadora


Decidí por desnudar la placa y ver en su interior. Esto no era un acto de arrojo de mi parte ya que es sumamente fácil deshacerse de las carcasas plásticas, las cuales están colocadas a presión. Basta con ejercer algo de fuerza en uno de sus bordes para conseguir destriparla. Además, los autores de otros blogs lo han hecho y no quiero ser menos.

Con un poco de esfuerzo y mis nuevos lentes de aumento, mis ojos lograron identificar los componentes principales de la placa.

Fig.3. Destripando la placa recién llegada (click para agrandar)

En la Fig. 2 se puede observar los componentes más importantes. El cristal de 28.8 MHz sirve para la generación de la señal de clock. Cerca de este se encuentra el sintonizador R820T. El integrado más grande corresponde al RTL2832U.

El RTL2832U entrega muestras I/Q de 8 bits a una tasa teórica de 3.2 MS/s (Mega-muestras por segundo), sin embargo en la práctica ese valor se lleva a 2.4 MS/s para garantizar que no se perderán muestras.

Una memoria EEPROM serial que mantiene la configuración del fabricante para el RTL2832U.
En uno de los extremos se observa un LED que al conectar la placa en el USB emite luz azul y el receptor infrarrojo por donde se recibe los comandos emitidos por el control remoto.
Fig. 3. Azul, como el LED azul (?)

En una próxima entrega voy a mostrar el software que he utilizado y los resultados obtenidos, especialmente en la recepción de satélites de órbita baja (LEO).

Por lo pronto, les dejo el audio de la telemetría en CW del satélite chino HO-68, transmitiendo en 435.7900 MHz, en su órbita 15088, desde mi QTH en Grid GF05RL (Argentina).


No está mal teniendo en cuenta que uso una antena externa moxon de compromiso y que el HO-68 transmite con sólo 200 mW su baliza y telemetría.

Luego de esto, creo que van a esperar con ansia la segunda parte ;)

¿Una antena para VHF hecha con dos perchas?

Hace poco di con una nota de la revista QST de Abril de 2018 donde John Portune, W6NBC ( @w6nbc ) donde cuenta que con Ernie, W6DN y otro...