• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Подскажите, пожалуйста, максимальные возможности ESP8266?

pvvx

Активный участник сообщества
Смысл темы же в том, на что способен модуль ESP, чтобы было понятно новичку.

А получается:


Стоит ли играться с этим модулем, если он на большее неспособен да еще и глючит в уже собранных проектах?
На существующих расширениях типа NodeMCU или Arduino пока невозможно. Причина уже многократно описана - глючит китайская часть SDK, на которую они насажены и авторы портирования данных расширений не исправляют китайскую часть SDK и часто не хотят использовать даже простейшие обходы известных ошибок китай-части. Как итог - все расширения на ESP8266 не годятся для чего-то более чем мигать светодиодом.
Tomahawk всё правильно пишет, но и на СИ, используя только Espressif SDK ничего более серьезного, чем мигание 10-ю светодиодами не написать. Espressif SDK использует очень несерьезные алгоритмы, которые переплетаются и приводят к другим ошибкам, в итоге накопившиеся за год исправления в нем занимают большую часть кода и нерационально используют ресурсы чипа. Плюс полное отсутствие документации на внутренности (регистры управления) чипа. Итого - громадный не оптимальный код SDK, который вы удалить или использовать частями для сокращения занимаемых размеров под свою задачу не можете.
Такова политика Espressif - даже встроенный в чип ESP8266 ROM-BIOS (64 килобайтная встроенная масочная или OTP ROM система) имеет десятки уже год известных ошибок, которые до сих пор не исправлены. В последних SDK частично этот код переносится в и так малую IRAM память чипа, пожирая и дублируя ресурсы.
 
Последнее редактирование:

AndreyD

New member
Ну вот, спасибо за развернутые ответы. Это мне и, наверно, ТС было интересно, что на данный момент как ни крути на esp что-то крупное крутиться без глюков не будет.

Остается только играться с диодами, датчиками, релюшками и движками.
 

Kuiper

New member
Народ, всем огромное спасибо за ответы!
Не ожидал, что эта тема будет интересна форумчанам.

По теме топика - выше уже правильно сформулировали что, примерно, можно считать серьезным проектом - устройство на ESP8266, с подключенной периферией до 10 модулей, сложной бизнес-логикой (по аналогии с MVC из программирования), отказоустойчивое (к требованиям устройств гражданского назначения), с некритичными багами.

Суммируя все, что прочитал на форуме и из книги про ESP8266, наверное, можно сказать, что такое устройство создать возможно, но необходимо:
  • писать весь код на C,
  • работать напрямую с GPIO и ESP8266 API, без NodeMCU и других "переходников",
  • оптимально использовать ресурсы - время процессора ESP8266, RAM, Flash.

Я давно хочу перейти на что-то более серьезное, чем подключение готовых модулей и шилдов и прошивка готовых скетчей. ESP8266 - это идеальный вариант начать сейчас, т.к. у этой SoC есть WiFi, полноценный процессор, временная и постоянная память, GPIO для работы с периферией. В принципе, наверное, больше ничего и не нужно, кроме хорошего схемотехника и программиста, а это уже моя задача стать таким человеком.

А как вы думаете, может ли Espressif выложить в открытый доступ недоступную сейчас информацию по схемотехнике и прошивке, чтобы можно было работать напрямую с процессором, что-то менять? Я не разбираюсь в этой "кухне", слишком "железный" уровень для любителя Arduino-шилдов и скетчей, но как бы общее понимание того, что внутри процессора есть АЛУ и другие базовые вещи, к которым Espressif не дает документацию, есть. И если, пусть даже на старые модели, эта информация станет доступна, то каждый сможет перелопатить прошивку вплоть до каждого "винтика", т.е. транзистора и регистра на чипе.

Спасибо!
 

pvvx

