lunes, 24 de noviembre de 2014

Radio Definida por Software para pobres (Episodio II)

En una entrada anterior presenté la posibilidad de tener un SDR de bolsillo y muy económico gracias a una placa sintonizadora de TV digital USB con el chip RTL2832U.

Recibí varios comentarios en el blog y por correo electrónico de varios que se han entusiasmado con la idea. A pedido de muchos de ellos es que en esta oportunidad voy a explicar como instalar todo lo necesario para sacarle provecho a este dongle en Windows. Los que siguen este blog saben que desde aquí evangelizo por estaciones de radio libres de software privativo y que  priorizo todo aquel que corra sobre GNU/Linux. Así que disculpen esta excepción.


Acerca de SDR#

El software que vamos a usar en Windows se llama SDR# (se pronuncia SDR sharp). El nombre se debe a que fue programado en C#.

Antes de la aparición de SDR# las opciones para hacer RTLSDR eran los programas WINSDR y HDSDR. Debido a que ninguno de estos dos programas soporta el chip RTL2832U se necesita instalar un plugin llamado EXTIO de spench.net para poder operar, lo cual es engorroso y complejo de configurar para humanos normales. SDR# simplificó mucho las cosas y ayudó a acercar el RTLSDR a las masas.

SDR# nace de la necesidad de Youssef Touil de poner en práctica sus conocimientos en técnicas de DSP. Luego el proyecto comezó a tomar vuelo propio y se sumaron colobaradores como Ian Gilmour (MM6DOS) y Tony BenBrahim (K5DEV).

Se distribuye bajo licencia MIT para lo que es la interfaz de usuario (GUI) y los plugins, lo cual lo acerca bastante a ser software de código abierto ya que permite modificar, crear y redistribuir dichos componentes. Sin embargo, el código del DSP (Digital Signal Processor, el corazón de todo SDR) se distribuye bajo Microsoft Reference Source License (MS-RSL) la cual impide modificar o distribuir el binario (es decir, el archivo SDRSharp.Radio.dll) y su código.


Instalación de SDR#

La placa sintonizadora USB viene con un mini CD el cual les recomiendo que sólo lo usen como apoya vaso o para hacer un bonito reloj. No instalen nada de ese CD si quieren usar el dongle como SDR y no tener que estar renegando después.

Hecha esta aclaración, comencemos a trabajar.

Para simplificar las cosas, vamos a bajar el siguiente archivo comprimido:

http://sdrsharp.com/downloads/sdr-install.zip

Dentro del directorio sdr-install, creado al descomprir el archivo, vamos a enontrar un script llamado install.bat el cual debemos ejecutar con un doble click.

Este script va a descargar en forma automática (usando el comando wget.exe incluido en el archivo comprimido) todo aquello que necesitamos.

Fig. 1. Ejecución del script de instalación de SDR#.

Al finalizar la ejecución del script tendremos un directorio nuevo llamado sdrsharp que contendrá la última versión de SDR#, el último controlador para el manejo de nuestro dongle RTLSDR (obtenido del sitio de Osmocom) y un programa llamado Zadig.

El siguiente paso consiste en colocar el dongle en un puerto USB. Windows intentará instalar un controlador para nuestro dispositivo.

Fig. 2. Windows intentará instalar un controlador para el dongle
cuando lo conectemos por primera vez.

No importa si lo consigue o no ya que el programa Zadig tiene la misión de configurar el controlador USB correcto para el dongle RTLSDR de modo de ser reconocido posteriormente por el SDR#.

Es recomendable dejar sólo aquellos dispositivos USB indispensables conectados a nuestra computadora. Es decir, el mouse, el teclado y nuestro dongle. El resto deberíamos desmonarlos para este paso.

Una vez que ejecutemos Zadig, si tenemos activado en Windows el Control de cuentas de usuario, pulsaremos al mensaje ¿Desea permitir que este programa de un publicador desconocido realice cambios en el equipo?. Esto se debe a que la aplicación requiere de privilegios de administración. Si tienen Windows XP ese mensaje no les va a aparecer.

