Skip to content

error in updating Firmware OTA on esp32 using LTE module #6644

Closed
@mudgalp

Description

@mudgalp

Board

ESP32 DEV MODULE

Device Description

The device is a RS485 Based Modbus to 4G_LTE Dataloger device.
Consist of esp32-wroom module 4MB Flash Size.
MAX485CSA IC for Modbus Communication >> connected on serial1 at 9600 baudrate
Quectel 4G-LTE module EC200S for Operating in remote area(There is no wifi network) >> connected on serial2 at 115200 baudrate.
and other 12-24v to different power regulations.

all the debugging is done from serial0.

Hardware Configuration

#define ESP32_U1_TX 25 // MAX485_RX -->
#define ESP32_U1_RX 27 // MAX485_TX -->
#define ESP32_U2_TX 17 // GSM_RX -->
#define ESP32_U2_RX 16 // GSM_TX -->
#define MAX485_EN 26
#define LED 2
#define BUZZ 33
#define CONFIG 35
#define ADC 34
#define GSMPWR 32
#define GSMDTR 4

Version

v1.0.6

IDE Name

Arduino IDE

Operating System

Windows 11

Flash frequency

80Mhz

PSRAM enabled

no

Upload speed

921600

Description

hello everyone,
I'm working on a device in which I'm trying to do Firmware Over the air update of esp32-wroom module,
but i'm using another 4G-LTE module from Quictel (EC200S) to download the bin file from server.

everything looks fine but in the last it gives me error to update as >>Error Occurred. Error #: 6

here is the ota Function i'm using.
please help

Sketch

bool FirmwareVersionCheck()
{
  bool value;
  int httpCode ;
  String fwurl = "";
  fwurl = URL_fw_Version;
  Serial.println(fwurl);
  Serial.println();

  if (WiFi.status() != WL_CONNECTED)
  {
    Network_Check_GSM();
    if (GSM_Network_STS == true)
    {
      Serial2.write("AT+QIACT?\r\n");
      delay(100);
      input = Serial2.readString();
      if (input.indexOf("OK") >= 0)
      {
        Serial.println("GPRS CONNECT SUCCESSFULLY");
        Serial.println();
        input = Serial2.readString();
        input.remove(0);
        Serial2.print("AT+QHTTPURL=83,30\r\n");
        delay(100);
        input = Serial2.readString();
        if (input.indexOf("CONNECT") >= 0)
        {
          Serial2.print(fwurl);
          delay(100);
          input = Serial2.readString();
          if (input.indexOf("OK") >= 0)
          {
            Serial.println("URL CONNECT SUCCESSFULLY");
            Serial.println();
            input = Serial2.readString();
            input.remove(0);
            int count = 0;
            Serial2.write("AT+QHTTPGET=30\r\n");
            input = Serial2.readString();
            while (input.indexOf("+QHTTPGET") < 0)
            {
              Serial.println("WAITING FOR GET COMMAND RESPONSE");
              Serial.println();
              if (count >= 5)
              {
                value = false;
                break;
              }
              count++;
              input = Serial2.readString();
            }

            String GetResponse = input.substring(input.indexOf("+QHTTPGET") + 13, input.indexOf("+QHTTPGET") + 16);
            Serial.print("GET RESPONSE IS:");
            Serial.println(GetResponse);
            Serial.println();
            if (GetResponse == "200")
            {
              Serial.println("GET RESPONSE IS OK");
              Serial.println();
              input = Serial2.readString();
              input.remove(0);
              Serial2.write("AT+QHTTPREAD=30\r\n");
              while (!Serial2.available())
              {
              }

              while (Serial2.available())
              {
                String line = Serial2.readStringUntil('\n');
                Serial.print("line is:" + line); Serial.println();
                line.trim();// remove white/empty space from the line.
                if (!line.length())// if the the line is empty,this is end of headers,//break the while and feed the remaining `Serial2` to the Update.writeStream()
                {
                  Serial.println("This Line Was empty");//headers ended
                  httpResponseLineCount ++;
                  Serial.println("httpResponseLineCount is :" + String(httpResponseLineCount));
                  if (httpResponseLineCount == 2)
                  {
                    Serial.println("This Line Was empty Two Times");//headers ended
                    Serial.println("Breaking While() Now");
                    httpResponseLineCount = 0;
                    break;
                  }

                }

                if (line.startsWith("HTTP/1.1"))// Check if the HTTP Response is 200, else break and Exit Update.
                {
                  if (line.indexOf("200") < 0)
                  {
                    Serial.println("Got a non 200 status code from server. Exiting OTA Update.");
                    break;
                  }
                }

                if (line.startsWith("Content-Length: "))// extract headers here, Start with content length
                {
                  contentLength = atol((getHeaderValue(line, "Content-Length: ")).c_str());
                  Serial.println("Got " + String(contentLength) + " bytes from server");
                }

                if (line.startsWith("Content-Type: "))// Next, the content type
                {
                  String contentType = getHeaderValue(line, "Content-Type: ");
                  Serial.println("Got " + contentType + " payload.");
                  if (contentType == "text/plain")
                  {
                    isValidContentType = true;
                  }
                }

              }//-------------------------------------while

              Serial.println("contentLength : " + String(contentLength) + ", isValidContentType : " + String(isValidContentType));

              if (contentLength && isValidContentType)// check contentLength and content type
              {
                String GetVersion = Serial2.readStringUntil('#');

                GetVersion = GetVersion.substring(GetVersion.indexOf("$") + 1, GetVersion.indexOf("#"));
                Serial.println("Found Firmware Version is:" + GetVersion);

                if (GetVersion == FirmwareVer)
                {
                  Serial.println("Device is already on the latest Firmware Version:" + GetVersion );
                  value = false;
                }

                if (GetVersion != FirmwareVer)
                {
                  Serial.println("This is a New Firmware Version" + GetVersion );
                  value = true;
                }
              }

              else
              {
                Serial.println("There was no content in the response");
                Serial2.flush();
                value = false;
              }

            }

            input = Serial2.readString();
            input.remove(0);
            Serial2.write("AT+QHTTPSTOP\r\n");
            delay(100);
            input = Serial2.readString();
            input.remove(0);
          }

          else
          {
            Serial.println("HTTP RESPONSE ERROR");
            Serial.println();
            input.remove(0);
            value = false;
          }

        }

        else
        {
          Serial.println("URL CONNECT FAILED");
          Serial.println();
          value = false;
        }

      }

      else
      {
        Serial.println("GPRS CONNECT FAILED");
        Serial.println();
        value = false;
      }

    }

    else if (GSM_Network_STS == false)
    {
      value = false;
    }


  }

  if (WiFi.status() == WL_CONNECTED)
  {
    WiFiClient * client = new WiFiClient;
    if (client)
    {
      HTTPClient http;
      if (http.begin( * client, fwurl))
      {
        httpCode = http.GET();
        Serial.print("HTTP_Code Recieved : ");
        Serial.print(httpCode);
        Serial.println();
        delay(1000);
        if (httpCode == HTTP_CODE_OK) // if version received
        {
          payload = http.getString();
          payload = payload.substring(payload.indexOf("$") + 1, payload.indexOf("#"));

          Serial.println("Found Firmware Version is: " + payload );
          Serial.println();

          if (payload == FirmwareVer)
          {
            Serial.printf("\nDevice is already on the latest Firmware Version:%s\n", payload);
            Serial.println();
            value = false;
          }

          else if (payload != FirmwareVer)
          {
            Serial.println("This is a New Firmware Version: " + payload);
            Serial.println();
            value = true;
          }

        }

        else
        {
          Serial.print("Error in Downloading version file:");
          Serial.println(httpCode);
          Serial.println();
          value = false;
        }

        http.end();
      }
      delete client;
    }

  }

  return value;
}

//----------------------------------------------------------------------------------

bool DoFirmwareUpdate()
{
  Serial.println("<<<  ATTENTION !!! DO NOT TURN OFF THE DEVICE...  >>>"); Serial.println();
  Serial.println("Updating the Device Firmware Now!"); Serial.println();
  Serial.println("Please Wait untill the Device Restarts"); Serial.println();
  bool value;
  String fwurl = "";
  fwurl = URL_fw_Bin;
  Serial.println(fwurl); Serial.println();

  if (WiFi.status() != WL_CONNECTED)
  {
    Network_Check_GSM();
    if (GSM_Network_STS == true)
    {
      Serial2.write("AT+QIACT?\r\n");
      delay(100);
      input = Serial2.readString();
      if (input.indexOf("OK") >= 0)
      {
        Serial.println("GPRS CONNECT SUCCESSFULLY");
        Serial.println();
        input = Serial2.readString();
        input.remove(0);
        Serial2.print("AT+QHTTPURL=79,30\r\n");
        delay(100);
        input = Serial2.readString();
        if (input.indexOf("CONNECT") >= 0)
        {
          Serial2.print(fwurl);
          delay(100);
          input = Serial2.readString();
          if (input.indexOf("OK") >= 0)
          {
            Serial.println("URL CONNECT SUCCESSFULLY");
            Serial.println();
            input = Serial2.readString();
            input.remove(0);
            int count = 0;
            Serial2.write("AT+QHTTPGET=30\r\n");
            input = Serial2.readString();
            while (input.indexOf("+QHTTPGET") < 0)
            {
              Serial.println("WAITING FOR GET COMMAND RESPONSE");
              Serial.println();
              if (count >= 5)
              {
                break;
              }
              count++;
              input = Serial2.readString();
            }

            String GetResponse = input.substring(input.indexOf("+QHTTPGET") + 13, input.indexOf("+QHTTPGET") + 16);
            Serial.print("GET RESPONSE IS:");
            Serial.println(GetResponse);
            Serial.println();
            if (GetResponse == "200")
            {
              Serial.println("GET RESPONSE IS OK");
              Serial.println();
              input = Serial2.readString();
              input.remove(0);
              httpResponseLineCount = 0;
              Serial2.write("AT+QHTTPREAD=30\r\n");
              while (!Serial2.available())
              {
              }
              while (Serial2.available())
              {
                // read line till /n
                String line = Serial2.readStringUntil('\n');
                // remove space, to check if the line is end of headers
                Serial.print("line:");
                Serial.println(line);
                line.trim();

                // if the the line is empty,
                // this is end of headers
                // break the while and feed the
                // remaining `client` to the
                // Update.writeStream();
                if (!line.length())
                {
                  Serial.println("This Line Was empty one times");//headers ended
                  Serial.println("httpResponseLineCount is :" + String(httpResponseLineCount));
                  if (httpResponseLineCount == 1)
                  {
                    Serial.println("This Line Was empty two times");//headers ended
                    Serial.println("Breaking While() Now");
                    httpResponseLineCount = 0;
                    break; // and get the OTA started
                  }
                  httpResponseLineCount ++;
                  //break; // and get the OTA started
                }

                // Check if the HTTP Response is 200
                // else break and Exit Update
                if (line.startsWith("HTTP/1.1"))
                {
                  if (line.indexOf("200") < 0)
                  {
                    Serial.println("Got a non 200 status code from server. Exiting OTA Update.");
                    break;
                  }
                }

                // extract headers here
                // Start with content length
                if (line.startsWith("Content-Length: "))
                {
                  contentLength = atol((getHeaderValue(line, "Content-Length: ")).c_str());
                  Serial.println("Got " + String(contentLength) + " bytes from server");
                }

                // Next, the content type
                if (line.startsWith("Content-Type: "))
                {
                  String contentType = getHeaderValue(line, "Content-Type: ");
                  Serial.println("Got " + contentType + " payload.");
                  if (contentType == "application/octet-stream")
                  {
                    isValidContentType = true;
                  }
                }

              }//-------------------------------------while

              Serial.println("contentLength : " + String(contentLength) + ", isValidContentType : " + String(isValidContentType));

              // check contentLength and content type
              if (contentLength && isValidContentType)
              {
                // Check if there is enough to OTA Update
                bool canBegin = Update.begin(contentLength, 0, 2, 1, NULL);

                // If yes, begin
                if (canBegin)
                {
                  Serial.println("Begin OTA. This may take 2 - 5 mins to complete. Things might be quite for a while.. Patience!");
                  // No activity would appear on the Serial monitor
                  // So be patient. This may take 2 - 5mins to complete


                  size_t written = Update.writeStream(Serial2);

                  if (written == contentLength)
                  {
                    Serial.println("Written : " + String(written) + " successfully");
                  }
                  else
                  {
                    Serial.println("Written only : " + String(written) + "/" + String(contentLength) + ". Retry?" );
                    // retry??
                    // execOTA();
                  }

                  if (Update.end())
                  {
                    Serial.println("OTA done!");
                    if (Update.isFinished())
                    {
                      Serial.println("Update successfully completed. Rebooting.");
                      ESP.restart();
                    }
                    else
                    {
                      Serial.println("Update not finished? Something went wrong!");
                    }
                  }
                  else
                  {
                    Serial.println("Error Occurred. Error #: " + String(Update.getError()));
                  }
                }
                else
                {
                  // not enough space to begin OTA
                  // Understand the partitions and
                  // space availability
                  Serial.println("Not enough space to begin OTA");
                  Serial2.flush();
                }
              }
              else
              {
                Serial.println("There was no content in the response");
                Serial2.flush();
              }

            }

            input = Serial2.readString();
            input.remove(0);
            Serial2.write("AT+QHTTPSTOP\r\n");
            delay(100);
            input = Serial2.readString();
            input.remove(0);
          }

          else
          {
            Serial.println("HTTP RESPONSE ERROR");
            Serial.println();
            input.remove(0);
            value = false;
          }

        }

        else
        {
          Serial.println("URL CONNECT FAILED");
          Serial.println();
          value = false;
        }

      }

      else
      {
        Serial.println("GPRS CONNECT FAILED");
        Serial.println();
        value = false;
      }

      input = Serial2.readString();
      input.remove(0);
      Serial2.write("AT+QIDEACT=1\r\n");
      delay(100);
      input = Serial2.readString();
      input.remove(0);

    }

    else if (GSM_Network_STS == false)
    {
      value = false;
    }


  }

  if (WiFi.status() == WL_CONNECTED)
  {
    WiFiClient client;
    t_httpUpdate_return ret = httpUpdate.update(client, URL_fw_Bin);

    switch (ret)
    {
      case HTTP_UPDATE_FAILED:
        Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s\n", httpUpdate.getLastError(), httpUpdate.getLastErrorString().c_str());
        break;

      case HTTP_UPDATE_NO_UPDATES:
        Serial.println("HTTP_UPDATE_NO_UPDATES");
        break;

      case HTTP_UPDATE_OK:
        Serial.println("HTTP_UPDATE_OK");
        break;
    }

  }

}

