• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь NodeMcu DevKit v1.0 (ESP8266) не прошивается, постоянно моргает синим светодиодом и перезагружается

davinci

New member
Всем привет!
Получил модуль приобретенный на али
Судя по отзывам у всех все гуд, но у меня какие-то траблы, прошу помощи в решении следующей проблемы...
Первым делом хотел начать работать с модулем из Arduino IDE, добавил в боардменеджер необходимый набор плат, но при попытке залить любой скетч получаю следующее:
Arduino: 1.8.1 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"

Sketch uses 249279 bytes (23%) of program storage space. Maximum is 1044464 bytes.
Global variables use 35772 bytes (43%) of dynamic memory, leaving 46148 bytes for local variables. Maximum is 81920 bytes.
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
В монитор порта на скорости 74880 в цикле летит следующее:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000


ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000


ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000


ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
судя по логу модуль не проходит начальную инициализацию до конца и постоянно перезагружается. Подключение внешнего питания 5В 1А ничего не изменило.

Пробовал перепрошить модуль разными способами:
1. через Arduino IDE - результат описан выше
2. через XTCOM_UTIL, открытие порта проходит успешно, но коннекта за 200 попыток не происходит
3. через ESP8266Flasher, с настройками по умолчанию (т.е. прошивка INTERNAL://NODEMCU) после нажатия старт синий светодиод перестает моргать, но дальше ничего не происходит, а в логе следующее:
Note:Detect serial port changed.
Note:Auto MAP serial port.Port-->COM4

Note:Serial port connected.
Note:Begin find ESP8266.
Прошу помочь в решении описанной проблемы и подготовить модуль для работы из Arduino IDE...
 

davinci

New member
Так у меня же модуль NodeMcu c usb интерфейсом на чипе CH340 как на этом фото:

На нем все подтяжки внутрисхемно уже реализованы должны быть...
И отсутствие подтяжек не должно влиять на постоянную перезагрузку модуля.
 

davinci

New member
Видел Вашу тему, тоже думал на пайку, но при осмотре ничего криминального не заметил. Схемы нет, чтобы нормально прозвонить все контакты. которые проходят через пайку...
У Вас какой контакт был плохо пропаян?
 

Scorpio

New member
Вот схема. Отличается CP2102 вместо CH340, но в остальном тоже самое.
У меня GPIO0 болтался в воздухе. Но я пропаял весь модуль, т.к. он был слегка смещен вперед и волновая пайка зацепила только краешки контактов. Без лупы было не заметно. Засек бороду на ножке осциллографом, тогда сообразил в чем дело.
 
Последнее редактирование:

davinci

New member
@Scorpio, посмотрел я схему на CP2102, от моей она значительно отличается расположением компонентов "обвязки", сильно много она мне не дала, но что смог по ней вычислить , то я проверил. Для большей уверенности пропаял все контакты, но положительного эффекта это не дало...
Думаю дело в кривой прошивке, а вот как залить другую не пойму, т.к. модуль в постоянном цикле перезагрузки и не выходит в нормальный режим, в котором программы прошивальщики могут начать с ним работу.
Есть у кого мыли что еще можно попробовать?
 

Scorpio

New member
Схема сброса на 2х транзисторах там таже самая. Надо бы мультиметром ему в ноги потыкать. А лучше осциллографом с триггером, чтобы посмотреть картинку на GPIO0 и GPIO16 при попытке прошить. Никакая пользовательская кривая прошивка не может повредить заводской бутлоадер, на сколько я понимаю.
 

davinci

New member
Осциллографа у меня пока еще нет, не дорос я еще до таких высоких материй... А вот мультиметром можно проверить! Я так понимаю в момент начала заливания прошивки через ESP8266Flasher.exe на контактах GPIO0 и GPIO16 самого модуля ESP8266 напряжение должно быть близкое к нулю?
 

Scorpio

New member
На этом сайте про ноги при прошивке где-то видел подробно.
Мультиметром сброс при начале прошивки не увидеть.
GPIO15 MUST keep LOW, GPIO2 MUST keep HIGH.
GPIO0 HIGH ->RUN MODE, LOW -> FLASH MODE.
When you need to use the sleep mode,GPIO16 and RST should be connected,
and GPIO16 will output LOW to reset the system at the time of wakeup.
EN еще д.б. в единичке.
В общем куча условий :)
 

davinci

New member
Потыкал в ноги самому ESP-12E, получил следующее:

run mode:

vcc 3.27
en 3.24
rst 2.44-2.82
gpio0 2.44-2.74
gpio2 2.59-2.74
gpio15 0.14-0.18
gpio16 3.27

flash mode (т.е. когда запущен ESP8266Flasher, нажата кнопка Start и ничего не происходит):
vcc 3.27
en 3.24
rst 0.07-0.38
gpio0 0.07-0.34
gpio2 3.25
gpio15 0.67
gpio16 3.27
 

Scorpio

New member
На первый взгляд все правильно. Кроме rst во втором случае. Он получается все время нажатым, чего быть не должно, т.к Low на нем возникает только на короткий промежуток времени между появлением сигналов DTR и RTS. Можно погрешить на CH 340, но при такой транзисторной логике оба нуля на выходе (rst и GPIO0) вроде не получаются ни при каком раскладе. надо попробовать пощупать сам модуль по инструкции с этого форума, с внешним USB-UART или через ардуинку. Интересно всеже разобраться.
 

davinci