Fig. 3. Mensaje de advertencia del control de cuentas de usuario.

Luego de esto, deberíamos visualizar la siguiente ventana:

Fig. 4. Ventana de Zadig.

En el menú Options seleccionamos List all devices:

Fig. 5. Tildar List all devices para encontrar nuestro dongle.
Hacemos click en el desplegable para ver todos los dispositivos USB conectados. De todos ellos nos intereza seleccionar aquel que está indicado como Bulk-In, Interface (Interface 0):

Fig. 6. Debemos asegurarnos que el fabricante sea el esperado
antes de proceder a instalar el controlador.

Para confirmar que se trata de nuestro dongle detenemos el puntero del mouse sobre el primer campo del cuadro texto USB ID y deberíamos visualizar Realtek Semiconductor Corp como texto emergente, el cual indica el nombre de fabricante del dispositivo.

Sólo nos queda pulsar el botón Install Driver para instalar el driver correcto que hará del dongle nuestro dispositivo SDR.

Windows nos advertirá que nuestro controlador no es el original firmado por el fabricante. Por supuesto, nosotros justamente queremos instalando un controlador que va a reemplazar al proporcionado por el fabricante. Pulsamos la opción Instalar este software de controlador de todas formas.

Fig. 7. Mensaje de advertencia de Windows al instalar el controlador.

Luego de unos segundos recibiremos un mensaje que el controlador ha sido instalado correctamente:

Fig. 8. Mensaje luego de la instalación.

Y si todo ha ido bien,  de nuevo en la pantalla principal de Zadig deberíamos ver en la sección Drive la opción WinUSB seguida del número de versión del controlador como se observa en la figura:

Fig. 9. Ventana de Zdig luego de la instalación del controlador.

Nota: Esta configuración debemos realizarla para cada puerto USB donde vamos a utilizar nuestro dongle RTLSDR. También podemos utilizar un puerto USB para trabajar como RTLSDR y otro para usarlo como DVB-T con el manejador suministrado por el fabricante (o el propuesto por Windows)



Ejecutando SDR#

Una vez que hemos instalado el manejador WinUSB como se ha descripto estamos en condiciones de comenzar a usar SDR#. Para ello simplemente hacemos doble click sobre SDRSharp.exe con lo cual deberíamos ver la siguiente ventana:

Fig. 10. Ventana principal de SDR#.

Seleccionamos en el desplegable ubicado en la parte superior izquierda la opción RTL-SDR/USB:

Fig. 11. Seleccionando RTL-SDR/USB como fuente.

Puede ocurrir que al realizar esta operación obtienen un error como el mostrado en la Fig. 12:

Fig. 12. Error frecuente cuando se conecta el dongle en un puerto USB versión 3.
Normalmente dicho error aparece cuando se conecta el dongle en un puerto USB versión 3. Si bien hay muchos reportes en foros de este error no he encontrado aún una solución confiable. Por lo tanto, siempre que sea posible, van a tener que conectar el dongle en un puerto USB versión 2 y probar.



Primer contacto con SDR#

La mejor manera de aprender es comenzar a utilizar SDR#. Es un programa sencillo que no requiere a mi parecer de grandes explicaciones.

El primer acercamiento lo haremos sintonizando la banda de FM comercial. Lo se, no es muy ambiciosa mi propuesta pero les permitirá comprender la interface del software. 

Lo primero que debemos hacer es tildar en la sección Radio la opción WFM (Wideband FM, en español FM de banda ancha)

Fig. 13. Seleccionando WFM.

El resto de los parámetros pueden dejarlos con sus valores por defecto.

Ahora tenemos que sintonizar en la banda de FM comercial, por ejemplo en la frecuencia de 88 MHz.

Para ello, tenemos varias formas:

