ПинЛог

Плата:ESP32ESP32-S3ESP32-C3

Bootloop: ESP32 бесконечно перезагружается

Циклический вывод одного и того же лога загрузки в Serial Monitor обычно вызван watchdog-сбросом от зависшего кода, повреждённой partition table или brownout — редко это аппаратный брак.

Возможные причины

  • Зависший в цикле код блокирует основной loop дольше таймаута watchdog
  • Повреждённая или несовместимая partition table после смены схемы разделов
  • Просадка питания вызывает повторяющийся brownout-сброс сразу после старта
  • Битый или частично записанный sketch из-за прерванной прошивки
  • Бесконечный цикл в setup() из-за ожидания недоступной периферии (например, Serial.available без таймаута)

Что сделать

  1. Откройте Serial Monitor на 115200 бод сразу после reset и прочитайте причину сброса в строке rst:0x... (Task_WDT, Brownout, exception).
  2. Если причина — Task watchdog, найдите блокирующий цикл без задержек/yield и добавьте vTaskDelay или уберите бесконечное ожидание.
  3. Выполните полный erase_flash и прошейте заново — это устраняет мусор от старой partition table.
  4. Проверьте питание мультиметром на предмет просадки при старте (см. статью про brownout).
  5. Временно прошейте минимальный blink-скетч без периферии, чтобы исключить бесконечный цикл в вашем коде.
  6. Если сброс происходит на голом примере без изменений — переходите к диагностике питания и кабеля, а не кода.

Когда менять железо

Железо меняют редко: сначала полностью исключите зависший код, повреждённую флеш-память (erase_flash) и питание.

Не официальная поддержка Espressif Systems. Проверяйте применимость к своей ревизии платы и версии ядра/IDF.

Связанные материалы