Problema scrittura su SD card

Riposto qua il codice inerente alla variabile IR_SENSIVITY:

if(SD.exists(IR_SENSIVITY_PATH)){
            myData = SD.open(IR_SENSIVITY_PATH, FILE_READ);
            if(myData){
              if(!myData.available()){ 
                myData.close();
              
                myData = SD.open(IR_SENSIVITY_PATH, FILE_WRITE);
                myData.write(DEFAULT_IR_SENSIVITY);

                myData.close();
              }else{
                const uint8_t MaxChar = 5;
                char CharArray[MaxChar];
                uint8_t ArrayIndex = 0;
                
                while(myData.available()){
                  char incomingChar = myData.read();
                
                  if(isDigit(incomingChar)){
                    CharArray[ArrayIndex] = incomingChar;
                    CharArray[++ArrayIndex] = 0;
                  }
                }
                sscanf(CharArray, "%d", &IR_SENSIVITY);

                LCD_display.setCursor(0, 1);
                LCD_display.print("                ");
                LCD_display.setCursor(0, 1);
                LCD_display.print("IRSS: ");
                LCD_display.print(IR_SENSIVITY);
                delay(display_delay);

                if(IR_SENSIVITY < 0 || IR_SENSIVITY > 1023){
                  IR_SENSIVITY = 500;    // reset to default value if readed value is inconsistent
                  myData.close();
                  SD.remove(IR_SENSIVITY_PATH);
                  myData = SD.open(IR_SENSIVITY_PATH, FILE_WRITE);
                  myData.write(DEFAULT_IR_SENSIVITY);
                  myData.close();
                    
                  error = INCONSISTENT_IR_SENSIVITY_VALUE;
                  errorHandler();
                }
              }
            }else{ // se il file esiste ma l'apertura di questo ha fallito, chiamo il gestore degli errori.
                   // il gestore degli errori al suo interno ha uno switch con i case inerenti al valore
                   // dell'enumerato error e, per ora, esegue la funzione while(true) quindi si blocca li.
              error = IR_SENSIVITY_PATH_FAILURE;
              errorHandler();
            }
          }else{
            myData = SD.open(IR_SENSIVITY_PATH, FILE_WRITE);
            myData.write(DEFAULT_IR_SENSIVITY);
            myData.close();
          }

Come descritto dal commento, se l'apertura del file non va a buon fine, chiamo la funzione errorHandler() e il codice viene bloccato all' istruzione while(true) contenuta nella funzione.
L'unico modo che ho per uscire da quel loop infinito è disalimentare il circuito, però a questo punto lo stream con la scheda SD dovrebbe terminarsi giusto??

Comunque la cosa strana è nel primo pomeriggio di ieri ero riuscito a farlo funzionare correttamente e non ho apportato modifiche così sostanziali al codice, anzi non ricordo nemmeno di aver modificato alcuna riga di codice nella funzione saveOnSD().

Ho addirittura provato a sostituire scheda logica (ne ho 5 identiche), pensando che la precedente fosse in qualche modo difettosa, ma non ho ottenuto cambiamenti.

Riguardo invece al mistero del cambio nome alla variabile EV_PRE_PUMP_TIMER viene in mente qualcosa?? :thinking:

Avevo letto qualcosa di simile qua: SD write problems
ma non penso sia il mio caso perchè non uso la classe String, che so causare mooolti problemi con la memoria heap, inoltre sto utilizzando una piattaforma analoga a quella di Arduino Due, che ha 96K di memoria SRAM, quindi boh.

[AGGIORNAMENTO]:
Ho provato, in disperazione, a creare un programmino semplicissimo che scrive sulla SD, con gli stessi nomi identici a quello a cui sto lavorando...funziona, davvero non capisco come mai non funzioni nel programma a cui sto lavorando.

[AGGIORNAMENTO 2]:
Ho provato ad effettuare una scrittura anche senza chiamare la funzione saveOnSD, direttamente scrivendo il codice alla fine del setup. Si blocca tutto comunque...

Una volta scritta la SD non ne vuole più sapere, guai a provare a riscriverla perchè blocca completamente il sistema.

La mia domanda ora è: in quale condizione è possibile che una scrittura su SD blocchi completamente la MCU?

Ho provato anche a creare una directory, quella la crea senza problemi, si blocca solo in scrittura.