a) Colocamos el cursor sobre el VFO y tipeamos la frecuencia central elegida, en nuestro caso 88,000,000 y damos Enter.

b) Hacemos click en en la parte superior (la zona se torna roja) o en la parte inferior (la zona se torna azul) para aumentar o disminuir el valor de la frecuencia en esa posición.

Fig. 14. Podemos subir o bajar en frecuencia haciendo click en la
cifra que queremos modificar.
c) Arrastramos con el cursor hacia la derecha o hacia la izquierda sobre el espectro de frecuencia o sobre la cascada para movernos hacia abajo o hacia arriba en frecuencia.

d) Giramos la rueda del mouse para subir o bajar en frecuencia, según el sentido.

Para comenzar a escuchar pulsamos el botón de Play en el panel superior donde está el VFO.

A partir de entonces deberíamos escuchar al menos el ruido de banda por el parlante de la PC y a visualizar el espectro de frecuencia en la mitad superior del panel principal y la cascada en la inferior.

Por alguno de los métodos ya nombrados podemos movernos en frecuencia hasta sintonizar una emisora de FM. En la siguiente imagen se puede apreciar sobre la cascada varias líneas verticales de color rojo. Estas son las ubicaciones de emisoras de FM para el rango de frecuencia visualizado.

Fig. 15. Espectro y cascada visualizando varias estaciones de FM.

La intensidad de estas líneas es proporcional a la intensidad de señal con la que nuestro dongle la está recibiendo. Podemos hacer click en cualquiera de ellas para comenzar a escucharla, ya sin necesidad de estirar con el cursor.

Si observan con detenimiento en la figura anterior, en el centro de la cascada encontrarán una línea roja muy fina que se manifiesta en un pico muy angosto en el espectro. Si cambian de frecuencia, esta señal no desaparece y queda permanentemente centrada.

Fig. 16. Línea de corriente continua en el centro de la ventana.
Para eliminar ese pico de corriente continua debemos tildar la opción Correct IQ en la sección Radio:

Fig. 17. Tildando Correct IQ se elimina
la componente de continua.

Suficiente por ahora. Es tiempo que experimenten con SDR# y descubran sus posibilidades en la recepción de otros tipos de señales como balizas o telemetría de satelitales de radio aficionados por ejemplo.

En otra entrega veremos como trabajar con este dongle en Linux.

Espero sus comentarios.

73 de LW3ESH


Enlaces

Radio Definida por Software para pobres (Episodio I):
http://lw3esh.blogspot.com.ar/2013/02/radio-definida-por-software-para-pobres.html

sábado, 16 de agosto de 2014

Mejorando los mapas de UI-View32

Si bien para el resto de los modos digitales hay una gran variedad de software disponible en la Red, no ocurre lo mismo para APRS donde las opciones son escasas y en general son desarrollos que no ven actualizaciones desde hace unos cuantos años.

Sin lugar a dudas, el software más popular entre la comunidad de usuarios de APRS es UI-View32 el cual corre sobre Microsoft Windows. El creador de UI-View32 fue Roger Barker (G4IDE) quien apagó filamento en Septiembre de 2004. Desde entonces, no hay actualizaciones de su software ya que fue su deseo que el código fuente fuese destruído después de su muerte. Una desición egoista desde mi punto de vista que nos priva de futuros desarrollos y mejoras.

Más allá de este detalle no menor, UI-View32 es un excelente programa que lo muestra a Roger como un gran programador, con algunas características que permiten la integración con software de terceros o add-ons y personalizaciones.

Si alguno de ustedes es usuario de UI-View32 se habrá dado cuenta que los mapas, donde se desplegarán las estaciones a medida que las vamos escuchando, dejan mucho que desear. Por eso, hay colegas que han puesto a disposición en Internet sus mapas mejorados para distintas zonas de nuestro querido (pero maltratado) planeta. Sin embargo, el objetivo de esta entrada en mi blog es que ustedes sean capaces de crear sus propios mapas.


