SATSAGEN

SATSAGEN è un’applicazione Windows che permette di utilizzare un dispositivo SDR come Spectrum Analyzer. Al momento SATSAGEN supporta solo il device ADALM-PLUTO. e con le ultime versioni di SATSAGEN molti altri dispositivi, come RTL-SDR, HackRF e RSP1!

E’ mio desiderio rendere disponibile in forma gratuita alla comunità dei Radioamatori questa mia realizzazione, con la speranza che SATSAGEN possa essere apprezzato come uno strumento utile per la nostra attività di sperimentazione Radio.

Le ultime novità su SATSAGEN le puoi trovare nella seguente pagina:

 https://www.albfer.com/en/satsagen-news/ 

Da qui potete scaricare l’ultima versione:

 SATSAGEN Download Page 

I prerequisiti per il garantito funzionamento dell’applicazione sono:

  • OS: Da Windows 7 in poi…
  • Driver per ADALM-PLUTO installati: PlutoSDR-M2k-USB-Drivers
  • Dispositivo ADALM-PLUTO con firmware >=0.31 (non mandatorio)
  • o un altro dispositivo SDR con le ultime versioni di SATSAGEN!

ATTENZIONE: Al primo avvio, l’applicazione effettuerà sul dispositivo l’estensione in frequenza e bandwidth prevista per l’utilizzo del range 70MHZ-6000MHZ, facendo “vedere” al firmware il transceiver AD9363 come un AD9364. L’estensione è necessaria per il funzionamento dell’applicazione, ma se non desiderate che avvenga, non avviate SATSAGEN.

Desidero ringraziare gli amici Gianni IW1EPY, Domenico I1BOC e Mauro IZ1OTT per avermi fornito l’idea, il sostegno in ogni senso, i componenti e le attrezzature necessarie per la realizzazione del progetto!

Un particolare ringraziamento va a Boian Mitov per le preziose librerie www.mitov.com utilizzate in SATSAGEN!

Di seguito trovate un altro prezioso contributo di Gianni IW1EPY scritto per l’occasione, mentre al termine dell’articolo troverete un breve video che illustra le nozioni base dell’applicazione.

Alberto IU1KVL

Posseggo un Adalm Pluto da un po’ di tempo e ho familiarizzato con l’utilizzo di diverse applicazioni (SDR console, SDRAngel) usandolo sia in RX che TX.
Con il tempo e l’uso la mia indole misuristica ha prevalso, dopo aver provato un po’ di oggetti, analizzatori scalari fino a 4,4 GHz, i vettoriali fino a 900 MHz, ho pensato che anche Pluto avrebbe potuto avere un adeguato utilizzo specialmente nella sua gamma estesa 70 MHz – 6 GHz.
Dopo alcune prove incoraggianti per i risultati a RF ottenuti, ma deludenti dal punto di vista tempi di esecuzione delle misure utilizzando Matlab, ho letteralmente preso per i capelli il mio amico Alberto che non ha saputo dirmi di no e siamo partiti in questa avventura.
Oltre allo splendido lavoro software fatto da Alberto voglio solo aggiungere alcune note hardware.
Pluto non è ovviamente uno strumento e come tale soffre di alcuni problemi.
Data l’estensione di banda, per altro forzata in quanto Pluto nasce con una gamma di utilizzo da 325 MHz a 3,8 GHz, l’impedenza di ingresso e di uscita di certo non è 50 Ohm.
Una coppia di attenuatori mitigano il problema, riducono il range dinamico di utilizzo ma per usi radioamatoriali lo ritengo accettabile.
Con una coppia di attenuatori da 10 dB che possono essere ridotti o annullati accettando il relativo disadattamento rimangono ancora 40 dB verso il basso dal livello di calibrazione e una 20 verso l’ alto per l’ inserzione di un dispositivo attivo sotto test.
Di sicuro Adalm Pluto soffre nella gamma alta di frequenze la mancanza di un contenitore metallico e del accoppiamento fra TX e RX, ma qualcosa si potrebbe fare…
La struttura attuale permette un esame diretto di funzioni di trasferimento di filtri, amplificatori, mentre per l’analisi di impedenze di ingresso è necessario un accoppiatore direzionale o un ponte riflettometrico.
In futuro pensiamo di aggiungere alcune funzionalità per quest’ultima modalità.
Tutto questo è possibile nella modalità Spectrum analyzer con Tracking, ma è possibile usare il solo Generatore o l’analizzatore di spettro.
E’ possibile inserire una curva di correzione per linearizzare l’uscita del generatore, purtroppo ogni Pluto è un po differente e andrebbe personalizzata, per ora ne ho analizzati 4 e le curve di correzione sono disponibili.
In tutti i Pluto analizzati con una adeguata curva di correzione, l’errore di potenza del generatore sta entro un dB contro i 10 dB di un Pluto non corretto, particolarmente variabili la zona da 70 a 300 MHz e da 4 a 6 GHz per altro c’era da aspettarselo essendo le zone di fuori range rispetto al prodotto originario.
E’ possibile inserire una curva di calibrazione del ricevitore, fattibile senza strumenti, una volta calibrato il generatore e accettandone gli inevitabili errori .
Il guadagno del ricevitore e l’attenuazione del generatore non introducono significativi errori per cui una sola curva di correzione permette un buon utilizzo a patto di non portare o il generatore o il ricevitore in saturazione ma la cosa diventa evidente.
Per migliorare le prestazioni dell’analizzatore di reti è possibile effettuare una calibrazione con un attenuatore da 40 dB, purtroppo questa linearizzazione corregge gli errori del livello -40 e -30 ma deteriora il responso per altro già molto compromesso per segnali inferiori es -50 in quanto a questi livelli le tipologie di errore non sono congruenti con i modelli adottati.
Tutti i livelli di ricezione e generazione nonchè le attenuazioni inserite sono programmabili permettendo di variare l’ uso del sistema.
Ogni idea di miglioramento è bene accetta e metto già in lista alcune cose che stiamo esaminando:
Calibrazione con accoppiatore direzionale o ponte riflettometrico con open corto e carico.
Possibilità di analisi con offset fra ricezione e trasmissione per verifica o taratura Transverter o qualsivogli sistema di conversione di frequenza.
Credo che Pluto coprendo 6 gamme radioamatoriali possa essere di aiuto a molti Radioamatori con un prezzo di acquisto contenuto.
IW1EPY

SA TSA GEN per ADALM-PLUTO

Il progetto consiste nella realizzazione di un’applicazione Windows per l’utilizzo di ADALM-PLUTO (recentemente ricevuto in dono da un carissimo amico) come analizzatore di spettro.

Spero a breve di creare un post con più dettagli a proposito, per il momento elenco i punti salienti dell’oggetto:

  • Analizzatore di spettro con span intero range di esercizio, 70MHz-6GHz e rappresentazione ampiezza segnali in dBm.
  • Analizzatore di spettro con tracking generator. Risoluzione fino a 1024 punti.
  • Generatore con possibilità d’impostare la frequenza a passi di 1 KHz

I requisiti per l’applicazione sono:

  • CPU: un vecchio Pentium M da 1,7GHz è più che sufficiente!
  • OS: >= Windows 7 (su necessità dei driver per ADALM-PLUTO)
  • ADALM-PLUTO esteso per far “vedere” al FW il AD9363 come un AD9364
  • Driver Analog Devices installati ( PlutoSDR-M2k-USB-Drivers )

A presto!

GPSDO

Questo strumento (in foto ancora in una forma prototipale) è un generatore di clock preciso, in grado di fornire su tre uscite indipendenti con connettori SMA, frequenze programmabili da 8KHz a 200MHz.

La generazione dei segnali è affidata a un Si5351A. In questa applicazione, il PLL del Si5351A utilizza come riferimento un oscillatore disciplinato (GPSDO) basato sul chip G7020-KT.

Il governo del GPSDO, del PLL e dell’interfaccia utente (un LCD da 101X80 pixel a colori e un encoder) è affidato a un ATMega328P operante a 3,3V-8MHz.

