Wycofywanie nieudanej aktualizacji
Bezpiecznie odzyskiwać działanie po nieudanym przesyłaniu.
Wycofywanie nieudanej aktualizacji to bezpłatna lekcja Arduino & IoT Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Arduino & IoT Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Updates Can Go Wrong
Even careful OTA pushes sometimes ship broken code. A solid plan needs a way to roll back to firmware that actually worked.
The Brick Risk
If new firmware can't connect to WiFi, you lose OTA itself. Without a safety net the device becomes a useless brick.
Two Partitions Save You
The ESP32 keeps the old app in one slot while flashing the new one into another. The previous build is still intact if needed.
Mark a Build as Trusted
A fresh update boots in a pending state. Your code must prove it works and then confirm the image so it becomes permanent.
esp_ota_mark_app_valid_cancel_rollback();Self-Test on Boot
Before confirming, run a quick health check: did WiFi connect, did key sensors respond? Only then mark the build valid.
Auto Rollback on Failure
If a pending build crashes or reboots before confirming, the bootloader quietly returns to the last good firmware on its own.
Trigger It Yourself
You can also force a return to the previous image in code with esp_ota_mark_app_invalid_rollback_and_reboot() when a check fails.
esp_ota_mark_app_invalid_rollback_and_reboot();Use a Watchdog
A watchdog timer resets a frozen board. Paired with rollback, a hung update reboots straight back into working code.
Version Your Firmware
Stamp each build with a version number you can print over Serial, so you instantly know which image is actually running.
#define FW_VERSION "1.4.2"
Serial.println(FW_VERSION);Test on One Device First
Never push to your whole fleet at once. Update a single canary device, watch it, then roll out widely. 🐤
Always Keep a Recovery Path
Worst case, a USB cable still reflashes any board. Design so a bad OTA is an inconvenience, never a permanent loss.
Quick Check
Consider what happens if new firmware crashes before it confirms itself.
Recap
Keep two partitions, self-test then confirm each build, lean on auto rollback and a watchdog, and always leave a USB recovery path. 🛡️
Często zadawane pytania
Czy lekcja „Wycofywanie nieudanej aktualizacji” jest bezpłatna?
Tak — pełny tekst „Wycofywanie nieudanej aktualizacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Arduino & IoT Academy, przejdź na CoddyKit PRO. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wycofywanie nieudanej aktualizacji”?
Bezpiecznie odzyskiwać działanie po nieudanym przesyłaniu. Ćwiczysz Arduino & IoT Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Arduino & IoT Academy?
Nie wymagamy żadnego doświadczenia. Arduino & IoT Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Wycofywanie nieudanej aktualizacji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Arduino & IoT Academy?
Tak. Każda lekcja Arduino & IoT Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego OTA ma znaczenie w terenie
- Włączanie ArduinoOTA
- Udostępnianie strony aktualizacji
- Wycofywanie nieudanej aktualizacji