A cosa serve
Comunicare quando le reti non ci sono
Escursioni e zone senza campo, contatti tra paesi e quartieri, un piano B quando la rete cellulare cade. E per chi ama la radio, un terreno di sperimentazione aperto.
MeshCore ITA · Community italiana
MeshCore è un progetto open source che trasforma piccole radio LoRa a basso costo in una rete di messaggistica cifrata. Ogni radio inoltra i messaggi alle altre, così la rete sta in piedi da sola: funziona dove il telefono non prende, in montagna o durante un blackout. MeshCore ITA è la community di chi la sta costruendo in Italia.
Cos'è MeshCore
Scrivi un messaggio nell'app sul telefono. Il telefono lo passa via Bluetooth alla tua radio, che lo trasmette. Le radio che fanno da ripetitore lo rilanciano, un salto alla volta, finché arriva alla radio del destinatario e da lì al suo telefono. Nessun operatore, nessun abbonamento, nessun server centrale.
A cosa serve
Escursioni e zone senza campo, contatti tra paesi e quartieri, un piano B quando la rete cellulare cade. E per chi ama la radio, un terreno di sperimentazione aperto.
Cosa ti serve
Le board compatibili sono economiche e diffuse. In banda 869 MHz non serve una licenza radio, entro i limiti di potenza previsti. Ti aiutiamo a scegliere nella pagina hardware.
Cosa non è
Passano solo brevi messaggi di testo: niente voce, foto o video. La copertura dipende da quanti nodi ci sono nella tua zona, perché è una rete costruita dalla community, nodo dopo nodo.
Cifratura. Identità Ed25519, chiavi condivise via ECDH/X25519 e cifratura simmetrica AES-128: i messaggi restano privati anche senza rete internet o cellulare.
Routing ibrido. Advert e messaggi di canale viaggiano in flood; i repeater annunciano di default ogni 12 ore, i companion solo su richiesta. I messaggi privati usano path-discovery e routing diretto, con un limite interno di 64 hop per il flood generico (8 hop per gli advert dei repeater, meno con path hash multi-byte): non tutti i nodi ripetono tutto.
Hardware e software. Gira su board LoRa diffuse e a basso costo, dalle Heltec V3 alle RAK4631. Firmware MIT di Scott (Ripple Radios), client mobile e web di Liam Cottle.
Per capire le differenze rispetto ad altri sistemi mesh leggi il confronto MeshCore vs Meshtastic, oppure consulta il glossario dei termini MeshCore.
Primi passi
Dal primo flash del firmware al tuo primo nodo sulla mesh italiana.
01
Heltec V3, LilyGO T-Beam, RAK4631 e altre board LoRa supportate. Lista completa e aggiornata sul web flasher.
Vedi l'elenco delle board↗02
Collega la board via USB e usa il web flasher ufficiale per installare il firmware Companion, senza toolchain locali da installare.
Apri il flasher↗03
Su Android/iOS installa l'app MeshCore, oppure usa il client web su app.meshcore.nz. Accoppia il nodo via Bluetooth (companion BLE, PIN di default 123456) o via USB, poi passa al preset radio.
04
Configura frequenza, banda, spreading factor e coding rate condivisi dalla community per l'Italia: vedi la sezione Radio qui sotto.
05
Unisciti al gruppo Telegram pubblico MeshCore ITA per presentare il tuo nodo e coordinarti con la community. Per questioni tecniche sul sito o sul repository puoi aprire una issue su GitHub.
Entra nel gruppo Telegram↗Hai già la board in mano? Le tre operazioni essenziali, pronte da copiare:
flasher.meshcore.io → board via USB → firmware Companion
set radio 869.618,62.5,8,8
set name IT-<citta>-01 ; set flood.advert.interval 12 ; set tx 20
Guida completa passo passo: guida a MeshCore in italiano, dal firmware al primo nodo.
Ruoli dei nodi
Ogni nodo MeshCore assume uno di questi ruoli, a seconda di come lo configuri.
Client collegato via BLE o USB, tramite app mobile o interfaccia web. Non ripete i pacchetti degli altri nodi.
Estende la copertura della rete, inoltrando i pacchetti sui percorsi appresi dal routing ibrido.
Funziona come una bacheca in stile BBS: conserva fino a 32 messaggi non letti per ogni utente.
Trasmette telemetria o payload personalizzati sulla mesh.
Termini e definizioni complete: glossario MeshCore in italiano.
Hardware supportato
MeshCore gira su una vasta gamma di board LoRa economiche e diffuse.
Elenco aggiornato delle board sul web flasher↗
Guida dettagliata: hardware e board compatibili con MeshCore, con consigli per scegliere quella giusta.
Preset radio
Un preset comune permette a tutti i nodi italiani di sentirsi tra loro.
| Parametro | Valore | Note |
|---|---|---|
| Frequenza | 869.618 MHz | Banda occupata 869.587–869.649 MHz |
| Bandwidth | 62.5 kHz | — |
| Spreading Factor | SF8 | — |
| Coding Rate | CR8 | — |
| Potenza max | 500 mW ERP | Entro la sub-banda 869.4–869.65 MHz |
| Duty cycle | 10% | Max 6 minuti di trasmissione per ora |
Il preset precedente — 869.525 MHz · SF11 · BW 250 kHz · CR5 — è etichettato Deprecato nell'elenco ufficiale dei preset del client MeshCore: i nodi rimasti su quel preset non sentiranno più la rete attuale. Nel client MeshCore (app o web) scegli il preset EU/UK (Narrow) per allinearti. Riferimento: docs.meshcore.io↗
Uso libero senza licenza entro questi limiti, secondo ETSI EN 300 220 e il Piano Nazionale di Ripartizione delle Frequenze: la responsabilità della conformità resta dell'operatore del nodo. Riferimento normativo: loraitalia.it/wiki/normativa↗
Guida completa al preset: preset radio italiano per MeshCore, con spiegazione dei parametri e migrazione dal preset deprecato.
Domande frequenti
MeshCore usa un routing ibrido: advert e messaggi di canale viaggiano in flood, ma i messaggi privati usano path-discovery e routing diretto sui percorsi appresi. A differenza di Meshtastic, non tutti i nodi ripetono tutto il traffico.
No, entro i limiti di potenza ed ERP e di duty cycle della sub-banda 869.4–869.65 MHz. Questi limiti sono previsti da ETSI EN 300 220 e dal Piano Nazionale di Ripartizione delle Frequenze, quindi l'uso è libero. La responsabilità della conformità resta dell'operatore del nodo.
Dipende da orografia, altezza dell'antenna e potenza del nodo: non ci sono numeri di copertura garantiti, ogni installazione va valutata sul campo.
Sì: repeater e room server sono più utili se restano sempre accesi e raggiungibili, nel rispetto dei limiti di duty cycle.
Il gruppo Telegram MeshCore ITA è pubblico: chiunque può entrare senza bisogno di un invito. Il link è t.me/meshcore_ita↗.
Non è obbligatorio, ma è fortemente raccomandato: è ciò che garantisce l'interoperabilità tra i nodi italiani.
Il vecchio preset EU/UK (869.525 MHz · SF11 · BW 250 kHz · CR5) è oggi etichettato come deprecato nell'elenco ufficiale dei preset del client MeshCore. La community internazionale è passata a un preset "narrow" (banda più stretta, SF più basso) per una migliore interoperabilità: per l'Italia il preset attuale è 869.618 MHz · SF8 · BW 62.5 kHz · CR8, corrispondente a EU/UK (Narrow) nel client.
Su board ESP32 (es. Heltec V3) usa il web flasher ufficiale, oppure l'aggiornamento OTA via Wi-Fi lanciando start ota dal client admin e collegandoti all'hotspot "MeshCore OTA". Su board nRF (RAK, T114, Seeed XIAO) usa start ota insieme all'app nRF DFU sullo smartphone. Il bin "non-merged" mantiene l'abbinamento Bluetooth esistente; il bin "merged" lo azzera ma mantiene nome, chiavi e preset salvati.
Non automaticamente. Per un companion, apri l'app MeshCore, vai su "Internet Map" e scegli "Add me to the Map". Per un repeater o room server, aprilo dalla lista contatti, tocca "Share" e poi "Upload to Internet Map". La mappa è consultabile su map.meshcore.io.
Altre domande e risposte: FAQ complete su MeshCore ITA.
Troubleshooting
I casi più comuni segnalati dalla community, con la soluzione documentata upstream.
Spesso è un problema di orologio: sul T-Deck manca il fix GPS (o il baud rate GPS è sbagliato), oppure l'altro nodo ha l'ora sbagliata. Sincronizza con clock sync da un client admin, o imposta l'epoch manualmente con time <epoch> via seriale.
Verifica di aver flashato il firmware "Companion BLE" e non quello "USB-only": un repeater o room server non accetta connessioni BLE, solo un companion. Il PIN di pairing di default è 123456.
Su Linux è quasi sempre un problema di permessi sulla porta seriale. Dai i permessi con sudo setfacl -m u:$USER:rw /dev/ttyUSB0 (adatta il device path) e ricarica la pagina del flasher.
La causa più comune è un preset radio diverso da quello del resto della mesh: frequenza, banda, SF o CR non allineati impediscono di sentirsi. Controlla con get radio e riallinea con set radio 869.618,62.5,8,8.
Su un repeater, attiva il risparmio energetico con powersaving on: il nodo dorme tra una trasmissione e l'altra. Verifica anche di non tenere una potenza TX (set tx) più alta del necessario per la tua copertura.
Su ESP32 lancia start ota dal client admin: il nodo apre l'hotspot Wi-Fi "MeshCore OTA", collegati e vai su 192.168.4.1/update. Su board nRF (RAK, T114, Seeed XIAO) usa start ota insieme all'app nRF DFU dello smartphone.
Guida estesa alla risoluzione dei problemi: problemi comuni MeshCore e soluzioni.
Amministrazione
Comandi CLI da usare via USB seriale (web flasher, picocom) o, per la maggior parte, da remoto con un client MeshCore autenticato come admin su repeater e room server; alcuni comandi (stats-core, stats-radio, stats-packets, log) funzionano solo via seriale.
| Comando | Cosa fa |
|---|---|
get radio / set radio <freq>,<bw>,<sf>,<cr> | Legge o imposta frequenza, banda, SF e CR in un colpo solo. Richiede reboot. |
set name <nome> | Cambia il nome del nodo negli advert. |
password <nuova-password> | Cambia la password admin (default password). |
get tx / set tx <dbm> | Legge o imposta la potenza TX in dBm (1–22). |
advert | Invia subito un advert flood. |
set flood.advert.interval <ore> | Intervallo dell'advert flood periodico (default 12h). |
time <epoch> | Imposta l'orologio, utile senza GPS. |
clock sync | Sincronizza l'orologio col dispositivo collegato. |
neighbors | Vicini diretti uditi di recente (solo repeater). |
stats-radio (solo seriale) | Noise floor, ultimo RSSI/SNR, airtime. |
log start / log stop | Avvia o ferma la cattura del log di ricezione. |
set repeat <on|off> | Attiva o disattiva la ripetizione dei pacchetti. |
reboot | Riavvia il nodo (necessario dopo modifiche radio/nome). |
start ota | Avvia l'aggiornamento firmware via OTA. |
Riferimento completo dei comandi CLI: docs.meshcore.io/cli_commands↗
Approfondimento con esempi pratici: comandi CLI MeshCore spiegati.
Struttura del gruppo
Il gruppo Telegram è organizzato in topic: otto topic generali e uno per ogni regione italiana. Le discussioni locali (installazioni, meetup, copertura di zona) vanno nel topic della propria regione.
01
Comunicazioni ufficiali della community e aggiornamenti importanti.
02
Il posto dove i nuovi membri si presentano al resto della community.
03
Domande tecniche e aiuto per risolvere problemi di configurazione dei nodi.
04
Confronti su board, antenne, alimentazione e installazioni fisiche.
05
Versioni firmware, preset radio e impostazioni dei dispositivi.
06
Coordinamento di installazioni condivise e infrastruttura di rete.
07
Segnalazioni di copertura e aggiornamenti sulla mappa pubblica.
08
Chiacchiere libere, non legate a MeshCore.
Convenzione dei nomi dei nodi: IT-<citta>-NN per un companion, IT-<citta>-RPT-NN per un repeater, IT-<citta>-ROOM-NN per un room server. Esempio: IT-TORINO-RPT-01.
Scopri di più sulla community italiana MeshCore e su come partecipare.
MeshCore ITA vive sul gruppo Telegram per le chiacchiere di tutti i giorni. Su GitHub trovi invece repository, issue e discussioni tecniche.