Nextion Library conflitto con SD

Buongiorno,
Ho creato un progetto composto da un display Nextion e un adaloggerM0 della Adafruit (corrisponde all'incirca ad Arduino Zero).
Come da istruzioni ho modificato la libreria nextion impostando "serial1" ecc, tutto funziona perfettamente tranne una cosa: quando utilizzo la scrittura e lettura della SD, funziona in lettura ma non in scrittura!
Ho circoscritto il problema creando uno scketc minimale dove creo solo un file testo sulla SD e poi lo leggo.
Se commento //#include "Nextion.h", funziona tutto correttamente, mentre se solo includo la libreria (senza minimamente utilizzarla), crea il file correttamente ma non il testo all'interno. In lettura funziona.
Spero che qualcuno sia già incappato in questo problema e che mi possa aiutare, grazie!

Buongiorno e benvenuto, :slight_smile:
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Giusto, sapevo che andava fatto ma non ero riuscito a trovare il thread giusto. Ora mi sono presentato,
grazie.

Non conosco la specifica scheda, ma ... sicuro che non ci sia conflitto con i pin? Controlla come sono assegnati i GPIO che utilizzi ... ::slight_smile:

Guglielmo

La scheda adafruit è basata sul chip SAMD21G, quindi è paragonabile alla Arduino zero, anche se ha il bootloader e delle librerie dedicate. Sulla scheda e già presente lo slot SD (chip select 4).
Come libreria per la SD uso "SDFAT"
Propio per circoscrivere il problema, non uso nessun pin ma solo la SD!
Quindi scheda pulita senza collegato nulla, neanche il display Nextion.

Creo e scrivo un banale file di testo e poi lo rileggo.
Se NON includo la libreria Nextion, funziona tutto correttamente,
se invece solo dichiaro #include "Nextion.h" senza utilizzarla, lo scketch crea il file ma non scrive il testo. In lettura tuttavia funziona.

A me sembra davvero una cosa strana, spero non sia troppo complicato individuare il problema.

Alfredo.

Se la libreria usa qualche pin che è usato anche dalla SD ... ecco fatto che crea problemi. Per questo ti ho detto che devi controllare quali GPIO sono usati e come ... ::slight_smile:

Guglielmo

Dimenticavo,
A parte il conflitto che crea nella scrittura sulla SD, la libreria Nextion funziona correttamente in tutte le sue funzioni (ovviamente con lo sketch completo del progetto).
Grazie.

Giusto,
Ho controllato e i pin utilizzati e nella realtà non sono gli stessi, nel senso che la SD è collegata come SPI sui consueti pin MISO, MOSI, SCK più il CS, la libreria Nextion utilizza unicamente i pin seriali TX e RX che ovviamente sono diversi e comunque in questa prova non collegati.
A questo punto non sono più sicuro dell'impostazione consigliata per la seriale nella libreria Nextion:
Le istruzioni dicono di commentare la softwareSerial ed impostare la seriale reale su serial1.
Visto che quando è collegato il display la seriale funziona, credo che la seriale1 sia giusta sui corrispondenti pin TX/RX, o no?
Comunque non capisco questo strano comportamento, come è possibile che la lettura funzioni e la scrittura no?
Se puoi consigliarmi dove controllare nella libreria eventuali conflitti te ne sarei grato.
Se può essere utile posso allegare la libreria o il link.
Grazie

Chiedo scusa, non avevo notato una discrepanza tra la serigrafia sulla scheda e lo schema elettrico! :frowning:
Attenzione alla scheda Adafruit Feather M0 Adalogger: I pin contrassegnati TX/RX sulla scheda, nello schema diventano D0/D1 nonostante ci siano altri due pin TX/RX!
A me era sfuggito e ho perso parecchie ore ad impazzire per nulla. :confused:
A questo punto credo che effettivamente potrebbero esserci dei conflitti sull''utilizzo dei pin.
Controllo bene e vi faccio sapere se ho risolto.
Grazie.

Ho ricontrollato e non ci sono conflitti sull'assegnazione dei pin, però ho scoperto che la libreria Nextion crea questo problema solo se viene inclusa anche la libreria #include "FreeStack.h".
Quest'ultima libreria l'ho inserita perchè era presente in uno sketch di esempio ma non sono riuscito a trovare una documentazione che spieghi la sua funzione.
Potete darmi qualche informazione per capire se nel mio progetto possa essere indispensabile?
Se posso escuderla avrei risolto il problema. :slight_smile:

Bene, ho risolto il problema. Nella libreria Nextion è presente "NexUpload.h" e "NexUpload.cpp", sono queste che creano il conflitto con SDFat se si utilizza una scheda arduino basata su processore SAMD21.
Io le ho eliminate, il compilatore non da nessun errore e tutto funziona regolarmente.