Archivi tag: sdr#

Ogni scusa è buona!

Recentemente in casa sono comparsi dei simpatici oggettini che sono detti “baby monitor”. Si tratta di una coppia trasmettitore/ricevitore che dovrebbe dare ai neo-genitori, la sensazione di avere una vita normale, potendo ascoltare da remoto vagiti e gemiti dell’infante.
Non si tratta di una invenzione nuova: ricordo perfettamente che “tanti ani fa” lavoravano in FM a 29700kHz. Si potevano ascoltare molto facilmente con ricevitore, davano parecchio fastidio alle automobiline radiocomandate e li ricevevano anche i walkie-talkie giocattolo (che erano in AM).

I baby-monitor di adesso hanno dimensioni molto contenute, antenne interne e batterie ricaricabili. Per intenderci una cosa di questo tipo. Leggendo le specifiche si apprezza la frequenza di funzionamento compresa tra 1800MHz e 1900MHz, in piena banda DECT. In effetti leggendo il manuale:
– Trasmissione vocale tramite sistema basato su tecnologia digitale DECT.
– Range operativo in campo aperto senza ostacoli di circa 300 metri.
DECT è uno standard che nasce per la telefonia cordless che prevede l’uso di codec audio a 32kbps e 64kbps (G726,G722) su 10 canali nella banda 1800MHz, 1900MHz. Il layer fisico usa FDMA/TDMA con TDD. La modulazione usata è GFSK ma può implementare anche modulazioni più aggressive.

In rete ho trovato un interessante articolo con questo titolo: “RE-DECTED: AN RTL-SDR DECT DECODER”. Nell’articolo si fa riferimento ad un codice contenuto su git-hub: re-DECTED. Il sistema è costruito attorno a Gnuradio e richiede un hardware in grado di sintonizzare i 1900MHz. Per questo è consigliato l’uso di un SDR basato su E4000, il compianto tuner della Elonics o di un ricevitore generico in grado di lavorare a 2.4Ms/s. Anche AIRSPY mini è tagliato fuori: arriva fino a 1700MHz. Pertanto ho deciso di modificare il codice per farlo lavorare con ADALM PLUTO.
Il codice elaborato da “znuh” prevede l’uso di diversi elementi:
– un eseguibile C dectrcv.c che riceve i dati dalla interfaccia localhost, visualizza i frames ricevuti e li redirige alla interfaccia dummy0;
– il codice python che avvia una configurazione su GNURADIO che esegue la ricezione del segnale RF;
– il codice GNURAIO è nel file dectrx.grc che può essere aperto anche con GNURADIO.

Il primo step è modificare il codice grc per introdurre il nuovo “sdr source” adalm pluto. Il primo problema è che il PLUTO non campiona a 2.4Ms/s, ma a 3Ms/s. Il blocco di ricezione invece vuole proprio questo valore. Pertanto è necessario modificare il “rational resampler”. Nella formulazione originale il flusso a 2.4Ms/s viene interpolato per 24 e decimato per 25, ottenendo 2304000. Per avere 2.4Ms/s a partire da 3Ms/s occorre moltiplicare per 0.8, ovvero interpolare per 4 e decimare per 5.

Schema a blocchi originale, credit a znuh
Schema a blocchi modificato per Adalm Pluto

Una volta effettuata la modifica non resta che avviare nella sequenza giusta i software e godersi l’output con “wireshark”. Per creare l’interfaccia dummy in un sistema Ubuntu è meglio seguire questo tutorial.

Output per programma in C, credi znuh
Output del programma GRC, modificato per vedere anche la banda base.
Output di Wireshark, con i pacchetti DECT.

Si potrebbe decodificare anche l’audio ma, sinceramente, non ne ho la minima voglia!
Il nuovo GRC si può scaricare da qui.

Please follow and like us:
error

AirSpy

Finalmente è arrivata!!!
(questo articolo è in attesa di essere pubblicato dal 3 ottobre 2016)

Packaging minimale, ottima imbottitura, grande protezione  e dentro la chiavetta! Completamente in alluminio, con un bel connettore SMA femmina installato. Il tempo di collegarla al PC e già funziona. Non richiede driver o procedure perverse di installazione. Davvero un dispositivo Plug ‘n Play.

img_20161003_122946

Ho scaricato l’ultima versione di SDR# ed ho avviato la ricezione: eccellente! Il front-end è meno predisposto alla intermodulazione, lo spettro visualizzato è pulito ed i segnali si vedono decisamente peggio.

Forse lascia sul terreno qualche cosa in termini di guadagno: le conversazioni su satelliti MIL a 256 MHz non riesco a riceverle, ma sono piccoli dettagli.

La possibilità di visualizzare una porzione molto ampia di spettro è fantastica ed apre la scena a numerose applicazioni, anche in ambito didattico. Ecco qualche screenshot di SDR# della simpatica applicazione “analizzatore di spettro” che vedo molto bene in congiunzione con il generatore di rumore ad ampio spettro per fare qualche prova sui filtri in cavità. Antenna televisiva, in paese. La prima con 100MHz di span e la seconda in full Bandwidth.

Costa… vero… ma ne vale davvero la pena!!!

Please follow and like us:
error

SDR# sempre più forte.

Questa mattina ero alla ricerca di un modo per potere ricevere più canali contemporaneamente con SDR#. Mi sono imbattuto in questo sito che presenta solo plug-in per il software SDR#.

Il sito è in Russo, ma google translate consente una facile lettura in Inglese. Dopo qualche lettura mi sono deciso ad utilizzare l’installer proposto dal sito ed a inserire tutti  i plugin nella mia versione di SDR#. L’installer ha fatto bene il suo dovere ed ha richiesto solo un intervento manuale per configurare i VFO multipli, andando ad editare il file “Plugins.xml”.

<sharpPlugins>
    <add key="IQ Balancer" value="SDRSharp.IQCorrection.IQCorrectionPlugin,SDRSharp.IQCorrection" />
    <add key="Noise Blanker" value="SDRSharp.NoiseBlanker.NoiseBlankerPlugin,SDRSharp.NoiseBlanker" />    
    <add key="BasebandRecorder" value="SDRSharp.BasebandRecorder.BasebandRecorderPlugin,SDRSharp.BasebandRecorder" />
    <add key="TimeShift" value="SDRSharp.TimeShift.TimeShiftPlugin,SDRSharp.TimeShift" />
    <add key="DSD" value="SDRSharp.DSD.DSDPlugin,SDRSharp.DSD" />
    <add key="DCSDecoder" value="SDRSharp.DCSDecoder.DCSDecoderPlugin,SDRSharp.DCSDecoder" />
    <add key="CTCSSDecoder" value="SDRSharp.CTCSSDecoder.CTCSSDecoderPlugin,SDRSharp.CTCSSDecoder" />
    <add key="Digital Audio Processor" value="SDRSharp.DAP.DAPPlugin,SDRSharp.DAP" />
    <add key="Digital Noise Reduction" value="SDRSharp.DNR.DNRPlugin,SDRSharp.DNR" />
    <add key="Zoom FFT" value="SDRSharp.ZoomFFT.ZoomFFTPlugin,SDRSharp.ZoomFFT" />    
    <add key="AudioRecorder" value="SDRSharp.AudioRecorder.AudioRecorderPlugin,SDRSharp.AudioRecorder" />    
    <add key="Frequency Scanner" value="SDRSharp.FrequencyScanner.FrequencyScannerPlugin,SDRSharp.FrequencyScanner" />
    <add key="Frequency Manager" value="SDRSharp.FreqMan.FreqManPlugin,SDRSharp.FreqMan" />
    <add key="AuxVFO-1" value="SDRSharp.AuxVFO.AuxVFOPlugin,SDRSharp.AuxVFO" />
    <add key="AuxVFO-2" value="SDRSharp.AuxVFO.AuxVFOPlugin,SDRSharp.AuxVFO" />    
    <add key="AuxVFO-3" value="SDRSharp.AuxVFO.AuxVFOPlugin,SDRSharp.AuxVFO" />
    <add key="AuxVFO-4" value="SDRSharp.AuxVFO.AuxVFOPlugin,SDRSharp.AuxVFO" />
</sharpPlugins>

E’ un mare di roba. Lo so. Le ultime 4 righe consentono di avere 4 VFO indipendenti e di ascoltare quini 4 canali contemporaneamente ed in modo del tutto indipentente. Il front end adesso è piuttosto affollato:

Sdr_Complete

Un dettaglio sulla barra di sinistra:

Sdr_Complete1

Il breve video che segue mostra l’uso di 4 VFO per monitorare 5 canali contemporaneamente (4 VFO + VFO di sintonia). Interessante notare come, una volta agganciata la frequenza, il VFO la tracci anche al variare della frequenza centrale di sintonia.

Buon Ascolto!

Please follow and like us:
error