Sperimentazione LoRa: una nuova feature da lungo attesa… il Quick Setup !
Il protocollo LoRa come noto è una metodica estremamente flessibile che si presta a tantissime modalità di uso… una conseguenza certamente non gradevole di questa flessibilità è purtroppo la complessità di quelle applicazioni che tentano di rendere utilizzabili le tante funzioni e modalità di lavoro che il protocollo consente.
A questa complessità di “uso” si aggiunge una ulteriore variabile che è la disponibilità di oramai tantissime soluzioni HW disponibili che pur assomigliandosi notevolmente le lune alle altre , mantengono purtroppo delle considerevoli differenze tra loro.
Questa situazione fa si che per cercare di fare un SW che possa “girare” su tante diverse piattaforme HW, la dimensione del SW tende a crescere portando a cozzare con una delle tipiche limitazioni di dispositivi basati su microcontrollori molto compatti e che è la dimensione della memoria non volatile disponibile su questi dispositivi (tipicamente di tipo flash).
Un ulteriore fattore che penalizza questa ultima limitazione è la volontà di consentire una modifica/aggiornamento del SW installato su un certo dispositivo , utilizzando la funzione OTA (Over The Air) che richiede uno spazio in flash circa doppio rispetto al caso normale: questa funzione è utilizzatissima in quanto consente di caricare una nuova versione di SW su un dispositivo via radio, quindi senza bisogno di accedere fisicamente, per es. con un cavetto usb, al dispositivo; è il caso questo di tutte quelle installazioni “remote” in cui un dispositivo LoRa è installato per es. su una montagna o semplicemente su un terrazzo.
Le soluzioni che in genere si scelgono per aggirare questi ostacoli sono molteplici: per le applicazioni LoRa la più classica soluzione è creare per es. due versioni SW diverse che consentano di usare o solo la funzione Tracker, o solo la funzione iGate...
Una altra classica modalità per aggirare gli stessi ostacoli è quella di realizzare la “customizzazione” di un dispositivo usando un file di configurazione e sfruttando per il caricamento sul dispositivo un collegamento USB in modo da realizzare l’upload di questo file di configurazione nella memoria non volatile: questa soluzione oltre ad essere complessa a causa dei sempre complicati formati dei files di configurazione, richiede comunque di “caricare” sul dispositivo del nuovo codice il che può avvenire in genere via USB o in maniera remota ma richiedendo una modalità di caricamento del SW di tipo OTA.
Con il SW LoRa Sarimesh Core che fin dall’inizio ha sempre mirato ad una gestione dei dispositivi esclusivamente tramite interfaccia grafica (GUI) ovviamente abbiamo dovuto affrontare esattamente tutte queste sfide…. il nostro approccio è stato quello innanzitutto di NON aver bisogno di versioni SW diverse per un certo dispositivo fisico per utilizzare tutte le funzionalità principali quali ad es. le funzioni di Tracker, iGate, o KISS TNC adapter.
La seconda scelta è stata quella di avere fin dall’inizio la possibilità di effettuare il caricamento di una nuova versione SW tramite OTA, in modo da evitare di dover essere presenti on site in caso di applicazioni remote.
La terza scelta è stata quella di evitare di doversi giostrare con dei files di configurazione difficili da gestire e che richiedono un upload esplicito sul dispositivo target.
Come conseguenza di queste scelte che ancora oggi conserviamo, l’unica possibile soluzione per supportare diversi tipi di dispositivi è quella di avere delle versioni SW diverse per diversi dispositivi o diverse macroconfigurazioni di un certo dispositivo.
Il vantaggio di un tale approccio è che una volta individuato un certo dispositivo fisico su cui installare il SW, viene individuata la relativa versione SW da utilizzare, senza ulteriori esigenze da verificare, che non siano ovviamente parametri operativi o dati di customizzazione delle applicazioni.
Resta però ovviamente aperto sempre il problema di gestire la “complessità funzionale” a cui si accennava all’inizio di questa chiacchierata e che ha a che vedere con le varie applicazioni possibili del dispositivo scelto e della versione di SW installata.
Finora il SW LoRa Sarimesh Core forniva e continuerà a fornire una serie di diverse “schermate di configurazione” orientate a diversi aspetti funzionali di un dispositivo…. quello che abbiamo ritenuto di fare è aggiungere a queste schermate una nuova schermata che abbiamo battezzato di “Quick Setup” il cui scopo è quello di fornire la possibilità di impostare alcune macro configurazioni operative di uso frequente introducendo un limitattissimo numero di parametri di customizzazione, ed impostando per tutti gli altri parametri dei valori di “default” di uso comune in modo da avere la garanzia che tutte le varie impostazioni siano congruenti tra loro senza bisogno di andare a spulciare in svariate pagine per settare una miriade di diverse opzioni spesso abbastanza complicate da decifrare nel loro significato.
L’ultima novità che abbiamo pensato di introdurre è di suggerire come modalità operativa preferred, la modalità tramite “Smart Phone” : in pratica dopo l’installazione iniziale del SW realizzata tramite il classico tool di caricamento del processore ESP32 tramite collegamento USB, i parametri di default sono stati pensati per consentire di rendere operativo un dispositivo usando preferibilmente uno smartphone questo consente di risolvere in maniera trasparente anche il setup del collegamento al dispositivo sfruttando la rete WiFi di casa con le sue specificità.
Ovviamente resta sempre possibile utilizzare un dispositivo secondo le tradizionali modalità di gestione e di collegamento.
Nel seguito di questo articolo andremo a vedere insieme come rendere operativo un classico TTGO T-Beam vr. 1.1 , forse il dispositivo più diffuso per l’uso come LoRa APRS, sfruttando la nuova funzionalità di Qucik Setup .
Il primo passo è procurasi il tool di caricamento del SW reso disponibile dal costruttore del processore ESP32 utilizzato: lo si può scaricare dal seguente link: https://www.espressif.com/en/support/download/other-tools se non già disponibile sul computer da cui effettuare l’installazione del SW.
Per l’utilizzo di questo tool esistono svariati articoli su internet, come pure si possono trovare istruzioni dettagliate a partire dalla pagina 40 del seguente documento relativo al SW Sarimesh: LoRaTracker manual vr 5.1 .
E’ poi necessario verificare la versione del dispositivo HW su cui si vuole installare il nostro SW: in genere per i dispositivi TTGO T-Beam è presente una piccola etichetta sul PCB che riporta tale numero di versione: verifichiamo che la versione sia la 1.1 .
Il passo successivo è procurarsi l’immagine binaria del SW da installare: per tutti i dispositivi supportati dal SW Sarimesh LoRa Core Vr. 5.x esistono due tipi di immagini: una immagine “full” necessaria per il primissimo caricamento sui dispositivi tramite cavetto USB, ed una immagine “OTA” sufficiente per effettuare i successivi aggiornamenti via OTA.
Entrambe le immagini sono costituite da un unico file il cui nome termina con l’estensione .bin e che richiama il tipo di dispositivo per cui è adatta.
Nel nostro caso trattandosi di una prima installazione del nostro SW e volendola installare su un TTGO T-Beam Vr. 1.1 scarichiamo l’immagine dal seguente link: full_flash_image_ttgo_1_1_20240702_1650.bin
Seguiamo quindi la procedura di caricamento dettagliata nel riferimento del Manuale prima indicato e riportata alle pagine 42 e successive.
Una volta caricata l’immagine SW sul dispositivo, riavviarlo e seguire sul display del dispositivo le varie schermate che si succederanno … nel frattempo armati del proprio smartphone provare ad accedere ad una nuova rete WiFi: noterete la presenza di una nuova rete il cui SSID inizia per ESP32 seguita da una serie di lettere e numeri… è la rete WiFi che il nuovo dispositivo vi offre per effettuare il setup iniziale completo del dispositivo: provare ad accedere a questa rete… vedrete che automaticamente comparirà la schermata di Welcome del nuovo SW che avete installato sul dispositivo e che trovate nella figura a seguire:
premendo il tasto “continue” verrà presentata una nuova schermata che trovate nella figura seguente:
seguendo la voce “Quick Setup” indicata dalla freccia rossa verrà presentata la nuova schermata di “Quick Setup” la quale consente di inserire i pochi dati essenziali per personalizzare il nuovo dispositivo ed usarlo come desiderato.
La pagina è stata resa autoesplicativa con delle note poste a fianco delle varie voci richieste con degli esempi relativi; sono anche presenti due links utili per recuperare rapidamente le coordinate geografiche della posizione home del dispositivo ed il codice di accesso richiesto per inviare i propri spots sulla rete APRS-IS.
E’ poi presente una finestrella per selezionare la modalità di funzionamento voluta ( ad. es. iGate o Tracker, etc).
Seguono due ulteriori caselle che permettono di selezionare due parametri utili per poter osservare i dati dettagliati relativi agli spots emessi dal proprio dispositivo utilizzando la strategia del “Magic Tag” illustrata negli articoli ad hoc che trovate su questo sito e pubblicati qualche giorno fa.
Tutti i dati sono necessari per poter effettuare il setup del dispositivo , eccetto gli ultimi due relativi al meccanismo di Magic Tag.
Prima di premere il tasto “GO !” ed effettuare la configurazione è utile dare uno sguardo alle indicazioni presenti dopo il tasto: rappresentano le features supportate dall’immagine SW installata sul dispositivo… conviene verificare se coincidono con quanto ci si sarebbe aspettato…
Una volta effettuata la configurazione con il tasto “GO !” è possibile immediatamente rendere operativo il dispositivo facendolo ripartire con un reboot…
Il dispositivo risalirà presentando la schermata di welcome e si potrà accedere sempre tramite smartphone o anche tramite PC a tutte le normali schermate di gestione del SW Sarimesh illustrate in altri articoli o sul manuale prima indicato … rispetto alla versione 5.1 illustrata in precedenti articoli noterete che è stata semplificata significativamente la schermata principale del SW rimuovendo da tale pagina tutta una serie di chiavi poco utili per l’uso quotidiano della GUI; accedendo dalla prima pagina alla voce “EXPERT SETUP” si troverà la classica pagina completa di tutte le funzioni disponibili.
A questo punto il dispositivo dovrebbe essere già operativo nella modalità scelta e con i parametri di customizzazione scelti… tutti gli altri parametri quali ad es. quelli relativi alla sezione LoRa e APRS sono preimpostati ai valori generalmente utilizzati nella stragrande maggioranza delle installazioni attualii di LoRa APRS, adattate al tipo di funzionamento ( es. iGate o Tracker, etc.) selezionato.
Volendo è possibile vedere tutte le impostazioni e modificarle accedendo alle varie pagine della interfaccia GUI come già si faceva con le versioni SW precedenti all’attuale 5.3.
Con la nuova versione SW Vr. 5.3 sono state introdotte alcune nuove funzionalità oltre a quella del Qucik Setup … una delle nuove funzionalità introdotte è quella della “SW Build Definition”, accessibile già direttamente dalla pagina di quick setup.
Questa funzione consente di conoscere dettagliatamente, per chi ne fosse interessato, le features supportate dall’immagine SW installata sul dispositivo, quali ad es. il tipo di chipset LoRa supportati, la presenza di una o due radio LoRa, il supporto per alcuni sensori quali ad es. il BME680, l’SPS30, etc. Questi dati spossono essere interessanti per es. per poter aggiungere ad un certo dispositivo ad es. il classico TTGO T-Beam dei sensori o per poter attivare delle particolari funzioni quali ad es. il LoRa Messaging o particolari funzioni di debug.
Nei prossimi giorni renderemo disponibili su questa pagina ulteriori immagini SW per altri dispositivi supportati dal nostro SW in versione 5.3.
Immagini di primo caricamento del SW Sarimesh Core Vr. 5.3 disponibili:
- full_flash_image_ttgo_1_1_20240702_1650.bin adatta al dispositivo TTGO T-Beam Vr. 1.1
- full_flash_image_heltec_tracker_20240702_1655.bin adatta al dispositivo Heltec Tracker vr. 1.1
- full_flash_image_LoRa_Tracker_compact_20240703_1343_FL.bin adatta a dispositivi Sarimesh LoRa Tracker Compact (no FRAM)
- full_flash_image_LoRa_Tracker_compact_20240703_1345_FR.bin adatta a dispositivi Sarimesh LoRa Tracker Compact (con FRAM)
- full_flash_image_LoRa_Tracker_Sarimesh_MiniV2_20240703_1509.bin adatta a dispositivi Sarimesh LoRa Tracker Mini versione 2023
- full_flash_image_LoRa_Tracker_Sarimesh_Mini_20240703_1817.bin adatta a dispositivi Sarimesh LoRa Tracker Mini versione 2020
- full_flash_image_LoRa_Tracker_Sarimesh_Supermini_20240703_1942.bin adatta a dispositivi Sarimesh LoRa Tracker SuperMini
Per qualsiasi ulteriore informazione potete contattarci al solito indirizzo info@sarimesh.net
Interessante, ma mi domandavo, visto che uso solo Linux, e visto che non mi sembra ci siano tools ufficiali per fare il flash dell’esp su questo OS, se si puo’ caricare il firmware via il web tool di ESP: https://web.esphome.io/ ?? Grazie
ciao Marino, grazie per l’idea del web.esphome.io è un interessante stimolo da approfondire…
Riguardo al primo caricamento via linux in realtà esiste un semplicissimo tool per fare il caricamento direttamente da console ed è esptool.py.
Lo puoi trovare e scaricare da https://github.com/espressif/esptool mentre per l’installazione basta seguire la documentazione ufficiale disponibile in https://docs.espressif.com/projects/esptool/en/latest/esp32/
Una volta installato il tool aprire una console e digitare il seguente comando:
– per l’Heltec Tracker che è basato su ESP32-S3:
esptool.py –chip esp32s3 –port /dev/ttyACM0 –baud 921600 –before default_reset –after hard_reset write_flash 0x0 full_flash_image.bin
– per il TTGO che è basato su processore ESP32 normale
esptool.py –chip esp32 –port /dev/ttyACM0 –baud 921600 –before default_reset –after hard_reset write_flash 0x0 full_flash_image.bin
Ovviamente l’ultimo parametro va sostituito con il nome dell’immagine .bin che si vuole caricare e che deve essere ovviamente una immagine di tipo full che include al suo interno tutte le sezioni richieste relative ai moduli che costituiscono l’immagine, compreso il littleFS.
Il parametro /dev/ttyACM0 va sostituito con il device con cui il dispositivo viene visto dal PC linux.
E’ importante che NON siano aperte altre applicazioni che usano il device seriale esposto dal dispositivo , per es. platformIO.
Una funzione interessante che è possibile poi usare da browser è accessibile tramite la voce di menu “SERIAL CONSOLE DISPLAY” e rappresenta l’uscita sulla console USB del dispositivo collegato al computer che mostra tutta la diagnostica dello startup e del debug del dispositivo.
Cordiali 73
Michele I8FUC
Grazie Michele,
Ho usato il tool che hai suggerito e ho caricato il FW sul TTGO T-Beam. Ho pero’ un problema, cerco di attivarlo come iGate, ma non riesco a attivare la rete, non si collega al router, e attiva il suo access point. Non capisco cosa possa creare il problema, ho provato sia settando il DHCP che indirizzo statico, ma non si collega mai.
qui sotto quello che ricevo sulla console seriale.
Hai qualche suggestione per risolvere il problema? mi sfugge qualcosa?
(reconnectAprsis)(C0) reconnectAprsis: Failed to connect to rotate.aprs2.net:14580… trying to recovery
……….(reconnectAprsis)(C0) reconnectAPRS-IS: APRSIS connecting…
(reconnectAprsis)(C0) reconnectAprsis: Failed to connect to rotate.aprs2.net:14580… trying to recovery
triggerError: ERROR -> No network
(reconnectAprsis)(C0) reconnectAPRS-IS: APRSIS connecting…
(reconnectAprsis)(C0) reconnectAprsis: Failed to connect to rotate.aprs2.net:14580… trying to recovery
(reconnectAprsis)(C0) reconnectAPRS-IS: APRSIS connecting…
(reconnectAprsis)(C0) reconnectAprsis: Failed to connect to rotate.aprs2.net:14580… trying to recovery
triggerError: ERROR -> No network
(reconnectAprsis)(C0) reconnectAPRS-IS: APRSIS connecting…
(reconnectAprsis)(C0) reconnectAprsis: Failed to connect to rotate.aprs2.net:14580… trying to recovery
Correggo, funziona adesso, si abilitava il flag “standalone”
… perfetto !!!!
se provi a spulciare nel manuale trovi varie risposte…
non tralasciare di fare il commit dopo aver fatto delle modifiche alla configurazione perchè altrimentii le modifiche vanno perdute con il reboot by design…
ciao Marino… è tutto normale… ti spiego: il dispositivo può operare in due diverse modalità per quanto riguarda gli aspetti di networking: il default è quello di operare in modalità “Standalone” ossia isolato da internet… in questa modalità si attiva un accesspoint che come hai visto rende molto agevole la configurazione iniziale del dispositivo … in effetti questa è la modalità di operation per quanto riguarda il networking anche durante il funzionamento come tracker in quanto quando uno è in giro ovviamente non ha internet… la seconda modalità ovvero quella NON standalone è invece quella che si rende necessaria per es. per usare il dispositivo come iGate… a questo scopo il dispositivo va predisposto per collegarsi ad internet in “upstream” ovvero verso l’alto via nel caso specifico WiFi… bisogna allora impostare la connessione wifi… allo scopo devi andare nella pagina “EXPERT SETUP” –> “NETWORK CONFIGURATION” e comparirà una pagina in cui attendendo qualche secondo vedrai comparire le reti WiFi presenti in casa…. selezioni la rete a cui vuoi collegarti e introduci la password relativa… lascia l’opzione di collegamento tramite DHCP… salva la configurazione… a questo punto hai impostato il collegamento “in upstream” ma il dispositivo è ancora nella modalità di funzionamento “Standalone” ovvero isolato da internet… per attivare la connessione che hai settato segui il path seguente: EXPERT SETUP” –> “OPERATION MODE SETTINGS” nella pagina che compare deseleziona la casella “Standalone” e salva la pagina con il tasto SAVE…. a questo punto i settaggi per usare la rete sono OK… solo che ( come puoi semmai approfondire in un articolo che poi ti segnalo a seguire) la configurazione che hai salvato è ancora “TEMPORANEA” per renderla “DEFINITIVA” bisogna effettuare l’operazione di “COMMIT” che congela nella memoria non volatile del dispositivo la configurazione che hai costruito e la rende attivabile al prossimo reboot… per fare il commit sempre dalla pagina dove hai trovato la casella standalone, verso il basso seleziona la casella “commit” e fai SAVE… a questo punto la configurazione è stata resa permanente… fai il reboot e dovresti vedere che va su la connessione verso internet… per verificare lo stato della connessione puoi andare nella pagina di “DASHBOARD” e verso la sommità troverai le indicazioni dello stato di connessione verso internet…
Il meccanismo di configurazione è un poco articolato per vari mmotivi che ho descritto in un articolo passato che ti segnalo e dove puoi approfondire il discorso… https://www.sarimesh.net/2023/10/31/sperimentazione-lora-familiarizziamo-con-la-nuova-release-sw-5-x/
verso metà pagina trovi spiegato il tutto…
ciao .. fammi sapere se hai altri problemi…