L’alimentazione è fornita da una batteria al litio da 3,7V 600mA che garantisce circa quattro ore di utilizzo. La batteria è collegata al modulo di step-up (provvede alla generazione del 5V per alcuni moduli e dei 3,3V attraverso due LDO) tramite uno switch mosfet controllato dalla CPU; l’utilizzo del mosfet garantisce lo spegnimento dell’apparecchio nel caso il livello della batteria scenda sotto il livello di guardia prestabilito, il circuito di switch così progettato consente di avere una corrente di quiescenza prossima a 0 uA. Il controllo di carica e di scarica della batteria è anch’esso affidato alla CPU con l’ausilio dei chip TP4056 per la carica e del DW01A come protezione di overcharge e in ulteriore protezione di overdischarge nel caso di un blocco della CPU. Sul display LCD è visualizzato in modo costante il livello della batteria, sia nella fase di scarica che in quella di carica.

Il “cuore” del generatore è un oscillatore VCTCXO che fornisce il riferimento al modulo GPS G7020-KT e al Si5351A. La tensione di controllo del VCTCXO è data da un DAC MCP4725 (risoluzione a 12bit e interfaccia I2C). I valori inviati al DAC sono elaborati dalla CPU in base al feedback ricevuto dal modulo GPS sullo scostamento dell’oscillatore di riferimento rispetto a quello agganciato al satellite. La CPU riceve i messaggi UBX sul clock-Drift dal G7020-KT mediante una connessione seriale. Il DAC è provvisto di una memoria EEPROM interna che permette all’accensione l’invio immediato della tensione di controllo preimpostata al VCTCXO per velocizzare l’aggancio della ricezione GPS.

Mediante l’interfaccia utente è possibile impostare le frequenze e i livelli di potenza delle tre uscite del Si5351, rispettivamente con una risoluzione di 1Hz e con quattro differenti livelli di uscita; 0.76DBm, 7DBm, 10DBm e 12DBm. Lo strumento ha inoltre una quarta uscita in SMA, riguardante l’output PPS del sintetizzatore del modulo GPS, anche quest’ultimo output è programmabile tramite interfaccia utente in frequenza da 1Hz a 24MHz (per un phase noise accettabile, utilizzare solo sottomultipli di 48MHz) e in duty cycle da 1% a 99%. E’ possibile impostare l’output PPS che sia attivo solo durante l’aggancio GNSS, inoltre è anche possibile intervenire manualmente sul valore inviato al DAC, funzione utile per esempio per velocizzare la taratura in caso di sostituzione del VCTCXO.

Tutte le suddette impostazioni possono essere salvate in EEPROM della CPU in modo che dopo pochi secondi da un successivo riavvio, lo strumento generi le frequenze con le impostazioni salvate.

Il LED giallo sul pannello visualizza il segnale in uscita PPS negato (LED spento = segnale alto), mentre il LED verde indica il funzionamento della correzione effettuata sul VCTCXO: LED spento = nessuna ricezione GPS o tDOP superiore a 5 (livello minimo per considerare il clock drift), LED lampeggiante = tDOP inferiore a 5, clock drift superiore a +/- 4ns ed è in atto una correzione della tensione del VCTCXO da parte del DAC, LED acceso fisso = clock drift inferiore a +/- 5ns.

A titolo informativo, nella schermata GPS sono visualizzati i seguenti valori dinamicamente aggiornati: numero dei satelliti utilizzati, il tDOP (time dilution of precision), il valore di clock drift espresso in ns (corrispondente ad uno scostamento dell’oscillatore di 0,026 Hz per unità), la tipologia di fixed nessuna, 2D o 3D, la posizione in longitudine e latitudine e i metri sul livello del mare, data e ora in UTC, e infine il valore della tensione inviata dal DAC al VCTCXO nel range da 0 a 4095 (in step di circa 0,8mv); il VCTCXO risponde alla tensione di controllo in modo negativo, quindi al salire della tensione la frequenza del VCTCXO scende.