Método I o del artesano cartesiano (?)

Lo primero que hay que saber es que en el directorio donde hemos instalado UI-View32 tiene una carpeta que se llama MAPS que como sugiere su nombre es donde se guardan los mapas.

En dicha carpeta se guardan los mapas en formato JPEG o PNG (prefiero este último) de la zona geográfica que nos intereza visualizar. Cada uno de estos mapas viene acompañado de un archivo que lleva el mismo nombre pero con extensión INI. Dentro de estos archivos se guarda la información requerida por UI-View32 para georeferenciar el mapa correpondiente de modo de mostrar la ubicación de las estaciones correctamente.

El archivo consta de tres lineas. La primera incluye las coordenadas geográficas de la esquina superior del mapa, la segunda las coordenadas de la esquina inferior derecha del mapa. La tercera y última linea es la descripción con la que identificaremos dicho mapa en UI-View32.

Ejemplo: Supongamos tener un mapa como el de la Fig. 1, donde conocemos las coordenadas geográficas de la esquina superior izquierda y la inferior derecha.

Fig. 1. Puntos extremos del mapa como georeferencia.
Si el mapa lo llamamos MI-MAPA.jpg, entonces debemos crear un archivo MI-MAPA.ini, ambos ubicados en la carpeta MAPS de UI-View32, con el siguiente contenido:

34.18.43S,59.03.75W
34.53.16S,58.00.47W
Gran Buenos Aires

Donde Gran Buenos Aires es la descripción que le asigne a dicho mapa para este ejemplo.

Luego, si abrirmos el programa podemos cargar nuestro mapa desde el menú Map/Load a Map (o pulsando directamente F2) seleccionándolo:

Fig. 2. Cargando nuestro mapa.

Algunos estarán tentados en ir a Google Maps o abrir Google Earth, centrar su QTH en pantalla y hacer una captura para generar un mapa en JPG o PNG. Tendremos un mapa hermoso pero a la hora de conseguir las benditas coordenadas de las equinas del mapa la cosa se complicará. Y si las consiguen, no esperen exactitud en las posiciones de las estaciones cuando lo levanten con UI-View32. Los reto a que hagan la prueba.

Cuando se frustren, vuelvan y lean el Método II que les propongo.
 


Método II: Me gusta ese Taho que ayer conocí

El método anterior de crear mapas es útil cuando contamos con el mapa y las coordenadas de los puntos extremos. Si no contamos con algunas de estas variables, lo mejor es optar por una forma alternativa.

Dimitri Junker ha desarrollado un programa llamado Taho el cual fue escrito en sus orígines en Perl pero hoy está disponible como ejecutable en Visual C++ 6.0 para los usuarios de Microsoft Windows. La última versión es la 3.09 de Diciembre de 2013 y se distribuye bajo licencia GPL de código abierto.



Este pequeño (pero poderoso programa) nos permite descargar mapas en diferentes tamaños para un área geográfica seleccionada. Además genera para cada mapa el archivo de calibración correspondiente en distintos formatos, incluyendo por supuesto UI-View32 que es el que en definitiva nos interesa.

Los mapas son obtenidos del proyecto OpenStreetMap (también conocido como OSM), una comunidad creada por Steve Coast hace diez años y que junto a miles de voluntarios manteniene actualizando mapas de todo el mundo. Toda esa información se ofrece (a diferencia de, por ejemplo, Google Maps) de manera abierta: no hay ninguna restricción para usar estos mapas con cualquier propósito con la única condición que siempre se le dé crédito a OpenStreetMap y sus colaboradores.

Hoy OpenStreetMap es el segundo proyecto más grande de mapeo en la red Internet.

Taho no requiere instalación. Simplemente se baja desde aquí, se lo descomprime en algún lugar y se ejecuta.

Busquen la sección correspondiente para bajar la última versión disponible:



