firmware: v12 — quitar setBufferSizes ESP8266 OTA

setBufferSizes(512,512) rechazaba records TLS > 512 bytes durante la
descarga del binario. La primera OTA exitosa no usaba setBufferSizes.
Eliminadas todas las llamadas — buffers por defecto de BearSSL.
Se mantiene el scope block que libera el cliente de version.txt
antes de crear el cliente de descarga.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Natxo1000
2026-06-02 15:05:03 +02:00
parent 234e39aa6f
commit 8f360d352a
6 changed files with 7 additions and 10 deletions

View File

@@ -7,7 +7,7 @@
// ================================================================
// OTA CONFIG
// ================================================================
#define FW_VERSION 11
#define FW_VERSION 12
#define GITEA_HOST "https://git.nacho.myds.me"
#define GITEA_OWNER "Natxo"
#define GITEA_REPO "Arduino-Car"
@@ -64,11 +64,12 @@ static void checkOTA() {
// ── Bloque de scope: libera el cliente BearSSL antes de la descarga ──
// BearSSL ocupa ~20KB de heap. Si los dos clientes coexisten el heap
// se agota y ESPhttpUpdate falla silenciosamente.
// Scope block: destruye el cliente BearSSL antes de crear el de descarga
// Libera ~20KB de heap (BearSSL con buffers por defecto) para la descarga
int remoteVer = 0;
{
BearSSL::WiFiClientSecure client;
client.setInsecure();
client.setBufferSizes(512, 512); // buffers mínimos — suficiente para la respuesta
HTTPClient http;
http.begin(client, base + "version.txt" + token);
http.setTimeout(10000);
@@ -79,7 +80,7 @@ static void checkOTA() {
remoteVer = body.toInt();
}
http.end();
} // client y http se destruyen aquí, ~20KB liberados
} // client destruido aquí — heap recuperado
if (remoteVer > FW_VERSION) {
// 4 pitidos = ESP8266 actualizando
@@ -99,10 +100,6 @@ static void checkOTA() {
BearSSL::WiFiClientSecure updateClient;
updateClient.setInsecure();
// 4096 bytes de entrada: necesario para records TLS de datos grandes.
// 512 bytes de salida: suficiente para peticiones HTTP.
// El scope block anterior liberó ~10KB del primer cliente — hay heap.
updateClient.setBufferSizes(4096, 512);
ESPhttpUpdate.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
ESPhttpUpdate.rebootOnUpdate(true);
ESPhttpUpdate.update(updateClient, base + "firmware.bin" + token);