Pull to refresh

Comments 42

Перепрошивать еще не пробовал — сам вожусь только пару дней, но у меня по умолчанию сторость 115200 стоит. Устройство с таким же номером. На одном сайте (где брал инфу по устройству, как подключать, описание команд и прочее) видел прошивки по датам. Номер прошивка в чипе совпадал с номером во втором линке (то есть не самая старая, а вторая с конца).

Долопзу до дома, попробую подключить 57600, а потом перепрошить.

Кстати, проверку соединения не обязательно с сокеттестами делать, достаточно и браузера и telnet. Для браузера лучше открывать сразу 80й порт на работу. Хотя можно и любой другой.
svd71 а на каком сайте брали прошивки?

Правильно перепрошить как раз проблема, например в моей статье прошивка монолитная, шьётся с нулевого адреса, а есть прошивки шьются частями (boot, user0, user1 и т.д.), по разным начальным адресам и вот они как раз не всегда начинают работать :(
Сначала начал с примерно такого же опинания с этого сайта. Далее там в форуме куча ссылок тоже есть. По ним ходил и игде-то нашел список всех возможных прошивок по датам их создания. Всвязи с тем, что 57600 у меня не завелосось, я не стал для начала этим заморачиваться а посвятил этих пару дней изучению команд.
Хотя проверил сейчас прошивку: номер такой же 00160901. Странно, что у них разная скорость инициализации бауда.
В общем поэкспериментировал с возможностью прошивать.
Пробую на компе с ХП. Запускаю XTCOM и выставляю скорость 115200 (на такой девайс точно общается). Делаю соединение в GetDeviceStatus — устройсво соединенно, скорость подтверждена. Пробую читать регистр — все читается прекрасно. Пытаюсь записать этот имидж выкидывает окно «Operation Failed! Flash image download fail! () gets a error code: 4». Минуты через 4 выкидывает блюскрин и система перегружается.

Потом решил изменить условия: поставил скорость 57600. Результат такой же. Сменил операционку на Win7 — так же блюскрин в окончании с теми же сообщениями.

На всякий случай проверил подключение: на CH_PD с самого начала 3.3, еще добавил контакт для безопасности. GPIO0 точно сидит на нуле. После всех экстерименов отключаю GPIO0, переподключаю девайс, соединяюсь терминалом и он у меня видит све точки AP.

В чем может быть проблемка?
такая же беда. Теже самые сообщения. Пробовал правда на ХП, но на обеих скоростях.

Еще идеи есть?
«Operation Failed! Flash image download fail! () gets a error code: 4» возможно из-за неправильной установки скорости, я всегда шью на 57600, после каждой перепрошивки нужен ребут ESP-01 и повторять операцию Tools -> Config Device, выбираем COM-порт к которому подключена плата, ставим скорость порта 57600, жмем Open, потом Connect, программа должна сказать «Connect with target OK!»

MaksMS GPIO2 на + не нужно для перепрошивки, откуда такая информация?
другой источник
Connect the top two pins (UTXD, GND) and bottom two pins (VCC, URXD) to the RXD, GND, VCC, TXD pins of a microcontroller. Note that VCC must be no more than 3.6V. The middle four pins are should be pulled up to VCC for normal operation. However, if you need to upgrade the firmware of the module, you need to pull the GPIO0 pin to ground — that way upon booting ESP8266 will wait for a new firmware to be uploaded through serial.

Хотя китайцы в данном случае превзошли себя: у них все пины затерминированы на пулл-ар. Хотя может это только в новых партиях, а в старых была такая недоработка. В общем если пин никуда не подцеплен у него напряжение довольно высокое и работает прекрасно. У автора новой статьи как раз и есть в описалове, что у него скорость по умолчанию 115200, в ранних чипах 57600. Хотя версия фирмваре намного ниже моей (у меня такая же как и у топикстартера).

ПС: пины были не причем — виноват драйвер от UART.
Вот сам сейчас не помню где такое прочитал, где-то на англ инструкции, да, без GPIO2 прошивает, попробовал. но похоже он подтянут по умолчанию к + и если его посадить на gnd, то прошивки не будет. Так что при некоторых обстоятельствах прошивка не пройдет, если случано на GPIO2 окажется минус или просто помеха.
Прошиваю в линуксе через питоновский скрипт. Кстати, там всегда ошибку при 99% выдает 'Failed to leave Flash mode' — это нормально.
Кстати, вопрос по работе в Линуксе. У меня терминал отказывается что либо принимать от клавиатуры, но зато довольно неплохо выводит. Через VirtualBox настраиваю чип как точку (если перетыкать между компьютерами, некоторая информация сбрасывается). Затем соединяюсь тем же gtkterm (или попробовал даже CoolTerm — тоже самое): вводит ничего не могу, хотя синий светодиод мигает и эхо печатает символы. При нажатии Enter ничего не отправляется.
Но если уже при настроенной точке доступа попытаться что либо отпрвить, то данные вываливаются в терминал.

Что нужно докрутить?
Я тупо пользуюсь терминалкой от Arduino IDE. Не было желания разбираться с консольными терминалами…
Насколько я понял из своих экспериментов, если горит синий светодиод, то значит плата брикнулась или прошивка глюканула и как правило при этом ничего не работает, помогал только ребут, если ребут не лечил недоступность платы, то только перепрошивка ESP_8266_v0.9.2.2 AT Firmware.bin.

Я, конечно, во время, но в minicom надо отключить hw flow control (это всякие линии DTR-RTS-CTS-DSR), сделать просто off.
(бывает еще XON/XOFF, это символы \x02 \x03 вроде бы, перед началом блока данных передаешь XON, в конце XOFF )
Нашел в чем проблема. Дело в драйвере от бриджа (cp2102). Он и крэшит систему. Заменил бридж на другой. Апдейт проходит. Но нарвался на другую засаду.

После обновления чип в терминале уже подключается на 9600 бод, дает что-либо печатать, но не работает символ возврата каретки. Если при подключенном терминале выбрать сделать чипу ресет, то выводит такую беду:
0�~?�4�!���A$2:����O�:�CO&�
[System Ready, Vendor:www.ai-thinker.com]


Думал, что все дело в скорости обновления: напомню, что изначально было задана 115200, обновление проводил на 57600, затем на 115200, затем на 9600 — результат одинаковый. Взял новый модуль, проверил работоспособность на 115200, обновил на 115200 — и результат такой же.

нашел решение.
В общем фирмвара, указанная ТС у меня отказалась летать напрочь. Я решил попробовать прошивку от электродрагон. Она тоже от 0.9.2.2. И вот с ней один кристалл уже востановил. Вроде первые изыскания отображаются совсем отлично.
ESP_8266_v0.9.2.2 AT Firmware.bin из моей статьи скачана с electrodragon.com, так что она тоже должна работать.
Если что, пишите мне на email sleuthhound@gmail.com, тут я не могу отвечать оперативно из-за кармы :(
Да, прошу прощения. Разлад произошел от того, что работаю я под Линуксом, изначально все попробовал в линуксовских терминалах. Оказалось, что и «новая версия» так же ведет себя в Линуксе. Зато в Винде она работает отлично.
Нормальное сообщение, первая строка просто на китайском -вот и аброкадабра тут… Вторая же строчка в нормальной кодировке, английскими символами
Вот тут Есть несколько разных вариантов прошивок, в том числе от electrodragon, где встроенно дергание пинов 0 и 2.
Некоторое время «пытаю» данный модуль и уже немнго научился его программировать — использую модуль без дополнительных м/к с поднятием на нем веб интерфейса и дерганием gpio. К сожалению имею в наличии тот же вариант esp-01 — а тут всего 2 gpio, которые необходимы для управления режимом входа в прошивку и это иногда мешает- не удается запустить i2c…
Прошивку от electrodragon где можно дергать GPIO я пробовал, работает, есть проблема — настройки не сохраняются, то есть каждый раз при включении нужно вначале поднять TCP-сервер, потом дать команду AT+SETIO=1 и только потом можно дергать GPIO.
Да, так и есть, но можно взять исходную прошивку и сделать по своему.
А свою логику в нее зашить можно? то есть приложение под нее написать.
Конечно можно, об этому будет 2-я статья.
Здорово! А какой там микроконтроллер? На какой архитектуре?
Вот вам для затравки пару тестовых прошивок: esp_at_www.zip и esp_www.zip. Вариант без АТ команд работает стабильнее. Доступные команды и функции:
Управление GPIO выводами вкл/выкл, командой ip_adres/set?pin1=1 — что значит включить логическую единицу на выходе 1(gpio2). Доступен так же gpio0 -имеющий номер 2.
Корневой веб адрес прошивки открывает интерфейс управления этими gpio с помощью кнопок, необходим доступ браузера к интернету для подгрузки jquery.
Адрес ip_adress/config?main открывает страничку текущих настроек wi-fi. В будущем эти настройки можно будет менять.

Сначала можно настроить модуль через программу ESP8266_Config а уже потом шить эти прошивки…
А исходники прошивок дадите? А то голые бинарники не сильно интересны.
Исходники можно глянуть в сдк /examples/IoT_Demo/ — почти то же самое и даже больше, там управление через json запросы.
В IoT_Demo намного больше чем нужно. Ну да ладно, напишем свое, раз Вам жалко.
Чтобы превратить IoT_Demo в веб сервер http страниц достаточно в функции data_send поменять строчку в os_sprintf на Content-type: text/html — смысл публиковать код, если он же имеется в примере IoT_Demo ??
Странички с определенными адресами добавляются в функции webserver_recv…
Добавлю.
Есть бесплатный сервер виртуальных портов. HW Virtual serial Port. Фирма HW Group делает всякие COM-Ethernet адаптеры, и к ним предлагает этот сервер.

Штука работает наподобие описанного «Socket test»-а, только вдобавок делает в системе виртуальный COM-порт, на который валятся все данные из TCP. Очень удобно, если хочется связать по WiFi какую-нибудь железку с программой, которая кроме последовательных портов ничего не понимает (а таких, надо сказать, большинство)
Объясните пожалуйста, простым языком, что означает:

1.
Устанавливаем режим передачи командой
mode = 0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)
mode = 1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)


