MeshCore CLI come leggere i valori neighbors

Chi utilizza MeshCore tramite interfaccia CLI (Command Line Interface) avrà probabilmente incontrato il comando:

neighbors

A prima vista il risultato può sembrare poco comprensibile: una serie di identificativi seguiti da numeri positivi o negativi, ad esempio:

In realtà queste informazioni sono molto utili perché permettono di avere una prima indicazione sui nodi MeshCore ricevuti direttamente via radio e sulla qualità con cui sono stati ascoltati.

Come è composta una riga

Prendiamo come esempio il terzo valore dell’elenco:
D2CE818E:2599:50

La riga è composta da tre valori separati dal carattere:
HASH : AGE : SNR
Vediamoli singolarmente.

1. HASH – Identificativo del nodo
D2CE818E
Il primo valore rappresenta l’identificativo (hash) del nodo MeshCore presente nella tabella dei neighbor.

È quindi il riferimento che consente di distinguere quel dispositivo dagli altri nodi ricevuti.

2. AGE – Quanto tempo fa è stato ricevuto
2599
Il secondo valore indica il tempo trascorso dall’ultima ricezione del neighbor, espresso in secondi.

Nel nostro esempio: 2599 secondi ≈ 43 minuti

Un valore relativamente piccolo indica quindi che il nodo è stato ascoltato recentemente; un valore elevato significa invece che è trascorso più tempo dall’ultima ricezione.

Eseguendo nuovamente il comando neighbors, questo valore può naturalmente cambiare.

3. SNR – Qualità del segnale ricevuto

Il terzo valore:

50
rappresenta l’SNR (Signal-to-Noise Ratio) memorizzato da MeshCore. C’è però un dettaglio importante: il numero mostrato dalla CLI non deve essere interpretato direttamente come dB.

Il valore è rappresentato in quarti di dB, quindi per ottenere il valore SNR effettivo occorre dividerlo per 4:

SNR = valore visualizzato / 4    (diviso 4)
Nel nostro esempio:
50 / 4 = +12,5 dB

Alcuni esempi aiutano a comprenderne immediatamente il significato:

ValoreSNR approssimativo
55+13,75 dB
50+12,5 dB
35+8,75 dB
12+3 dB
8+2 dB
-5−1,25 dB
-40−10 dB
-44−11 dB

pertanto una riga come:

A9D5D753:1398:-44
può essere interpretata come:

nodo A9D5D753 ricevuto l’ultima volta circa 1398 secondi fa (23 minuti) con un SNR di circa −11 dB.

SNR negativo significa collegamento scarso?

Non necessariamente.

Questa è una delle caratteristiche interessanti della modulazione LoRa utilizzata da MeshCore. Un ricevitore LoRa può riuscire a demodulare correttamente un segnale anche quando questo si trova al di sotto del livello del rumore, quindi con SNR negativo. In linea generale, un valore positivo elevato indica una situazione radio particolarmente favorevole, mentre valori progressivamente più negativi indicano condizioni più difficili e un margine di collegamento inferiore.

Un SNR di −10 dB tuttavia, non significa automaticamente che il collegamento non funzioni.

Attenzione: non è l’RSSI

È importante non confondere l’ultimo valore mostrato da neighbors con l’RSSI (Received Signal Strength Indicator). L’RSSI esprime la potenza del segnale ricevuto, normalmente in dBm, mentre l’SNR esprime il rapporto tra segnale e rumore. Sono quindi due grandezze differenti. Nell’output CLI neighbors mostrato in questo esempio non viene visualizzato l’RSSI. Non è pertanto corretto interpretare:

D2CE818E:2599:50
come un segnale di −50 dBm o 50 dBm.

Quel 50 rappresenta invece: 

50 / 4 = +12,5 dB SNR
 
Perché la lista cambia nel tempo?

La tabella dei neighbor è dinamica. MeshCore aggiorna queste informazioni sulla base dell’attività radio osservata dal nodo. Eseguendo il comando in momenti differenti potremo quindi vedere cambiare:

  • i neighbor presenti;
  • il tempo trascorso dall’ultima ricezione;
  • il valore SNR associato all’ultima ricezione utile.

Questo spiega perché due comandi neighbors eseguiti a distanza di qualche minuto possono produrre risultati differenti.

A cosa serve, in pratica?

Il comando neighbors può diventare un piccolo ma interessante strumento diagnostico. Può essere utilizzato, ad esempio, per verificare se un determinato nodo viene effettivamente ascoltato, quanto recentemente è stato ricevuto e con quale rapporto segnale/rumore. È particolarmente utile durante le attività di sperimentazione: spostando un nodo, modificando l’antenna o cambiandone l’installazione, l’osservazione nel tempo dei neighbor può fornire indicazioni interessanti sul comportamento della propria stazione. Naturalmente questi valori non devono essere utilizzati da soli per giudicare la qualità complessiva di un collegamento MeshCore. Propagazione, configurazione LoRa, posizione delle antenne, ostacoli, rumore radio e percorso seguito dai messaggi sono tutti elementi che concorrono al risultato finale.

In sintesi

Quando nella CLI MeshCore troviamo:

D2CE818E:2599:50
possiamo leggerlo semplicemente come:

“Ho ricevuto il neighbor D2CE818E circa 43 minuti fa con un SNR di circa +12,5 dB.”

Dietro tre numeri apparentemente poco comprensibili troviamo quindi informazioni utili per conoscere meglio ciò che il nostro nodo MeshCore sta realmente ascoltando via radio.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *