Как стать автором
Обновить

Комментарии 75

Не нашел сходу характеристики контроллера (производительность/ОЗУ/ПЗУ), чтобы понять хоть качественно, на что способен контроллер…
В статье есть ссылка на спецификацию чипа, там все характеристики. И это не контроллер, это система на кристале (SoC).
Где можно скачать ехпрессифный девелоперкит под 32х разрядную винду?
Только если собирать самому. У меня на работе и дома x64, я не могу собрать под x86 версию, собирать на виртуалке — это гиблое дело. Попробую собрать на x86 на неделе на другом рабочем ПК, но не факт что получится.
ну так может проще было выложить это в виде архива, без всяческого стремного виндовсинсталятора?
А смысл? Компилятор будет работать только под x64.
Перевыложил инсталлятор Espressif-ESP8266-DevKit-v0.9.3.exe, теперь он не проверяет разрадность Windows и поставится даже на x86, но скомпилировать под x86 Вы ничего не сможите!
всмысле xtensa на x64?
нет, просто компилятор не заработает — ругнется при запуске на неверную версию виндовс и умоет руки.
Вот тут имеется инструкция как собрать комплиятор под win x86. Сам не собирал — для меня не актуально.
Про характеристики можно добавить, что размер ПЗУ зависит от того какой чип flash памяти стоит на плате. Обычно там установлен чип на 4мбита т.е. 512кбайт.

Вообще, по моим наблюдениям SDK и/или компилятор не сильно допилены — иногда бывают необъяснимые глюки в работе собранных прошивок.
Недавно вышел SDK 0.9.3, но на его я ещё не перешел.
Не. парнишка пишет следующее:
Its made by mobyfab from esp8266.com
These are apperently x64 binaries so no hope for you if you are using 32 bit machine
.
иногда бывают необъяснимые глюки в работе собранных прошивок

Если есть подозрения на компилятор, пожалуйста, рапортуйте о них в этом топике: www.esp8266.com/viewtopic.php?f=9&t=224
Я посмотрю.
Последняя версия esptool поддерживает все операции — и создание образов, и прошивку, поэтому пользоваться 2мя esptool'ами необязательно. (Откуда взялось 2 тулзы с одним названием — загадка, но esptool.py появился в первые дни после начала хаканья ESP8266.)

И в последней версии esptool позволяет шить сразу несколько сегментов за раз, без перезагрузки между ними, поэтому городить DTR'ы для автоматизации тоже опционально.
pfalcon а как Вы собираетесь зайти в режим загрузчика без перезагрузки платы? Вот именно для этого и сгорожены RTS и DTR.

P.S. Я в курсе, что последняя версия esptool.py позволяет шить срузу 2 сегмента и собирать прошивку, в моих Makefile'ах как раз шьется именно 2 сегмента за раз.
А, ну да, передернуть питание сложно конечно. Но я пока делаю так. У меня GPIO0 вообще постоянно на GND в последнее время — перезагрузились, и можно шиться. Не нужно шиться в этот раз? В esptool.py теперь есть команда «run», которая запустит пользовательское приложение из бутлоадера.
на самом деле питанию не дергаю совсем: слишком сложная цепочка тулчеинов в паре виртуальных машин и маппинга компорта. Для прошивки/работы достаточно перетнкнуть пин на единицу/ноль и ножку RST коротко воткнуть на ноль. Принцип тот же, только руками. И времени много не занимает.
Да, бывает питание сложно передернуть, особенно если плата на другом конце города на работе, а я дома и по rdp сижу и пишу прошивку ;)
Ситуации разные бывают, да. Как например есть много USB-UART модулей, где только TXD/RXD выведены. Ну, пытливый читатель теперь будет знать, что все варианты под контролем ;-).
НЛО прилетело и опубликовало эту надпись здесь
Самое интересное же! Удалось ли кому-то прочитать DS18B20 из ESP8266? Нашел пару примеров, но пока железки едут проверить не могу. Мне кажется это очень важная связка, ибо получается супердешевый wifi-термометр который можно раскидать где угодно по дому.
НЛО прилетело и опубликовало эту надпись здесь
Этот пример DS18B20 для работы на каком-то м/к через АТ команды. Сам лично пробовал переписывать код чтения DS18B20 под ESP8266, но пока ничего не вышло… Возможно проблема в точности пауз и наличия мешающих прерываний. Успешно запущены датчики DHT22 и BMP085/180. Даже готова прошивка отправки данных на сайт narodmon.ru
НЛО прилетело и опубликовало эту надпись здесь
А я очень сильно жду появления у китайцев датчика BME280 — это универсальный датчик температуры, влажности, давления (работает по I2C,SPI), имееет хорошую точность и быстродействие.
Сейчас есть у них. Правда пока только 5шт по 220р\шт. Не покупали ещё? У меня уже есть желание заказать — они ж идеальны для автономных мини-метеостанций. Только код для ESP ещё никто не написал :)
Не заказывал еще, есть подозрение, что это не финальная партия от Bosch Sensortec, а некая экспериментальная которую Bosch рассылали для тестирования в январе 2015.
В драйвера уже есть github.com/BoschSensortec/BME280_driver
А кто-то из владельцев модуля может протестить, реально ли связать два модуля между собой, переведя один из них в режим AP?
Через пару недель приедут 5 модулей ESP-07, тогда попробую провести эксперимент, но вообще проблем быть не должно.
Да, вполне реально.
два модуля с собой не связывал, зако тестировал по полной для компа. В модулях есть реализация dhcp сервера. умолчательный адрес AP 192.168.4.1. Каждому клиенту выделяется следующий адрес. Тестировал до трех клиентов — адреса получали точно, была возможность что либо послать — проблем не возникало.
НЛО прилетело и опубликовало эту надпись здесь
Исходники AT-прошивки давно доступны, просто они версии 0.9.1 были и не из оф.репа (см. мою сборку, они там есть), а тут вроде как все официально, хотя эти исходники интересны как пример прошивки, чтобы написать свою.
Сегодня обновил мои комплекты Espressif ESP8266 DevKit, что нового:
1. Доступен компилятор под Windows x86, качаем programs74.ru/get.php?file=EspressifESP8266DevKitX86
2. Для Windows x64 качаем этот programs74.ru/get.php?file=EspressifESP8266DevKitX64
3. Теперь для работы DevKit не требуется Python
4. В комплекты были добавлены новые примеры: 1wire_ds18b20, analog_dht22, blinky, blinky2, i2c_24xx16, i2c_htu21d и др.
Нельзя изменить при инсталяции папку установки C:\Espressif
Вы можете перенести папку Espressif куда нужно после установки, но тогда Вам нужно будет установить Python 2.7, исправить путь к папке Espressif в исходниках утилит C:\Espressif\utils\esptool.py и C:\Espressif\utils\gen_appbin.py и C:\Espressif\utils\gen_appbin_old.py и скомпилировать их через C:\Espressif\utils\py2exe_*.cmd файлы
Никто не делал настроек для notepad++ для компиляции\заливки прошивок?
В идеале с поддержкой файлов-проектов, но хотя бы просто компиляцию осилить…
На моем старом нубуке эклипс это нечто монстроподобное и практически не шевелящееся :(
В теории это не сложно сделать, Makefile из DevKit устроены так, что могут собирать прошивку из командной строки MinGW и без Eclipse.
Да, разобрался. Меня ввели в заблуждение ошибки при попытке сборки с командной строки. Оказалось просто системная PATH не содержала путей к bin MSYS и MinGW. Добавил c:\MinGW\msys\1.0\bin\ и c:\MinGW\bin\ и все заработало. Команда проста, выполняется с директории с Makefile:
c:\MinGW\bin\mingw32-make.exe -f Makefile
Попробовал повторить финт
Так же я подправил утилиту esptool.py в процедуре connect для того, чтобы при запуске происходил сброс платы по сигналу RTS и вход в режим загрузчика по сигналу DTR.

Файл esptool.py видимо уже подправлен и от цитаты в статье не отличается.
COM порт 2.
При Make Target Build Flash сообщение об ошибке:
Description Resource Path Location Type
mingw32-make.exe: *** [flash] Error 255 hello_world C/C++ Problem
recipe for target 'flash' failed Makefile /hello_world line 313 C/C++ Problem

В какую сторону копать?
В DevKit esptool.py уже исправлен, я же писал относительно оригинального esptool.py, его я и исправлял.

Копать в сторону переустановки MinGW по моей инструкции, скорее всего Вы не установили нужные пакеты.
Спасибо. Как то пропустил шаг.
Понял после поиска и нахождения статьи с подробным пошаговым описанием:
Step 5: Mikhail Grigoriev made some awesome scripts to automate the installation of additional modules in MinGW which are needed for compiling. You can download his package here, extract it somewhere and then run install-mingw-package.bat.
Финт с RTS-DTR чудесен. Проработал модуль 2-е суток и умер. При включении иногда сыпет в консоль мусор.
Попытался перепрошивать флешерами с замыканием GPIO, с выключением, включением — не шился по обычной инструкции. Вспомнил о этой статье и прошился из eclipse. Чем-то лучше этот метод, чем ручные переключения ресет и gpio.

Остается только вопрос почему умерла прошивка. Может флеш-память 25Q40 глючная.
Смотря что делала Ваша прошивка, если она писала во flash, то может не в ту область записала и потерла что-то.
У меня таких чудес не было ни разу.
NodeMCU 0.9.5
Почти по статье скрипт для отправки thingspeak
habrahabr.ru/post/252481

Работа модуля не стабильна. Несколько раз работал по часов 5 — затем перезагружался. Буду дальше смотреть на стабильность работы. Пока надежность не устраивает. Нельзя оставить устройство и забыть.
Скорее всего утечка памяти в прошивке NodeMCU, через N часов память заканчивается и все виснет.
Так удалось прошивку восстановить? У меня уже три таких модуля загубленных модуля. Времени особо найти не могу на поиск инфы, как их можно вернуть к жизни.

Интересно то, что неважно в каком режиме, идет работа с тнрминалом АТ. Только ни одна команда не реагирует — сообщает об ошибке.
По описанному методу прошивается и работает.

Модуль с самого начала не реагировал на команды, только при включении питания выдавал в консоль web адрес.

Пока больше не повторялось. Гоняю в температуру с него в thingspeak.com и записываю его перезагрузки — чаще всего раз в сутки и чаще перегружается.

В августе опять прошивка умерла. Только сейчас появилось желание что-то опять прошить. Но уже обновилось EspressifESP8266DevKitAddon и по этой инструкции Sleuthhound скомпилировать и прошить пока не получается. Хотелось бы оставить возможность прошивать с RTS-DTR — очень удобно.
Возможность прошивать с RTS-DTR в DevKit есть, в комплект DevKit уже входит рабочий esptool.py (esptool.exe)
Проблема в том, что по описанной инструкции уже настроить не получилось, например, нет такого файла — «Запустите из моего набора файл install-mingw-package.bat.». Сейчас выясняю как поправить ошибки Eclipse на компилятор.
Скорее всего проблема в том, что Вы невнимательно прочитали статью:

5. Скачиваем (84Mb) набор моих скриптов для автоматизации установки доп.модулей для MinGW.

Вот как раз в этом файле и есть install-mingw-package.bat
А как отключить вайфай? У меня модуль раз в час дергает интернет, в остальное время ему нужно тихо сидеть и не отсвечивать. Я сделал
void ICACHE_FLASH_ATTR wifi_disconnect() {
	wifi_station_disconnect();
	wifi_station_dhcpc_stop();
	wifi_station_set_auto_connect(0);
	connState = WIFI_CONNECTING_ERROR;
}
, но он, похоже, сразу после отключения переключается в режим точки и вовсю ждет подключения. То ли это из-за того, что я connState в WIFI_CONNECTING_ERROR устанавливаю, то ли надо как-то хитро отключать вай-фай. По докам не понял…
У меня для проверки WiFi запускается таймер WiFiLinker, в user_init() см.
os_timer_disarm(&WiFiLinker);
os_timer_setfn(&WiFiLinker, (os_timer_func_t *)wifi_check_ip, NULL);
os_timer_arm(&WiFiLinker, 1000, 0);

После того, как вы делаете wifi_disconnect, нужно его останавливать, переводить esp в глубокий сон на N минут, а далее все по кругу.
Если ESP не нужно переводить в глубокий сон, то просто останавливаете таймер WiFiLinker, запускаете свой таймер с тем интервалом с каким нужно переподключаться к WiFi, после сработки этого таймера запускаете установку wi-fi соединения, стопите ваш таймер, запускаете таймер WiFiLinker и так по кругу.
Но лучше использовать режим deep sleep, там значительно ниже энергопотребление, чем если вы будите гонять вхолостую таймеры.
Так это для проверки вай-фая же wifi_check_ip? Т.е. если я дисконнектнул, он просто будет каждую секунду проверять, не установился ли коннект. Или он при отсутствии коннекта запускает режим АП, вот я чего не пойму? С дипслипом играться лень — не охота паяльником лезть в модуль. И он мне не особо нужен, не батареешная тема :-)
Все оказалось намного прозаичнее. Не заметил, что модуль может быть одновременно и точкой и станцией. Соответственно в конфиге стоял режим stationap…
Я еще доработал esptool.py по инструкции www.esp8266.com/wiki/doku.php?id=setup-windows-compiler-esp8266
Теперь запускаешь Termie, когда начинаешь шить из эклипса, терминал отдает порт автоматом среде, а после перепрошивки опять забирает
Прошло всего 6 лет. SDK и компиляторы для Windows работают и ставятся. А для Linux Mint 19.2 мало того, что на этапе configure в файле чего-то там.hash.c неверно вписано в прототипе и в реализации функции вместо size_t то ли unsigned int, то ли что-то подобное (уже забыл что именно), так ещё и на этапе ./ct-ng build выходит такое:



