Descubriendo el Mundo de las ondas (I)

Share

Lo confieso. Siempre he intentado ampliar mis conocimientos y dedicarme a la observacion y la investigacion. Pero a pesar de mis esfuerzos hay areas en las que estoy absolutamente pez.

Como la gente ademas conoce mi inquietud al respecto, aprovechando el lanzamiento del blog un amigo me propuso adentrarme en uno de esos oceanos inexplorados para mi y que ademas fuera contando mis aventuras aqui. De este modo, y para no postergarlo mas, alla voy, a ver lo que soy capaz de aprender y descubrir en las comnicaciones por radio y el mundo de las ondas.

Para ello, me han prometido irme facilitando algunas herramientas que me vayan permitiendo avanzar en el camino.IMG_2399_B

La primera ha sido por duplicado, un par de receptores de television USB. Conocia su existencia pero ahora me tocaba pegarme un poco con ellos. La gracia que tienen es que por un modico precio (alrededor de 20-30 €) tienes un dispositivo de recepcion con muchas mas posibilidades aparte de ver el futbol. El nombre formal creo que es SDR (Software Defined Radio) porque le puedes configurar la frecuencia que quieres sintonizar y procesar digitalmente la señal recibida. Dependiendo del modelo exacto las capacidades y el chip exacto pueden variar un poco. Vamos a ver que descubrimos de estos. Esto es lo que me suelta el dmesg con el mas pequeño de ellos.

[ 9259.272693] usb 1-1.1: Product: RTL2838UHIDIR
[ 9259.272696] usb 1-1.1: Manufacturer: Realtek

Afortunadamente a nivel de software la Kali ya viene muy preparada para jugar con estos dispositivos. Empezare por las dos piezas que me han recomendado: rtl-sdr y gqrx-sdr

Se supone que con las herramientas de lineas de comandos del pack rtl-sdr podre hacer ciertas prebas (verificar que funciona, escuchar la radio, grabar una frecuencia a un fichero, etc..) y que gqrx es la herramienta basica sencilla y visual para explorar un poco el espectro.

Lo primero es verificar que el sistema reconoce el dispositivo, y la primera respuesta es NO.

# rtl_test
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001Using device 0: Generic RTL2832U OEMKernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.usb_claim_interface error -6
Failed to open rtlsdr device #0.

 

Afortunadamente Google tiene todas las respuestas, el propio kernel lo ha reconocido como un dispositivo de television y nos esta bloqueando el acceso. Asi que toca eliminar el modulo y ya tengo acceso.

~# rmmod dvb_usb_rtl28xxu
~# rtl_test
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 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
Sampling at 2048000 S/s.Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.Reading samples in async mode…
^CSignal caught, exiting!User cancel, exiting…
Samples per million lost (minimum): 0

Ahora ya lo detecta adecuadamente y hemos averiguado el chipset que tiene. Lo siguiente es ver si podemos escuchar la radio con ello… Para ello me busco cual es la frecuencia en cualquier radio o web y lo pongo con el programa rtl_fm … esto nos dara los datos sintonizados, pero para convertirlo a audio y que suene hay que pasarlo por un reproduztor. Tras varias pruebas, el comando queda así:

rtl_fm -f 96.3e6 -M wbfm -s 200000 -r 48000 - | aplay -r 48k -f S16_LE

Por cierto, que al receptor he tenido que enchufarle la antena, porque si no, no sintoniza nada y aun así con bastante ruido. Me temo que este sera el primer encontronazo de muchos otros en la importancia de las antenas :/

La siguiente herramienta en pasar por mis manos en el GQRX. Es un interfaz grafico para sintonizar el dispositivo, ver la intensidad de la señal e intentar algunos ejemplos basicos de demodulacion (AM, FM, etc). Sintonizando en las misma zona de frecencia que antes, es posible nuevamente escuchar la radio y ahí si, apreciar la poca calidad de la señal que recibimos. Para hacernos una idea, aqui os dejo dos capturas, una sin antena y otra con ella. Y eso que es la cutre super sencilla que venia con el receptor.

GQRX sin Antena

GQRX sin Antena

GQRX con Antena

GQRX con Antena

Tengo que reconocer que despues me he puesto a cotillear un poco por el espectro y despues de perder unas cuantas horas he llegado a una conclusion clara… no me entero de nada. Asi que volvi a recurrir a mi amigo a ver si me daba alguna pista de donde habia alguna onda interesante y que era todo aquello que había visto. No voy a reproducir literalmente su respuesta, pero basicamente me volvi con las manos vacias dandole vueltas a que podía hacer para tener una vision global de lo que  hay en el espectro de ondas madrileño sin dejarme los ojos pegado a una pantalla avanzando de megaherzio en megaherzio.

Al final he optado por esta solucion, y la verdad es que ya os adelanto que estoy muy satisfecho. Se basa en el comando rtl-power que viene en el paquete rtl-sdr. A ese programa le podemos pasar un rango de frecuencias y unos tiempos de muestreo y total y te genera un archivo “crudo” en formato csv con las potencias de emision observadas en cada uno. Estupendo detalle pero inmanejable por si mismo. Para completarlo ya hay alguien que se ha currado una manera de visualizarlo en formato heatmap.

Para hacerlo nos tenemos que clonar el repositorio lo primero y luego alimentarlo con un fichero.

git clone https://github.com/keenerd/rtl-sdr-misc.git

El comando que estoy usando para capturar los datos es el siguiente:

rtl_power -c 0.3 -f 88M:188M:2k -e 3h captured-sample.csv

Basicamente lo que le estamos pidiendo es que durante 3 horas barra el rango de los 88 a los 188 Mhz en saltos de 2k y cada vez, descarte un 30% de las lecturas por los extremos (sin ello se veia que en esa zona la sensibilidad era mucho mas baja y salian unas estupendas bandas negras verticales). Con ello obtenemos un estupendo csv de unos 600 Mg. Este a su vez lo procesaremos con el heatmap.py que nos acabamos de bajar

python heatmap.py captured-sample.csv captured-sample.png

Que nos dara algo así pero bastante más grande. En la primera pueden verse un par de canales de FM y en la segunda algun tipo de comunicacion intermitente (ya investigare)

heatmap-sample2

Heatmap-sample1

Al final lo que he preparado un sencillo script para barrer el espectro de 100 en 100 Mghz y generar el grafiquito así como un pequeño thumbnail. Aqui os dejo unos cuantos, ojo con ellos que ocupan unos 80 Mg cada uno.

88-188Mhz resized-88M-188M-2k-20150717-20_38_10

188-288 resized-188M-288M-2k-20150718-09_10_22

288-388 resized-288M-388M-2k-20150718-13_07_41
388-488 resized-388M-488M-2k-20150718-16_07_45

488-588 resized-488M-588M-2k-20150718-19_07_49

588-688 resized-588M-688M-2k-20150718-22_07_52

688-788 resized-688M-788M-2k-20150719-01_07_58

788-888 resized-788M-888M-2k-20150719-04_08_01

888-988 resized-888M-988M-2k-20150719-07_08_04

Ahora ya puedo explorarlos a ratos e ir viendo lo que me va llamando la atencion. Ya os ire contando mis desventuras mientras sigo mis observaciones. Eso si, por de pronto se puede ver que el aparato se vuelve totalmente sordo pasadas ciertas frecuencias. A ver si puedo a ir arrojando luz sobre lo que va apareciendo ahi

¿Alguien se anima a acompañarme en mis observaciones?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *