From 3ef37e0f0e9ddf12e0a9b07ec39fd4890c5c4bac Mon Sep 17 00:00:00 2001 From: Natxo1000 Date: Tue, 2 Jun 2026 21:59:27 +0200 Subject: [PATCH] =?UTF-8?q?firmware:=20v18=20=E2=80=94=20fix=20bug=20criti?= =?UTF-8?q?co=20espReady=20+=20watchdog=20ESP8266?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: en v16 se elimino if(!espReady)return del loop() y no se restauro en v17. Resultado: bytes basura del bootloader ESP32 (ej 0x42='B') se ejecutaban como backward() antes y despues del handshake. Fixes: - Restaurado bool espReady con guard if(!espReady)return en loop() - Restaurado handler 'G' en loop() para reinicio del ESP32: espReady=false + stopMotors() inmediato + nuevo handshake - Watchdog ligero en ESP8266 (solo millis(), sin FreeRTOS): si no llega comando de movimiento en 1.5s -> para motores Evita que el coche siga moviendose si el ESP32 crashea Co-Authored-By: Claude Sonnet 4.6 --- ESP8266/ESP8266.ino | 43 ++++++++++++++++++++++++++++----- Esp32Cam/Esp32Cam.ino | 2 +- firmware/esp32cam/firmware.bin | Bin 1309120 -> 1309120 bytes firmware/esp32cam/version.txt | 2 +- firmware/esp8266/firmware.bin | Bin 411808 -> 411952 bytes firmware/esp8266/version.txt | 2 +- 6 files changed, 40 insertions(+), 9 deletions(-) diff --git a/ESP8266/ESP8266.ino b/ESP8266/ESP8266.ino index f786b7b..ec532b4 100644 --- a/ESP8266/ESP8266.ino +++ b/ESP8266/ESP8266.ino @@ -7,7 +7,7 @@ // ================================================================ // OTA CONFIG // ================================================================ -#define FW_VERSION 17 +#define FW_VERSION 18 #define GITEA_HOST "https://git.nacho.myds.me" #define GITEA_OWNER "Natxo" #define GITEA_REPO "Arduino-Car" @@ -110,6 +110,8 @@ static void checkOTA() { WiFi.mode(WIFI_OFF); // apaga radio para ahorrar energía } +bool espReady = false; + void waitForReady() { delay(300); while (Serial.available()) Serial.read(); @@ -124,6 +126,7 @@ void waitForReady() { Serial.print("OK\n"); delay(50); while (Serial.available()) Serial.read(); + espReady = true; // 2 pitidos: conexión entre placas lista for (int i = 0; i < 2; i++) { digitalWrite(buzzerPin, HIGH); delay(180); @@ -138,6 +141,7 @@ void waitForReady() { } delay(10); } + espReady = true; // timeout: arranca igualmente } void setup() { @@ -166,15 +170,42 @@ void setup() { waitForReady(); } +// Watchdog ligero en ESP8266: si no llega comando de movimiento en 1.5s → para +// Evita que el coche siga moviéndose si el ESP32 se cuelga o reinicia +unsigned long lastMoveMs = 0; +bool motorRunning = false; + void loop() { + // Watchdog: sin comandos durante 1.5s → para motores + if (motorRunning && (millis() - lastMoveMs > 1500)) { + stopMotors(); + motorRunning = false; + } + if (Serial.available()) { char c = Serial.read(); - if (c == 'F') forward(); - else if (c == 'B') backward(); - else if (c == 'L') left(); - else if (c == 'R') right(); - else if (c == 'S') stopMotors(); + // 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; + + if (c == 'F') { forward(); lastMoveMs = millis(); motorRunning = true; } + else if (c == 'B') { backward(); lastMoveMs = millis(); motorRunning = true; } + else if (c == 'L') { left(); lastMoveMs = millis(); motorRunning = true; } + else if (c == 'R') { right(); lastMoveMs = millis(); motorRunning = true; } + else if (c == 'S') { stopMotors(); motorRunning = false; } else if (c == 'V') { int val = Serial.parseInt(); diff --git a/Esp32Cam/Esp32Cam.ino b/Esp32Cam/Esp32Cam.ino index bbd784e..6eed0f6 100644 --- a/Esp32Cam/Esp32Cam.ino +++ b/Esp32Cam/Esp32Cam.ino @@ -10,7 +10,7 @@ // ================================================================ // OTA CONFIG // ================================================================ -#define FW_VERSION 17 +#define FW_VERSION 18 #define GITEA_HOST "https://git.nacho.myds.me" #define GITEA_OWNER "Natxo" #define GITEA_REPO "Arduino-Car" diff --git a/firmware/esp32cam/firmware.bin b/firmware/esp32cam/firmware.bin index 64bd5b1715b9e03fafd53c979cf20a7b507fb1cb..adc825350f2ea810a3f6cc767944f898513c6941 100644 GIT binary patch delta 159 zcmX@`+5f<2{|Oruq%}{^@zP9DFo@XkSKrckVy|#i&aaD0MKuq0tE`NeI=Asc>jlQv z3rwvSn73YF`ESIi(SE_01&CRJm<@>8ftUk`If0l9h`E872Z(urm=B2gfmi^D1%X&- u`vqg+^G6lCCwA|jcy?kB=iQx4)i+A={;BF(yjHPV_g$oqmijx3cM$+bB}X{` delta 159 zcmX@`+5f<2{|Oru%GOMG&0Tcs)b3?Xp)%^;zvk4$7z=41EB>mg7qKMw4R7Ox)(ecS z7noWvFmJuU^52M2qWyv~3lOscF&hxG12G2>a{@6J5OV`D4-oSLF&_}~1F--Q3j(pw u_6x?s=Z`A3XZAJ-R)_fBG|Otyde5hmeT`$rx!5`1_o@5Lt)K5{cL)IO+DB0U diff --git a/firmware/esp32cam/version.txt b/firmware/esp32cam/version.txt index 8e2afd3..25bf17f 100644 --- a/firmware/esp32cam/version.txt +++ b/firmware/esp32cam/version.txt @@ -1 +1 @@ -17 \ No newline at end of file +18 \ No newline at end of file diff --git a/firmware/esp8266/firmware.bin b/firmware/esp8266/firmware.bin index 6551e3d4c96ec4452891122f3e0b0c900d931bad..20ba3af7a7849a7780209972449136c00a18611d 100644 GIT binary patch delta 23839 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 I6f?a45B4AQRR910 delta 23908 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 diff --git a/firmware/esp8266/version.txt b/firmware/esp8266/version.txt index 8e2afd3..25bf17f 100644 --- a/firmware/esp8266/version.txt +++ b/firmware/esp8266/version.txt @@ -1 +1 @@ -17 \ No newline at end of file +18 \ No newline at end of file