Ошибки при перепрошивке NodeMCU на ESP8266

У меня было немного тяжелое время, пытаясь прошить последнюю прошивку dev. Я отредактировал вопрос с кучей примеров копирования/вставки из моего cli и разъяснил шаги, которые я предпринял до сих пор. Вот что я пытался сделать:

  • Я скачал мастер-версию и версию прошивки 1.4.0 из службы пользовательской сборки.
  • Я попытался прошить мастер-версию 1.4.0 с помощью этой команды:

    python esptool.py --port /dev/ttyUSB0 write_flash -fm=dio -fs=32m 0x00000 ~/git/nodemcu-
    firmware/bin/nodemcu_integer_1.4.0_master_20160531.bin 
    esptool.py v1.0.2-dev
    Connecting...
    Running Cesanta flasher stub...
    Flash params set to 0x0240
    Writing 405504 @ 0x0... 405504 (100 %)
    Wrote 405504 bytes at 0x0 in 35.2 seconds (92.2 kbit/s)...
    Leaving...
    
  • Кажется, это удалось, потому что я могу подключиться к devkit

    n?$B�
          ��4"*���4"*��B%,��� C�
    NodeMCU custom build by frightanic.com
            branch: master
            commit: c8037568571edb5c568c2f8231e4f8ce0683b883
            SSL: false
            modules: file,gpio,i2c,net,node,rtcfifo,rtcmem,rtctime,tmr,uart,wifi,ws2812
     build  built on: 2016-06-01 02:58
     powered by Lua 5.1.4 on SDK 1.4.0
    lua: cannot open init.lua
    > 
    
  • Я загрузил v1.5.1 nonos из espressif sdk, чтобы получить esp_init_data_default.bin. Мне пришлось это сделать, потому что devkit работал под управлением 0.9.6.

  • Я попытался прошить версию прошивки 1.4.0 dev с помощью этой команды:

    python esptool.py --port /dev/ttyUSB0 write_flash -fm=dio -fs=32m 0x00000 ~/git/nodemcu-firmware/bin/nodemcu_integer_1.4.0_dev_20160531.bin 0x3fc000 ~/git/nodemcu-firmware/bin/esp_init_data_default.bin 
    esptool.py v1.0.2-dev
    Connecting...
    Running Cesanta flasher stub...
    Flash params set to 0x0240
    Writing 401408 @ 0x0... 401408 (100 %)
    Wrote 401408 bytes at 0x0 in 34.8 seconds (92.3 kbit/s)...
    Writing 4096 @ 0x3fc000... 4096 (100 %)
    Wrote 4096 bytes at 0x3fc000 in 0.4 seconds (90.0 kbit/s)...
    Leaving...
    
  • Кажется, это не работает, потому что, когда я пытаюсь подключиться к devkit, я получаю только тарабарщину. Я пытался подключиться с КАЖДОЙ настройкой скорости передачи данных, и, похоже, это совсем не улучшает тарабарщину.

    rll|l�|l�b|�rbb�nnlnn��bplrlrlp�n�lbn�|l�b�nn�ll`nn
                                                 lnr�n
    
                                                       b��`p�n�
    
                                                                  r���bn�|llb�nn�l`nnl�l`nr�n
    
                                                                                                 ��l``�n
    
    
                                                                                                         ��b�nl�
                                                                                                                ��nn�
                                                                                                                     lp�n�
    
      r���lbn�|b�nn�ll`
    

Основная версия прошивки работает очень хорошо, но, как я уже сказал, в модулях Wi-Fi и ws2812 не хватает пары вещей, которые я хочу использовать. Версия прошивки для разработчиков мигает, но когда я пытаюсь использовать screen для подключения к devkit, все, что я получаю, это тарабарщина, а подсказка Lua никогда не появляется. Я сдаюсь сейчас, я не знаю, что делать дальше, так что может кто-нибудь, пожалуйста, помогите мне?

Спасибо за любую помощь.


person dbrummett    schedule 01.06.2016    source источник


Ответы (2)


Ваша формулировка относительно ветвей и версий немного сбивает с толку (по крайней мере, для меня). dev основан на SDK v1.5.1, а для master — 1.4.0.

Вам не нужно прошивать прошивку плюс SDK. Достаточно самой прошивки. Поскольку вы ссылаетесь на нашу документацию по перепрошивке, я предполагаю, что вы правильно поняли команду esptool.py.

Стоит отметить две вещи:

  • Я полагаю, вы упомянули esp_init_data_default.bin из-за танца байт-107? Больше не нужно, если вы находитесь в ветке dev из-за adc.force_init_mode()< /a>, мы только что имели это вчера. Или это из-за того, что у вас ранее на устройстве стояла старая прошивка 0.9.x? Если да, правильно ли вы получили адрес для esp_init_data_default.bin, т.е. выровняли ли его по размеру флэш-памяти вашего устройства?
  • У нас есть автоматическое определение скорости в dev. Я не уверен, насколько хорошо это играет с screen. Попробуйте установить 115'200 явно или попробуйте ESPlorer.

Обновить

Позвольте мне сказать, что я считаю, что вы создали полный беспорядок. Кроме того, у меня есть основания полагать, что отчеты и результаты в вашем вопросе не являются всей правдой.

  • Опять же, нет такой вещи, как v1.4 dev. dev основан на SDK 1.5.1, master использует 1.4.
  • Вы утверждаете, что используете мой специальный сервис сборки. Тем не менее, в вашей первой строке cmd имя файла и путь — ~/git/nodemcu-firmware/bin/nodemcu_integer_1.4.0_master_20160531.bin. Это намекает на то, что вы собираете прошивку самостоятельно (используя мой образ Docker). ?). Имена файлов, сгенерированные службой сборки, используют шаблон nodemcu-<branch>-<number>-modules-<timestamp>-integer|float, в то время как мой образ Docker по умолчанию генерирует что-то вроде nodemcu_integer|float_<branch>_<timestamp>.
  • Но опять же, ваш второй фрагмент, несомненно, показывает, что вы успешно загружаете прошивку из ветки NodeMCU master, созданную моей специальной службой сборки.
  • А потом вы прошиваете что-то типа "1.4.0 dev" (не существует) встроенного локально ПЛЮС esp_init_data_default.bin? Я не понимаю. В документах по перепрошивке NodeMCU говорится что вам нужно только esp_init_data_default.bin при непосредственном обновлении с 0.9.x - если вообще. Итак, если у вас уже есть master (1.4), в этом нет абсолютно никакой необходимости.

Извините, больше ничем помочь не могу. Я верю, что путь к успеху для вас очень прост:

  • попал на http://nodemcu-build.com/
  • выберите ветку dev плюс все нужные модули
  • скачать бинарный файл
  • esptool.py --port /dev/ttyUSB0 write_flash -fm=dio -fs=32m 0x00000 nodemcu-dev-N-modules-2016-06-03-<time>-integer.bin
person Marcel Stör    schedule 01.06.2016
comment
Привет, Марсель, я изменил свой вопрос, основываясь на некоторых вещах, которые вы здесь сказали. Раньше у меня была старая прошивка 0.9.6 на устройстве. Размер флэш-памяти устройства составляет 4194304, поэтому я думаю, что это означает, что адрес 0x3fc000 для SDK правильный. - person dbrummett; 03.06.2016
comment
Поскольку вы переписали вопрос, мне пришлось самому последовать его примеру с обновлением. - person Marcel Stör; 03.06.2016
comment
Оказывается, проблема была с экраном, хотя явная установка скорости не решила ее. В конце концов я попытался запустить putty для Linux, чтобы подключиться к devkit, и это сработало отлично. Я понимаю ваше замешательство по поводу имен файлов, потому что я переименовал файлы, чтобы следовать соглашению об именах предыдущих версий прошивки, которые у меня были на моем компьютере, и оказалось, что когда я переименовывал файл dev, я случайно нажал 1.4 вместо 1.5 ... так что это объясняет это. - person dbrummett; 11.06.2016

Оказывается, есть ошибка с screen, из-за которой он не может связаться с devkit на версиях прошивки 1.5 и выше. Чтобы обойти эту проблему, вы можете либо использовать замазку для Linux (доступно в apt-get, если вы используете Ubuntu), либо понизить прошивку до 1.4.

См. этот ответ на SuperUser для получения дополнительной информации: https://superuser.com/questions/810937/how-can-i-set-the-parity-bits-when-using-screen-to-access-a-serial-port< /а>

P.S. Я подтвердил эту ошибку только в бинарных файлах, скомпилированных armhf. Вполне возможно, что двоичные файлы x86 работают нормально, поскольку я не тестировал их, хотя вопросы и ответы о SuperUser, на которые я ссылался, похоже, подразумевают, что экран на x86 тоже будет иметь проблемы.

person dbrummett    schedule 10.06.2016