Стирание флеш-памяти ESP32 (сброс к заводским настройкам) с помощью ESPTool

Стирание флеш-памяти ESP32 с помощью ESPTool

Сброс к заводским настройкам — это радикальное решение для многих проблем с ESP32. Если вы хотите удалить изменения, внесённые в прошивку или настройки конфигурации, система постоянно зависает и вы не можете загрузить новый код, или вы просто хотите очистить данные, которые больше не нужны, — сброс является наиболее удобным вариантом.

В этом руководстве мы проведём вас через пошаговый процесс стирания флеш-памяти вашего ESP32 с помощью ESPTool.

Что такое ESPTool?

ESPTool — это универсальная утилита, предназначенная для работы с чипами Espressif Systems, такими как ESP32 и ESP8266. Это важнейший инструмент для всех, кто разрабатывает или отлаживает проекты с этими чипами.

ESPTool обычно используется через командную строку или терминал вашего компьютера. Вы подключаете ESP32 к компьютеру через USB, а затем используете команды ESPTool для взаимодействия с ним. Инструмент написан на Python, что делает его кроссплатформенным и доступным на Windows, macOS и Linux.

Вот краткий обзор того, что может ESPTool:

  • Прошивка firmware: ESPTool может загружать (или «прошивать») скомпилированный код во флеш-память вашего ESP32, позволяя вам запускать ваши собственные программы.

  • Стирание флеш-памяти: Он может полностью стереть флеш-память, по сути сбросив ESP32 к заводскому состоянию (на чём мы сосредоточимся в этом руководстве).

  • Чтение флеш-памяти: Вы можете использовать его для чтения содержимого флеш-памяти, что полезно для отладки или создания резервных копий.

  • Взаимодействие с загрузчиком: ESPTool взаимодействует с загрузчиком ESP32 — небольшой программой, которая запускается при старте и позволяет загружать новый код или выполнять другие действия.

Дополнительные возможности включают:

  • Мониторинг последовательного вывода: Он может отслеживать последовательный вывод вашего ESP32, что полезно для просмотра отладочных сообщений или данных от запущенных программ.

  • Конфигурация чипа: ESPTool предоставляет команды для чтения и изменения различных настроек и конфигураций чипа.

  • Функции безопасности: Вы можете использовать его для таких задач, как чтение и запись ключей безопасной загрузки.

Итак, давайте приступим к шагам по стиранию флеш-памяти вашего ESP32.

Шаг 1: Установите Python

ESPTool — это инструмент на основе Python, поэтому вам потребуется установленный Python в вашей системе. Убедитесь, что вы скачали Python версии 3.7 или новее. Если вы используете Windows, вы можете найти MSI-установщик на официальном сайте Python.

Скачать Python 3

Запустите установщик и пройдите через мастер установки. Просто убедитесь, что опция «Add python.exe to Path» включена.

Установка Python 3 на ПК

Шаг 2: Установите ESPTool

После установки Python перейдите к установке последней стабильной версии ESPTool с помощью pip — менеджера пакетов Python. Откройте окно терминала и введите команду:

pip install esptool

В некоторых случаях эта команда может не сработать из-за специфической конфигурации Python. Если вы столкнётесь с ошибкой, попробуйте вместо этого следующие альтернативные команды:

pip3 install esptool
python -m pip install esptool
pip2 install esptool

Кроме того, ESPTool зависит от пакета «setuptools», который может быть не включён по умолчанию во все системы. Если он отсутствует, установите его с помощью следующей команды:

pip install setuptools
Установка ESPTool через pip

После успешной установки ESPTool он должен находиться в каталоге исполняемых файлов Python. Вы можете проверить это, открыв терминал и выполнив:

python -m esptool

Если установка прошла правильно, вы должны увидеть сообщение, подтверждающее версию и основную информацию об использовании ESPTool.

Проверка установки ESPTool

Шаг 3: Подключите ваш ESP32

Теперь подключите плату ESP32 к компьютеру с помощью USB-кабеля.

ESP32, подключённый к компьютеру с помощью USB-кабеля

Шаг 4: Определите COM-порт

Чтобы определить COM-порт, к которому подключён ваш ESP32, следуйте инструкциям для вашей операционной системы:

Пользователи Windows: Откройте Диспетчер устройств и разверните раздел «Порты (COM и LPT)». Найдите устройство с названием «Silicon Labs CP210x USB to UART Bridge» или подобным. Соответствующий номер COM-порта (например, COM3) — это то, что вам понадобится.

Поиск ESP32 в диспетчере устройств

Пользователи macOS/Linux: Откройте терминал и введите команду ls /dev/tty.*. Это выведет список всех подключённых последовательных устройств. Ваш ESP32 должен отображаться как /dev/tty.SLAB_USBtoUART или с похожим именем.

Шаг 5: Стирание флеш-памяти

Теперь откройте окно терминала на вашем компьютере и зажмите кнопку BOOT на вашем ESP32. Удерживая кнопку BOOT, скопируйте и вставьте следующую команду в терминал, заменив COMx на реальный COM-порт вашего ESP32:

python -m esptool --port COMx erase_flash

Если хотите, вы также можете использовать альтернативную команду, в которой указан тип чипа ESP32:

python -m esptool --chip esp32 erase_flash

После вставки любой из этих команд в терминал нажмите Enter.

Как только вы увидите, что процесс «Erasing» начался в терминале, можете отпустить кнопку BOOT. Через несколько секунд флеш-память ESP32 будет полностью стёрта.

Стирание флеш-памяти ESP32 с помощью ESPTool

Примечание

Если после сообщения «Connecting…» вы заметите непрерывный поток точек, это означает, что ваш ESP32 не вошёл в режим прошивки. В этом случае повторите процесс, убедившись, что удерживаете кнопку BOOT во время выполнения команды, чтобы ESP32 вошёл в режим прошивки и успешно завершил процесс стирания.

Шаг 6: Проверка и устранение неполадок

После стирания флеш-памяти вы можете убедиться, что ESP32 работает корректно, повторно загрузив простой скетч, например программу Blink.

Скетч Blink на плате ESP32 в Arduino IDE

Если вы столкнётесь с проблемами, вот несколько советов по устранению неполадок:

  • Проблемы с драйверами: Убедитесь, что необходимые драйверы USB-to-Serial для вашего ESP32 установлены правильно.

  • Правильный выбор порта: Дважды проверьте, что вы выбрали правильный COM-порт.

  • Повторите процесс стирания: Если первая попытка не удалась, повторите команду стирания.

  • Ошибка доступа: Попробуйте запустить командную строку или терминал от имени администратора (или используйте sudo в Linux). Это должно решить любые проблемы, связанные с правами доступа.