Problema di spazio con ethernet shield e micro SD

ti ho eliminato un po di dichiarazioni doppie
non ho applicato la F() che dice Silente

//librerie per connessione alla rete, SD & stringhe
#include <Ethernet.h>
#include <SPI.h>
#include <SD.h>
#include <String.h>

byte button = 7;
byte state = 0;
EthernetServer server(80);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {192, 168, 1, 200};
byte gateway[] = {192, 168, 1, 1};
byte subnet[] = {255, 255, 255, 0};

//   String ascoltatore;
char logs;
File miofile;
Sd2Card card;
SdVolume volume;

void setup() {
   Ethernet.begin(mac, ip, gateway, subnet);
   pinMode(button, INPUT);

   Serial.begin(9600);
   Serial.println("Sto inizializzando la scheda micro SD...\n");

   if (!SD.begin(4)) {
      Serial.println("Inizializzazione fallita\n");
      Serial.println("* Controlla di aver impostato il pin quattro,");
      Serial.println("  come pin di Input");
      Serial.println("* Controlla di aver inserito la micro SD");
      return;
   } else {
      Serial.println("Inizializzazione completata");
      delay(2500);
      Serial.println("Configurazione terminata\n");

      delay(1600);

      Serial.print("Tipo di scheda micro SD:     ");
      switch (card.type()) {
         case SD_CARD_TYPE_SD1:
            Serial.print("SD1\n");
            break;
         case SD_CARD_TYPE_SD2:
            Serial.print("SD2\n");
            break;
         case SD_CARD_TYPE_SDHC:
            Serial.print("SDHC\n");
            break;
         default:
            Serial.print("Unknown\n");
      }

      Serial.print("Volume della micro SD:      \n");
      if (!volume.init(card)) {
         Serial.println("  Il volume identificato non è valido,");
         Serial.println("  prova a formattare la micro SD in FAT16 o FAT32 (ricorda:");
         Serial.println("  questa funzione potrebbe non funzionare con tutte le micro SD)\n");
      } else {
         Serial.print("  Il volume identificato FAT16/FAT32 corrisponde con le richieste\n");
      }

      delay(1800);

      if (SD.exists("logs.txt")) {
         Serial.println("\n\n\nIl file logs.txt esiste\n");
      } else {
         Serial.println("\n\n\nIl file logs.txt non esiste\n");
         Serial.println("Sto creando un file dei logs.txt...");
         /*miofile = */SD.open("logs.txt", FILE_WRITE);

         if (SD.exists("logs.txt")) {
            Serial.println("\nFile logs.txt creato\n\n");
         } else {
            Serial.println("\nFile logs.txt non creato\n\n");
         }
         delay(2500);
         //miofile.close();
      }
   }
}

void loop() {
   EthernetClient client = server.available();
   state = digitalRead(button);

   if (state == HIGH and SD.exists("logs.txt")) {
      SD.remove("logs.txt");
      Serial.println("\nFile logs.txt eliminato");
      delay(10000);
   }

   if (client) {
      while (client.connected()) {
         if (client.available()) {
            char c = client.read();
            //            ascoltatore.concat(c);

            if (c == '\n') {                     //<--------------------
               miofile.write(c);                //<--------------------

               logs = SD.open("logs.txt", FILE_READ);
               Serial.println(logs);
            }
         }
      }
   }
}

ma dopo aver messo tutto in ascoltatore sulla sd stampi \ n e sulla serial 1 che succede?