88 max_fsize = SPIFFS.totalBytes() - SPIFFS.usedBytes();
89 if (max_fsize > 16 * 1024) {
94 sprintf(fname,
"/firmware-%d.bin", nfile);
95 File ffd = SPIFFS.open(fname, FILE_WRITE);
97 Serial.println(
"\r\nReceiving file, start YModem transfer on the host...\r\n");
100 Serial.println(
"\r\n");
103 log_i(
"Transfer complete. Size=%d, Original name: \"%s\"", rec_res, fname);
105#ifdef FIRMWARE_UPDATE
107 File bin_file = SPIFFS.open(fname, FILE_READ);
109 size_t bin_size = bin_file.size();
110 if (Update.begin(bin_size)) {
111 log_d(
"Starting OTA update...");
112 size_t written = Update.writeStream(bin_file);
113 if (written == bin_size)
114 log_i(
"Write complete.");
116 log_w(
"Incomplete write. Only %d of %d bytes written", written, bin_size);
119 if (Update.isFinished()) {
120 log_i(
"OTA update complete. Restarting...");
127 log_e(
"OTA update not complete.");
130 log_e(
"Error in OTA update: %s", Update.errorString());
133 log_e(
"Could not start OTA update.");
137 log_e(
"Error opening binary file \"%s\" for OTA.", fname);
141 log_e(
"Transfer error. Error code=%d", rec_res);
142 SPIFFS.remove(fname);
146 log_e(
"Error opening file \"%s\" for receiving.", fname);
151 log_e(
"Filesystem full. Remaining space: %u bytes", max_fsize);