Активный участник сообщества
А как вы думаете, может ли Espressif выложить в открытый доступ недоступную сейчас информацию по схемотехнике и прошивке, чтобы можно было работать напрямую с процессором, что-то менять? Я не разбираюсь в этой "кухне", слишком "железный" уровень для любителя Arduino-шилдов и скетчей, но как бы общее понимание того, что внутри процессора есть АЛУ и другие базовые вещи, к которым Espressif не дает документацию, есть. И если, пусть даже на старые модели, эта информация станет доступна, то каждый сможет перелопатить прошивку вплоть до каждого "винтика", т.е. транзистора и регистра на чипе.
Espressif не настроена выкладывать описание внутренностей чипа и якобы свой код управления частью WiFi, мотивируя это тем, что этим воспользуются WiFi хулиганы :) Это из их оф.заявлений. Ту часть кода обработки WiFi , которую они прячут давно есть, но от других чипов и не стыкуется только из-за других внутренних регистров управления.
В общем это просто отговорка, а цель Espressif - не получить нормальных объемов продаж своего чипа, т.к. весь код предлагаемый к нему от Espressif есть большая свалка ошибок и их невозможно исправить на ESP8266 даже если подпишите NDA.
Скорее всего это связано с нарушениями патентов, а Espressif - шарашкина контора...
Такая ситуация вынуждает переходить на SoC других производителей.
Цена малых партий товара определяется временем разработки, а не стоимостью чипа. На ESP8266 ничего стабильного, связанного с WiFi, сделать невозможно. Можно только использовать его CPU, который полностью документирован еще его создателем Tensilica Inc (ныне куплена CADENCE).
 
Последнее редактирование:

Kuiper

New member
@pvvx, большое спасибо за подробный ответ!
Если не сложно, можете, для общего развития, написать, какие есть в свободном доступе альтернативы ESP8266 в той же ценовой нише, возможностях и размерах?
То есть, к примеру, Arduino с WiFi-шилдом уже не подходит как альтернатива из-за больших размеров, высокого потребления тока (Pro Mini и Nano это вообще почти не вариант, очень слабая конфигурация).

Интересно, а занимался ли кто-нибудь из профи сообщества ESP8266 реверс-инжинирингом ESP8266, с целью полноценной работы с ESP8266?

Спасибо!
 

pvvx

Активный участник сообщества
Интересно, а занимался ли кто-нибудь из профи сообщества ESP8266 реверс-инжинирингом ESP8266, с целью полноценной работы с ESP8266?
Кроме своих ковыряний 'Реверс' SDK Espressif и ROM-BIOS для создания открытого SDK пока очень мало находил... Может оно где и есть, но не выползает :)
Пока есть такая версия SDK - meSDK, там указано что ещё не переведено в СИ и не заменено на открытый код.
 
Последнее редактирование:

Kuiper

New member
@pvvx, большое спасибо!

Начал учить Си, постепенно и до уровня работы с ESP8266 дорасту :)
 
Кроме своих ковыряний 'Реверс' SDK Espressif и ROM-BIOS для создания открытого SDK пока очень мало находил... Может оно где и есть, но не выползает :)
Пока есть такая версия SDK - meSDK, там указано что ещё не переведено в СИ и не заменено на открытый код.
Можно ли Ваш sdk использовать с Sming-ом? Полноценная ли выходит замена китайсдк?
 

pvvx

Активный участник сообщества
Можно ли Ваш sdk использовать с Sming-ом? Полноценная ли выходит замена китайсдк?
Нет. Есть отличия и он имеет не все функции из китай-SDK. Он пока является базой для Web-свалки (TCP2UART) и не закончен, как самостоятельный SDK - является начальной "балванкой". Надо до конца переписать и адаптировать все функции из user_interface.o (последней части от китайской libmain.a). Частично она уже переведена, но не адаптирована под свой лад. Тогда от китайской SDK останется только закрытая часть управления аппаратурой WiFi, которую никто переводить в открытый вид не стал.
Требуется много времени и я не проф.программист. Тем более нет никакой поддержки со стороны, а наоборот и одному всё это сложно сделать. По этому он развивается только в сторону моих личных желаний и запросов под мои проекты. А Sming - это Arduino. В Arduino своя концепция, которая не годится для создания серьезных проектов.
 
