В данной статье мы рассмотрим как стереть Flash память модуля ESP32, то есть выполнить аппаратный сброс модуля и вернуть его к заводским настройкам. Это полезно делать когда ваш модуль ESP32 по каким то непонятным причинам перестал работать и в него нельзя загрузить новый код программы. Также эта операция необходима когда вы хотите восстановить прошивку (firmware) в ее оригинальное состояние, то есть каким оно было с завода. Стирать Flash память модуля ESP32 мы будем с помощью инструмента под названием esptool.
Установка esptool.py
Для выполнения сброса к заводским настройкам модуля ESP32 мы будем использовать программу esptool, которая представляет собой платформо-независимую утилиту с открытым исходным кодом, основанную на языке Python. Она используется для взаимодействия с ROM загрузчиком (bootloader) в чипах от компании Espressif, к которым относится и ESP32.
Чтобы установить утилиту esptool необходимо чтобы на вашем компьютере был установлен Python 3.7 или новее. Вы можете скачать свежие версии установщика Python с его официального сайта.
Когда Python 3 будет установлен на вашем компьютере, откройте окно терминала (Terminal window ) и установите самую последнюю стабильную версию программы esptool.py с помощью установщика pip:
1 |
pip install esptool |
Примечание: с некоторыми установленными версиями Python приведенная команда может не работать и выдавать ошибку, в этом случае попробуйте одну из следующих команд:
1 2 3 |
pip3 install esptool python -m pip install esptool pip2 install esptool |
Также будет необходимо установить и утилиту Setuptools - в некоторых операционных системах ее нет по умолчанию. Ее можно установить с помощью следующей команды:
1 |
pip install setuptools |
Итак, после описанных шагов у вас будет установлена программа esptool.py (в каталог Python по умолчанию для исполняемых файлов) и вы ее сможете запускать на выполнение. В окне терминала выполните команду:
1 |
python -m esptool |
Если esptool у вас установлена корректно, то в результате выполнения этой команды вы на экране должны увидеть следующую картину (независимо от вашей операционной системы):
Стирание Flash памяти ESP32
Чтобы стереть флэш-память модуля ESP32 выполните следующую последовательность шагов:
1. Подключите модуль ESP32 к вашему компьютеру.
2. Откройте на компьютере окно терминала.
3. Нажмите кнопку BOOT на модуле ESP32.
4. Выполните следующую команду в окне терминала (продолжая удерживать кнопку BOOT):
1 |
python -m esptool --chip esp32 erase_flash |
5. Когда начнется процесс стирания (Erasing) Flash памяти вы можете отпустить кнопку BOOT/FLASH. Через несколько секунд Flash память модуля ESP32 будет стерта.
Примечание: если после появления сообщения “Connecting …” на экране будут появляться новые серии точек (…) это будет означать что модуль ESP32 не находится в режиме загрузчика/режиме прошивки (bootloader mode/flashing mode). В данном случае вам необходимо будет снова повторить все описанные шаги и снова держать кнопку BOOT/FLASH чтобы убедиться в том, что модуль ESP32 перейдет в режим загрузчика/режим прошивки и процесс стирания Flash памяти успешно завершится.
Дисклеймер
Как видно из описания способа, существуют некоторые "подводные камни", из-за которых в некоторых условиях он может не работать. Поэтому просьба не писать в комментариях кучу гневных фраз по поводу того, что я выложил здесь неработающий способ. К сожалению, более простого и 100% работающего способа стереть Flash память модуля ESP32 я пока не нашел на просторах интернета.
5 519 просмотров
Давно этим пользовался еще на Win_8.1. Неделю назад перешел на 10, работать перестало. Танцы с бубнами не помогли. Переустановил, как написано в статье - все отлично. Огромное спасибо автору!
Спасибо что оценили наш труд
Можно использовать WEB версию ESPTool для стирания/Загрузки прошивки во Flash ESP8266/32:
https://adafruit.github.io/Adafruit_WebSerial_ESPTool/
Хорошо, спасибо за совет