ESP-8266, ESP32 - как залить прошивку, невзирая на мнение модуля.

Тема в разделе "ESP8266, ESP32", создана пользователем ИгорьК, 29 ноя 2017.

  1. ИгорьК

    ИгорьК Гуру

    Вот что надо сказать вначале:

    "Убить" модуль любой правильной/неправильной прошивкой невозможно. Прошивка льется в микросхему памяти, а их можно даже перепаивать на подходящие бОльшего объема.

    В случае неправильной заливки модуль просто может не начать работать, но путем метода "инженерного тыка" (перебора адресов из документации к той или иной прошивке) он так или иначе прошьется правильно и запустится.

    Модуль (ESP-8266) убивается как подачей 5 вольт для его питания так и на его ноги в виде сигнала. Дохнет он медленно, сразу не горит. Через разное время возникают странные глюки и вот тогда вы задолбаетесь искать причину его выкрутасов: то работает, то - нет.

    ESP32 уничтожает 5 вольтами свои ноги сразу.

    ==============================================
    UPD
    . По утверждению IvanUA, ESP32 прошивкой Espruino следует запитывать через прошивальщик от Espresiff. Надеюсь, он поделится своим опытом.

    Я повторил его рекомендации так:
    upload_2017-12-19_12-43-26.png

    Тем не менее, есть много случаев, когда этот инструмент не работает! Сталкивался сам неоднократно.

    UPD. Внимание! Пост 2017 года. Сейчас Espressif исправил положение и шить лучше его программой.
    Только если не получается - ищем ответ в этой теме.


    ===============================================

    Goouuuu Mini S1 - здесь.

    ИМХО, esptool - инструмент "последнего применения". Он работает тогда, когда остальное не справилось.

    Касается ESP-8266, ESP32. Методика заливки любых прошивок, в том числе АТ , Espruino, NodeMCU, возможно другие.

    Тема не касается работы модулей в среде Ардуино. Однако, узнать количество памяти в модуле и качественно его потереть - лучше по этой инструкции, после чего шить в Ардуино IDE.

    1. Устанавливаем Python третьей версии. Можно и второй, но в третьей по умолчанию есть утилита pip.

    2. Устанавливаем pyserial:
    Код (C++):
    pip install pyserial
    upload_2017-11-29_19-20-10.png

    3. Устанавливаем esptool: https://github.com/espressif/esptool например, в директорию C:\esptool
    Переходим туда:
    upload_2017-11-29_20-25-37.png

    4. (Если модуль без USB разъема) Соединяем модуль с компом по UART любым доступным модулем (cp230*, pl2303, ch340G, ft245, еще другие есть ) или через Ардуино (здесь не забываем согласовывать уровни логики). Внимание! С PL2303 и левыми (а бывают правые?) ft245 возможны проблемы!
    ESP32, NodeMCU, etc просто втыкаем в USB.

    5. При включении вводим модуль в режим загрузки, прижав GPIO0 к земле. На модулях с USB портом есть отдельная кнопка, которую держим при подключении модуля.
    upload_2017-11-29_19-31-53.png

    На последних прошивках NodeMCU прижатие ноги/нажатие кнопки не требуется. Пытайтесь пропустить этот пункт.

    6. Проверяем жизнеспособоность модуля:
    Код (C++):
    py esptool.py --port порт_модуля flash_id
    upload_2017-11-29_19-22-5.png

    Проверка - важный момент!
    6.1. Вы можете налететь на модуль ESP-8285. Он имеет 1МБ памяти и должен шиться в режиме DOUT.
    6.2. Модули ESP-8266 свыше 1МБ шьются в режиме DIO. Остальные в режиме QIO.

    7. Все трем на нем:
    Код (C++):
    py esptool.py --port порт_модуля erase_flash
    upload_2017-11-29_20-9-37.png
    8. Заливаем прошивку из архива ( речь об АТ прошивке), приблизительно (там в архиве есть схемы заливки в файле README.md):
    Код (C++):
    py esptool.py --port порт_модуля write_flash -fm qio 0x00000 boot_v1.2+.bin 0x01000 user1.1024.new.2.bin 0xfc000 esp_init_data_default.bin 0x7e000 blank.bin
    upload_2017-11-30_10-0-58.png

    А это для ESP32 прошивка Espruino:
    Код (Bash):
    esptool.py --port com3 erase_flash
    esptool.py --port com3 write_flash -fm dio 0x1000 bootloader.bin 0x8000 partitions_espruino.bin 0x10000 espruino_esp32.bin
    А это прошивка для NodeMCU
    Код (Bash):
    py esptool.py --port com3 write_flash -fm dio 0x1000 C:\esptool\esp32\bootloader.bin 0x8000 C:\esptool\esp32\partitions_singleapp.bin 0x10000 C:\esptool\esp32\NodeMCU.bin
    Это я заливаю ESP32, но для АТ прошивки ESP-8266 суть та же и выглядит приблизительно так же:
    upload_2017-11-29_20-27-34.png

    Espruino на RESP32, как он был залит в последнем пункте:

    upload_2017-11-29_20-38-24.png

    Все делаете на свой страх и риск.

    Пример. Прошиваем ESP32 прошивкой Espruino:
    upload_2017-12-1_9-41-3.png


    Упрощенный вариант для прошивки NodeMCU.


    Инструкция от Амперки.
     
    Последнее редактирование: 22 апр 2020
    acos, chipmoca, sys и 5 другим нравится это.
  2. IvanUA

    IvanUA Гуру

    Игорь добрый день.

    Может подскажите в чем мой бок. (Возможно и китайский)
    Установил я драйвер для своего CP210x.
    При старте модуль подключается и сразу же отваливается.
    Если перевести его в бут режим, то видно СОМ порт.
    При попытке считать flash_id - начинает читать и отваливается (выходит из бута).
    Если зажать кнопку флеш на модуле, то можно считать информацию флеша
    1.jpg

    Стереть флеш
    2.jpg

    И даже записать
    3.jpg

    Но стоит только вывести его из флеш режима, то естественно порт отваливается.

    Не долго думая, подцепил на его RX0 и TX0 еще 340- ттл конвертер и в его порту можно что то увидеть...

    Кстати, скрипт видно что заливается, но в СОМ порт нет информации о его работе.(((
     
  3. ИгорьК

    ИгорьК Гуру

    У меня на винде 10 после обновления не видна в ESPlorer NodeMCU на ch340g.
    Видимо это особенности Windows.
     
  4. IvanUA

    IvanUA Гуру

    Таки завел...
    Причина банальна - два китайских шнурка микроЮСБ. Через один "работало" только при зажатой кнопке бут. Через второй вообще определялось как неопознанное устройство.

    Третий "китайчик" таки осилил (скорее всего по току) поднять ESP-32.

    Понимаю что случай частный, но может кому на заметку.
     
    ИгорьК нравится это.
  5. Airbus

    Airbus Радиохулиган Модератор

    Эммм.Извиняюсь не сочтите за тупого а с помошью Node ncu flasher разве нельзя?У меня шьёт без нажатия на кнопки.
     
  6. ИгорьК

    ИгорьК Гуру

    Наверно можно. Я шел от мануала от NodeMCU.

    Однако он уже давно не поддерживается и, главное, не трет память.

    Да и не всегда шьет: почему - хз.

    Да, и линуксоводы имеют лишь этот способ. Правда, по своей сути им этот пост не нужен - они такие проблемы щелкают как орехи.
     
    Последнее редактирование: 27 дек 2017
    NikitOS и Airbus нравится это.
  7. Airbus

    Airbus Радиохулиган Модератор

    Будем знать что может быть сюрприз.Хотя у меня и трёт (бланком?)и шьёт и даже нажимать ничего не надо а вот второй прошивальщик ESP8266 DownloadTool у меня так и не заработал.Может дело в Виндах?У меня ХР.А то не очень хочется возвращаться к Ms-Dos както.
     
  8. ИгорьК

    ИгорьК Гуру

    А вот Lua от NodeMCU для ESP32 скомпилирован:

    UPD 31.07.2019 здесь.

    upload_2017-12-21_19-55-15.png

    Забираем, кому интересно и шьем:
    upload_2017-12-21_19-57-14.png

    Если не получается - так:
    Код (Bash):
    py esptool.py --port COM3 flash_id
    py esptool.py --port COM3 erase_flash
    esptool.py --port com3 write_flash -fm dio 0x1000 C:\esptool\esp32\bootloader.bin 0x8000 C:\esptool\esp32\partitions_singleapp.bin 0x10000 C:\esptool\esp32\NodeMCU.bin

    И, здравствуй wifi:
    Код (Lua):
    do
    wifi.start()
    wifi.mode(wifi.STATION)
    station_cfg={}
    station_cfg.ssid="ВАШАСЕТЬ"
    station_cfg.pwd="ВАШПАРОЛЬ"
    station_cfg.auto=true
    station_cfg.save=true
    wifi.sta.config(station_cfg)
    end
    upd 09/10/2018 - плюс mqtt.
     

    Вложения:

    • esp32.zip
      Размер файла:
      425,4 КБ
      Просмотров:
      947
    • esp32mqtt.zip
      Размер файла:
      510 КБ
      Просмотров:
      575
    Последнее редактирование: 1 авг 2019
    lepidot и sys нравится это.
  9. IvanUA

    IvanUA Гуру

    Я бы еще добавил, что при прошивке через прошивальщик от Espresiff
    перед прошивкой, таки нажимать кнопочку "ERASE".
    Был печальный опыт ловить "хвосты"...
     
    ИгорьК нравится это.
  10. А можно использовать не Arduino, а Iskra Js и как? Зарание спасибо
     
  11. IvanUA

    IvanUA Гуру

    Вы немного путаете понятия. Ардуино - это ардуино (мини, микро, нано, мега и т.д.)
    ЕСП - это соответственно ЕСП)))))
    А искра JS - это собственный модуль амперки, с уже установленной на него JavaScript - по этому он собственно и имеет окончание JS
    В данной теме идет речь о заливке в модули ESP - JavaScript или LUA
     
  12. ИгорьК

    ИгорьК Гуру

    И АТ-прошивки.
     
    alp69 нравится это.
  13. ИгорьК

    ИгорьК Гуру

    и в теме вопросов про него есть порядок заливки собственной прошивки в экстренном случае.
     
    Airbus нравится это.
  14. Всё, понял. Спосибо огромное!!!
     
  15. REMBOV

    REMBOV Воскреситель Матрёшек

    ЯСНО теперь
     
  16. ИгорьК

    ИгорьК Гуру

    Пока не могу обобщить, но произошла ситуация, которая поставила в тупик.

    В очередной раз обновил прошивку esp-8266. После обновления прошивки модуль отказался взаимодействовать с внешним миром.
    Никакие ухищрения, замена проводов и даже замена одного модуля PL2303 на другой и применение разных программ-прошивальщиков результата не давало.
    Модуль не отвечал даже на
    Код (C++):
    py esptool.py --port порт_модуля flash_id
    Решил взять свои слова обратно о том, что ошибочной прошивкой модуль "убить" нельзя.
    Для контроля перешил второй модуль, который тоже безвременно скончался, потеряв связь с внешним миром: никакой реакции ни на что.
    Итого - два погибших модуля. Решил не выкидывать, а убрать в долгий ящик, тем более на модулях были уже напаяны микросхемы памяти.
    Открыл "помойную коробку" и увидел там переходник "USB - UART" китайского нонейм с левым модулем FT232.

    Рискнул еще раз попробовать: чудо! Покойные модули ожили и прошились!

    Проверка показала. ESPLorer через PL2303 отлично взаимодействует с ESP-8266. Однако после прошивки через него система перестает видеть модуль через PL2303. На компе Win7. Раньше ничего такого не замечалось.
    Также напомню, что у меня на Win10 ESPLorer перестал видеть модули NodeMCU 0.9
    Просто информация.

    Вывод. ESP-8266 "убить" прошивкой в очередной раз не удалось.

    upload_2018-1-29_18-46-5.png
     
    Последнее редактирование: 29 янв 2018
    IvanUA и issaom нравится это.
  17. Airbus

    Airbus Радиохулиган Модератор

    А если сваять переходник на Тини 2313 или Меге8?Или КомПорт использовать?У меня все переходники видит.У меня ХР
     
  18. ИгорьК

    ИгорьК Гуру

    Не знаю что сказать: мало данных для обобщения. Буду еще экспериментировать.

    Только помните, что ESP-8266 трехвольтовый, не стоит его 5v пЫтать.
     
  19. Airbus

    Airbus Радиохулиган Модератор

    А шнурок от Мобилы 3х вольтовый. СОМ порт тоже можно сделать 3х вольтовым там МАХ232 и стаб 78L05/03 или на 3 или на 5 вольт. FT232 давно не встречал хотя есть и Ардуина на таком и отдельно.Вот такой собрать и запитать его 3 вольтами. Или на Тини-45
     
  20. ИгорьК

    ИгорьК Гуру

    Последнее редактирование: 29 янв 2018