Последнее редактирование:
Нет. Есть отличия и он имеет не все функции из китай-SDK. Он пока является базой для Web-свалки (TCP2UART) и не закончен, как самостоятельный SDK - является начальной "балванкой". Надо до конца переписать и адаптировать все функции из user_interface.o (последней части от китайской libmain.a). Частично она уже переведена, но не адаптирована под свой лад. Тогда от китайской SDK останется только закрытая часть управления аппаратурой WiFi, которую никто переводить в открытый вид не стал.
Требуется много времени и я не проф.программист. Тем более нет никакой поддержки со стороны, а наоборот и одному всё это сложно сделать. По этому он развивается только в сторону моих личных желаний и запросов под мои проекты. А Sming - это Arduino. В Arduino своя концепция, которая не годится для создания серьезных проектов.
Спасибо за оперативный ответ! Жаль, что СДК пока не пригоден к замене кетай сдк. Вот чего Вы так ардуино не любите? Прям беда какая-то :) В умелых руках из ардуино вполне себе проекты рабочие выходят. Я вон в свое время сделал систему управления освещением именно на arduino pro-mini + Arduino как софтварная платформа. Теперь вот систему управления отоплением на esp8266 мучу на базе Sming-а. Вы как имя нарицательное Ардину используете - мол только диодами помигать и все. Не все только диодами мигают. Да и "супер серьезное" кодение на том же AVR не редко сводится к не всегда удачному повторению кусков того, что Ардуино зовется. Равно как и в esp8266 то же. Справедливости для замечу, что внутреннего полного доверия к esp8266 ПОКА нет. Но к тому же AVR + Arduino - полнейшее, проекту год и он исправно пашетю И именно тогда еще на Ардуино, а не на голом AVR C, писано было. А в esp не столько Arduino-Sming напрягает, он вообще не напрягает. он чаще радует, сколько как раз кетай СДК..Ежли бы кЕтайцы его открыли - просто праздник настал бы. А то читая Ваши заметки по мотивам копания во внутренностях кетай СДК волосы ШУВОЛЯЦЦА :) И еще ИМХО на счет АРдуино как софта - простые вещи надо делать просто, а сложные - сложно.. Если что-то получается сделать на Ардуино, зачем мучаться и ваять все на голом С или С++ от авр или есп? Оптимизировать надо тогда, когда это действительно надо. Когда я проектик под ATiny13/85 делал - там на голом С надо было писать. И хорошенько голову применять, чтоб все оптимально было и лезло в ооогромный абЁм тамошней памяти. А если ресурсов хватает - зачем париться? :)
 

pvvx

Активный участник сообщества
В умелых руках из ардуино вполне себе проекты рабочие выходят.
У каждого своя планка "серьезности проекта" и вроде выше это обсуждалось.
На Arduino я не могу 'запользовать' и 10% возможностей чипа. Только забить его память стыковкой с библиотеками Arduino и их концепцией.
Именно по этому и SDK от китайцев так-же не годится для решения многих задач.
-------
Основное применение ESP8266 я считаю возможно в двух вариантах:

1) Экономичный датчик.

2) Система для внешнего интерфейса к устройству по части WiFi.

Для первого варианта Arduino не годится. Нет возможности сделать экономию питания путем специального загрузчика и разборки надо ли инициализировать SDK и саму систему Arduino. Подробнее описано тут.

Для второго варианта Arduino не содержит нормальной поддержки встроенного Web с дисковой файловой системой, позволяющей держать все необходимые программы управления в чипе, без доступа к внешним интернет ресурсам, но работающим на любом внешнем устройстве имеющем интернет-браузер и экран.
 
Последнее редактирование:

Tomahawk

New member
Alexander V. Ribchansky, для себя поиграться мы ведь не против, можете взять ардуину и попереключать релюшкой за 1500 рублей, если вы любитель. А что будет, если вам потребуется 100 таких устройств? Это уже неоправданно дорого, и на месте работодателя я бы гнал подальше таких специалистов. Я также люблю устройства условно со спичечный коробок, а ардиуну нужно саму куда-то запихать. Так что дело уже не в коде заключается, а в том, чего вы ожидаете получить от проекта и в чём заключается ваша "серьёзность".
 
