I 10 errori più comuni in un nodo MeshCom, raccolti dalla pratica. Per ognuno: sintomo, causa probabile, come diagnosticarlo, soluzione. Se il tuo problema non è qui dentro, di solito è una variante di uno di questi.
Sintomo — al boot leggi:
[LoRa]...SX1276 Chip Initializing ... failed, code -2
Significa: la libreria RadioLib non riesce a leggere il registro VERSION_REG del SX1278. La SPI non parla con la radio.
Cause in ordine di probabilità:
Soluzione: passa un dito su ogni dupont premendoli verso le sedi; ricontrolla MISO/MOSI; misura VCC. Se hai un secondo modulo Ra-01 provalo, e se hai una seconda ESP32 invertili (test incrociato).
Sintomo: la seriale dice SX1276 Chip Initializing ... success, ma sull'analizzatore di spettro non vedi niente quando il nodo dovrebbe trasmettere, e gli altri nodi non ricevono i tuoi pacchetti.
Significa: la SPI funziona (init OK) ma l'IRQ TX_DONE non scatta mai → il firmware non sa quando avviare/concludere la TX.
Causa: DIO0 non collegato (o male collegato).
Soluzione: verifica che il pin DIO0 del Ra-01 sia collegato a GPIO 26 dell'ESP32. È l'errore più subdolo perché tutto sembra funzionare. Dopo aver corretto, riavvia e prova un --sendpos dal seriale: dovresti vedere un burst di ~80 ms sull'analizzatore.
Sintomo: il banner rst:ets Jul 29 2019 si ripete continuamente, non arrivi mai a CLIENT STARTED.
Cause:
Soluzione: verifica con il multimetro che non ci sia continuità RST↔GND sul Ra-01 a freddo; usa alimentazione USB stabile (no hub passivo); se il problema persiste fai un esptool erase_flash seguito da reflash pulito.
Sintomo: imposti callsign / WiFi / GPS da seriale o app, poi al riavvio è tutto tornato come prima.
Causa nascosta: l'apertura della porta seriale può resettare il device. Quando uno script (pyserial, alcuni monitor) apre /dev/ttyUSB0, di default il driver mette DTR/RTS alti per un attimo. Su ESP32 DTR è collegato a EN → reset del chip. La tua sessione di edit viene cancellata prima del --save.
Soluzione: usa un monitor seriale che preservi DTR/RTS bassi:
picocom --noinit /dev/ttyUSB0 -b 115200s.dtr = False; s.rts = False prima di s.open()stty -F /dev/ttyUSB0 115200 raw -echo clocal && cat /dev/ttyUSB0Sull'app MeshCom via BLE questo problema non c'è. È specifico del flusso seriale USB.
Sintomo: la scansione BLE dell'app è vuota, oppure il nodo non compare.
Cause:
CLIENT STARTED — dagli ~10 secondi dal bootSoluzione: attiva GPS, dai i permessi, scollega da altre app, attendi CLIENT STARTED sulla seriale. Riavvia il nodo dal pulsante EN se è dubbioso.
Sintomo: il nodo è in stato RX_LISTEN ma non arriva mai nessun pacchetto. Sull'app MeshCom i contatti restano vuoti.
Verifica con priorità:
Test rapido: trova un altro radioamatore vicino con un nodo MeshCom (gruppo Telegram, GRF) e fate test a vista. Se vi sentite, è un problema di antenna/posizione; se non vi sentite, è un problema di config.
Sintomo: il nodo si riavvia in modo apparentemente casuale, spesso durante o subito dopo una trasmissione.
Causa: brownout. Il Ra-01 in TX a 20 dBm assorbe picchi di 120-150 mA. Gli LDO 3.3V degli ESP32 Dev cinesi più economici sono dimensionati per 100 mA → il bus 3.3V scende sotto 2.8V → il chip ESP32 ha il brownout detector → reset.
Soluzione:
Sintomo: portata ridicola anche con antenna che teoricamente è "buona". Il rosmetro segna SWR > 3:1.
Cause:
Diagnosi: NanoVNA (30 €) collegato al cavo lato apparato. SWR < 1.7:1 a 433 MHz = OK. Se è alta, ricontrolla a metà cavo (taglia e rimisura) per isolare se è cavo o antenna.
Sintomo: hai un nodo attivo, lo vedi sull'app MeshCom, ma sulla mappa Gruppo Radio Firenze non c'è.
Cause:
--sendposSoluzione: imposta lat/lon, forza --sendpos, e attendi che un gateway nelle vicinanze rilanci il tuo pacchetto verso il server (a volte serve un quarto d'ora).
Sintomo: al primo boot vedi il banner e CLIENT STARTED, ma dopo è il silenzio totale — nessuna risposta a --info, --help, ecc.
Causa: il firmware MeshCom in idle non logga nulla sulla seriale per default. Le risposte ai comandi sono asincrone (il flag viene settato, l'output arriva nel loop principale).
Soluzione: abilita il debug verbose con:
--debug on --loradebug on --setinfo on --save
Da qui in poi vedrai [MC-DBG], [MC-SM], eventi RX/TX, ecc. Per uso normale tienili off (ingombrano e usano corrente).
Apri il monitor seriale, abilita debug, fai una cattura completa di 30 secondi (banner di boot + qualche comando) e portala su uno dei gruppi della comunità. Il 99% dei problemi MeshCom si vede dai log con poche righe.
Gruppi comunità