Комментарии 122
Я так понял, что ESP32-C3 будет более дешёвым вариантов ESP32 и может пойти на замену ESP8266.
RISC-V на такт быстрее как раз будет, чем Xtensa ядро.
ESP32-C3 будет более дешёвым вариантов ESP32
Ну есть же ESP32-SOLO. Все то же что и обычный ESP32, но 1 ядро и дешевле.
Так же у него Bluetooth 5. И потенциально у ESP32-C3 ещё будет отладка по USB.
Я не нашёл точного подтверждения, но вроде говорят, что даже просыпание WiFi из сна на новых -S2 и -C3 будет быстрее.
Посмотрим что в итоге выкатят, очень интересно.
Не то, что я побегу покупать, но есть где они действительно дешевле? Просто любопытства ради. Могу предположить, что из-за низкого спроса они такие дорогие, но я мог пропустить что-то очевидное.
Я тупо в чип-дип купил горсть с полгода назад, вышло по ~300р.
Сейчас смотрю — за 320 (от 8 штук) можно там взять.
Там же сейчас (для сравнения):
- ESP32-WROOM-32U — 220 (от 11 шт)
- ESP32-WROVER — 450 (от 6 шт)
Там же Solo стоит 580р если покупать не партию.
ESP32-WROOM-32D стоит 390р если не партия, а он два ядра.
Я к тому, что Solo дешевле не получается.
На Mouser'е, кстати, такая же ситуация.
Это оба не Solo.
Ну я для сравнения и привел цены на 2-х ядерные.
Solo за 320 — тоже мин. партия 8 шт.
Вот и стало интересно «дешевле ли?». Получилось, что нет.
Когда я покупал, мне вышло заметно дешевле (2-х ядерные тогда в районе 370-400 были).
Хотя S2 на плате сейчас стоит 1,99, чип без платы вроде вообще доллар… Экономический смысл в С3, да ещё без ULP, будет, только если в него с минимальными правками портируется код от больших ЕСП32…
S2 даже дешевле, верно.
Если код на C/C++, то портировать даже ничего не надо будет. Достаточно сделать «idf.py set-targed esp32c3» и пересобрать проект. Об этом в топике написано как раз.
Если что-то совсем хитрое делается с периферией или специфичное для Xtensa, то тогда надо будет что-то делать. Но большинство проектов в такие дебри не уходит.
В связи с большей популярностью RISC-V, компилятор под него более отлаженный и оптимизированный. С портированием (если оно вообще будет) нормального кода проблем быть не должно.
Жду пощупать )))
Особенно выносить всю работу с кнопками как в обычном так и в режиме глубокого сна, отслеживать по i2c сенсорный экран, ожидая «пробуждающих» жестов, или «на ходу» корректировать интервал опроса датчиков в «солнечных» проектах мониторя заряд ионистора.
При наличии полноценного ESP32 с ULP на борту использование C3 кажется бессмысленным.
Я так понимаю, что просто очень хочется RISС-V присобачить, его сейчас везде агрессивно пихать начинают
Хотя по мощностям там такое, что вполне можно было бы поставить туда линукс и не париться уже по поводу разработки! Зашел по ssh, наделал чего надо, как на тех же «малинках-апельсинках» и радуйся. У меня же за три дня попытки «въехать» в разработку под ESP32 осталось только чувство отвращения и желание никогда больше в это говно не влезать!
То ли дело под STM32 что-то разрабатывать. Просто красота!!!
Любопытно. Что они там ретрансоируют? Не hotspot для ожидающих ведь.
Интересно есть ли серийные устройства типа такого, но с ESP32.
А так управление ещё куда ни шло. Хотя, загрузку и выгрузку белья всё равно ведь делать вручную надо.
Ну я чайники с wifi видел, например.
Очень удобно подойти, налить воду и включить со смартфона через сервер в Китае :)
С машинками можно удаленно:
- следить за прогрессом стирки
- удаленно запустить (например утром загрузить, а перед выходом с работы запустить программу)
- удаленно сменить программу стирки
Хотя выглядит все это немного как фичи ради фич, на мой взгляд.
Я несколько обзоров всяких умных розеток и прочих выключателей смотрел на ютубе — там часто внутри плату ESP8266 видно.
Я обычно по MAC'у оцениваю что за чип.
Всё ещё хочу найти что-то серийное с ESP32.
А там где, не видно, часто ставят ESP8266, а сверху крышку с другим названием.
Да просто затирают/заклеивают, такие безымянные тоже видел где-то.
Так то модуль очень удобный и недорогой для всяких подобных штук.
Насчет ESP32 — я думаю можно попробовать поискать в подобных умных розетках/выключателях, где заявлена поддержка BT.
Всё ещё хочу найти что-то серийное с ESP32.
Очень много таких устройств. Когда работал в ССТ/Теплолюксе, мы там почти всю линейку бытовую на ESP32 перевели. https://www.teploluxe.ru/bytovye_resheniya/termoregulyatory/
Какое определение «низкоуровневой разработки»? Машинный код или выход за границы возможности периферии?
И что значит «дикие SDK» и чем они отличаются от не-диких?
На микроконтроллере такого плана не нужен Linux, это совсем другая сфера применения. Для Linux есть много других более подходящих плат, которые с этим справятся намного лучше.
Мы же не ставим Linux на что-то типа STM32F1xx. Или вся красота разработки на STM32 заключается в том, что на него ставят Linux? Возможно, я просто отстал.
И что значит «дикие SDK» и чем они отличаются от не-диких?
Подключение библиотек в ESP-IDF сделано весьма извращенным способом. Официальная документация часто не соотвествует реализации. Обратная совместимость обновлений SDK разработчиков не волнует: откомпилить вроде рабочие сторонние готовые проекты — бывает надо очень сильно попотеть.
Как делать правильно?
С обратной совместимостью у меня проблем пока не было. Но я не утверждаю, что у меня 100% покрытие. Возможно зависит от абстракций или более грамотной документации.
ESP32 имеет уродский третий подход: жирнючая HAL, требующая выполнять двойную работу: ты обязан и даташиты на железо читать, и документацию на HAL. Это напоминает разработку формата абдурины или калокуба для STM32, когда пользователь либо убивает уйму времени на те же действия, что сделал бы без HAL, либо вслепую копирует «скетчи» из интернета и пользуется ими с минимальной модификацией. Я так разрабатывать не могу. Поэтому и говорю, что ESP32 — дерьмо!
Вслепую копируют код и для STM32, от этого STM32 хуже не становится. Там просто порог вхождения другой.
Это как утверждать, что Arduino — это полная фигня, потому что код иногда глючит. Но ведь код глючный по большей части из-за программистов, а не платформы.
Я так разрабатывать не могу. Поэтому и говорю, что ESP32 — дерьмо!
А если я могу, то кто тогда я?
Есть разработчики узкоспециализированные, которые могут оттачивать свои проекты до высоких уровней, но только на специфичном МК и в своей среде. Шаг в сторону — будет полная лажа. Но зато они могут сделать невозможное на своём «идеальном МК». Они могут даже неподходящий МК запустить на нужную задачу.
А есть разработчики более универсальные и широкие (не путать с толстыми). Они могут подобрать МК под задачу, выбрать среду разработки под задачу и сделать что им надо вместо того, что бы делать вытаскивать не особо подходящий МК под свою задачу.
Я стараюсь быть вторым типом и не вижу в этом ничего плохого. И уж точно спокойно принимаю разработчиков первого типа.
Ещё мне очень нравится что в ней блютуз есть. Через него так удобно работать, я через него и прошивку обновляю и отлаживаю и при этом у меня МК отвязан от ноута и я не боюсь ничего спалить.
Либо это такой тонкий сарказм, либо человек настолько не шарит в теме, что моя бабушка и то лучше бы разобралась.
А эту бобину на инженерные образцы я размотал всего за пол-года:
Плюсую и добавляю. WiFi и Bluetooth идут в виде блобов, исходников не будет, как и документации на регистры. Внешняя флешка — неудобно, день читал документацию о шифровании ее содержимого, но так и не понял как это сделать, настолько там все запутано. А ещё SPI0 и SPI1, которые есть, но трогать их нельзя, потому, что они подключены к флешке и кэшу. JTAG глючный и нестабильный. Гарвардская архитектура и 4 разных вида оперативки. ULP — убогое недоядро, которого надо программировать на его собственном ассемблере с кучей ограничений и костылей. АЦП нелинейный и, поэтому, бесполезный. Реалтайма практически нет, реакция на прерывания долгая и непредсказуемая по времени. Там можно долго продолжать. Из плюсов, кроме цены, можно выделить GPIO-матрицу, позволяющую назначить любую периферию на любую ножку.
Espressif просто купили ядро у XTensa, состряпали кривенькую периферию, примотали изолентой к ядру, где не получилось — вставили костыли для уменьшения энергопотребления в спящих режимах, и продают за копейки. И, судя по всему, стратегия работает. Неудобно, ну и ладно, за то дёшево.
WiFi и Bluetooth идут в виде блобов, исходников не будет, как и документации на регистры.
Кстати, о птичках, а на каких МК с WiFi вообще исходники WiFi открыты?
В этом и есть их преимущество, а не недостаток.
Это не должно быть ядром общего назначения, иначе оно не будет «ULP». Для всего остального есть нормальные ядра.
RISC-V вроде как лучше должен быть в плане потребления, чем Xtensa. Посмотрим.
Есть задачи для STM32, есть задачи для ESP32. Но они не всегда пересекаются.
Я говорю о том, что в попытке совместить микроконтроллер и трансивер Espressif родили чудовище Франкенштейна, пользоваться которым довольно затруднительно, т.к. отовсюду торчат рога, копыта, костыли и куски изоленты. И, судя по всему, они не собираются это исправлять. Поэтому, думаю, что решение с раздельными МК и трансивером будет выглядеть лучше как с точки зрения разработки, так и с точки зрения энергопотребления и стабильности. Хуже будет только по цене.
STM32 не нужно ULP, потому что он умеет превращаться в ULP, отключая тактирование ядра и периферии.
Какой забавный футпринт у ESP32-C3-Mini-1.
Ног много, шаг мелкий, при этом большая часть ног на земле или не используется. Это специально сделано что бы запаивать посложнее было? Подтянем уровень diy монтажников :)))
Много земли не делают от хорошей жизни.
Ага, тото на 8266/32 земляных ног одна/три.
Запаивать ведь не паяльником такое надо
О чем собственно и речь. Без фена и по хорошему трафарета с пастой этот корпус нормально не запаять. При этом больше половины ног или n/c или gnd (сравните с 8266 или 32). И нафига такой футпринт нужен? Помучатся самоделкиным?
Плюсом по сравнению даже с 8266 (и тем более с 32) особых выгод от применения пока не вижу, а с запаиванием в домашних условиях получается один большой жирный минус.
Ага, тото на 8266/32 земляных ног одна/три.
Так там и требования другие.
При этом больше половины ног или n/c или gnd (сравните с 8266 или 32). И нафига такой футпринт нужен? Помучатся самоделкиным?
Всё равно не совсем понял что не так. Корпус ведь такой же, просто некоторые выводы имеют другие значения. Паяют ведь выводы, а не их функции.
И там и там будет QFN32 5x5. Почему если ESP32-C3, то сразу жирный минус и бессмысленность использования в самоделках?
Так там и требования другие.
Требования к чему? Какие? По мегагерцам и радио они абсолютно такие же — 2.4ГГц вифи/блюпуп и 160-240МГц тактовой. Что поменялось?
Всё равно не совсем понял что не так.
Я про вот это: www.espressif.com/sites/default/files/documentation/esp32-c3-mini-1_datasheet_en.pdf лист № 9.
По мегагерцам и радио они абсолютно такие же — 2.4ГГц вифи/блюпуп и 160-240МГц тактовой. Что поменялось?
Bluetooth в ESP8266 нет. Частота там тоже ниже. Наверняка, там ещё есть существенные отличия, которые сказываются на разводке.
Я про вот это: www.espressif.com/sites/default/files/documentation/esp32-c3-mini-1_datasheet_en.pdf лист № 9.
Я говорил про чип, а не про модуль. Он как раз QFN32. Сам чип на странице 9, но в другом pdf:
www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf
Bluetooth в ESP8266 нет. Частота там тоже ниже.
1) Нет блюпупа и что? Радиочасть — те же 2.4ГГц что блюпуп что вифи. Кроме того что насчет esp32 с тремя ногами земли?
2) Счего это ниже? Да вроде та же — 160 МГц. У esp32 таки даже выше — 240МГц.
Я говорил про чип, а не про модуль.
На всякий случай приведу с чего началось обсуждение (мой комментарий):
Какой забавный футпринт у ESP32-C3-Mini-1.
ESP32-C3-Mini-1 — это именно модуль, и речь веду о нем.
Наверняка, там ещё есть существенные отличия, которые сказываются на разводке.
Отличия которые заставляют разработчиков делать такую кривую разводку контактов модуля ESP32-C3-Mini-1? Т.е. если из платы модуля вывести 20 пинов по краям он работать не будет?
Нет блюпупа и что? Радиочасть — те же 2.4ГГц что блюпуп что вифи.
Тем более надо их защитить друг от друга.
Счего это ниже? Да вроде та же — 160 МГц. У esp32 таки даже выше — 240МГц.
Зачем тему менять? Сравнение было про ESP8266. У ESP32 как раз есть Bluetooth и несколько выводов земли.
На всякий случай приведу с чего началось обсуждение (мой комментарий):
Какой забавный футпринт у ESP32-C3-Mini-1.
Я удивился и подумал, что речь про чип. Потому и добавил про «QFN32».
А если про модуль ESP32-C3-Mini-1, то тогда тем более не понятно почему именно он? Этот модуль сделан для этого девкита. Зачем самоделкинам покупать девкит, потом выпаивать модуль и мучаться с ним?
Тогда уж проще купить ESP32-C3-WROOM когда он будет в продаже и его использовать. Там как раз будет легко паять и он будет продавать как отдельностоящий модуль, а не часть какой-то платы.
Т.е. если из платы модуля вывести 20 пинов по краям он работать не будет?
ESP32 продаётся в виде разных модулей на разные сценарии. Надо выбирать модуль, который подходит под конкретный сценарий.
Тогда уж проще купить ESP32-C3-WROOM
На сайте еспрессифа он анонсирован, только документации на него чего то не находится.
А если про модуль ESP32-C3-Mini-1, то тогда тем более не понятно почему именно он?
Речь про то что именно у модуля ESP32-C3-Mini-1 крайне корявый дизайн.
На сайте еспрессифа он анонсирован, только документации на него чего то не находится.
Потому что он ещё не продаётся. Только анонс есть.
ESP32-C3-Mini-1 ведь тоже не продаётся пока.
Речь про то что именно у модуля ESP32-C3-Mini-1 крайне корявый дизайн.
Он корявый только если его использовать не по делу. Микроскоп тоже плохой инструмент, так как он плохо забивает гвозди.
Так же и тут. Будут другие модули, которые лучше подойдут для других целей. В Espressif это уже доказали на других чипах.
Иногда терпения не хватает, я понимаю это чувство. У самого такое.
Ни один чип ...
где я про чип говорил? корпус чипа как был qfn (что для 8266 что для 32) так и остался.
Адаптируются под требование промышленности...
Как мне кажется модули типа ESP32-C3-Mini-1 это именно для самоделкиных. Серьезные конторы (которым модуль типа ESP32-C3-Mini-1 нафиг не сплющился, им вагон qfn чипов купить дешевле) уже под qfn чипы сами свои платы разводят.
Дело не в серьёзности. Помимо "вагон qfn чипов купить дешевле", на железных крышках есть отметки FCC и всякого такого. Сертификацию (при использовании голых чипов) проходить болезненно. А ещё на готовых модулях очень удобно расположены и распаяны кварц, флэш, антенна, и так далее. Не всегда это всё хорошо вписывается в дизайн основной платы устройства.
Я только начинаю интересоваться этой темой и ищу расширяемые и программируемые датчики и реле для умного дома на открытых компонентах.
Всё, что находил, либо закрытое и малофункциональное, либо многофункциональное, но стоит, как крыло от самолёта.
Но почему это костыли? Как должно быть?
Deep-slight отличается от light-sleep как раз тем, что надо отключить больше узлов для экономии.
Нет, deep sleep в нормальных контроллерах именно так и работает, при условии что включено сохранение RAM.
Через reset работает совсем дремучая восьмибитность.
Конечно можно, поэтому и придумали частичное отключение памяти.
Но в любом случае, даже с полным сохранением всей памяти STM32 потребляет меньше, чем ESP32 в deep-sleep, поэтому ESP32 и не подходит для батарейного питания.
Предполагаю, что линейный LDO на платах ESP32 тоже добавляет что-то. Там есть куда сократить потребление.
На той же Raspberry Pi Pico стоит более правильное питание.
Ещё и с питанием от аккумуляторов проблема сделать 3.3в как ему надо.
А в чем проблема то? Ставим какой-нибудь ADP2108 с обвязкой из полутора smd и все.
Я видел много проектов, где используется ESP32 с целью сделать потребление как можно ниже и там были интересные цифры. Те проекты как раз для питания от аккумуляторов.
Возможно, даже можно подобрать что-то более подходящее под задачу. Если, например, время спячки идёт несколько часов или суток, то одно решение может работать лучше другого, где оптимизация на постоянную работу.
Если нужна более высокая эффективность, то есть другие варианты. Обычно они посложнее, но тут надо решить что важнее.
Ну да, вариантов получить нужные 3.3в куча разных есть, на разные напряжения/токи и прочие хотелки. ADP2108 — первое что в голову пришло.
То есть, фактически менять на ходу в зависимости от требований и задач. Если нужно более «чистое питание» и можно за счёт этого снизить эффективность, то надо просто пнуть пином.
А вот что реально хотелось бы увидеть для IoT устройств — это Bluetooth 5.1 из-за «отличается тем, что у пользователей есть возможность определять местоположение и направление с максимальной точностью».
А есть сейчас возможность добавить esp32-c3 для eclipse, вижe только s2, может кто-то знает как?
Но для Eclipse есть плагин. Там всё так же, как и на других ESP32 модулях:
docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/eclipse-setup.html
Если уже всё установлено, то, возможно, надо просто обновить ESP-IDF до последнего. Нужна ветка «master» или «v4.3+».
Плагином я пользуюсь, и обновился как раз когда модуль приехал, через командную строку видно что "set-target esp32c3" сработало, но в eclipse таргет не появился.
Проверю, я до конца не довел, ввел «set-target» через командную строку, увидел что он убил все файлы в папке build и еще sdkconfig, я понял что скорее всего все файлы для работы с С3 есть, но дальше не стал ждать, вернул назад sdkconfig и через eclipse все собралось как и раньше, значит не достаточно похоже.
Файл sdkconfig модифицируется под новый чип просто, но сам файл не убивается. Вроде как должна быть оригинальная версия если файл действительно убился (хотя, странно).
Вчера разобрался, через командную строку esp-idf сделал смену таргета, после этого происходит fullclean, старый sdkconfig превращается в sdkconfig.old, с eclipse тоже оказалось все просто, оказывается нужно вручную дописать IDF Target esp32c3, а я ожидал что там появится меню для ручного выбора. В общем все запустилось, но первый же пример mb_tcp_slave, посыпался с ошибками, хотя по идее он не должен быть зависим от платформы.
github.com/espressif/vscode-esp-idf-extension/pull/338
Возможно, теперь и на Eclipse есть такая возможность.
ESP32-C3: первое знакомство. Заменим ESP8266?