Alexander V. Ribchansky, для себя поиграться мы ведь не против, можете взять ардуину и попереключать релюшкой за 1500 рублей, если вы любитель. А что будет, если вам потребуется 100 таких устройств? Это уже неоправданно дорого, и на месте работодателя я бы гнал подальше таких специалистов. Я также люблю устройства условно со спичечный коробок, а ардиуну нужно саму куда-то запихать. Так что дело уже не в коде заключается, а в том, чего вы ожидаете получить от проекта и в чём заключается ваша "серьёзность".
Вот Вы бы только кого-то куда-то гнали. :) Опять же все должно быть ЦЕЛЕСООБРАЗНО. Если вправду над о налаживать выпуск сотен и тысяч железок, то да, правильно не просто интегрировать палту с ардуино (даже про мини) а все же сделать свою плату, на которой спецом все нужное от atmeg-и развести, а не нужное - не трогать, оно безусловно компактнее выйдет, но если это еденичные не требовательные по габаритам проекты - то зачем делать свою плату? не вижу смысла. Проще про-мини взять и вперед. Равно как и с esp8266, мне не прийдет в голову заниматься разводкой своей платы под именно проц + память, а не взять готовую сборку по типу esp-12. Проект должен быть ну уж оочень требовательным, чтоб нельзя было использовать готовую сборку. И да, платы разводить и делать умею и вопрос не в том, что только проводочками с разъёмчиками готовые шилды тыкать могу :) Вопрос исключительно в целесообразности простое делать сложно. А вообще это все философия. Ни меня никто не заставляет что-то делать, равно как и я не навязываю и не заставляю делать кого-то что-то.. Просто дискутируем :)
 

pvvx

Активный участник сообщества
Давайте рассмотрим простой гипотетический проект к примеру выключателя лампочки.
От модуля требуется:
1) Система простой настройки системы. Уровни ‘секретности’ (безопасности/шифраций) и указание внешней стыковки (AP и т.д.)
2) Память и логирование с расчетом времени работы когда включался с возможностью записи события смены лампочки чтобы узнать её ресурс и прочее.
3) Драйверы стыковки с системами уровнем выше по разным распространенным протоколам в инет.

Если всё это ведется на сторонней стороне, то мы получаем не автономный проект и невозможность использования его как одиночного устройства. А если всё это реализовано, то такой контроллер подходит практически под все варианты использования.
Сравните это с возможностями Arduino и увидите нецелесообразность её использования из-за малых недочетов, таких как ужасная файловая система spiffs и ужасная стабильность работы. Ещё Arduino не дает решения вывода накопленной информации для пользователя данного устройства на имеющемся у него оборудовании без привлечения стороннего софта и сервиса (часто оплачиваемого).
-------
Попробуйте разобрать и пример создания частного простого инструментального устройства как “управляемый блок питания для радиолюбителя” с интерфейсом по WiFi, чтобы уменьшить стоимость путем не включения в проект графических панелей и системы его управления c логированием...
Думаете ему необходим "облачный сервис"? :) (БП выбран т.к. он имеет всего 2 управляемых параметра - ток и напряжение. Но в итоге они выливаются в целую систему параметров необходимых для информации человека...)
 
