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

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

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

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

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

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

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

    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.
     
    Последнее редактирование: 14 сен 2018
    sys, IvanUA, SergeiL и 3 другим нравится это.
  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
    BAR__MEN и Airbus нравится это.
  7. Airbus

    Airbus Оракул

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

    ИгорьК Давно здесь

    А вот Lua от NodeMCU для ESP32 скомпилирован:
    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 КБ
      Просмотров:
      133
    • esp32mqtt.zip
      Размер файла:
      510 КБ
      Просмотров:
      2
    Последнее редактирование: 9 окт 2018
    sys нравится это.
  9. IvanUA

    IvanUA Гик

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

    IvanUA Гик

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

    ИгорьК Давно здесь

    И АТ-прошивки.
     
  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