From ba3f927e8c7acf5dfcaf5ced672e7b8c327a5f81 Mon Sep 17 00:00:00 2001 From: Natxo1000 Date: Wed, 3 Jun 2026 16:55:58 +0200 Subject: [PATCH] =?UTF-8?q?firmware:=20v19=20=E2=80=94=20quitar=20handler?= =?UTF-8?q?=20G=20del=20loop()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El handler 'G' en loop() empeoraba el problema: el bootloader del ESP32 manda basura que incluye bytes 0x47 ('G'), lo que disparaba un handshake falso y dejaba espReady=true antes de tiempo, permitiendo que mas basura del bootloader ejecutase backward(). Ahora: solo waitForReady() hace el handshake al arrancar. Si el ESP32 se cuelga y reinicia, el watchdog de 1.5s (millis()) para los motores. Cuando el ESP32 termina de arrancar, el usuario puede volver a manejar normalmente. Co-Authored-By: Claude Sonnet 4.6 --- ESP8266/ESP8266.ino | 15 +-------------- Esp32Cam/Esp32Cam.ino | 2 +- firmware/esp32cam/version.txt | 2 +- firmware/esp8266/firmware.bin | Bin 411952 -> 411872 bytes firmware/esp8266/version.txt | 2 +- 5 files changed, 4 insertions(+), 17 deletions(-) diff --git a/ESP8266/ESP8266.ino b/ESP8266/ESP8266.ino index ec532b4..01a22ed 100644 --- a/ESP8266/ESP8266.ino +++ b/ESP8266/ESP8266.ino @@ -7,7 +7,7 @@ // ================================================================ // OTA CONFIG // ================================================================ -#define FW_VERSION 18 +#define FW_VERSION 19 #define GITEA_HOST "https://git.nacho.myds.me" #define GITEA_OWNER "Natxo" #define GITEA_REPO "Arduino-Car" @@ -185,19 +185,6 @@ void loop() { if (Serial.available()) { char c = Serial.read(); - // Reinicio del ESP32-CAM: manda "GO\n" de nuevo - if (c == 'G') { - espReady = false; - stopMotors(); - motorRunning = false; - Serial.readStringUntil('\n'); - Serial.print("OK\n"); - delay(50); - while (Serial.available()) Serial.read(); - espReady = true; - return; - } - // Ignorar todo hasta que el handshake esté completo if (!espReady) return; diff --git a/Esp32Cam/Esp32Cam.ino b/Esp32Cam/Esp32Cam.ino index 6eed0f6..246d750 100644 --- a/Esp32Cam/Esp32Cam.ino +++ b/Esp32Cam/Esp32Cam.ino @@ -10,7 +10,7 @@ // ================================================================ // OTA CONFIG // ================================================================ -#define FW_VERSION 18 +#define FW_VERSION 19 #define GITEA_HOST "https://git.nacho.myds.me" #define GITEA_OWNER "Natxo" #define GITEA_REPO "Arduino-Car" diff --git a/firmware/esp32cam/version.txt b/firmware/esp32cam/version.txt index 25bf17f..dec2bf5 100644 --- a/firmware/esp32cam/version.txt +++ b/firmware/esp32cam/version.txt @@ -1 +1 @@ -18 \ No newline at end of file +19 \ No newline at end of file diff --git a/firmware/esp8266/firmware.bin b/firmware/esp8266/firmware.bin index 20ba3af7a7849a7780209972449136c00a18611d..90098780486d29515bee140c7df3d74f1d95630f 100644 GIT binary patch delta 22743 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 delta 22716 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