Последнее редактирование:
Давайте рассмотрим простой гипотетический проект к примеру выключателя лампочки.
-грызь-
Сравните это с возможностями Arduino и увидите нецелесообразность её использования из-за малых недочетов, таких как ужасная файловая система spiffs и ужасная стабильность работы. Ещё Arduino не дает решения вывода накопленной информации для пользователя данного устройства на имеющемся у него оборудовании без привлечения стороннего софта и сервиса (часто оплачиваемого).
Что не так со spiffs? Что в нем не так? Я не пробовал использовать ее мега активно по типу 10-20 записей в час. Но с задачей отдавать веб-странички да конфиг хранить на ура справляется. Весьма вероятно, что активное ее использование приводит к чему-то "плохому" поделитесь плз своим опытом. Чего не хватает тому же esp-12+ sming + web interface чтоб через веб интерфейс дать возможность скачать файл лежащий на spiff с накопленными данными?? о каком оборудовании и оплачиваимых сервисах речь?? В чем ужасная стабильность esp-12 + sming? У меня железка в виде esp-12 + 2 x 74hc165 для расширения ввода и 2 x 74hc595 для расширения вывода + ds18b20 + web interface with AJAX (запрос свежей температуры каждые 4 секунды) + логика полезной работы девайса в плане управления системой отопления работал на наработку 2 недели. Потом просто надо было выключить, а так бы и дальше работало. Очень интересует опыт наработки на отказ в плане железа и софта для esp8266 (+Sming). Сам на уровне эмоций НЕ особо спокойно себя чувствую в плане надежности. Но мои тесты пока радуют.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Что не так со spiffs? Что в нем не так?
Скорость отдачи и записи файлов на уровне менее 1 килобайта в сек при наличии на диске заполнения более половины пространства. В его описании от создателя это указано.
Web требует отдачи в среднем до 10-ти файлов сек. Иначе им пользоваться невозможно.
Посмотрите чего хотят пользователи от web-свалки. Последний вопрос в том, как обеспечить комфортную работу с 40 файлами на одной страничке :)
Это возникло из-за попытки создания интерактивной настройки модуля и написания web страниц на популярном ПО генерирующим десятки файлов css и js.
В процессе удалось добиться на ESP8266 (при обсуждении и попытках как-то исправить в обсуждениях не вошедших в открытую часть форума) этого:
ttttt36.gif
И данной скорости вроде хватило... т.к. текшая скорость работы web-свалки с HTTP на уровне в 2 раза менее чем на стороннем накопителе HDD (seek 9 ms)
Повторите это на sming.
 
Скорость отдачи и записи файлов на уровне менее 1 килобайта в сек при наличии на диске заполнения более половины пространства. В его описании от создателя это
-грызь-
И данной скорости вроде хватило... т.к. текшая скорость работы web-свалки с HTTP на уровне в 2 раза менее чем на стороннем накопителе HDD (seek 9 ms)
Повторите это на sming.
Наверное ПОКА не повторю. Спасибо, что просветили в ограничении по скорости spiffs, не знал об этом. Однако мои проекты ПОКА не уперлись в отдачу большого числа файлов и пока нет требования в высокой скорости отдачи. Больше напрягает корявость отдачи больших файлов в интернет через НАТ (что ГСМ, что 3Г что АДСЛ, пох что) мы с Вами уже дискутировали на эту тему. Там все в кетай СДК уперлос и идиотизм с большим МТУ..
 

pvvx

Активный участник сообщества
Там все в кетай СДК уперлос и идиотизм с большим МТУ..
Но это же решилось.
И не стоит сравнивать то, что вас устраивает, с запросами других. Про то, что SDK обеспечивает протирание дырки в Flash и её выходу из строя при частых deep-sleep в течении нескольких месяцев тоже говорилось.
Как итог - Arduino пока не может позволить создавать на ESP8266 более менее интерактивный и надежный софт и цели у него совершенно другие - оно создано для вечерних поделок пользователя не сильно знакомого с программированием и другими техническими знаниями. По этому имеет массу ограничений. Т.е. узкую сферу применения.
Серьезное обучение программированию на ней тоже накладывает ограничения, возникающие от того, что цель Arduino скрыть нижний слой работы с аппаратной частью. В итоге получается 'специалист' не знающий реальных аппаратных уровней современного оборудования и очень ограниченный про выбору дальнейших систем программирования (только высокий уровень, без возможности создания системного ПО). Что и наблюдается в обществе - мигание светодиодом с его подключением к выводу контроллера уже приравнено к геройству. :)
 
Последнее редактирование:

Ann

New member
Хочу поинтересоваться кому удалось получить наибольшую битовую ( байтовую ) скорость потока данных в от модуля, без подвисания. И как долго получалась непрерывная работа.
 
Сверху Снизу