//----------------------------------------------------------------------------------

String getHeaderValue(String header, String headerName)
{
  return header.substring(strlen(headerName.c_str()));
}

//----------------------------------------------------------------------------------

Debug Message

[4-25 14:46:22.2]FoxTerm Info: Logging started.
[4-25 14:46:23.4]ets Jun  8 2016 00:22:57
[4-25 14:46:23.4]
[4-25 14:46:23.4]rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)C¡¬ËË¥�Í¥Áé 0, SPIWP:0xee
[4-25 14:46:23.4]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00C¡ë��éDIO, clock div:1
[4-25 14:46:23.4]load:0x3fff0018,len:4
[4-25 14:46:23.4]load:0x3fff001c,len:1216
[4-25 14:46:23.4]ho 0 tail 12 room 4
[4-25 14:46:23.4]load'ÂÑ0078000,len:10944
[4-25 14:46:23.4]load:0x40080400,len:6388
[4-25 14:46:23.4]entry 0x400806b4
[4-25 14:46:23.7]��¨µUÍÁÍ2-hal-cpu.c:189] setCpuFrequencyMhz(): PLL: 320 / 4 = 80 Mhz, APB: 80000000 Hz


[4-25 14:46:25.2]<<--Developed By SILICIS ROAD INDUSTRIES LLP copyright2022-->>
[4-25 14:46:25.2]
[4-25 14:46:25.2]<----------BOOTING UP THE DEVICE---------->
[4-25 14:46:25.2]
[4-25 14:46:25.3]Flash Memory Begin Successfully
[4-25 14:46:25.3]
[4-25 14:46:25.3]Listing directory: /
[4-25 14:46:30.7]Listing directory: /
[4-25 14:46:30.7]EEPROM Begin Successfully
[4-25 14:46:30.7]
[4-25 14:46:30.7]Last Data Upload Interval = 1
[4-25 14:46:30.7]
[4-25 14:46:30.7]Files Stored In Flash = 0
[4-25 14:46:30.7]
[4-25 14:46:30.7]SSID :
[4-25 14:46:30.7]
[4-25 14:46:30.7]PASS :
[4-25 14:46:30.7]
[4-25 14:46:30.9][D][WiFiGeneric.cpp:374] _eventCallback(): Event: 0 - WIFI_READY
[4-25 14:46:30.9][D][WiFiGeneric.cpp:374] _eventCallback(): Event: 2 - STA_START
[4-25 14:46:32.4][E][WiFiMulti.cpp:55] addAP(): [WIFI][APlistAdd] no ssid or ssid too long
[4-25 14:46:32.4][I][WiFiMulti.cpp:84] addAP(): [WIFI][APlistAdd] add SSID: silicis
[4-25 14:46:32.4][I][WiFiMulti.cpp:84] addAP(): [WIFI][APlistAdd] add SSID: PM12
[4-25 14:46:32.4][I][WiFiMulti.cpp:84] addAP(): [WIFI][APlistAdd] add SSID: PM13
[4-25 14:46:32.4]
[4-25 14:46:34.7][D][WiFiGeneric.cpp:374] _eventCallback(): Event: 1 - SCAN_DONE
[4-25 14:46:34.7][I][WiFiMulti.cpp:114] run(): [WIFI] scan done
[4-25 14:46:34.7][I][WiFiMulti.cpp:119] run(): [WIFI] 3 networks found
[4-25 14:46:34.7][D][WiFiMulti.cpp:151] run():        0: [5][52:9B:68:86:29:7B] PM (-48) *
[4-25 14:46:34.7][D][WiFiMulti.cpp:151] run():        1: [4][24:0B:88:F7:B1:49] Tanmay wifi-2.4g (-79) *
[4-25 14:46:34.7][D][WiFiMulti.cpp:151] run():        2: [13][50:2B:73:3D:EE:60] Tenda_3DEE60 (-92) *
[4-25 14:46:34.7][E][WiFiMulti.cpp:191] run(): [WIFI] no matching wifi found!
[4-25 14:46:35.7]UNABLE TO CONNECT ANY WIFI
[4-25 14:46:35.7]
[4-25 14:46:35.8]CHECKING GSM MODULE IN 10Sec.
[4-25 14:46:35.8]
[4-25 14:46:50.0]MODULE OK
[4-25 14:46:50.0]
[4-25 14:46:50.0]SETTING OTHER PARAMETERS TO GSM
[4-25 14:46:50.0]
[4-25 14:46:52.3]IMEI : 861190059737848
[4-25 14:46:52.3]
[4-25 14:46:53.9]CHECKING FOR SIM CARD
[4-25 14:46:53.9]
[4-25 14:46:55.0]SIM CARD FOUND OK
[4-25 14:46:55.0]
[4-25 14:46:56.1]GSM INITIALIZATION COMPLETE
[4-25 14:46:56.1]
[4-25 14:46:57.2]GSM IS REGISTERED ON NETWORK
[4-25 14:46:57.2]
[4-25 14:46:58.4]NETWORK TIME SYNC SUCCESSFUL
[4-25 14:46:58.4]
[4-25 14:46:59.5]SETTING SMS COMMANDS
[4-25 14:46:59.5]
[4-25 14:47:00.1]SETTING HTTP COMMANDS
[4-25 14:47:00.1]
[4-25 14:47:03.5]<--APN SET FOR JIO-->
[4-25 14:47:03.5]
[4-25 14:47:06.0]STARTING GPRS/PDP CONTEXT CONNECTION
[4-25 14:47:08.0]CONTEXT PROFILE IS OK
[4-25 14:47:08.0]
[4-25 14:47:09.1]GPRS/PDP CONTEXT PROFILE IS ACTIVATED
[4-25 14:47:09.1]
[4-25 14:47:10.1]
[4-25 14:47:10.1]+QIACT: 1,1,1,"26.85.155.38"
[4-25 14:47:10.1]
[4-25 14:47:10.1]OK
[4-25 14:47:10.1]
[4-25 14:47:10.1]Device Firmware Version is : 1.0
[4-25 14:47:10.1]
[4-25 14:47:10.1]Checking Firmware update...
[4-25 14:47:10.1]
[4-25 14:47:10.1]http://data.silicisroadindustries.com/silicis_fota/buslog4g_fota_lpa/fw_version.txt
[4-25 14:47:10.1]
[4-25 14:47:11.1]GSM REGISTERED ON NETWORK
[4-25 14:47:11.1]
[4-25 14:47:12.1]Signal Strength : 31
[4-25 14:47:12.1]
[4-25 14:47:13.2]GPRS CONNECT SUCCESSFULLY
[4-25 14:47:13.2]
[4-25 14:47:16.4]URL CONNECT SUCCESSFULLY
[4-25 14:47:16.4]
[4-25 14:47:18.4]WAITING FOR GET COMMAND RESPONSE
[4-25 14:47:18.4]
[4-25 14:47:19.6]GET RESPONSE IS:200
[4-25 14:47:19.6]
[4-25 14:47:19.6]GET RESPONSE IS OK
[4-25 14:47:19.6]
[4-25 14:47:20.6]line is:
[4-25 14:47:20.6]This Line Was empty
[4-25 14:47:20.6]httpResponseLineCount is :1
[4-25 14:47:20.6]line is:CONNECT
[4-25 14:47:20.6]line is:HTTP/1.1 200 OK
[4-25 14:47:20.6]line is:Server: nginx/1.18.0 (Ubuntu)
[4-25 14:47:20.6]line is:Date: Mon, 25 Apr 2022 09:17:30 GMT
[4-25 14:47:20.6]line is:Content-Type: text/plain
[4-25 14:47:20.6]Got text/plain payload.
[4-25 14:47:20.6]line is:Content-Length: 5
[4-25 14:47:20.6]Got 5 bytes from server
[4-25 14:47:20.6]line is:Last-Modified: Tue, 19 Apr 2022 03:56:14 GMT
[4-25 14:47:20.8]line is:Connection: keep-alive
[4-25 14:47:20.8]line is:ETag: "625e32de-5"
[4-25 14:47:20.8]line is:Accept-Ranges: bytes
[4-25 14:47:20.8]line is:
[4-25 14:47:20.8]This Line Was empty
[4-25 14:47:20.8]httpResponseLineCount is :2
[4-25 14:47:20.8]This Line Was empty Two Times
[4-25 14:47:20.8]Breaking While() Now
[4-25 14:47:20.8]contentLength : 5, isValidContentType : 1
[4-25 14:47:20.8]Found Firmware Version is:1.1
[4-25 14:47:20.8]This is a New Firmware Version1.1
[4-25 14:47:22.8]Starting FOTA to update New Firmware
[4-25 14:47:22.8]
[4-25 14:47:22.8]<<<  ATTENTION !!! DO NOT TURN OFF THE DEVICE...  >>>
[4-25 14:47:22.8]
[4-25 14:47:22.8]Updating the Device Firmware Now!
[4-25 14:47:22.8]
[4-25 14:47:22.8]Please Wait untill the Device Restarts
[4-25 14:47:22.8]
[4-25 14:47:22.8]http://data.silicisroadindustries.com/silicis_fota/buslog4g_fota_lpa/update.bin
[4-25 14:47:22.8]
[4-25 14:47:23.8]GSM REGISTERED ON NETWORK
[4-25 14:47:23.8]
[4-25 14:47:24.8]Signal Strength : 31
[4-25 14:47:24.8]
[4-25 14:47:25.9]GPRS CONNECT SUCCESSFULLY
[4-25 14:47:25.9]
[4-25 14:47:29.1]URL CONNECT SUCCESSFULLY
[4-25 14:47:29.1]
[4-25 14:47:31.3]GET RESPONSE IS:200
[4-25 14:47:31.3]
[4-25 14:47:31.3]GET RESPONSE IS OK
[4-25 14:47:31.3]
[4-25 14:47:32.3]line:
[4-25 14:47:32.3]This Line Was empty one times
[4-25 14:47:32.3]httpResponseLineCount is :0
[4-25 14:47:32.3]line:CONNECT
[4-25 14:47:32.3]line:HTTP/1.1 200 OK
[4-25 14:47:32.3]line:Server: nginx/1.18.0 (Ubuntu)
[4-25 14:47:32.3]line:Date: Mon, 25 Apr 2022 09:17:41 GMT
[4-25 14:47:32.3]line:Content-Type: application/octet-stream
[4-25 14:47:32.3]Got application/octet-stream payload.
[4-25 14:47:32.3]line:Content-Length: 848560
[4-25 14:47:32.3]Got 848560 bytes from server
[4-25 14:47:32.3]line:Last-Modified: Sun, 24 Apr 2022 15:25:09 GMT
[4-25 14:47:32.3]line:Connection: keep-alive
[4-25 14:47:32.3]line:ETag: "62656bd5-cf2b0"
[4-25 14:47:32.3]line:Accept-Ranges: bytes
[4-25 14:47:32.3]line:
[4-25 14:47:32.3]This Line Was empty one times
[4-25 14:47:32.3]httpResponseLineCount is :1
[4-25 14:47:32.3]This Line Was empty two times
[4-25 14:47:32.3]Breaking While() Now
[4-25 14:47:32.3]contentLength : 848560, isValidContentType : 1
[4-25 14:47:32.3][D][Updater.cpp:132] begin(): OTA Partition: app1
[4-25 14:47:32.3]Begin OTA. This may take 2 - 5 mins to complete. Things might be quite for a while.. Patience!
[4-25 14:54:16.9]Written only : 784906/848560. Retry?
[4-25 14:54:16.9]Error Occurred. Error #: 6
[4-25 14:54:23.1]<----------BOOT PROCESS COMPLETE---------->
[4-25 14:54:23.1]

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions