Skip to content

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

@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

Labels

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions