diff --git a/.github/workflows/gitea-release.yml b/.github/workflows/gitea-release.yml index 4125868..a84e5e9 100644 --- a/.github/workflows/gitea-release.yml +++ b/.github/workflows/gitea-release.yml @@ -40,8 +40,8 @@ jobs: # Copy firmware binary cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin - # Create SPIFFS binary with magic byte 0xE9 - ( printf '\xe9\x03\x01\x00' && cat .pio/build/esp32dev/spiffs.bin ) > .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin + # Create SPIFFS binary without header + cp .pio/build/esp32dev/spiffs.bin .pio.build/esp32dev/upgrade_filaman_website_v${VERSION}.bin # Create full binary (cd .pio/build/esp32dev && diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml index a5d529e..1da568e 100644 --- a/.github/workflows/github-release.yml +++ b/.github/workflows/github-release.yml @@ -47,8 +47,8 @@ jobs: # Copy firmware binary cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin - # Create SPIFFS binary with magic byte 0xE9 - ( printf '\xe9\x03\x01\x00' && cat .pio/build/esp32dev/spiffs.bin ) > .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin + # Create SPIFFS binary without header + cp .pio/build/esp32dev/spiffs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin # Create full binary (always) (cd .pio/build/esp32dev && diff --git a/src/website.cpp b/src/website.cpp index f18ac13..08d364c 100644 --- a/src/website.cpp +++ b/src/website.cpp @@ -7,7 +7,6 @@ #include "nfc.h" #include "scale.h" #include "esp_task_wdt.h" -#include "esp_log.h" #include #include "display.h" @@ -394,34 +393,35 @@ void setupWebserver(AsyncWebServer &server) { static size_t updateSize = 0; static int command = 0; - oledShowMessage("Upgrade please wait"); + //oledShowMessage("Upgrade please wait"); if (!index) { - // Reduziere Debug-Level während des Updates - esp_log_level_set("*", ESP_LOG_ERROR); - updateSize = request->contentLength(); - command = (filename.indexOf("spiffs") > -1) ? U_SPIFFS : U_FLASH; + command = (filename.indexOf("website") > -1) ? U_SPIFFS : U_FLASH; if (command == U_SPIFFS) { oledShowMessage("SPIFFS Update..."); backupJsonConfigs(); - if (!Update.begin(updateSize, command)) { + // SPIFFS update with pure binary data + if (!Update.begin((updateSize - 4), command)) { // Exclude header size restoreJsonConfigs(); String errorMsg = String("Update begin failed: ") + Update.errorString(); request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}"); - // Stelle Debug-Level wieder her - esp_log_level_set("*", ESP_LOG_INFO); return; } + + // Skip initial header completely for SPIFFS update + if (index == 0 && len >= 4) { + data += 4; + len -= 4; + updateSize -= 4; + } } else { oledShowMessage("Firmware Update..."); if (!Update.begin(updateSize, command)) { String errorMsg = String("Update begin failed: ") + Update.errorString(); request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}"); - // Stelle Debug-Level wieder her - esp_log_level_set("*", ESP_LOG_INFO); return; } } @@ -453,12 +453,8 @@ void setupWebserver(AsyncWebServer &server) { } String errorMsg = String("Update end failed: ") + Update.errorString(); request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}"); - // Stelle Debug-Level wieder her - esp_log_level_set("*", ESP_LOG_INFO); return; } - // Stelle Debug-Level wieder her - esp_log_level_set("*", ESP_LOG_INFO); } } );