RTL Power - Heatmap

Utilizzare una pennetta RTL-SDR come analizzatore di spettro con rtl_power su Raspberry Pi.

Il pacchetto rtl-sdr di Osmocom [1] contiene, tra le varie utility, anche la rtl_power [2] sviluppata da Keen Kyle. Questa utility consente l’analisi nel tempo dello spettro radio in un intervallo di frequenza illimitato (nel range di ricezione della chiavetta) con la risoluzione desiderata e per un tempo indefinito. Il risultato è un file di log in formato .csv che riporta allo scorrere del tempo i livelli di potenza ricevuti. Il log quindi può essere elaborato per creare una mappa grafica, detta heatmap, per l’analisi di quanto acquisito. La heatmap è molto simile al waterfall dei software SDR, ma ha il vantaggio di essere memorizzata e quindi non costringe l’ascoltatore a guardare in tempo reale cosa accade in frequenza, inoltre l’ampiezza dello spettro visualizzabile sull’SDR è limitato ad un paio di MHz. RTL Power pertanto si presta bene al monitoraggio di eventi sporadici o all’analisi per lunghi periodi.

Installazione rtl-sdr

Se non sono stati installati precedentemente, procedere all’installazione di driver e utility rtl-sdr sull’RPi:

Installare le librerie necessarie al funzionamento
sudo apt-get install libusb-1.0-0.dev
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install build-essential

Scaricare il codice sorgente di rtl-sdr dal repository GitHub
git clone git://git.osmocom.org/rtl-sdr.git
Oppure, se non si vuole usare git, scaricare attraverso un browser l’archivio .zip da GitHub [1] e copiarne il contenuto su RPi nella cartella rtl-sdr sulla home.

Compilare rtl-sdr
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

Creare una blacklist per evitare che la chiavetta RTL venga riconosciuta come ricevitore DVB-T e quindi caricato il suo driver standard
sudo nano /etc/modprobe.d/blacklist-rtl.conf

e nel file appena creato inserire le seguenti linee
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Spegnere RPi
sudo poweroff

Collegare il dongle RTL-SDR ad una delle porte USB

Accendere RPi

Controllare che la pennetta sia riconosciuta ed il driver attivo
lsusb
rtl_test -t

RTL-SDR - Installazione Raspberry Pi
RTL-SDR – Installazione Raspberry Pi

Uso di rtl_power

A questo punto è possibile partire con il monitoraggio della porzione di banda che c’interessa, ad esempio la heatmap nell’immagine dell’articolo è stata ottenuta con il seguente comando:

RTL Power
RTL Power

ed è la scansione per circa 1h della banda VHF radioamatoriale (144 – 146 MHz) alla risoluzione di 1 kHz e con tempo d’integrazione di default di 10 secondi, il log è stato interrotto manualmente con il comando Ctrl+C, i dati memorizzati nel file ham_vhf.csv.

Vediamo i principali comandi, per i dettagli fare riferimento all’help del comando o alla pagina dell’autore [2]:

-f lower:upper:bin_size [Hz]
specifica le frequenze inferiore, superiore e la risoluzione. Il numero può essere un intero, con notazione scientifica e o con i suffissi k, M, G

-i integration_interval
intervallo d’integrazione, default 10 secondi, il numero può essere specificato in s, m, h

-e exit_timer
tempo di acquisizione del log.

Generare la heatmap

Per il rendering dei dati acquisiti, l’autore mette a disposizione lo script heatmap.py realizzato in Python [3]. Ma l’alternativa migliore a mio avviso è rtl-gopow [4], disponibile già compilato per diversi sistemi operativi.

Software alternativi

Ulteriore possibilità, per chi non ama la riga di comando preferendo l’interfaccia grafica, è GUI for RTL Power per il sistema operativo Windows [5], nota anche come rtl-sdr dongle panorama ed utilizza la versione Win delle utility Osmocom. SDR Panorama visualizza lo spettro in tempo reale, similmente ad un analizzatore di spettro, con la possibilità di elaborare e salvare le immagini. Da segnalare anche RTLSDR Scanner per Python [6] con il suo add-on Heatmap per la mappatura geografica dei segnali acquisiti, Spektrum multipiattaforma [7], GUI for RTL_POWER per Windows [8].

Riferimenti

  1. rtl-sdr repository su GitHub;
  2. RTL Power dal sito dell’autore;
  3. Heatmap repository su GitHub;
  4. rtl-gopow repository su GitHub;
  5. guiforrtlpower repository su SourceForge;
  6. RTLSDR Scanner, add-on Heatmap;
  7. Spektrum repository GitHub;
  8. GUI for RTL_POWER repository SourceForge.

Argomenti correlati


Licenza Creative Commons Questa opera è distribuita con:
licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia.

Si declina ogni responsabilità per eventuali errori ed omissioni e gli eventuali danni che ne dovessero conseguire. Per ulteriori informazioni consultare le note legali.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *