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

ESP8266 ESP-07 не входит в режим программирования.

Shutofsky

New member
Доброго вечера.

Есть ESP-07, заказанный с DX.
Пины RST, GPIO0, GPIO2 подтянуты к плюсу питания через 10 кОм.
GPIO15 через такой же резистор подтянут на землю.
Сделаны перемычки между EN и плюсом питания, и между GPIO0 и землёй.
Есть вот такой конвертер, от которого и питается чип: PL2303HX USB to RS232 TTL Converter Adapter Module
Разумеется, RX-TX конвертера и чипа скрещены.
Имеем следующую ситуацию. Если EN подключен на плюс, GPIO0 не подключен на землю.
Чип стартует, отвечает на AT-команды через монитор порта Ардуино IDE или PuTTY. Появляется точка доступа.
Отключаю питание, подключаю GPIO0 на землю., включаю питание.
Чип ничего не отвечает, хотя судя по индикации на конвертере в него что-то прилетает. На скорости 74800, равно как и на любой другой, на экране терминала ничего не видно.
Открываю XTCOM_UTIL, ставлю порт, открывается успешно. Ставлю "Проверка" - чип активно моргает синим светодиодом на фоне горящего красного светодиода питания, счётчик попыток растёт.
Меняю скорости - но ничего, кроме изменения скорости моргания синего светодиода не получаю.

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

Заранее благодарен. Владимир.
 

nikolz

Well-known member
Доброго вечера.

Есть ESP-07, заказанный с DX.
Пины RST, GPIO0, GPIO2 подтянуты к плюсу питания через 10 кОм.
GPIO15 через такой же резистор подтянут на землю.
Сделаны перемычки между EN и плюсом питания, и между GPIO0 и землёй.
Есть вот такой конвертер, от которого и питается чип: PL2303HX USB to RS232 TTL Converter Adapter Module
Разумеется, RX-TX конвертера и чипа скрещены.
Имеем следующую ситуацию. Если EN подключен на плюс, GPIO0 не подключен на землю.
Чип стартует, отвечает на AT-команды через монитор порта Ардуино IDE или PuTTY. Появляется точка доступа.
Отключаю питание, подключаю GPIO0 на землю., включаю питание.
Чип ничего не отвечает, хотя судя по индикации на конвертере в него что-то прилетает. На скорости 74800, равно как и на любой другой, на экране терминала ничего не видно.
Открываю XTCOM_UTIL, ставлю порт, открывается успешно. Ставлю "Проверка" - чип активно моргает синим светодиодом на фоне горящего красного светодиода питания, счётчик попыток растёт.
Меняю скорости - но ничего, кроме изменения скорости моргания синего светодиода не получаю.

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

Заранее благодарен. Владимир.
прочитайте это:
Flashing the firmware - NodeMCU Documentation
Суть в том что припереходе на новые SDK надо записать файл
Also, in some special circumstances, you may need to flash blank.bin or esp_init_data_default.bin to various addresses on the flash (depending on flash size and type).
 

Shutofsky

New member
Спасибо, прочитал. Дело в том, что до прописывания чего-либо не доходит - модуль не подтверждает готовность к прошивке. Я посмотрел видео от уважаемого ShouseD -
- там при переходе в режим программирования модуль обозначает свою готовность вполне конкретным сообщением на порт.

Кстати, раз уж речь зашла о NodeMCU, чтобы не плодить лишних топиков, хотелось бы выслушать совет.

Итак, у меня есть базовое образование и приличный опыт программирования на разных языках и средах, в основном си-подобные языки (C без плюсов, так сложилось, Perl, Tcl/Tk, Pyton, всяческие скриптовые).
С контроллерами занимаюсь года три, в аппаратной части руки заточены не очень, в программной - более менее. Посему любимые платформы - Raspbererry Pi (Raspbian+Pyton), Arduino. Хотя доводилось и перепрошивать под свои нужды " с нуля" готовые изделия на чистом AVR.

Недавно вот в рамках одного проекта посоветовали посмотреть в сторону ESP8266. Первоначально рассматривал его как довесок к Arduino, познакомившись поближе понял, что для тех задач, что планируется на нём реализовать - его самого хватит в чистом виде. Соответственно планирую использовать протокол MQTT, с его "взрослым" собратом MQSeries знаком по роду работы.

Суть вопроса в следующем. Сейчас я могу:
1. Брать имеющуюся библиотеку MQTT для ESP8266 и писать на С в Arduino IDE. Не вижу с этим проблем, благо в проекте Arduino тоже используется.
2. Поставить кастомную NodeMCU с встроенной поддержкой MQTT - и писать всё в режиме lua. Пока отпугивает от такого решения необходимость предварительной сборки spiffs, прямое вливание программы в режиме программирования кажется проще. Плюс читал, что сол встроенной поддержкой MQTT
3. Всё писать под Arduino, с ESP общаться по сериал посредством АТ команд.

Задачи, которые планируется решать с помощью MQTT:
1. Управление RGB-лентой.
2. Многоканальный выключатель (несколько силовых выходов на 12 вольт, дальше обвес определяет функционал).
3. Удалённая "кнопка".

Разумеется это не в одной прошивке, а в трех разных.