Это я уже не знаю, как поправить.
Это esp-open-sdk? Почему бы не зарепортить issue на github?
Это вот это:

apt-get install git autoconf build-essential gperf bison flex texinfo libtool libncurses5-dev wget gawk libc6-dev-i386 python-serial libexpat-dev

Компиляторы собираются.

Почему бы не зарепортить issue на github?

Потому что я понятия не имею, на чьей стороне проблема, из-за чего и что вообще тут происходит (что не вышло я понял, а вот почему нет). :) Я в linux не настолько понимаю, чтобы хотя бы понять, что вообще делается по команде ./ct-ng build — он компилирует? Сишные файлы? Что за скрипты сбоят? Что они вообще делают, эти скрипты. В общем, для меня загадка процесс сборки этих компиляторов.
apt-get install git autoconf build-essential gperf bison flex texinfo libtool libncurses5-dev wget gawk libc6-dev-i386 python-serial libexpat-dev


Кстати, libtool-bin по этой конструкции не ставит (у меня его не было в системе, а именно он и нужен для компиляции).
Так это на github написано. А когда всё это ставишь, как в статье написано, ни о чём таком не знаешь. В статье-то написано, какие команды выполнить, а про libtool-bin упоминаний нет.
В общем, тут недавно была статья про linux — вот всё в полном соответствии с ней. Прошло время и теперь нужны танцы с бубном, ибо «изолента отклеилась».
Так это на github написано. А когда всё это ставишь, как в статье написано

А логика не подсказывает, что первоисточник надёжнее?
Мне логика подсказывает, что ставить среду разработки надо по инструкции того, у кого это получилось и кто точно знает, как это сделать. Я про libtool узнал впервые вот из этой попытки установить всё это. И среду я ставлю чтобы её использовать, а не увлечённо пытаться собрать из поломанных кусочков, попутно копаясь в дебрях линукса. :)
Желаю вам скорейшего просветления.
Спасибо! :) Останусь с компилятором в Windows — вот моё просветление. А в linux… не больно-то и хотелось. :)
Вот кстати, какая там проблема в файлах сишных.

"

А с ошибкой скрипта всё ясно — путь www.multiprecision.org/mpc/download устарел. Ему не скачать файлы. Поищу в другом месте.
Тогда я не понимаю, что клонируется в этом случае git clone -b lx106 git://github.com/jcmvbkbc/crosstool-NG.git.
С новыми скриптами вышеприведённой ошибки скачивания не возникает.
git clone -b lx106

Вычекивается ветка lx106, которая давно не поддерживается.

С новыми скриптами вышеприведённой ошибки скачивания не возникает.

Желаю вам скорейшего просветления ещё раз.
Вычекивается ветка lx106, которая давно не поддерживается.


Ну так надо чаще менять ветки. Пусть все сделавшие инструкции гадают, какая теперь самая свежая. :) А ещё лучше, пусть пользователи сходят и проверят всё-всё, что скачивают. Вдруг скрипт больше не работает, потому что кому-то пришла мысль что-то поменять. :)

