В данной статье мы рассмотрим как стереть Flash память (флэш-память) модуля ESP8266 NodeMCU, то есть выполнить аппаратный сброс модуля и вернуть его к заводским настройкам. Восстановление заводских настроек модуля ESP8266 может быть полезно, если вы хотите удалить любые изменения, внесенные в прошивку или настройки конфигурации; если система часто дает сбои и вы не можете загрузить новый код; для очистки данных, которые больше не нужны, и других приложений. Стирать Flash память модуля ESP32 мы будем с помощью инструмента под названием esptool. Ранее на нашем сайте мы рассматривали аналогичную процедуру стирания Flash памяти модуля ESP32.
Установка esptool.py
Для выполнения сброса к заводским настройкам модуля ESP8266 NodeMCU мы будем использовать программу 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 |
Примечание №2: если и ни одна из этих команд не помогла, то по совету пользователя Сергея, написавшего его в комментарии к данной статье, попробуйте проапгрейдить установщик pip командой
1 |
python -m pip install esptool --upgrade pip |
После чего должна сработать команда
1 |
python -m pip install esptool |
Также будет необходимо установить и утилиту Setuptools - в некоторых операционных системах ее нет по умолчанию. Ее можно установить с помощью следующей команды:
1 |
pip install setuptools |
Итак, после описанных шагов у вас будет установлена программа esptool.py (в каталог Python по умолчанию для исполняемых файлов) и вы ее сможете запускать на выполнение. В окне терминала выполните команду:
1 |
python -m esptool |
Если esptool у вас установлена корректно, то в результате выполнения этой команды вы на экране должны увидеть следующую картину (независимо от вашей операционной системы):
Стирание Flash памяти ESP8266 NodeMCU
Чтобы стереть флэш-память модуля ESP8266 NodeMCU выполните следующую последовательность шагов:
1. Подключите модуль ESP8266 NodeMCU к вашему компьютеру.
2. Откройте на компьютере окно терминала.
3. Нажмите кнопку BOOT/FLASH на модуле ESP8266 NodeMCU.
4. Выполните следующую команду в окне терминала (продолжая удерживать кнопку FLASH/BOOT):
1 |
python -m esptool --chip esp8266 erase_flash |
5. Когда начнется процесс стирания (Erasing) Flash памяти вы можете отпустить кнопку BOOT/FLASH. Через несколько секунд Flash память модуля ESP8266 NodeMCU будет стерта.
Примечание: если после появления сообщения “Connecting …” на экране будут появляться новые серии точек (…) это будет означать что модуль ESP8266 не находится в режиме загрузчика/режиме прошивки (bootloader mode/flashing mode). В данном случае вам необходимо будет снова повторить все описанные шаги и снова держать кнопку BOOT/FLASH чтобы убедиться в том, что модуль ESP8266 перейдет в режим загрузчика/режим прошивки и процесс стирания Flash памяти успешно завершится.
Дисклеймер
Как видно из описания представленного способа, существуют некоторые "подводные камни", из-за которых по ряду причин он может не сработать. Поэтому просьба не писать в комментариях гневные фразы по поводу того, что я выложил здесь неработающий способ. К сожалению, более простого и 100% работающего способа стереть Flash память модуля ESP8266 NodeMCU я пока не нашел в сети интернет.
3 084 просмотров
Я установил Питон. Открыл окно терминала виндоуз. А терминал не принимает команды pip. Я что то не так делаю?? может запустить Питон и в его окне...я так делал тоже ошибки...
С какого конца подходить к стиранию памяти 8266??
ни одна команда не срабатывает..
Сначала нужно исправить чтобы pip работал. Причины этого могут быть разные, в интернете многие из них рассмотрены, например, https://www.google.com/search?q=pip+%D0%BD%D0%B5+%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82+%D0%B2+%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8
Добрый вечер. Спасибо за статью. Грамотно изложен материал. После обновления по OTA ESP8266mod вообще отключилась. Перепрошивка этой же прошивкой результата не дала. Прошил пример подключения к Wi-Fi плата подключилась (скетч маленький)понял надо память стирать полностью. Теперь по сути. Не подошёл ни один из 4 вариантов установки esptool. Но красным текстом были описаны ошибки и предложение про апгрейдить установщик pip командой python -m pip install esptool --upgrade pip. После этого сработала команда python -m pip install esptool. Ну а дальше всё по тексту статьи. После очистки плата прошилась и заработала. Можете дополнить статью. Ещё раз спасибо.
Добрый и вам вечер. Спасибо вам за подробный комментарий, дополнил статью по вашему совету.
А как быть если модуль теперь при включении отрубает вай фай и пк его не видит? Сбросить флэш не получается так как пишет что порт com6 не подлючен. Есть способ может перемычкой какой или без вариантов?
Ну а по USB модуль подключить к компьютеру?
СПАСИБО БОЛЬШОЕ!!)))
Я рад что у вас получилось