прочитайте это:
Flashing the firmware - NodeMCU Documentation
Суть в том что припереходе на новые SDK надо записать файл
Also, in some special circumstances, you may need to flash blank.bin or esp_init_data_default.bin to various addresses on the flash (depending on flash size and type).
 

nikolz

Well-known member
Спасибо, прочитал. Дело в том, что до прописывания чего-либо не доходит - модуль не подтверждает готовность к прошивке. Я посмотрел видео от уважаемого ShouseD -
- там при переходе в режим программирования модуль обозначает свою готовность вполне конкретным сообщением на порт.

Кстати, раз уж речь зашла о NodeMCU, чтобы не плодить лишних топиков, хотелось бы выслушать совет.

Итак, у меня есть базовое образование и приличный опыт программирования на разных языках и средах, в основном си-подобные языки (C без плюсов, так сложилось, Perl, Tcl/Tk, Pyton, всяческие скриптовые).
С контроллерами занимаюсь года три, в аппаратной части руки заточены не очень, в программной - более менее. Посему любимые платформы - Raspbererry Pi (Raspbian+Pyton), Arduino. Хотя доводилось и перепрошивать под свои нужды " с нуля" готовые изделия на чистом AVR.

Недавно вот в рамках одного проекта посоветовали посмотреть в сторону ESP8266. Первоначально рассматривал его как довесок к Arduino, познакомившись поближе понял, что для тех задач, что планируется на нём реализовать - его самого хватит в чистом виде. Соответственно планирую использовать протокол MQTT, с его "взрослым" собратом MQSeries знаком по роду работы.

Суть вопроса в следующем. Сейчас я могу:
1. Брать имеющуюся библиотеку MQTT для ESP8266 и писать на С в Arduino IDE. Не вижу с этим проблем, благо в проекте Arduino тоже используется.
2. Поставить кастомную NodeMCU с встроенной поддержкой MQTT - и писать всё в режиме lua. Пока отпугивает от такого решения необходимость предварительной сборки spiffs, прямое вливание программы в режиме программирования кажется проще. Плюс читал, что сол встроенной поддержкой MQTT
3. Всё писать под Arduino, с ESP общаться по сериал посредством АТ команд.

Задачи, которые планируется решать с помощью MQTT:
1. Управление RGB-лентой.
2. Многоканальный выключатель (несколько силовых выходов на 12 вольт, дальше обвес определяет функционал).
3. Удалённая "кнопка".

Разумеется это не в одной прошивке, а в трех разных.
-------------------------------
Так как у Вас хороший опыт, то я бы предложил писать на С или С++ и использовать UDK.
Ardulino это нечто а-ля C++, хотя библиотек и много, но некоторые драйверы сделаны не очень.
Кроме того, использование C и UDK позволяет прямо использовать SDK и достичь максимального быстродействия и компактности кода.
--------------------------
 

nikolz

Well-known member
LUA удобно использовать, если надо быстро отладить алгоритм и не требуется максимального быстродействия ESP.
 

Shutofsky

New member
Господа, если кому интересно - дело оказалось в конвертере на PL2303. Проверено два разных конвертера, оба не работают на скорости 74880, принимают на ней мусор.
Конвертер на FTDI заработал сразу и прекрасно. Если нужно - стоит внести это в FAQ.
 

Atom

Member
На сколько мне не изменячет память, по умолчанию у модуля "без никто" установлена скорость 9600. Подключите любой терминал, переключайте в терминале скорости и нажимайте ресет. На какой увидите человечий текст - с той и работать.

Я мучил модуль с Ардуино ИДЕ. Естетвенно первую заливку проводил на этой гребаной скорости (идет около пяти минут). Причем у меня кнопки ресет и флэшь, в процессе флэшь нужно было держать залитым. После заливки первого скетча скорост установилась на 115200.
 

Shutofsky

New member
Да не, по умолчанию он 115200 - отвечал и на запросы команд нормально. А вот подтверждение режима программирования и начальная диагностика шла на 74880, чего мои конвертеры не понимали, и отдавали компьютеру мусор. Со сменой конвертеров все заработало.

На сколько мне не изменячет память, по умолчанию у модуля "без никто" установлена скорость 9600. Подключите любой терминал, переключайте в терминале скорости и нажимайте ресет. На какой увидите человечий текст - с той и работать.

Я мучил модуль с Ардуино ИДЕ. Естетвенно первую заливку проводил на этой гребаной скорости (идет около пяти минут). Причем у меня кнопки ресет и флэшь, в процессе флэшь нужно было держать залитым. После заливки первого скетча скорост установилась на 115200.
 

andrey2112

New member
День добрый,
ESP8266 (SONOFF) перестала прошиваться.
Загруженный скетч - работает к WI-FI подключается

При попытке прошивки в ARDUINO IDE выдает ошибку:
esptool v0.4.9 - (c) 2014 Ch. Klippel ck@atelier-klippel.de
setting board to ck
setting baudrate from 115200 to 115200
setting port from COM1 to COM3
setting address from 0x00000000 to 0x00000000
espcomm_upload_file
espcomm_upload_mem
setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
read 0, requested 1
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
read 0, requested 1
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

GPIO O - к земле подтянут, раньше все хорошо прошивалось.
Пробовал два кабеля, этими же кабелями прошиваю NodeMCU или другой SONOFF
 
Сверху Снизу