annuncio

Comprimi
Ancora nessun annuncio.

Librerie Arduino per i Flex 6000

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • Librerie Arduino per i Flex 6000

    Da quando ho comprato il mio piccolo Flex 6300 sono stato subito attratto dalle grosse potenzialità offerte da questa radio ma anche frustrato dalla mancanza di qualsiasi collegamento fisico (tradizionale) verso l’hardware esistente. Mi riferisco a porte seriali, connettore Banda Data, ecc. Tutto ciò è praticamente assente nei nuovi Flex a dimostrazione che, nel bene o nel male, rappresentano un netto cambiamento di tendenza rispetto alle radio esistenti. Di fatto le funzionalità di controllo per porte seriali e band data sono ancora disponibili ma solo attraverso software aggiuntivi:
    - un driver di porte seriali virtuali, incluso in SmartSDR,
    - DDUTIL un software gratuito che consente di monitorare lo stato del Flex (e di molti altri dispositivi) e di pilotare altri software e/o schede hardware dotate di relè. In entrambi i casi, però, è indispensabile l’uso del pc.

    FlexRadio, oltre al software ufficiale, mette a disposizione alcune librerie software che consentono di interagire con la radio senza conoscere i dettagli del collegamento con il pc. Le Flexlib API, questa è la denominazione ufficiale delle librerie, danno la possibilità di controllare la radio utilizzando un linguaggio di programmazione di alto livello della piattaforma .Net, pertanto sono disponibili solo per il mondo Windows. Almeno per ora.
    Le librerie di collegamento si basano su protocolli di rete aperti che sono ben documentati sul sito wiki di FlexRadio, pertanto, facendo uso dei protocolli di rete, senza passare per le FlexLib, si riesce ad usare la radio senza il personal computer.
    Ovviamente al suo posto è necessario utilizzare dell’hardware in grado di stabilire un collegamento fisico (ethernet) con la radio ed in grado di analizzare il protocollo di rete. Da qui la mia idea di realizzare una libreria software per Arduino Due equipaggiato con Ethernet Shield originale (W5100) in grado di fornire le funzionalità di base realizzare il proprio band decoder, antenna switch o altri dispositivo connessi al Flex 6000.

    La libreria è composta da tre livelli (in pratica altre librerie):
    - La libreria base, che si occupa del collegamento fisico verso la radio ed implementa i due protocolli più importanti;
    - La libreria Band Data, che utilizza la libreria di base per informare l’utente che sono avvenuti dei cambiamenti all’interno della radio. Per ciascun cambiamento di stato, l’utente, attraverso il codice di Arduino, può attivare dispositivi hardware come relè, motori passo passo, display, ecc.
    - La libreria CAT-RS232 che implementa i comandi più utili del protocollo seriale Flex (Kenwood) e può essere utilizzata soprattutto per il collegamento ad amplificatori lineari che usano il protocollo Kenwood.
    Di seguito proverò ad illustrare il funzionamento delle tre librerie rimandandovi al sito iw7dmh.jmdo.com per ulteriori dettagli.

    Libreria di base
    Si tratta essenzialmente di un piccolo software che implementa lo SmartSDR Discovery Protocol. Il discovery protocol è un protocollo UDP (porta 4992) e viene utilizzato dai dispositivi FLEX 6000 per segnalare la propria presenza sulla rete. I software, o altri dispositivi che si vogliono collegare ad un Flex 6000, devono necessariamente catturare uno di questi pacchetti UDP e poi da esso estrarre tutte le informazioni necessarie per stabilire un collegamento.
    Nella modalità standard la mia libreria cercare di individuare il primo FlexRig disponibile nella rete, ed una volta individuato stabilisce una connessione TCP-IP sempre sulla porta 4992. Questo approccio è corretto se si dispone di un solo Rig Flex (come nel mio caso).



    Se in rete ci sono più Flex 6000 è necessario impostare manualmente il numero di serie della radio che si vuole connettere.



    Quando la radio è stato individuata, la libreria apre una connessione TCP/IP sulla porta 4992. Ogni aggiornamento sullo stato interno della radio si riflette sugli oggetti logici presenti nella libreria secondo lo schema seguente:



    Utilizzando la libreria, è possibile accedere allo stato interno della radio, senza doversi preoccupare del protocollo di rete.

    Molto bello, direte, ma a che serve? E’ necessario usare una delle altre due librerie per iniziare a divertirsi.

    Libreria Band Data
    Arduino DUE ha una quantità enorme di pin che possono essere utilizzati per pilotare relè, motori, servo, e così via. Inoltre, Arduino DUE supporta nativamente i protocolli I2C, SPI, RS232 e questo offre la possibilità di far interagire il Flex con l'hardware esistente come antenne, amplificatori, antenna switch e così via.

    La libreria Band Data si basa sulla precedente libreria ed è programmata per generare eventi in risposta ad un qualsiasi cambiamento di stato del Flex: frequenza, banda, ampiezza filtri, ecc. Ovviamente non dovrete preoccuparvi della comunicazione con la radio e non sarete costretti a gestire tutta la tua logica della vostra applicazione nel routine principale loop().
    Semplicemente, nella procedura di setup(), si deve registrare una funzione (handler) per ogni evento che è necessario gestire e la libreria farà il resto.
    Per usare correttamente questa libreria è necessario familiarizzare con gli oggetti e relativi nomi presenti all’interno di SmartSDR, ma sicuramente i possessori dei nuovi Flex sanno benissimo di che cosa stiamo parlando.

    In pratica è possibile gestire i seguenti eventi:

    Qualsiasi aggiornamento su Slice (solo # 0/1)
    Qualsiasi aggiornamento su Panadapter (solo # 0/1)
    Qualsiasi aggiornamento su Waterfall (solo # 0/1)
    Qualsiasi aggiornamento su Radio
    Qualsiasi aggiornamento su Transmission
    Qualsiasi aggiornamento su Interlock

    Dopo aver registrato il gestore di evento, la libreria esegue una chiamata ad esso, ogni volta che si verifica quel particolare evento. Nella routine di gestione è possibile attivare/usare qualsiasi hardware che è supportato da Arduino.

    Ultimo ma non meno importante, è il fatto che con la libreria di base si ha accesso a tutte le proprietà del Flex, e di fatto è possibile estendere il codice per aggiungere nuovi eventi basati su proprietà più specifiche. L'elenco completo delle proprietà che è possibile utilizzare è riportato di seguito:



    Libreria CAT-RS232
    La libreria CAT-RS232 si basa sulle due precedenti librerie. Al momento sono implementati i comandi che possono essere utili per la sincronizzazione di dispositivi esterni, per lo più amplificatori e controller di antenne dinamiche.
    Purtroppo non possedendo nessuno di tali dispositivi ho eseguito i test con altri software come Omnirig e LOG4om ed il funzionamento sembra corretto.

    Di seguito è riportato l'elenco dei comandi implementati:
    FA; - Reads Slice receiver A frequency
    FB; - Reads Slice receiver B frequency.
    IF; - Reads Transceiver Status
    FR; - Receive VFO
    FT; - Transmit VFO
    AI; - Auto Information Mode
    ZZFA; - Reads Slice receiver A frequency
    ZZFB; - Reads Slice receiver B frequency
    ZZIF; - Reads Slice Receiver A DSP filter

    Questo per ora è tutto.
    Se volete altre informazioni chiedete pure oppure visitate il sito iw7dmh.jimdo.com da cui è possibile scaricare il codice sorgente delle librerie.

    Vi lascio anche un video che fa vedere come si usano.

    73’ iw7dmh
    Enzo

    https://youtu.be/kcI3jm1opB0
    File allegati
    Ultima modifica di iw7dmh; 26-05-15, 23:32.
    Iscritto alla sezione ARI di LECCE www.arilecce.it

  • #2
    Re: Librerie Arduino per i Flex 6000

    Ciao Enzo,
    bellissimo lavoro! Complimenti! Purtroppo non posseggo un Flex, mi piacerebbe il 6500, ma i costi per quanto mi riguarda sono un pochino alti, ma potendone possedere uno immagino che lo rivolterei come un calzino, HI.

    Un sistema così con le librerie che hai sviluppato per Arduino ha una funzionalità infinita limitata solo dalla fantasia dell'utilizzatore. Già mi girano almeno una decina di idee per la testa...

    Ti seguo nei tuoi progressi.
    Buona continuazione.
    73 de IK0VVE Max
    www.ik0vve.net

    Commenta


    • #3
      Re: Librerie Arduino per i Flex 6000

      Complimenti davvero, Enzo, per le tue sperimentazioni. Immagino che il discorso delle librerie sia stato alla base della autocostruzione del tuo controller per il Flexradio 6300. Sarei curioso di vedere qui qualche foto del suo interno e leggere una descrizione delle parti che lo compongono e del suo funzionamento.
      Poi mi sa tanto che devo venire a trovarti a Lecce uno dei prossimi fine settimana..
      73 de IK7JWY Art
      https://www.qrz.com/db/IK7JWY
      http://www.infinitoteatrodelcosmo.it...rturo-lorenzo/

      Commenta


      • #4
        Re: Librerie Arduino per i Flex 6000

        Ciao Art,

        sì, le librerie sono alla base del mio controller Arduino.
        Qualche tempo fa', mentre ero impegnato nello sviluppo del controller, mi sono reso conto che attualmente non c'è alcuna possibilità di integrare i nuovi Flex, se non attraverso un personal computer, e in ottica "remotizzazione" questo non è il massimo.
        Quindi ho estratto le parti essenziali del mio codice per consentire un minimo di integrazione usando solo dispositivi hw (anche se pre-programmati). L'uso di Arduino Due si è reso necessaro perchè il codice che implementa il parser dei pacchetti TCP-IP deve essere il più veloce possibile. Al momento la scelta si sta rivelando giusta perchè non ho ancora raggiunto il limite del fantastico processore ARM Cortex-M3 e penso che potrò ancora chiedergli molto (facendo i dovuti scongiuri).
        Per quanto riguarda il mio controller appena avrò una versione stabile dell'intero progetto farò in modo di condividerla nel forum per fare in modo che l'esperimento sia ripetibile . Renderò disponibile solo il firmware compilato (.hex)
        In ogni caso, le librerie, rendono possibile qualsiasi esperimento simile al mio, pertanto anche implementare un qualcosa di molto vicino al FlexControl diventa un gioco da ragazzi.

        A me non piace implementare le interfacce utente anche perchè per progettare una buona interfaccia utente sono necessarie delle competenze molto specifiche. Mi diverto molto di più con il codice di back-end, le librerie appunto, e tutto questo è venuto fuori solo dal mio desiderio di studiare i protocolli di rete del Flex.

        Pertanto, sperimentatori dotati di Flex 6000, fatevi avanti!

        Per i prossimi fine settimana nessun problema, fammi sapere

        73' Enzo
        iw7dmh

        @Max: magari puoi evolvere il tuo sistema per interfacciarsi nativamente ai nuovi Flex, non è difficile
        Ultima modifica di iw7dmh; 27-05-15, 11:01.
        Iscritto alla sezione ARI di LECCE www.arilecce.it

        Commenta


        • #5
          Re: Librerie Arduino per i Flex 6000

          Innanzitutto complimenti per il tuo progetto.
          Io ho costruito assieme ad un amico il TRX SDR ADTRX2 di YU1LM e lo sto gestendo con il sw Power SDR 40 che gestisce anche l'oscillatore locale QRP2000 che equipaggia il chip Si570.
          Il mio obbiettivo sarebbe quello di renderlo indipendente dal pc.
          Pensi possa essere possibile sfruttando, col tuo permesso le librerie che hai fatto, gestire il mio HW?

          73 de IZ1QXJ
          Antonio
          Ultima modifica di swl-Adur; 27-05-15, 16:18.

          Commenta


          • #6
            Re: Librerie Arduino per i Flex 6000

            Ciao Antonio,

            le mie librerie sono on-line e possono essere scaricate liberamente, però nel tuo caso, non possono andare bene. Non conosco il ricevitore ADTRX2 ma penso che si tratti di un SDR di prima generazione e pertanto sei costretto a fare uso della scheda audio di un pc o di un altro tipo di convertitore D/A.
            Per quanto riguarda il controllo della radio, ti consiglio di dare un'occhiata al software che viene utilizzato per i due RTX di Tentec il Rebel 506 e ed il Patriot 507. Si tratta anche qui di codice per Arduino ed anche se il DDS è diverso, penso che si possa adattare.

            73' Enzo
            iw7dmh

            http://www.rkrdesignsllc.com/product...p-transceiver/
            Ultima modifica di iw7dmh; 28-05-15, 09:27.
            Iscritto alla sezione ARI di LECCE www.arilecce.it

            Commenta


            • #7
              Re: Librerie Arduino per i Flex 6000

              Ti ringrazio Enzo.
              Confermo, si tratta di un trx SDR di prima generazione che necessita di un ottima scheda audio esterna.
              Ho comprato un chipKIT Uno32 che viene usato nel sw che comandano le radio Tentec che mi hai indicato, cercherò di adattarlo.

              73
              Antonio

              Commenta

              Sto operando...
              X