E’ da un po’ che gira sul noto sito di aste online questa versione “particolare” di MMDVM, e incuriosito me ne sono fatta arrivare una dagli amici asiatici.
Di cosa si tratta? Beh a prima vista ricorda la MMDVM-PI ufficiale, ovvero la versione MMDVM senza ARDUINO DUE che si monta direttamente come shield su RASPBERRY PI, ma in effetti ci troviamo di fronte ad un altro progetto, più semplificato ma altrettanto efficace, la MMDVM_POG, che prende il nome dal suo ideatore SQ6POG.
Le differenze sostanziali fra le 2 board sono innanzitutto le CPU, tutte e 2 delle ARM CORTEX a 32 Bit (e ovviamente nessuna delle due monta cpu ATMEL AT91SAM3X8E da 84Mhz di ARDUINO DUE) che condividono il produttore della CPU (ovvero STMicroelectronics), ma modelli differenti; infatti la MMDVM-PI monta una performante cpu serie ST32F4xx da 180Mhz mentre la POG un ST32F105 dai modesti 72Mhz; l’altra differenza è sulla parte di filtraggio, la POG è molto più simile a una MMDVM SHIELD classica, ma tolto questo le differenze sono praticamente terminate.
La MMDVM_POG si presenta con una serie di led di stato che indicano, fra le altre cose, la modalità di funzionamento (DSTAR, DMR, YSF, P25) ad eccezione della nuova NXDN non ancora presente al momento della progettazione del pcb; oltre a questi è presente ovviamente un led di stato alimentazione, di attività sulla seriale, uno di ricezione, uno di trasmissione e quello dello stato del PTT. Sono presenti i soliti 2 trimmer per la regolazione hardware dei livelli di ingresso e di uscita, il pinout di tipo “dupont” con i collegamenti necessari per collegare uno o 2 RTX incluso RSSI (schema come da foto), un jumper per abilitare il bootloader del micro per programmarlo (che vedremo in seguito), sulla mia versione è stato anche installato un TCXO da 19,2Mhz per garantire la stabilità della cpu in condizioni di temperature alte.
Per quanto riguarda il firmware, ovviamente funziona con il classico MMDVM, ma se siete abituati a compilare lo sketch con la IDE di ARDUINO qui troverete qualche difficoltà dovuta alla compilazione per una piattaforma diversa. Intanto da premettere che la versione a bordo non era delle più recenti, e quindi era necessario un aggiornamento, e in giro purtroppo si trova poca documentazione sul come compilare e “flashare” MMDVM su ST32 e in particolare su ST32F105.
Per procedere all’aggiornamento fondamentalmente si possono fare 2 cose, la prima è trovare un precompilato e caricarlo su MMDVM il secondo è compilarselo su un raspberry utilizzando gli script di N4IRS MMDVM-INSTALL
INUTILE RICORDARE CHE NON SONO RESPONSABILE DI EVENTUALI DANNI PROVOCATI ALLA SCHEDA O AL RASPBERRY, AGITE SEMPRE RESPONSABILMENTE!
METODO 1 (COMPILAZIONE DA 0)
Nel GIT di MMDVM-INSTALL, oltre a dettagliate istruzioni su come compilare il firmware sono presenti anche dei precompilati che ha messo a disposizione N4IRS, purtroppo però i suoi precompilati sono comunque un po’ datati, e inoltre è configurato il TCXO da 12Mhz, quindi incompatibile con la scheda in mio possesso, quindi nel mio caso l’alternativa era solo ricompilare nel modo corretto.
La procedura descritta del GIT e che riporterò di seguito è valida su un immagine di PI-STAR qualsiasi, ma potenzialmente funziona su ogni distribuzione di raspbian, infatti gli script MMDVM-INSTALL recuperano tutto il necessario (o quasi) dalla rete, quindi crea l’ambiente con le toolchain per la compilazione.
Login su Pi-Star via ssh o console
sudo -s
rpi-rw
pistar-expand
reboot
Login su Pi-Star via ssh o console
rpi-rw
sudo -s
apt-get update
cd /srv
git clone https://github.com/N4IRS/MMDVM-Install.git
cd /srv/MMDVM-Install/STM32-DVM
chmod +x *.sh
./required-libs.sh
./get-src.sh
In questa fase vi descriverò la funzione di ogni comando che lanciate, in modo da avere la congnizione di quello che state facendo senza fare copia incolla come zombie, ma se non volete saperne nulla fate pure un copia incolla delle righe sora!
Dovete loggarvi all’interno del raspberry con protocollo SSH, se usate windows scaricate il client più noto che è Putty, vi rcordo l’user di default è pi-star e la password raspberry.
con sudo -s passate a utente root, con rpi-rw abilitate l’immagine pi-star in scrittura (disabilitata di default), poi pistar.expand vi allargherà il disco se non l’avete mai fatto prima (importante perchè lo spazio non è sufficiente al nostro scopo senza), a questo punto fate un riavvio con reboot e riloggatevi nuovamente a sistema riavviato, nuovamente riattivare la scrittura, ridiventate root e fate un apt-get update che allinerà gli aggiornamenti eventuali dei pacchetti dei repository con il vostro raspberry e spostatevi con cd /srv nella directory appunto srv e clonate il GIT con git clone, vi spostate nella directory del git appena clonato con cd /srv/MMDVM-Install/STM32-DVM che è quella che contiene il necessario per la nostra piattaforma, se non avete git installato (difficile perchè PI-STAR la tiene di default) con apt-get install git.
A questo punto con chmod +s *.sh rendere eseguibili tutti i file con estensione sh che sono shell script e lanciate ./required-libs.sh e ./get-src.sh, il primo installerà le librerie necessarie alla piattaforma da compilare, il secondo scarica dai repository i sorgenti (di solito i più recenti) di MMDVM.
systemctl stop pistar-watchdog
systemctl stop mmdvmhost
Con questi 2 comandi stoppate MMDVMHOST per liberare la seriale in uso sulla GPIO e disattivate il watchdog del pi-star per evitare che tenti di riavviare MMDVMHOST.
cd /srv/MMDVM
nano Config.h
A questo punto posizionatevi nella directory con i sorgenti di MMDVM e con l’editor nano (va bene anche pico o vi vim quello che preferite e che sapete usare meglio) e modificate il file per farlo assomigliare a questo:
// Allow for the use of high quality external clock oscillators
// The number is the frequency of the oscillator in Hertz.
//
// The frequency of the TCXO must be an integer multiple of 48000.
// Frequencies such as 12.0 Mhz (48000 * 250) and 14.4 Mhz (48000 * 300) are suitable.
// Frequencies such as 10.0 Mhz (48000 * 208.333) or 20 Mhz (48000 * 416.666) are not suitable.
//
// For 12 MHz
// #define EXTERNAL_OSC 12000000
// For 12.288 MHz
// #define EXTERNAL_OSC 12288000
// For 14.4 MHz
// #define EXTERNAL_OSC 14400000
// For 19.2 MHz
#define EXTERNAL_OSC 19200000
// Allow the use of the COS line to lockout the modem
// #define USE_COS_AS_LOCKOUT
// Use pins to output the current mode
#define ARDUINO_MODE_PINS
// For the original Arduino Due pin layout
// #define ARDUINO_DUE_PAPA
// For the ZUM V1.0 and V1.0.1 boards pin layout
// #define ARDUINO_DUE_ZUM_V10
// For the SQ6POG board
#define STM32F1_POG
// For the SP8NTH board
// #define ARDUINO_DUE_NTH
// For ST Nucleo-64 STM32F446RE board
// #define STM32F4_NUCLEO_MORPHO_HEADER
// #define STM32F4_NUCLEO_ARDUINO_HEADER
// Use separate mode pins to switch external filters/bandwidth for example
// #define STM32F4_NUCLEO_MODE_PINS
// Pass RSSI information to the host
#define SEND_RSSI_DATA
// Use the modem as a serial repeater for Nextion displays
// #define SERIAL_REPEATER
#endif
Come si nota ho decommentato l’oscillatore a 19Mhz e decommentato la board STM32F1_POG, ovviamente se avete un oscillatore diverso potete modificarlo.
A questo punto salvate e uscite.
Sul PI-STAR non è presente gcc-arm-none-eabi necessario per la compilazione, quindi lanciate il seguente comando per installarlo:
apt-get install gcc-arm-none-eabi
A questo punto procedete con la compilazione:
make -f Makefile.CMSIS
Se non vi ritorna erroti dovrebbe aver creato in /usr/src/MMDVM/bin i file: mmdvm.dis, mmdvm.elf, mmdvm.hex, mmdvm.map.
A questo punto se tutto è andato a buon fine vi basterà unire JP1 sulla scheda e togliere e ridare tensione alla scheda (potete con attenzione sollevarla leggermente dal connettore sulla GPIO e ricollegarla facendo MOLTA ATTENZIONE!), quando è in BOOTLOADER MODE i led ACT e DMR sono illuminati, in questa modalità lanciare il seguente comando:
program-STM32_DVM_PiHat
Se tutto è andato a buon fine vedrete la percentuale di programmazione andare avanti e un led lampeggiare sulla board, al 100% vi basterà spegnere il raspberry, togliere il ponticello su JP1 e riavviare la scheda, il gioco è fatto.
METODO 2 (FLASH PRECOMPILATO)
La seconda possibilità è di usare il precompilato fatto da me, la cosa è molto più semplice:
rpi-rw sudo -s cd /root wget https://www.iz8gur.it/downloads/mmdvm_pog/mmdvm.hex stm32flash -w mmdvm.hex -v /dev/ttyAMA0
Ricordatevi sempre di ponticellare JP1 prima di aggiornare e rimuoverlo dopo averlo fatto e di fare un bel riavvio alla fine.
La versione attuale del firmware precompilato è:
20200513 GitID: 1332c6544b4bc4e8b6a0254b6d7fc0e4a1e3ee98
PER CONCLUDERE
Conviene acquistarla? Funziona bene?
La risposta secondo me è: SI!
Anche se le performance della CPU sembrano minori di ARDUINO 2 bastano e avanzano per il suo scopo, e non dobbiamo dimenticare che la scheda mi è costata 35 EURO SPEDITA quindi più che conveniente rispetto all’acquisto di arduino e della shield mmdvm, e che le dimensioni di tutto il sistema si rimpiccioliscono notevolmente!
Unico ovvio neo che ho riscontrato è il dover ponticellare JP1 per il flash, questo rende gli aggiornamenti impossibili da remoto senza intervento fisico sul luogo, a differenza di arduino due facilmente riprogrammabile da remoto.
Grazie per l’attenzione, alla prossima!
Bell’articolo, complimenti.
Ciao Roberto
Grazie al tuo articolo s’incomacia a parlare di questa “sconusciuta.
Ho provato a configurarne una ma mi funziona solo la ricezione. Infatti
dal pin TX non esce nulla, completamente muta. Probabile che io abbia
avuto qualche scambio nei collegamenti oppure potrebbe essere giunta
in queste condizioni.
Cosa si potrebbe fare, su quale componenente intervenire.
Nel frattempo ne ho comandato un’altra, quale precauzioni prendere?
Condensatori sulle linee RX/TX, quale tipo? dove inserirli.
Grazie per l’eventuale aiuto?
Pasquale HB9IRB
Ciao Pasquale,
innanzi tutto grazie per aver letto il mio articolo (anche se in realtà non sono Roberto hi).
E’ capitato anche a me, specialmente su alcune board dove al posto del solito amplificatore operazionale MCP602 della microchip ci sta un texas 22272c.
Di solito sono saldature fredde, il motivo del cambiamento è dettato dal fatto che in alcuni casi con un MCP602 invertendo TX e RX sbadatamente su alcune radio yaesu (FT-8×7) l’operazionale veniva danneggiato provocando perdite di pacchetti sporadiche specialmente in DMR, tutto questo però a discapito delle performance, il texas ha un livellod i amplificazione più basso (non sempre un male però!).
Prova a dissaldare, ripulire bene le piazzole e risaldare l’operazionale, o in alternativa piazzaci un 602.
73 da Fulvio (IZ8GUR)
Ciao Fulvio,
grazie per l’immediata ed esaudiente risposta. Dunque non ho provato ha riparare la POG ma me la hanno
comunque rimborsata. Ne frattempo sono riuscito a configurare una DUPLEX (detta la carnuta) la a quale
mi consente di sperimentare PI-STAR ma solo con 10mw, anzi penso molto di meno in quanto con la DV4MINI mi allontanavo fino ad un KM mentre questa con antenna esterna soli 100 Mt. Sai forse come si gestisce la potenza d’uscita oltre al settaggio “RFlevel” il quale non comparta cambiamenti.
Dunque mi sono giunte 2 POG ma non ho voluto rischiare di difettarle. Ti volevo chiedo se c’è qualche forma di protezione da inserire sui collegamenti con la radio. Ho sentito parlare di condensatori di accoppiamento ma non mi è chiaro il valore e dove inserirli. Tu adotti di solito questi accorgimenti?
Ti ringrazio in anticipo per aventuali suggerimenti.
73 de Pasquale HB9IRB
Ciao Pasquale,
in realtà i 2 adf7012 sono in grado di erogare fino a 25mW, non so quanti Mhz di separazione usi tu ma considera anche che, se usi la scheda in duplex, 5Mhz di separazione bastano appena, questo potrebbe comportare un lieve abbattimento che ne penalizza le prestazioni, occhio a non sforare in banda sat con l’ultimo firmware (1.4.14) altrimenti smette di funzionare.
Non ci sono modi di aumentare la potenza via software, il 100% equivale al massimo che l’adf in quelle condizioni e su quelle frequenze può fare.
Non ho mai adottato particolari precauzioni, qualcuno usa condensatori di accoppiamento ma per ridurre al minimo disturbi e rumori di fondo più che per proteggere.
Al massimo si usano trimmer sulle uscite per ridurre livelli troppo alti di alcune radio.
Ciao Fulvio, e sempre grazie x la gentile cooperazione.
Dunque la duplex l’ho provata addirittura come semplice hotspot simplex su 433.500 (non dovrebbe essere
il tratto inibito) e confrontantola sempre con la “fatidica” DV4mini non sembra neanche lontanamente che eroghi
la stesa potenza. Ma come ripeto devo fare prove approfondite e con qualche accrocco cercare di misurare la potenza. (conosci qualche metodo?)
Altro tema:
finalmente il desiderato hotspot di potenza cn la POG é operativo, collegata ad un FT-857D mentre ho qualche difficoltà con tutti gli altri Kenwood. Si ho usato 2 poliestere da 10mf sulle linee audio anche se come tu hai
chiarito in materia di protezione fanno ben poco.
Dunque sono difronte all’acquisto di un’altro Rasperry PI3 B (….o B+) secondo la tua modifica conviene rischiare col B+ o meglio andare sul sicuro con l’ormai collaudato PI3 B? Visto che come tu hai evidenziato non c’é stata molta miglioria nella nuova release.
Saluti
Pasquale
Beh, Pasquale, considera anche che ci sono molti fattori che possono influenzare l’uscita di potenza, i 25mW sono teorici comunque, considera che lo stesso ADF lavora a largo spettro e non eroga la stessa potenza su tutte le frequenze, considera che in UHF erogherebbe il massimo della potenza solo se alimentato a un voltaggio adeguato e con un impedenza pressochè perfetta.
In virtù di questo, considera sempre che è una realizzazione cinese che non brilla di perfezione, che le antenne sono ridicole (qualitativamente e come performance).
Non conosco sistemi efficaci fai da te per misurare l’uscita, io la collegherei direttamente all’analizzatore di spettro per valutare la reale uscita.
Per l’altro tema, che kenwood usi?
il B+ funziona bene levando quel pin, io all’epoca lo presi perchè paradossalmente su amazon costava meno il b+ che il b, non ho altre motivazioni, quindi puoi scegliere quello che preferisci.
Buongiorno, mi è sorto un problema alla mmdvm pog, non si vede piu il firmware, come se non la vede e riscalda molto….non riescco neanche ad aggiornarlo o ricaricare il firmware,,,,,,scheda bruciata????
Ciao, la scheda riscalda anche senza attaccare nulla sulla porta radio? Fa la normale sequenza di boot (staging dei led)? Nel caso scaldi e non si accende alcun led verificherei eventuali corti sul pcb. in ultimo proverei a programmarlo con programmatore st-link (se necessiti del dump posso fornirtelo). E’ la prima volta che sento di pog che si surriscalda, a me accadde solo quando ho immesso nella RSSI (che va diretta nel micro) una tensione troppo alta (5V) e ha iniziato a surriscaldarsi, ma non si è danneggiata.
La scheda riscalda anche senza attaccare nulla sulla porta radio.non fa la normale sequenza di boot (staging dei led)? prima funzionava con raspberry b
poi ho voluto provare il b+ ma non sapevo della modifica,
ho rimesso il raspberry b normale e niente più
mi dai info programmatore st-link e se mi forniscil dump .
nella schermata del software pi-star sulla sinistra non si vede il sfirmware, come se non riconoscesse la scheda.
Io credo sia danneggiato il microcontrollore, in ogni caso stasera ti faccio il dump.
Considera che ho un stm32f105 funzionante e già programmato, se sei attrezzato per la sostituzione.
Il programmatore lo trovi su ebay, aliexpress, amazon, basta cercare STLINK2.
Sono attrezzato per la sostituzione.
Mi fai sapere per il stm32f105?
Ciao, contattami attraverso il modulo dei contatti che ti invio lo stm32f105, purtroppo non riesco a leggerlo con stlink
Ciao Roberto
Devo riparare questa scheda , hai lo schema da passarmi ?
Grazie , 73 , Maurizio
i3ybd
Ciao, puoi visitare il GIT del progetto a questo link https://github.com/wojciechk8/MMDVM_pog
Li trovi lo schema fra le altre cose.
73
Grazie ….
73, I3YBD Maurizio
Ciao
La versione pre-compilata di 20200513 è a 12 MHz o 19,2 MHz?
Ho provato a compilare usando pi-star secondo i passaggi forniti, ho modificato Config.h, ma alla fine non è stato installato, quindi ho installato il file precompilato.
Grato per l’aiuto e le congratulazioni per il sito.
Fabio PY2LY