Ciao a tutti, ho preso dei moduli lora come questo: Lora 433MHz
e ora sto cercando di farli funzionare tramite la libreria Lora-0.3.0, ma come sempre le cose non sono mai semplici come sembrano
Il modulo lora da quello che so funziona a 3.3V e quindi per abbassare il livello dei segnali che vanno da arduino uno al modulo lora ho usato un partitore resistivo (47KOhm+100KOhm).
Per i segnali che invece vanno dal modulo lora verso arduino sono andato diretto su arduino.
Come specificato nella documentazione della librearia ho collegato:
lanciando però lo sketch di esempio "LoraDumpRegisters" (dopo aver modificato il parametro di LoRa.begin con il valore 433E6) il risultato è sempre questo:
LoRa Dump Registers
LoRa init failed. Check your connections.
stefanoxjx:
Il modulo lora da quello che so funziona a 3.3V e quindi per abbassare il livello dei segnali che vanno da arduino uno al modulo lora ho usato un partitore resistivo (47KOhm+100KOhm).
Hai quindi abbasato il livello di TUTTI i segnali in ingresso al modulo giusto ? Compresi quelli del bus SPI ...
Si, confermo.
Inizialmente ho abbassato il livello di tutti i segnali, ma visto che non funzionava in seguito ho abbassato tutti i segnali a parte il MISO che dovrebbe essere in uscita dal modulo lora e in ingresso su arduino.
Non so se il partitore resistivo è la soluzione migliore per questo tipo di operazione, ma non avevo moduli LLC a disposizione.
... ti rendi conto che hai comprato un modulo con SX1276 SX1278 (che, dai distributori ufficiali, in quantità 1000+ pezzi costa circa 4.5 US$) con tutta l'elettronica a contorno per 3.64 US$ ? ? ? :o ... per di più da un venditore che NON fornisce uno straccio di documentazione su quel modulo che, a vederlo così, ha anche probabilmente dei regolatori di tensione on-board ... :
Secondo me, devi scrivere al venditore e farti mandare le specifiche esatte di quel modulo, perché così ... la vedo grigia
Li ho presi tempo fa proprio perchè costavano poco dicendo "si sa mai che un giorno possano servire".
Comunque sono degli SX1278, non so se può fare differenza.
stefanoxjx:
Comunque sono degli SX1278, non so se può fare differenza.
Costano più o meno uguali (... comunque ho corretto il post)
Cerca di recuperare dal venditore (visto che è ancora presente e li vende) le specifiche del modulo ... tensione di alimentazione, tensione sui pin di I/O, ecc. ecc.
Il fornitore mi ha risposto con dei dati inutili tipo:
Brand new
Material: metal
Size: approx. 17*16.5mm
Transmit power: 0.1 W
Band: 433 MHz
Ora gli ho scritto che quei dati se li può mettere dove dico io e che mi faccia avere il datasheet e schema elettrico di quel modulo specifico.
Nel frattempo ho fatto una ricerca ed ho trovato un altro fornitore che vende lo stesso identico modulo e che nella pagina descrittiva da un po' più dati.
Che ne dite? Si può fare qualcosa con questi dati?
Ok, i dati del secondo venditore mi sembrano molto più utili ... ed è ben evidenziato che, effettivamnete, quel modulo lavora a 3.3V ed assorbe max. 12mA.
A questo punto prova a fare una cosa, dividi per 10 il valore delle resistenze che hai usato (4.7K 10K) per i partitori in ingresso (SCK, MOSI, SS, RESET) e vedi se cambia qualche cosa ...
... altrimenti ti tocca necessariamente provare con dei veri adattatori di livello, tipo QUESTI (... che, tra l'altro, vanno bene anche per connessioni I2C) o QUESTI
Yeah!!! ;D ;D ;D
Dividendo per 10 le resistenze funziona
Finora ho provato solo il dump dei registri, ma a questo punto deduco funzionerà anche il resto.
Ti ringrazio molto dell'aiuto.
Sempre a proposito di questi moduli lora...
Ne ho messi 3 affiancati e si parlano senza problemi, però ogni tanto sul terminale vedo dei dati spurii.
All'inizio pensavo fossero delle interferenze che arrivavano dall'esterno, ma ora che ho attivato contemporaneamente i tre terminali e li ho affiancati vedo che le spurie arrivano una volta su uno e una volta su un altro, quindi sono spurie del segnale che va dal modulo lora ad arduino e non roba di radiofrequenza che arriva magari da un apricancello.
A parte che non mi danno fastidio, perchè se non corrispondono al tipo di pacchetto che mi aspetto di ricevere vengono scartati, ma, c'è modo di sistemare questa situazione?
Magari il problema nasce dal fatto che è tutto montato su bredboard e che quindi i contatti non sono perfetti.
Quello che mi fa venire il dubbio che però non possa essere questo il problema è che queste spurie (non moltissime a dire il vero) arrivano anche quando io non ci sono e quindi non c'è nessuno nelle vicinanze delle bredboard.
Dovresti fare un debug sia lato trasmissione che lato ricezione ...
... esempio un bel LOG sulla seriale di tutto quello che trasmetti e ricevi e, invece di usare il "monitor seriale", usa un "emulatore di terminale" con capacità di cattura su file ... così poi ti guardi i files con calma e vedi quello che accade realmente.
Gratis e multipiattaforma c'è CoolTerm ... scorri a metà nella pagina
gpb01:
Dovresti fare un debug sia lato trasmissione che lato ricezione ...
... esempio un bel LOG sulla seriale di tutto quello che trasmetti e ricevi e, invece di usare il "monitor seriale", usa un "emulatore di terminale" con capacità di cattura su file ... così poi ti guardi i files con calma e vedi quello che accade realmente.
Questo non serve, perchè le spurie ho già verificato che non sono dati trasmessi da uno dei miei moduli lora.
Infatti le ricevo anche se lascio solo uno dei dispositivi accesi.
Gratis e multipiattaforma c'è CoolTerm ... scorri a metà nella pagina
Uso minicom sotto linux, anche perchè il monitor seriale non mi permetterebbe di monitorare 3 seriali contemporaneamente.
stefanoxjx:
... Infatti le ricevo anche se lascio solo uno dei dispositivi accesi.
Ah ... ma ricevi proprio delle sequenze di caratteri senza senso ?
Perché ... o ricevi dati che arrivano da chissà chi e vengono comunque, stranamente, catturati, o, ma mi sembra quasi impossibile, che possano venir interpretati come dati dei falsi contatti sulla breadboard :
Si confermo, ricevo pacchetti di caratteri senza senso.
Il fatto è che se fossero trasmissioni sui 433mhz fatte da qualcuno, tutti e 3 i dispositivi dovrebbero ricevere lo stesso pacchetto, invece questo non succede.
Uno dei 3 a caso riceve questo pacchetto mentre gli altri due no.
gpb01:
A questo punto prova a fare una cosa, dividi per 10 il valore delle resistenze che hai usato (4.7K 10K) per i partitori in ingresso (SCK, MOSI, SS, RESET) e vedi se cambia qualche cosa ...
Per mia curiosità, Guglielmo: immagino che questo abbia funzionato perché altrimenti la corrente su quei pin era insufficiente per quei pin di input del modulo e quindi non ne rilevava lo stato alto, è così?