Плата:ESP32ESP32-S3ESP32-C3
Bootloop: ESP32 бесконечно перезагружается
Циклический вывод одного и того же лога загрузки в Serial Monitor обычно вызван watchdog-сбросом от зависшего кода, повреждённой partition table или brownout — редко это аппаратный брак.
Возможные причины
- Зависший в цикле код блокирует основной loop дольше таймаута watchdog
- Повреждённая или несовместимая partition table после смены схемы разделов
- Просадка питания вызывает повторяющийся brownout-сброс сразу после старта
- Битый или частично записанный sketch из-за прерванной прошивки
- Бесконечный цикл в setup() из-за ожидания недоступной периферии (например, Serial.available без таймаута)
Что сделать
- Откройте Serial Monitor на 115200 бод сразу после reset и прочитайте причину сброса в строке rst:0x... (Task_WDT, Brownout, exception).
- Если причина — Task watchdog, найдите блокирующий цикл без задержек/yield и добавьте vTaskDelay или уберите бесконечное ожидание.
- Выполните полный erase_flash и прошейте заново — это устраняет мусор от старой partition table.
- Проверьте питание мультиметром на предмет просадки при старте (см. статью про brownout).
- Временно прошейте минимальный blink-скетч без периферии, чтобы исключить бесконечный цикл в вашем коде.
- Если сброс происходит на голом примере без изменений — переходите к диагностике питания и кабеля, а не кода.
Когда менять железо
Железо меняют редко: сначала полностью исключите зависший код, повреждённую флеш-память (erase_flash) и питание.
Не официальная поддержка Espressif Systems. Проверяйте применимость к своей ревизии платы и версии ядра/IDF.