В частности режим — mode = 1. Для чего нужна такая настройка?

2.
Устанавливаем возможность множественных соединений:
mode 0 — single connection
mode 1 — multiple connection


Что значит множественные соединения? Приведите пожалуйста пример.

1. Тут трудно не понять. Режим трансивера или режим приемника.

2. Сингл означает, что только одно внешнее устройство может производить соединение. В момент такого соединения есп для других будетзанят и другие устройства Получат таймаут слединения.
Благодарствую за ответ. Со вторым пунктом всё ясно, а вот по первому, если не затруднит, растолкуйте на примере.
Что может быть непонятного в слове Трансивер? См. википедию:
Трансиверная радиостанция, трансивер, приёмопередатчик — радиостанция, выполненная по трансиверной схеме, когда часть функциональных узлов работает как на приём, так и на передачу.

Приемник — блин, ну значит может только принимать данные, передавать не может.
Зачем Вы потратили своё время?
Ваше устройство на ESP будет получать запросы от внешних устройств и отвечать на них или только всегда будет работать на передачу. иными словами будет ли сфромирован на ESP режим сервера или ESP будет только клиентом и только на передачу информации.
будет ли сфромирован на ESP режим сервера или ESP будет только клиентом

Спасибо. Теперь всё понятно.

Дело в том, что в замешательство приводят вот эти строки:

Для запуска TCP-сервера выполним следующие команды:
1. Устанавливаем режим передачи командой

AT+CIPMODE=mode = 0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)
mode = 1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)
Не понятно кто в данном случае ESP — клиент или сервер?

Иными словами вот так?

mode = 0 — not data mode (сервер может отправлять данные ESP и может принимать данные от ESP)
mode = 1 — data mode (сервер не может отправлять данные ESP, но может принимать данные от ESP)

Точнее, так?

mode = 0 — not data mode (сервер)
mode = 1 — data mode (клиент)
Sign up to leave a comment.

Articles