diff --git a/ESP32_AP-Flasher/data/www/index.html.gz b/ESP32_AP-Flasher/data/www/index.html.gz index f57ec264..fe1abbdb 100644 Binary files a/ESP32_AP-Flasher/data/www/index.html.gz and b/ESP32_AP-Flasher/data/www/index.html.gz differ diff --git a/ESP32_AP-Flasher/data/www/main.css.gz b/ESP32_AP-Flasher/data/www/main.css.gz index ec8720cc..b6c94419 100644 Binary files a/ESP32_AP-Flasher/data/www/main.css.gz and b/ESP32_AP-Flasher/data/www/main.css.gz differ diff --git a/ESP32_AP-Flasher/data/www/ota.js.gz b/ESP32_AP-Flasher/data/www/ota.js.gz index 8ec977c4..39e25f46 100644 Binary files a/ESP32_AP-Flasher/data/www/ota.js.gz and b/ESP32_AP-Flasher/data/www/ota.js.gz differ diff --git a/ESP32_AP-Flasher/src/espflasher.cpp b/ESP32_AP-Flasher/src/espflasher.cpp index 1493b7c8..ee011645 100644 --- a/ESP32_AP-Flasher/src/espflasher.cpp +++ b/ESP32_AP-Flasher/src/espflasher.cpp @@ -121,7 +121,7 @@ bool downloadAndWriteBinary(String &filename, const char *url) { HTTPClient binaryHttp; Serial.println(url); binaryHttp.begin(url); - + binaryHttp.setFollowRedirects(HTTPC_FORCE_FOLLOW_REDIRECTS); int binaryResponseCode = binaryHttp.GET(); Serial.println(binaryResponseCode); if (binaryResponseCode == HTTP_CODE_OK) { @@ -129,14 +129,26 @@ bool downloadAndWriteBinary(String &filename, const char *url) { if (file) { wsSerial("downloading " + String(filename)); WiFiClient *stream = binaryHttp.getStreamPtr(); - uint8_t buffer[128]; + uint8_t buffer[256]; + size_t totalBytesRead = 0; while (stream->available()) { size_t bytesRead = stream->readBytes(buffer, sizeof(buffer)); file.write(buffer, bytesRead); + totalBytesRead += bytesRead; + vTaskDelay(1 / portTICK_PERIOD_MS); } file.close(); binaryHttp.end(); - return true; + + file = contentFS->open(filename, "r"); + if (file) { + if (totalBytesRead == file.size() && file.size() > 0) { + file.close(); + return true; + } + wsSerial("Download failed, " + String(file.size()) + " bytes"); + file.close(); + } } else { wsSerial("file open error " + String(filename)); } @@ -167,8 +179,16 @@ bool doC6flash(uint8_t doDownload) { for (JsonObject obj : jsonArray) { String filename = "/" + obj["filename"].as(); String binaryUrl = "https://raw.githubusercontent.com/jjwbruijn/OpenEPaperLink/master/binaries/ESP32-C6" + String(filename); - if (!downloadAndWriteBinary(filename, binaryUrl.c_str())) { - return false; + for (int retry = 0; retry < 10; retry++) { + if (downloadAndWriteBinary(filename, binaryUrl.c_str())) { + break; + } + wsSerial("Retry " + String(retry)); + if (retry < 9) { + delay(1000); + } else { + return false; + } } } } diff --git a/ESP32_AP-Flasher/src/serialap.cpp b/ESP32_AP-Flasher/src/serialap.cpp index 614aa397..2f443d06 100644 --- a/ESP32_AP-Flasher/src/serialap.cpp +++ b/ESP32_AP-Flasher/src/serialap.cpp @@ -596,10 +596,10 @@ void rxSerialTask2(void* parameter) { vTaskDelay(1 / portTICK_PERIOD_MS); time_t currentTime = millis(); - if (currentTime - startTime >= 2000) { - if (charCount > 2000) { + if (currentTime - startTime >= 1000) { + if (charCount > 6000) { rxSerialStopTask2 = true; - Serial.println("Serial monitor stopped because of flooding"); + Serial.println("Serial monitor stopped because of flooding (" + String(charCount) + " characters per second"); } startTime = currentTime; charCount = 0; diff --git a/ESP32_AP-Flasher/wwwroot/index.html b/ESP32_AP-Flasher/wwwroot/index.html index 2a7040af..f81e5172 100644 --- a/ESP32_AP-Flasher/wwwroot/index.html +++ b/ESP32_AP-Flasher/wwwroot/index.html @@ -226,7 +226,7 @@ to save file system space">
-
download latest version
+
download latest version
diff --git a/ESP32_AP-Flasher/wwwroot/main.css b/ESP32_AP-Flasher/wwwroot/main.css index 38904656..b32f2ce8 100644 --- a/ESP32_AP-Flasher/wwwroot/main.css +++ b/ESP32_AP-Flasher/wwwroot/main.css @@ -571,6 +571,10 @@ ul.messages li.new { background-color: #a0a0a0; } +#c6Option { + display: none; +} + .console { width: 100%; background-color: black; diff --git a/ESP32_AP-Flasher/wwwroot/ota.js b/ESP32_AP-Flasher/wwwroot/ota.js index 4bba3b5d..6f3ce84a 100644 --- a/ESP32_AP-Flasher/wwwroot/ota.js +++ b/ESP32_AP-Flasher/wwwroot/ota.js @@ -50,6 +50,7 @@ export async function initUpdate() { currentVer = data.buildversion; currentBuildtime = data.buildtime; if (data.rollback) $("#rollbackOption").style.display = 'block'; + if (data.env == 'ESP32_S3_16_8_YELLOW_AP') $("#c6Option").style.display = 'block'; } }) .catch(error => {