Taho abrirá automáticamente el navegador por defecto donde se cargará el planisferio producido por mapas del proyecto OpenStreetMap. Desde allí, nos movemos arrastrando el puntero del mouse y haciendo zoom con los botones +/- (o con la rueda del mouse) para obtener una primera aproximación a la región que deseamos.

Una vez ubicada la posición y el zoom que nos guste en el mapa pulsamos el botón Select Area y arrastrando el putero del mouse dibujamos una caja que contenga con mayor precisión el area de interés.

Fig. 3.Area seleccionada para la generación del mapa.
Copiamos el código HTML que aparece en el cuadro gris de la esquina inferior derecha como se muestra en la figura:
Fig. 4.Código HTTP a copiar para ingresarlo en Taho.
Ese código lo pegamos en el cuadro get from <bbox...> en la ventana principal de Taho y pulsamos dicho botón:
Fig. 5.Ventana principal de Taho.
Esto completará los cuadros de texto Lat1, Lat2, Lon1 y Lon2 que definen nuestra area geográfica.

Siempre desde la ventana principal de Taho seleccionamos los orígenes de los mapas (Source) y las capas (Overlays). Como primer aproximación podemos dejar las opciones por defecto para luego ir probando las distintas opciones que nos ofrece.

Los cuadros de selección agrupados en Overlays son capas parcialmente transparentes que pueden ser agregados al mapa tomado como base. Siéntanse libres de elegir y probar cada opción.

En las opciones Kal-Files seleccionamos solamente UI-View para generar los archivos de calibración para dicho programa.

En File Type seleccionamos el formato que deseamos para los mapas: JPG o PNG.

En Zoom Level elegimos el grado de zoom con el que vamos a obtener el mapa. Entre 10 y 12 son valores que podrían funcionar bien pero es mejor que experimenten y eligan los que mejor se adapte a sus necesidades.

La última variable a configurar es Size que define el tamaño del mapa. En nuestro caso, vamos a seleccionar la opción free (whole area in 1 file).

Es momento de generar el mapa. Para ello, pulsamos el botón make maps. Dependiendo del área seleccionada y del nivel de zoom seleccionado esto puede tomar cierta cantidad de tiempo ya que implicará la descarga de cierto número de mapas de Internet y unificarlos.

Fig. 6. Generación del mapa.
Los archivos gráficos del los mapas (*.png o *.jpg según lo que hayamos elegido en el campo File type) y los archivo de calibración asociados (*.ini) estarán guardados en la carpeta Mapnik\map ubicada en el directorio donde se ejecutó taho.exe.

Copiamos el contenido de dicha carpeta en la carpeta MAPS de UI-View32.

Luego, iniciamos UI-View o reiniciamos si estaba corriendo previamente y cargamos el mapa generado como ya explicamos previamente.

Les sugiero realizar distintos mapas con distintos grados de zoom para poder tener un mayor acercamiento en el area de nuestros alrededores, ya que UI-View32 no posee un zoom descente.

Si lo desean pueden editar la última linea de los archivos de calibración para darles una descripción menos críptica que la asignada por defecto por Taho.

En la siguiente figura observamos una area geográfica de los alrededores de mi QTH en UI-View32. Los rectángulos azules otras areas menores de otros mapas con otros niveles de zoom y a los que se puede acceder haciendo doble click sobre las esquinas resaltadas con un cuadrado relleno y pulsando la tecla Ctrl.

Fig. 7. Mi QTH reflejado en UI-View32 y los límites de los distintos mapas generados.


En fin, con estas recomendaciones los mapas con los cuales trabajar APRS sobre UI-View32 serán mucho más útiles y bonitos que los que vienen por defecto.

Como siempre espero sus comentarios y sugerencias.

73 de LW3ESH


NOTA (07MAR20229: Gracias LU4HA Edu por hacerme notar que, luego de tantos años, el enlace para descargar taho había cambiado.





¿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...