You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is another strange thing, sometimes, right after erasing the flash and uploading a new file system with OTA, it displays the error message, but when resetting the ESP32-S2 it is up to date.
But from here on, new OTA updates don't work. Uploading via USB doesn't work either, I have to do the disk erase again.
/* Programa para ESP32 antes da atualização OTA */
#include<WiFi.h>
#include<WiFiClient.h>
#include<WebServer.h>
#include<ESPmDNS.h>
#include<Update.h>/* Constantes - conexão wi-fi e webserver */constchar* host = "esp32";
constchar* ssid = ""; /* coloque aqui o nome da rede wi-fi que o ESP32 deve se conectar */constchar* password = ""; /* coloque aqui a senha da rede wi-fi que o ESP32 deve se conectar *//* Variáveis globais */int contador_ms = 0;
/* Webserver para se comunicar via browser com ESP32 */
WebServer server(80);
/* Códigos da página que será aberta no browser (quando comunicar via browser com o ESP32) Esta página exigirá um login e senha, de modo que somente quem tenha estas informações consiga atualizar o firmware do ESP32 de forma OTA */constchar* loginIndex =
"<form name='loginForm'>""<table width='20%' bgcolor='A09F9F' align='center'>""<tr>""<td colspan=2>""<center><font size=4><b>ESP32 - identifique-se</b></font></center>""<br>""</td>""<br>""<br>""</tr>""<td>Login:</td>""<td><input type='text' size=25 name='userid'><br></td>""</tr>""<br>""<br>""<tr>""<td>Senha:</td>""<td><input type='Password' size=25 name='pwd'><br></td>""<br>""<br>""</tr>""<tr>""<td><input type='submit' onclick='check(this.form)' value='Identificar'></td>""</tr>""</table>""</form>""<script>""function check(form)""{""if(form.userid.value=='admin' && form.pwd.value=='admin')""{""window.open('/serverIndex')""}""else""{"" alert('Login ou senha inválidos')""}""}""</script>";
constchar* serverIndex =
"<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>""<form method='POST' action='#' enctype='multipart/form-data' id='upload_form'>""<input type='file' name='update'>""<input type='submit' value='Update'>""</form>""<div id='prg'>Progresso: 0%</div>""<script>""$('form').submit(function(e){""e.preventDefault();""var form = $('#upload_form')[0];""var data = new FormData(form);"" $.ajax({""url: '/update',""type: 'POST',""data: data,""contentType: false,""processData:false,""xhr: function() {""var xhr = new window.XMLHttpRequest();""xhr.upload.addEventListener('progress', function(evt) {""if (evt.lengthComputable) {""var per = evt.loaded / evt.total;""$('#prg').html('Progresso: ' + Math.round(per*100) + '%');""}""}, false);""return xhr;""},""success:function(d, s) {""console.log('Sucesso!')""},""error: function (a, b, c) {""}""});""});""</script>";
voidsetup(void)
{
Serial.begin(115200);
/* Conecta-se a rede wi-fi */
WiFi.begin(ssid, password);
Serial.println("");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Conectado a rede wi-fi ");
Serial.println(ssid);
Serial.print("IP obtido: ");
Serial.println(WiFi.localIP());
/* Usa MDNS para resolver o DNS */if (!MDNS.begin(host))
{
//http://esp32.local
Serial.println("Erro ao configurar mDNS. O ESP32 vai reiniciar em 1s...");
delay(1000);
ESP.restart();
}
Serial.println("mDNS configurado e inicializado;");
/* Configfura as páginas de login e upload de firmware OTA */
server.on("/", HTTP_GET, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/html", loginIndex);
});
server.on("/serverIndex", HTTP_GET, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/html", serverIndex);
});
/* Define tratamentos do update de firmware OTA */
server.on("/update", HTTP_POST, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
ESP.restart();
}, []() {
HTTPUpload& upload = server.upload();
if (upload.status == UPLOAD_FILE_START)
{
/* Inicio do upload de firmware OTA */
Serial.printf("Update: %s\n", upload.filename.c_str());
if (!Update.begin(UPDATE_SIZE_UNKNOWN))
Update.printError(Serial);
}
elseif (upload.status == UPLOAD_FILE_WRITE)
{
/* Escrevendo firmware enviado na flash do ESP32 */if (Update.write(upload.buf, upload.currentSize) != upload.currentSize)
Update.printError(Serial);
}
elseif (upload.status == UPLOAD_FILE_END)
{
/* Final de upload */if (Update.end(true))
Serial.printf("Sucesso no update de firmware: %u\nReiniciando ESP32...\n", upload.totalSize);
else
Update.printError(Serial);
}
});
server.begin();
}
voidloop()
{
server.handleClient();
delay(1);
contador_ms++;
if (contador_ms >= 1000)
{
Serial.println("Programa V2");
contador_ms = 0;
}
}
Debug Message
Programa V2
Programa V2
Update: v3.bin
Flash Read Failed
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.
The text was updated successfully, but these errors were encountered:
Board
esp32-s2-solo
Device Description
Makerfabs-ESP32-S2-Parallel-TFT-with-Touch
Hardware Configuration
[env:develope]
platform = espressif32
board = featheresp32-s2
framework = arduino
Version
v2.0.1
IDE Name
PlatformIO
Operating System
macOS
Flash frequency
240MHz
PSRAM enabled
yes
Upload speed
115200
Description
I've tried several tutorials, in several different ways, Amazon S3, HttpUpload, SD Card, in all the same error: "Flash Read Failed"
I located the origin in
Update.h
(#define UPDATE_ERROR_READ(3)
Update.cpp
return("Flash Read Failed");)
In this line of code the error:
line 242 Update.cpp
I've tried all versions arduino-esp32
2.0.0
2.0.1
2.0.2
2.0.3-RC1
There is another strange thing, sometimes, right after erasing the flash and uploading a new file system with OTA, it displays the error message, but when resetting the ESP32-S2 it is up to date.
But from here on, new OTA updates don't work. Uploading via USB doesn't work either, I have to do the disk erase again.
Sketch
Debug Message
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
The text was updated successfully, but these errors were encountered: