Обрыв передачи JSON на сервер

Уважаемые форумчане, приветствую Вас. Столкнулся с проблемой передачи JSON файла на Arduino. К сожалению, в программировании Arduino не силен. В наличии имеется Arduino Due и Ethernet Shield W5100. В общих словах, делаю систему которая отображает состояния линий (сообщает если случился обрыв). Arduino выступает в роли сервера, снимает информацию аварии с аппаратуры. Имеется клиентская часть написанная на JavaScript. Функция отправляет на сервер справочную информацию в JSON( периодически изменяется на клиентской стороне)

	let response = await fetch ('editJSON', {
		method: 'POST',
		headers: {
			'Content-Type': 'application/json;charset=utf-8'
		},
		body: JSON.stringify(systemsArray)
	});
}

На сервере принимает и записывает в файл

#include <Ethernet.h>
#include <SD.h>
#define REQ_BUF_SZ 128
#define FIRST_PIN 40
#define LAST_PIN 51
#define FREE_SOCKETS 1


File webFile;
File sisFile;
EthernetClient client;

#define MAX_BUFFER_SIZE 1024
uint16_t rsize;
uint8_t buff[MAX_BUFFER_SIZE];
char HTTP_req[REQ_BUF_SZ] = { 0 };  // buffered HTTP request stored as null terminated string
char req_index = 0;                 // index into HTTP_req buffer


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 110);
EthernetServer server(80);

void setup() {
 Serial.begin(9600);

 for (int i = FIRST_PIN; i <= LAST_PIN; i++) {
   pinMode(i, INPUT);
 }
 SD.begin(4);
 Ethernet.begin(mac, ip);
 server.begin();
 digitalWrite(10,HIGH);

}
void loop() {
 serverWorks();
}

void serverWorks2(EthernetClient sclient) {

 if (sclient) {
   boolean currentLineIsBlank = true;
   while (sclient.connected()) { 
     if (sclient.available()) {
       char c = sclient.read();
       if (req_index < (REQ_BUF_SZ - 1)) {
         HTTP_req[req_index] = c;  // читаем посимвольно запрос
         req_index++;
       }
       if (c == '\n' && currentLineIsBlank) { //Здесь убрал ненужные запросы
         else if (StrContains(HTTP_req, "POST /editJSON")) {
           if (SD.exists("sisa.json")){
             SD.remove("sisa.json");
           }
           sisFile = SD.open("sisa.json",FILE_WRITE);
           while(sclient.connected()){
             sclient.println("HTTP/1.1 200 OK");
             sclient.println("Content-Type:application/json;charset=utf-8");
             while(sclient.available()){       
               char f = sclient.read();                
               sisFile.write(f);
             } 
             req_index = 0;
             StrClear(HTTP_req, REQ_BUF_SZ);
             break;
           }
           sisFile.close(); 
         }

         if (webFile) {
           while (webFile.available()) {
             sclient.write(webFile.read()); 
           }
           webFile.close();
         }
         req_index = 0;
         StrClear(HTTP_req, REQ_BUF_SZ);
         break;
       }
       if (c == '\n') {
         // you're starting a new line
         currentLineIsBlank = true;
       } else if (c != '\r') {
         // you've gotten a character on the current line
         currentLineIsBlank = false;
       }
     }
   }
   // give the web browser time to receive the data
   delay(1);
   // close the connection:
   sclient.stop();
 }
}

void StrClear(char *str, char length) {
 for (int i = 0; i < length; i++) {
   str[i] = 0;
 }
}

char StrContains(char *str, char *sfind) {
 char found = 0;
 char index = 0;
 char len;
 len = strlen(str);
 if (strlen(sfind) > len) {
   return 0;
 }
 while (index < len) {
   if (str[index] == sfind[found]) {
     found++;
     if (strlen(sfind) == found) {
       return 1;
     }
   } else {
     found = 0;
   }
   index++;
 }
 return 0;
}
void serverWorks() {
 for (int sock = 0; sock < MAX_SOCK_NUM - FREE_SOCKETS; sock++) {
   EthernetClient sclient = server.available_(sock);
   serverWorks2(sclient);
 }
}

Но передача каждый раз обрывается на 1.49 секунде…Если поставить задержку в цикле не менее 4мс, то тогда передача проходит, но время передачи становится неприлично большое

while(sclient.available()){       
  char f = sclient.read();                
  sisFile.write(f);;                
  delay(4);
} 

Использую нестандартную библиотеку Ethernet (Ethernet библиотека), т.к. стандартная частенько сбрасывала загрузку ресурсов и как-то нестабильно работала. Буду очень признателен за любую помощь.