Желаю вам скорейшего просветления ещё раз.


Да я уж просветился. ;)
А нет, рано обрадовался. Теперь оно не может собрать отладчик, хотя компиляторы и линкеры собрало. Питон не находит. При этом в системе стоит и 3 и 2 питон и никто на него никогда не жаловался. Чудеса…
Забано, но тут написано то же, что я и получил.

К сожалению, не всегда сборка проходит успешно. Тулчейн нормально собирался у меня в Slackware 14.2 с gcc версии 5.3.0, так же успешно проходила сборка в виртуалке Ubuntu 14.4, которая идёт с официальным тулченом. А вот в Slackware-current с gcc-8.2.0 сборка валится на этапе сборки GDB.


У меня тоже на этапе сборки GDB валится. Надо бы её в скрипте отключить нафиг. Всё равно он мне не нужен.
Чтобы GDB не вылетал при сборке нужно в файле crosstool-NG/scripts/build/debug/300-gdb.sh изменить строки (примерно 120 строка):
if [ "${CT_GDB_CROSS_PYTHON}" = "y" ]; then
            cross_extra_config+=( "--with-python=yes" )
        else
            cross_extra_config+=( "--with-python=no" )
        fi
        if [ "${CT_GDB_CROSS_SIM}" = "y" ]; then
            cross_extra_config+=( "--enable-sim" )
        else
            cross_extra_config+=( "--disable-sim" )
        fi
        if [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ]; then
            cross_extra_config+=("--disable-nls")
        fi


Нужно сделать невыполнимым условие выбора питона: if [ "${CT_GDB_CROSS_PYTHON}" = "y" ]; То есть, вместо y поставить что угодно.
Конечно, это правильно изменить через переменную CT_GDB_CROSS_PYTHON, но я пока ещё не искал, где она определена.
Конечно, это правильно изменить через переменную CT_GDB_CROSS_PYTHON, но я пока ещё не искал, где она определена.

в файле .config в корне ctrosstool-NG появляющемся после ./ct-ng xtensa-lx106-elf
Поменять её проще всего так:
./ct-ng menuconfig
/
CT_GDB_CROSS_PYTHON
n


Не надо редактировать скрипты сборки для этого.
Спасибо. :) Буду потом так и делать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории