Problema invio dati a display Nextion

Ciao a tutti!

Sto facendo un pò di prove con Arduino Mega R3 e il display Nextion NX4024T032_011 (sono andato a vedermi un pò di tutorial), ho creato un'interfaccia con l'ide di Nextion in cui ci sono 3 pulsanti e una casella di testo, alla pressione dei tre pulsanti viene acceso o spento il led corrispondente al colore del bottone premuto, fin qui tutto bene, funziona tutto... poi ho deciso che quando viene premuto un pulsante, oltre ad accendere/spegnere il led, il programma deve cambiare il testo della label sul display scrivendo "Rosso", "Giallo" o "Verde" a seconda dei casi o "Nessuno" se nessun led è acceso.
Qui nascono i problemi, il testo non cambia, il mio codice è questo:

NexButton bRed = NexButton(0, 1, "bRed");
NexButton bGreen = NexButton(0, 2, "bGreen");
NexButton bYellow = NexButton(0, 3, "bYellow");
NexText tLed = NexText(0, 4, "tLed"); 

NexTouch *nex_listen_list[] = {
  &bRed,
  &bGreen,
  &bYellow,
  NULL
};

// Callbacks buttons
void bRedPopCallback(void* ptr) {
  digitalWrite(L_RED, !digitalRead(L_RED));
  digitalWrite(L_GREEN, LOW);
  digitalWrite(L_YELLOW, LOW);
  tLed.setText("Rosso");

  // Commentato perché non funziona
  //writeStringToDisplay("tLed", "Rosso");
}

void bGreenPopCallback(void* ptr) {
  digitalWrite(L_RED, LOW);
  digitalWrite(L_GREEN, !digitalRead(L_GREEN));
  digitalWrite(L_YELLOW, LOW);
  tLed.setText("Verde");
}

void bYellowPopCallback(void* ptr) {
  digitalWrite(L_RED, LOW);
  digitalWrite(L_GREEN, LOW);
  digitalWrite(L_YELLOW, !digitalRead(L_YELLOW));
  tLed.setText("Giallo");
}


/* 
  Cercando su Internet ho trovato questo workaround
  ma non funziona
*/
void writeStringToDisplay(String textName, String value) {
  String stringData = textName + ".txt=\"" + value + "\""; 
  dbSerial.println("WriteStringToDisplay -> StringData: " + stringData);

  nexSerial.println(stringData);
  
  // Trovato su internet ma neanche questo funziona 
  // invia il comado un byte alla volta invece che come un'unico array di char
  /*for (int i = 0; i < stringData.length(); i++) 
  {
    Serial2.print(stringData[i]);   // Push each char 1 by 1 on each loop pass  
  }*/

  nexSerial.write(0xff); //We need to write the 3 ending bits to the Nextion as well
  nexSerial.write(0xff); //it will tell the Nextion that this is the end of what we want to send.
  nexSerial.write(0xff);
}

void setup() {  
  dbSerial.begin(9600);
  nexSerial.begin(9600);
  dbSerial.println("Pronto...");

  nexInit();
  // Register the pop event callback function of the components
  bRed.attachPop(&bRedPopCallback);
  bGreen.attachPop(&bGreenPopCallback);
  bYellow.attachPop(&bYellowPopCallback);
  
  
  // Leds setup
  pinMode(L_RED, OUTPUT);
  pinMode(L_GREEN, OUTPUT);
  pinMode(L_YELLOW, OUTPUT); 
}

void loop() {

  // Listener for touch screen
  nexLoop(nex_listen_list);
}

il metodo tLed.setText([i vari colori]); non ha effetto, ho provato a fare un pò di debug alla libreria del display e ho scoperto che questa funzione richiama a sua volta la funzione SendCommand e conseguentemente la funzione recvRetCommandFinished che verifica l'esito della SendCommand. Se tutto va bene, la funzione di verifica riceve, dal display, la sequenza di caratteri "0x01, 0xff, 0xff, 0xff" quindi 4 byte, nel mio caso invece riceve il comando che avevo trasmesso e poi una sequenza di 3 byte contenenti 0xff, nella fattispecie "tLed.txt="[i vari colori]"0xff0xff0xff".
A questo punto vorrei sapere se qualcuno può darmi una mano a risolvere questo problema, perché aggiornare il testo di una label sul display, mi pare una cosa abbastanza comune da fare, ma potrei sbagliarmi...

Grazie!

Ok, sono riuscito a risolvere facendo ulteriori ricerche. Innanzi tutto io inizializzavo le seriali nel setup, ma già veniva fatto nella funzione nexInit della libreria, però in realtà, questa modifica non aveva cambiato la situazione. Il vero problema era hardware e non software, cioè, io avevo alimentato il display con microusb e Arduino tramite la sua porta usb, così potevo modificare lo sketch e fare le prove, qui stava l'errore, poiché il display e Arduino DEVONO avere in comune il ground, quindi è bastato fare questo collegamento e tutto è magicamente andato a posto.