New member
Да, я и сам потом уже когда спать пошел подумал о RST в режиме прошивки - так не должно быть. Еще настораживает плавающие значения высокого уровня, где то они четко 3.24, а где то закономерно идут сначала в большую сторону, потом в меньшую в пределах от 2,44-2,80, так мне тоже кажется не должно быть... При этом не стоит забывать что мерил я обычным бюджетным мультиметром, а осциллограф возможно увидел бы кратковременные падения ниже 1.5в на линиях где должен быть высокий уровень, что уже являлось бы низким уровнем и как раз из-за этого модуль может постоянно перезагружаться... Как думаете?
А RST в режиме прошивки действительно странно, даже и не знаю что с этим делать. Для начала думаю определиться почему так пляшут высокие уровни, может проблема в том месте откуда берется питание для подачи высокого уровня 3.3в на ноги ESP-12E? Если дело не э том, то как мне кажется остается выпаивать модуль ESP-12E, цеплять к нему внешний usb-ttl со свей необходимой обвязкой и пытаться прошивать...
 

Scorpio

New member
Только не надо ничего выпаивать. Все контакты выведены на ноги лолиновской платы. И даже кнопка FLASH для GPIO0 имеется. CH340 мешать не должна. достаточно подключить любой всешний USB-UART проводками с мамами. Я сегодня проэкспериментирую со своей платкой.
Уровнем лог 1 можно считать, все что выше 2В, лог 0 - ниже 1В, а между ними неопределенное состояние. У вас все ноги вроде вписываются. А мультиметр, надеюсь, цифровой, с высоким входным сопротивлением? :)
 

Scorpio

New member
Попробовал с таким адаптером. У него уровни как раз 3.3. tx и rx подключил к ногам лолина крест накрест + gnd. Питание лолина оставил от того же USB. Открыл флешер,на плате нажал кнопку FLASH, потом RST, отпустилRST , запустил прошивку, отпустил FLASH. Все прошилось без проблем. Советую повторить. Так исключим сразу возможные глюки CH340 и схемы сброса.
 

davinci

New member
Ок! На днях мне должен прийти USB-UART, как придет сразу попробую и отпишусь...
 

Scorpio

New member
Посмотрел внимательно на первый пост. Сам модуль явно живой, раз что-то выдает после ручного ресета. Флешер засекает потерю порта и переключается на другой доступный порт? или СОМ4 это он же? Это можно посмотреть в менеджере устройств на компе в момент начала прошивки. Раз синий светодиод перестает моргать, то переход в режим прошивки происходит скорее всего корректно. но CH340 почему-то разрывает связь при поступлении первых данных от компа. В общем, с внешним адаптером все должно проясниться. только не забывайте, что ноги ЕСП не толерантны к 5В.
Кстати, вероятно в модуле все еще сидит прошивка NODE MCU, и должна появляться точка доступа для настройки вайфая.
 

davinci

New member
@Scorpio, привет!
Получил я наконец-то свой usb-uart преобразователь, вот такой он у меня!
Если я все правильно понял, то соединения планирую выполнить по схеме как на рисунке ниже. D3 (GPIO0) замыкать на GND до подключения к USB порту, и размыкать после нажатия кнопки Flash во флешере. Сигнал RST, если я не ошибаюсь, должен податься в нужный момент с USB преобразователя.

Меня только смущает уровень логики usb-uart конвертора и модуля NodeMCU, но вроде в статье выше говоться, что для кратковременных экспериментов такое подключение допустимо...
 

Scorpio

New member
Я бы для начала сделал так, как описывал выше. Т.е. оставил бы желтый зеленый и черный провода, запитал бы лолина через свой USB, а флэшер бы настроил на порт внешнего адаптера. Дальше бы оперировал штатными кнопками RST и FLASH. Подавать 3.3 В на Uin 3не стоит, т.к. это вход стабилизатора напряжения, который просто не будет работать. Можно было бы соединить Выход 3.3В адаптера с соответствующей ногой 3В лолина, но не известно, потянет ли стабилизатор адаптера ESP в режиме прошивки. На EN тоже ничего дополнительно подавать не нужно.Так что пробуйте уже проверенный на такой же плате способ.
 

davinci

New member
Соединил следующим образом

Далее:
0. подключаю ЗУ от телефона
1. подключаю переходник к компу
2. запускаю ESP8266Flasher.exe
3. нажимаю на NodeMCU кнопку FLASH
4. нажимаю на NodeMCU кнопку RST
5. отпускаю на NodeMCU кнопку RST
6. нажимаю в ESP8266Flasher.exe кнопу FLASH (во флешере ни чего не происходит)
7. отпускаю на NodeMCU кнопку FLASH, синий светодиод начинает моргать на ESP-12E и через секунд 7-10 тухнет пока не сделаешь ресет модулю...
Еще интересный момент, если в putty открыть СОМ порт, на котором определился переходник, на скорости 74880, то в терминал ничего не летит. а должно сыпаться тоже самое что и в первом посту?

UPD: Т.к. вариант с переходником сходу не прокатил, начал я ковырять в сторону своих предположений относительно сигнала RST и плавающих высоких уровнях. В результате я "жестко" перемычкой подтянул ногу RST на ногу 3.3В, после чего модуль благополучно инициализировался, в доступных Wi-Fi сетях появилась точка доступа AI-THINKER-C172BB, а в терминал на скорости 115200 прилетели заветные:
Ai-Thinker Technology Co. Ltd.

ready
Мое предположение следующее - в момент инициализации ESP-12E на столько сильно просаживает питание после стабилизатора, что высокие уровни проседают до порога низких, по крайней мере с RST точно так и происходит из-за чего модуль постоянно и перезагружается при инициализации радиоканала. Посмотрел я на пайку стабилизатора и она действительно сомнительна, возможно тут и кроется причина всех проблем. Либо надо будет дублировать все подтяжки дополнительными сопротивлениями. Сейчас нет возможности пропаять стабилизатор, но когда пропаяю обязательно отпишусь о результатах...
 
Сверху Снизу