Не нашел треда с этим великолепным поделием из Китая. Основная фича - наличие вайвай на 32 еще и блютуса. Периферия слабая,даже в сравнении с ардуино, на 32 получше.
NodeMCU - прошивка, позволяющая выполнять скрипты lua на мк. Как по мне - это большое достижение, очень хорошее, два года ждал.
Напишите, пожалуйста, в комментариях своё мнение по этому микроконтроллеру?
Немного говнецом отдает. Нравится что в ESP32 есть настоящий Ethernet (MAC уровень) и можно ставить почти любое PHY и получить настоящую проводную локал очку на пару с микропистоном. А вот по выводам.. Это жопа. Полная. Пара выводов на вход, 1 spi, 1 консоль + 1 юарт в лучшем случае и выводы закончились. Epic Fail. Вроде бы микропистон все еще не умеет в CAN шину на ESP32. Это печально.
Ненавижу глючный и тормозной WiFi, предпочитаю надежную проводную локалку.
Вайфай понравился, я запускал на питоне одностраничный сайт, и смотрел две температуры и показания АЦП на мобиле в браузере.
Консоль через вай-фай, через telnet. Очень удобно без проводов.
Запускал также FTP для передачи .py файлов, тоже супер удобно.
Блютуз не запускал.
Потом плату окончательно ушатал, и остался только модуль.
У esp32 просто так умирают ноги. У меня штук 5 умерло в рандомных местах. Видимо статика.
Очень замороченный процесс прошивки. Очень хочется шить spi напрямую, но не знаю формат. Кто бы помог разобраться. Знаю что на Гите esptools есть описание формата прошивок и протоколов, но не пробовал его соотнести с образом spi.
Нужен хороший конденсатор по питанию. Без него не работает.
Esp8266 без даташитов. Esp32 с даташитами, но слишком сложные для низкого уровня.
Заказал еспэху 32 на али. Можешь сказать, что качать и изучать пока едет? С питоном знаком, писал ботов в браузерки, когда они были попроще.
https://mysku.ru/blog/aliexpress/84562.html
Мне впадлу даташиты искать. Сам смотри - слева один юарт, справа - spi + консоль и пара выводов.
Никто ничего не попутал кроме тебя - писалось же
>ESP32 есть настоящий Ethernet (MAC уровень) и можно ставить почти любое PHY и получить настоящую проводную локал очку на пару с микропистоном
Почти все выводы уходят на RMII PHY и его тактирование + в esp8266 нет настоящего Ethernet, есть только отходы производства под названием WiFi.
Мне кажется ты натяшиваешь сову на глобус. Если тебе так нужна супер пупер надежная сеть, так и бери малину и процессор и ножки, а это поделие просто идеально вписывается в свою нишу, еще бы антенну помощнее - проснулся, отработал, передал данные, синхронизировался и снова спать, нет связи - ну и ладно.
Спрошу тут.
Хочу попробовать сделать светильник на лестничную клетку с возможностью изменения цвета свечения \ яркости через приложение или с веб-сервера.
Есть два стула: Wi-Fi и Bluetooth.
Что выбрать?
Центра управления пока нет, хотел пока сделать управляемое устройство.
>через приложение или с веб-сервера.
Нада делать standalone. Чтобы идет винишка-тян - горит розовым, сосед-пидор - голубым, чоткий пацанчик - ксеноном, сойбой - коричневым. Главное на Али сенсор на всяких пидоров найти
WiFi проще и надёжнее. Блютуз хуй пойми как работает.
Это ты какую-то отладочную плату кастрированную принёс.
>один юарт, справа - spi + консоль и пара выводов
https://en.wikipedia.org/wiki/ESP32
>34 × programmable GPIOs
>4 × SPI
>2 × I²S interfaces
>2 × I²C interfaces
>3 × UART
>>471473
Откуда бля все такие ебать умные лезете? Даташит тоже умею читать. Почему никого не ебет вопрос что бывает конфликт периферии по выводам? Эффективный менеджер?
Вот и смотри - кто-то облажался когда рисовал картинку - выводы GPIO36,39,34,35 - это только входы, выводить сигнал на них не получится.
Красным - Ethernet RMII + не показан еще один вывод на управлением генератором который срет 50МГц в вывод GPIO0 который нужен для прошивки и вывод подавать сигнал RESET на PHY.
Желтым - системная консоль для прошивки-дебага.
Синим - системная флешка которую нельзя занимать.
Что остается?
UART2 (оранжевый), SPI (в красном круге) у которого нет ни одного CS-a. 4(6) GPIO (32,33,15,2,4,23) и 4 только на вход(36,39,34,35).
Ахуеть расклад. 4GPIO, 4IN, UART + SPI (MISO+MOSI+SCK).
Покажи где это все и при это одновременно работающее при подключении внешнего Ethernet PHY? Может я в шары долблюсь и в упор не вижу очевидного?
>4 × SPI
>2 × I²S interfaces
>2 × I²C interfaces
>3 × UART
Ты можешь ремапить пины. Ты можешь перенести 3 уарта на любые пины, которые у тебя есть.
Наверняка и все остальные тоже можно.
Поделишься кодом для микропистона?
Может расскажешь-подскажешь как на ESP32 и микропистоне CAN запускать?
Возьми два чая. Хоть один адекват в треде. Благодарствую!
Референс читал, а мелкие приписки нет. Про юарт написано что можно на любой вывод переназначить. Не знал.
А вот CAN - в такие задворки документации спрятали что не сразу то и найдешь. Осталось найти ESP32 среди хлама что бы проверить на практике
Постваь внешний CAN-PHY, дурень!
Постваь внешний CAN-PHY, дурень!
Читал, гуглил, в основном там сводится к тому, что " я хочу/мне надо" и абстрактные рассуждения, что есть такое, еще я в ангельском плоховато. Есть прям готовый пример реализации на esp? Потрать на меня пару минут, пожалуйста, кинь ссылкой, а там уж я разберусь.
XMPP реализуется на коленке, надо лишь терпение. Сам не делал, но когда-нибудь сделаю. Самое сложное в нем - это пройти авторизацию
Да, будучи юным и горячим я писал плагины к талисману, исиде и иже с ними и всё хотел своего бота написать и написал, и когда читал про xmpp находил примеры где просто как вебстранички формируют xml и отдают и принимают, а сейчас я стар для всего этого.
Зачем вообще эти блинки-хуинки, мкъютэтэ, когда абсолютно всё это можно решить текстовым чатиком и никакой зависимости от других серверов, ну разве что сервер жабы?
Я не тот анон, но любой взрослый человек понимает, что ставить у себя в жилище вечно включенный микрофон это полное безумие. Сегодня собранную на тебя бигдату пользуют только для рекламы, но не успеешь оглянуться как Алиса уже сошьет на тебя дело об экстремизме, услышав рассказанную тобой домочадцам шутку про террориста Навального.
Спасибо, пожалуйста.
ты про что сейчас?
обычно chip enable - из терминологии обмена данными или еще каким управлением, микруха может штатно стоять и чото делать сама по себе и до получения сего. Перефразируя, без vcc точно disable, но без enable не обязательно без vcc.
сотовый это вечно включенный микрофон, который сливает все разговоры, и это никого не смущает.
Да и как мы видим последнее время, по приказу сверху сядешь при любом раскладе, что с доказательствами, что без
Это не выход, это вход у чипа
Смущает, я поэтому в своих телефонах всегда получаю рут и выкорчевываю gapps первым делом, да и фильтры на роутере тоже ловят некоторые анальные зонды.
>>472120
CH_EN экономит дополнительный транзистор на плате - с его помощью сторонний микроконтроллер может включать/выключать ESP простой ногой gpio без лишней обвязки. Изначально ведь ESP выпускался как дополнительный модуль только для wifi-обмена, и должен был отключаться в режиме ожидания для экономии энергии.
Ты сникерс что ли съешь, речь была о том, что постоянно включенная алиса будет подслушивать. Нет, окружающим никто ничего без их просьбы выкорчевывать не будет, но одно дело, когда у тебя в телефоне постоянно кто-то слушает с привязкой к абоненту и другое дело спорадическое попадание в чужой монитор. Пиздец вы зумерье тупое блять. Ты и игры в стиме покупаешь, сука, еблан, как ты меня бесишь своей алисой.
>>472140
Про дополнительный модуль это новость, предполагал, что он для этого больше подходит - вычислительная моща такая и мало интерфейсов и ног.
Алиса наша отечественная, пускай уж лучше наши слушают, чем ЦРУшники через гугл
Ебать ты пёс. Стань уже личностью, хватит к всяким стаям шаритьс
Ну ты чё. Там же вся документация есть. С примерами.
https://nodemcu.readthedocs.io/en/release/modules/uart/
И правда, что-то я затупил пытался через print и общую консоль через которую esplorer общается спасибо.
Еще такой вопрос - на spi будет висеть оборудование, оно будет одно, можно в модуле lua отключить chip select и использовать этот пин по своему усмотрению, а на приборе просто притянуть его к земле? На стм так делал всё работало.
Нашел, что можно переопределять ножки после инициализации spi.
Смузи-стартап какой-то, не взлетит в этом виде.
Идея графического программирования хороша и тот кто ее освоит будет грести бабло, если захочет, но почему-то никто пока не смог.
Спасибо за ссылку, почитать про луа было интересно, и я узнал кое-что важное для себя на тему js.
Графическое это возможность, там и буквами можно.
1) atmega328 + esp 01 как модуль wifi. Самое простое, но как-то неспортивно и совсем по детски. Хотелось бы вообще вебморду, а делать её AT командами такое себе
2) То же самое, но esp8266 как уже МК, а не модуль и общение между по i2c (потому что spi на ардуине занят). Тут надо учиться программировать esp8266 уже.
Задача ардуины это чтение данных с чипа по spi, ПИД регулятор и симмисторный диммер. Ну а esp должно собственно располагать вебмордой, через которую происходит взаимодействие и посылать требуемое значение параметра на ардуину.
3) Возможно стоит это всё заменить на esp32 wroom, но тут две проблемы: где купить и нормально ли wifi работает если у нас прерывания. (Хотя у нас там не одно ядро, но я не работал с этим, не ебу)
Так вот, какой вариант по цене самый оптимальный будет? esp32 wroom продаются хоть в чипидипе, по адекватным ценам, но сука, не поштучно, а по 7-8 минимум. Esp8266 есть во всех амперках, но непонятно, какой вариант нужен чтоб был доступен i2c, а то в большинстве пинов мало и я не знаю, разведен ли на esp 01 и т.п. i2c. В общем, помогите нуфагу
А в каком корпусе тогда брать? Не охота самому распаивать есп и флеш память, но и брать nodemcu и делать типа шилда тоже, хотелось бы кусок текстолита с обрезанными дырками, типа как у wroom.
"типа как у wroom" есть модули 12E. Или совсем чуть побольше, но у же с раскинутыми на гребенку пинами - wemos D1
> есть модули 12E
А где там spi? Я может жопой смотрел, но в спеках писали только uart i2c и can
Отлично. А как это ваше говно программировать? Что является правильным путём тут? Нужен ли какой-то программатор или можно с помощью usb-uart или arduino as isp? Ну и можно ли сразу покупать esp12e или лучше начать с девборды?
ебать ты ленивый черт. Срсли, тебе влом самому за две секунды нагуглить, как шить второй по популярности после ардуиновской атмеги чип?
Ну я чтоб наверняка. Тпрогер говорит, что есп шьются через uart причем без всяких предварительных шаманств с заливом бутлоадера. Бля, да это же охуенно!
У меня нет такого программатора. Есть только переходник на cp2102 и stlink
>предполагал, что он для этого больше подходит - вычислительная моща такая и мало интерфейсов и ног
Если че, esp8266 без флеша это самый популяный wifi модуль к пердуине. Правда зачем ДВА ядра при этом - непонятно
8266 - одно ядро.
https://www.esp8266.com/viewtopic.php?p=37925
Тут говорят, что эти ноги общие с spi, подсоединенным к флешу. Не возникнет проблем с работой точно? Даташит вообще говорит, что эти пины не использовать
какие "эти"? прям на твоей схеме же gpio 12, 13 и 14 просто выведены наружу.
там в чипе два SPI, есличо. Тот, который на кусках картинок распиновки, доступен и нормально работает.
А, да, это я долбоеб, всё, увидел
Шиз, спок.
Нет, я пользуюсь нормальным софтом. Если у вас вместо футпринтов используются макросы с расстановкой площадок, то я могу только посочувствовать
https://github.com/RobotDynOfficial/RBDDimmer
В этой либе ни один из пинов с таблицы у нас не свободен для детектора нуля. И хуле делать? Подключать ардуину по i2c и на ней моргать?
Потом, я нашёл только такую схему подключения для прошивки с помощью usb-uart, пик 2. Вопрос, нахуя тут вообще подтягивать gpio 15 и 0, если они имеют внутренние подтяжки такие же?
>i2c
он же тебе был нужен для связи с ардуиной, которой теперь нет.
>uart (для прошивки)
если только для прошивки - можешь юзать в своей проге эти пины как хочешь, прошивальщику пофиг, он сам по себе.
>ни один из пинов с таблицы у нас не свободен для детектора нуля
нахуя тебе софтовый детектор нуля? Zero-cross симисторные оптопары 30р в розницу стОят. Или ты собираешься без опторазвязки силовой симистор дергать прям с ноги контроллера?
>нахуя тут вообще подтягивать gpio 15 и 0, если они имеют внутренние подтяжки такие же?
патамушта внутренние подтяжки они имеют, когда твоя прога их настроит и задействует. А пока не загрузился - там пикрелейтед
> он же тебе был нужен для связи с ардуиной, которой теперь нет.
У меня планируется дисплей небольшой, так что и2ц нужен
> Zero-cross симисторные оптопары 30р в розницу стОят.
Но я уже купил moc3023m. Модули симисторных диммеров с али тоже требуют программного детектирования нуля.
>Но я уже купил moc3023m. Модули симисторных диммеров с али тоже требуют программного детектирования нуля.
ну заебись чо. Вместо того, чтобы спаять пять деталек и потом тупо ШИМ-ить это дело каким угодно образом, ты получил перспективу поебаться.
Ну ща меня точно обосрут, но да ладно. Нагревательный элемент печки. Ну с учетом, того что печка греется с 25 до 1150 градусов за 5-7 минут, наверное тут имеет смысл использовать более плавный регулятор, чем вкл выкл
>>473410
А какая частота у шима тут должна то быть? Даже если взять например 50 Гц, то мы можем или убрать один полупериод или два. То есть трехуровневое регулирование, что ну, мягкого говоря не совсем плавно.
Извините, но мне нужно удержание температуры с точностью 1 градус. Как ещё плавно управлять переменным током кроме симисторного диммера я не ебу. У промышленных решений тоже есть выход симисторной оптопары, так что не надо мне тут
>Нагревательный элемент печки
резать 50Гц синус на части из-за печки. Малаца, все правильно делаешь.
>Даже если взять например 50 Гц, то мы можем или убрать один полупериод или два
а если взять 2Гц, то ты сможешь резать от нуля до пятидесяти полупериодов.
>симистор
>значит фазовое
Ты - дебил или дебил?
>но мне нужно удержание температуры с точностью
А, мы до лепки пида еще не добрались. Пусть пока тред настоится, потом приду.
мимо
>Малаца, все правильно делаешь.
Потом выяснится, что это хуйня на одной и фазе и кушает под 5 кеков.
мимо
>а если взять 2Гц, то ты сможешь резать от нуля до пятидесяти полупериодов.
Ладно, это имеет смысл
>>473421
>Ты - дебил или дебил?
Еб вашу мать, ты скажешь ща, что вот эта хуитка пикрил на 3 кВт нужна чтобы диммировать лампочки по 50 Вт?
>А, мы до лепки пида еще не добрались.
С этим я разберусь и без вас, на ардуине я наебался с этим, как и с контроллерами термопары. Вопрос был исключительно в том, чтобы реализовать всю хуйню на есп
>>473423
Ну почему 5, всего то 2. А так да одна конечно, мне ж не промышленное оборудование дома ставить
>вот эта хуитка пикрил на 3 кВт нужна чтобы диммировать лампочки по 50 Вт?
3кВт эту хуитку пикрил в фазовом режиме неиллюзорно попячат.
алсо переход через ноль весьма пригодится, если тебе надо мощность мерить и регулировать.
>3кВт эту хуитку пикрил в фазовом режиме неиллюзорно попячат
Но это ж BTA16, че там попячит то? Разве что охлад лучше нужен
>алсо переход через ноль весьма пригодится, если тебе надо мощность мерить и регулировать.
Ну ШИМ с частотой в 2 Гц кажется более экономным решением в данной ситуации
>Разве что охлад лучше нужен
тогда это будет уже другая хуитка.
>ШИМ с частотой в 2 Гц кажется более экономным решением в данной ситуации
тут ключевое "мерить". Попробуй нарисовать схему более-менее точного (в районе 5-10Вт) измерения средней (за 5-10 секунд) мощности на переменном токе, в которой тебе не нужно знать нулевую точку.
>тут ключевое "мерить". Попробуй нарисовать схему более-менее точного (в районе 5-10Вт) измерения средней (за 5-10 секунд) мощности на переменном токе, в которой тебе не нужно знать нулевую точку
А это не принципиально. Если шим и сеть по фазе не будут съезжать со временем, то ШИМ и так схавает
ты совсем дурак, да?
написано прямым текстом: если надо регулировать мощность. Значение слова понимаешь? У тебя вот (или у другого анона?) регулируемая величина - температура. Тебе нужно знать, какая она у тебя.
>Нахуя мерить её, если у нас ПИД регулятор?
прикинь, чтобы скармливать ПИД регулятору ее текущую величину.
>Тебе нужно знать, какая она у тебя
Ну да, для этого термопара и max31856
>прикинь, чтобы скармливать ПИД регулятору ее текущую величину
Ну так мы выставляем скважность ШИМа. На вход ПИДа идет температура, а на выходе мощность в долях от максимальной. От раза к разу у нас из-за несовпадения фаз ШИМа и сети будет плюс минус полупериод, но это не играет роли, если фазы не едут
>На вход ПИДа идет температура, а на выходе мощность в долях от максимальной
еще раз блять: в твоем примере ты регулирешь температуру, тебе в целом поебать на мощность.
объясняю, что значит "регулировка мощности": это когда ты задаешься целью поддержать на заданном сука численно уровне эту самую мощность на выходе. Температура тебя там не интересует, на вход своего пида ты пихаешь значение мощности.
>еще раз блять: в твоем примере ты регулирешь температуру, тебе в целом поебать на мощность.
Так в этом вся блядь задача
>на заданном сука численно уровне эту самую мощность на выходе
Эта заданная мощность как раз и считается ПИДом
>Температура тебя там не интересует, на вход своего пида ты пихаешь значение мощности
Что ты вообще несешь блядь? Коэффициент заполнения 0 равен нулевой мощности, 1 - максимальной. Между ними всё линейно. О каком ПИДе для регулировки мощности ты вообще говоришь?
>Так в этом вся блядь задача
а "регулировка мощности" - это другая задача бялть, приведенная в качестве примера, нахуя может понадобиться определять переход через ноль кроме лампочек.
>О каком ПИДе для регулировки мощности ты вообще говоришь?
например тебе зачем-то нужно поиметь на выходе в среднем 945Вт. Не 930, не 980, а 945. Ну мало ли, может ты самогонщик с нормальной колонной, и тебе надо режим выдерживать. Твои действия?
>например тебе зачем-то нужно поиметь на выходе в среднем 945Вт
Я даже не могу представить, где нужно иметь точную мощность. К тому же, мощность почти всегда регулируется линейно, тем же ШИМом или резкой полупериодов (тут надо учесть площадь под синусом, не совсем линейно, но известно). А вот зависимость температуры от мощности нелинейная и меняется в зависимости от того, что в нагревателе. Поэтому снимают обычно температуру и по ней уже выставляют мощность с помощью ПИД
>Я даже не могу представить, где нужно иметь точную мощность
я тебе один пример привел.
>мощность почти всегда регулируется линейно
да ебать. Еще раз: допустим, ты тот самый гипотетический самогонщик, и тебе надо держать 945Вт на ТЭН-е в кубе. Как ты будешь это делать?
> да ебать. Еще раз: допустим, ты тот самый гипотетический самогонщик, и тебе надо держать 945Вт на ТЭН-е в кубе. Как ты будешь это делать?
Не силен в самогонении, но предположу, что электрическая мощность равна U2/R. Так что при известном сопротивлении ТЭНа и напряжении питания буду регулировать напряжение так, чтоб получить заданную мощность
>при известном сопротивлении ТЭНа и напряжении питания
this. Заебись, когда у тебя все известно, но обычно это таки не так. Так что меряем напряжение и ток.
Это анон из треда три-дэ принторов, который спекал в печке пластик с металлическими опилками/порошком и в результате конечно же получил лепешку. Хотя у некоторых вроде получалось сделать таким образом какую-то пористую фигню с частично сплавленным порошком. Конечно же это бессмысленные глупости.
>Пусть щелкает себе в зависимости от сигнала датчика температуры.
Если я правильно понял, у него и так есть какой-то релейный регулятор, только проблемы с неправильным расположением термопары, после выключения температура в рабочей зоне еще немного поднимается и он конечно же в своей неудаче винит именно это, а не что-либо еще. Конечно же десяток градусов ничего не изменит. И если я правильно определил, этот анон из треда ракетомоделизма /spc/, похоже хочет печатать на принторе металлические детали для своих...
Не смотря на то что все это бессмысленно, можно попробовать сделать то что хочет анон. Конечно можно микроконтроллером обнаруживать пересечение нуля и так далее, но я бы попробовал сделал проще.
Благодарочка. Я макросами нечасто пользуюсь, сразу не сообразил, от руки рисую, расстояния между ножек у микросхем известные.
> this. Заебись, когда у тебя все известно, но обычно это таки не так. Так что меряем напряжение и ток.
Ну сопротивление ТЭНа можно измерить мультиметром, я опять не вижу проблемы. Если прям надо точно мерить мощность, то ставишь вольтметр и амперметр и считываешь напрямую. При чем тут детектирование нуля я не совсем понял, так как это не единственный способ менять мощность.
>>473478
> Если я правильно понял, у него и так есть какой-то релейный регулятор, только проблемы с неправильным расположением термопары
Печка заводская и пид там rex c100. По мне так он говно, да и одноступенчатый, а мне надо программируемый. Цикл спекания то идет 15 часов
> после выключения температура в рабочей зоне еще немного поднимается и он конечно же в своей неудаче винит именно это, а не что-либо еще
Да на самом деле это не единственная проблема, но я уже сказал, что основная задача тут это программируемый контроллер с дистанционным управлением. Ебля с симисторами от того, что они банально в разы дешевле релюшек и не требуют никакого усилительного каскада, питания от 5/12В, снаббера и прочих удовольствий. А тут рублей 50 сам BTA16-600BW и ещё 30 MOC30xx.
У esp максимальный ток на ногу написан 12 мА. Порог у MOC30xxM всего 5 мА, а с текущим резистором ток выйдет около 7 мА, чего должно хватить
У тебя нет определения пересечения нуля, а значит не организуешь фазовое управление. Конечно я чего-то могу не понимать, но тем не менее, как оно у тебя будет работать? Или это всего лишь замена реле?
Так верхняя схема с пика и есть тут, че не так тебе?
это просто, дешево и легкодоступно. ZCS оптопар вагон в любом радиоларьке, в отличие от твоей к1182пм1.
На самом деле для фазового управления просто нужно на один пин больше, диодный мост и транзисторная оптопара. В нашем случае проблема как раз в отсуствии свободных пинов, чтоб вешать прерывание
На самом деле схема на картинке выше это и есть фазовое управление на к1182пм1, причем достаточно одного вывода.
Я не в курсе как работает к1182пм1. Обычно делается как описано тут https://www.instructables.com/Arduino-controlled-light-dimmer-The-circuit/
>переменным током кроме симисторного диммера я не ебу.
Эх, студентик, привыкли не думать. Магнитный усилитель тебе нужен, самое оно. В esp8266 есть сигма-дельта преобразователь, мапится на любую ножку, с него подаешь сигнал на операционник, он управляет током в обмотке управления магнитного усилителя, плавно, точно, не то что один - десятые доли градуса будешь держать.
И что?
Ну это конечно заебись, только будет ли твой магнитный усилитель стоить 100 рублей вместе с ОУ?
>от 20 до 400 вольт
осетра урезать нужно тебе, падаван юный.
срсли, одним шимом и одним входом ОС получится порнуха.
Анон, легитимен ли такой способ подружить 3.3v микроконтроллер с 5v модулями?
1. Делаю микроконтроллеру отдельную землю.
2. Подаю на неё 1.7v с линейного стабилизатора.
3. Питаю его от 5v.
4. Получается, что снаружи контроллер ведёт себя как пятивольтовый, но внутри он остаётся трёхвольтовым. Можно тыкать ему в ноги логическим сигналом на 5в, и ничего не сломается.
Нет, у тебя нулевой уровень будет равен 1,7 В, обычно это слишком близко к порогу переключения.
Берешь sn74lvc1t45 / txb0108 / in74act34d и радуешься.
Если цепь медленная и похуй на мощность, тупо резистивный делитель на прием и транзистор с подтяжкой на передачу.
на передачу обычно и так сойдет, большинству 5в логики зватает 3.3 для перелючения
>тупо резистивный делитель на прием
Там же в микроконтроллере МОП-транзисторы с условно-бесконечным сопротивлением на затворе, как их резистивно делить-то?
Какого осетра, что ты несешь, там ток от силы десять миллиампер, а точность плюс минус вольт нужна. Хочу ir2153 попробовать с шимом напряжения, питающего транзисторы. Только не могу сообразить на какой частоте запускать ирку и какая частота шима для силовых транзисторов, у esp вроде есть проблемы с шимом на высоких частотах.
>Если цепь медленная и похуй на мощность, тупо резистивный делитель на прием и транзистор с подтяжкой на передачу.
Отмечу, что транзистор нужен PNP. С NPN такой фокус не срабатывает - напряжение режется ниже порогового.
Что-то мой велосипед не взлетает, как надо.
Набросайте, кому не сложно, частичный код для следующего алгоритма:
1) задача 1 - ждём прерывания по фронту на пине;
1.1) при возникновении прерывания - вызываем задачу 2, которая управляет светодиодом;
2) задача 2 - плавно наращиваем яркость светодиода от минимальной до максимальной;
2.1) ждём 10 секунд;
2.2) по прошествии 10 секунд проверям логический уровень на пине, с которого шло прерывание;
2.2.1) если уровень высокий - ничего не делаем;
2.2.2) если уровень низкий - плавно уменьшаем яркость светодиода с максимальной до минимальной;
3) переходим к п.1.
Что-то потыкался в семафоры - пиздец как криво работает: прерывание отслеживает, задачу переключает на вторую, но дальше частичной регулировки не идёт.
Нихуя не пойму, что не так.
Вы только посмотрите на этих людей, разрабатывают платы на esp в спринте нахуй. Иди на 8086 делай, до есп ты с такими прогами ещё не дорос
>разрабатывают платы на esp в спринте нахуй
Ты так ВСПЫХНУЛ будто он 12-слойную плату с BGA469 чипсами разрабатывает. Енто твое ЕСП можно и паинте рисовать
Удачи не обосраться с подключениями. Сначала рисуется схема, а по ней плата. Это нагляднее и надежнее, чем ваша хуета
>Сначала рисуется схема, а по ней плата.
Прекрасно рисовал на тетрадных листках и затем рейхсфейдером с цапон-лаком по стеклотекстолиту, когда ты еще в памперс подливу давил.
Ещё скажи что под смд, ага, да. У меня этих чудес с лаковыми дорожками предостаточно, но если можно сделать проще и технологичнее, то зачем жрать говно?
Объясни нормально, что не так? Схему я разработал ручкой в тетрадке, в спринте разместил компоненты, выточил плату на чпу, точность 0.1 мм, мне этого хватает с головой, паяю смд на пасту, всё работает.
> ? Схему я разработал ручкой в тетрадке, в спринте разместил компоненты
Вопрос удобства конечно. Мне вот удобнее распологать компоненты, глядя на силовые линии, а не в голове придумывая, как повернуть деталь. С той же атмегой328 развести spi на одной стороне уже нетривиальная задача и с первой попытки угадать сложно. Плюс всяческие design rules check, а спринт просто не знает, что ты там делаешь. Ну и конечно же 3д модель с возможностью экспорта в САПР.
>Плюс всяческие design rules check, а спринт просто не знает, что ты там делаешь. Ну и конечно же 3д модель с возможностью экспорта в САПР.
Проиграл с пориджа.
Ты дурачок что ли? Нахуй мне зд модель вайфай реле-градусника-блока упрпвления станком- включателя света, которые я делаю 1-2 штуки и по месту? Я проектировал схему, я знаю где силовая линия, а где сигнал с датчика на ацп идет, который ловит каждый чих, знаю какая дорожка дергает затвором полевика, ты говоришь проблемы, которые возникают у школьника при сборке первого импульсника. Ты лучше форумы почитай какие, а потом уже советы давай.
мимо перешел на кеккад, после спринта, так теперь охуеваю, чего я не сделал это раньше
Сам себя обоссал долбоеб. Можешь вообще просто покупать схемы а не самому делать, вообще изи. У большого софта всегда есть недостатки, каждый сам волен выбирать. И только зумеры выбирают то что модно.
Ну если голова совсем не может в воображение, то это конечно полезная функция.
А так, если плата простая и для себя, то три Дэ модель уже давно в голове и смысла ее рисовать нет
Шиз, спок.
Мне всё равно нехуй делать, пока платы будут идти две недели
>>474195
Ты же понимаешь, что процесс работы в твоём спринте и нормальном софте, коего хуевы тучи, начиная диптрейсом, кикадом и заканчивая такими мастодонтами как протеус и альтиум, различается радикально?
Ты сначала делаешь схему соединений, а уже по ней создается разводка платы. Чем это лучше рисования в тетрадке? Да всем: сразу можно сгенерировать документацию, можно организовать взаимодействие с другими кадами, можно в некоторых провести симуляцию твоей схемы, можно работать над проектом совместно, не говоря о версионировании. Такой подход используют ВСЕ предприятия - разработчики ЭА. Я не вижу никаких причин не использовать тот же способ разработки дома, что и используется на работе. Если ты конечно дед, который разрабатывает свою хуйню с 90х, когда нормальны САПРов не было, то ок, твоё право, раз ты так привык. Но почему не пользоваться современными и универсальными методами разработки - я не знаю.
Если ты не знаешь, то лучше спроси чем выливать на собеседника кучу говна.
Нравится рисуй, другим не навязывай свое неговно.
Шиз, спок.
Я фрилансер.
>такими мастодонтами как протеус
Вот про это не надо. Настолько же бессмысленная ерунда как и спринт.
>>474195
В отличие от анонов выше не буду запрещать тебе пользоваться спринтом. Только по поводу зуммеров и новомодной ерунды, вроде как версия спринта 2.0 вышла примерно в 2000 году, а 3.0 в 2003 году. Не знаю когда вышла первая версия спринта, но пикад 2001 уже умел почти все что сейчас умеет новомодный кикад, кроме три-дэ разве что. Старые версии пикада были досовские, но и в них была связь платы со схемой и DRC. Это я не к тому что все современное это новомодная ерунда, а к тому что спринт можно сравнить со всяким старьем.
Ну а есп конечно можно и в паинте нарисовать, это даже не >>474090 8086, у которого 40 выводов и к которому еще несколько микросхем необходимо приделать, чтобы оно хоть как-то начало работать.
>>такими мастодонтами как протеус
>Вот про это не надо. Настолько же бессмысленная ерунда как и спринт.
Поясни. У протеуса самая обширная стандартная библиотека компонентов, их моделей, в последней версии вообще интеграция с componentsearchengine. У него есть все возможности, которые могут когда-либо пригодиться, начиная симуляцией программируемых микросхем и заканчивая продвинутой разводкой плат, лучше которой разве что альтиум.
Может, если тебе не нужна симуляция программируемых устройств, то есть более удобные САПРы, но в целом очень хорошая вещь же
Да идите вы уже в хуй отсюда, пидоры.
Ты совсем дурак нахуй. Какие предприятия? Я вайфай розетку спаял, чпушник и регулятор для печки, алё. На предприятии сейчас ты будешь работать в том что дадут или на выход. Ради двух плат, чтобы что-то сделать в квартире это как до соседнего подъезда на такси ехать.
Шиз, спок.
Не, тот анон прав, хоть и выражает свою мысль некорректно
К диптрейсу можно придрочиться за один вечер (хотя старые версии были еще проще, да), а скорость работы в нем выше, ибо гораздо больше заточено чисто под схемы/платы, даже игл после него как паинт.
Но если у тебя одна поделка в год, то мб и не стоит тратить вечер на это
>На предприятии сейчас ты будешь работать в том что дадут или на выход
Да, но на любом предприятии у тебя и схема соединений и разводка платы в электронном виде и в одной программе. Обычно это Альтиум или его отечественный аналог какой-то. Я про это говорю
>Ради двух плат, чтобы что-то сделать в квартире это как до соседнего подъезда на такси ехать.
обожаю блеать аналогии. Они же все такие однозначные, правда?
тут понимаешь какая штука - фанаты спринта пешком ходят не только до соседнего подъезда, но и вообще куда угодно. Надо на пьянку за полгорода мотнуться - собираются, одеваются, идут. В деревню к бабуле на могилку - ну чо ж делать, готовят котомку, лапти покрепче, и ножками чоп-чоп-чоп. Осознав внезапную потребность сгонять в соседнюю область, фанат спринта цяжко дыхаэ в предвкушении ну оче долгого пути.
В природе практически не наблюдается людей, осиливших (за пару вечеров) нормальную EDA, но возвращающихся в спринт нарисовать чото простенькое. Нет, просто вырубают проверки соединений (исключая тем самым необходимость изображать принципиальную схему) в редакторе PCB и быстро, решительно накидывают там, с удовольствием пользуясь остальными фичами типа вменяемых библиотек футпринтов и правил DRC.
>вашего фуфла
Не надо так агрессивно.
Кикад вовсе опенсурсный, какая еще стоимость? У диптрейса пишут что для России есть пробная версия с ограничениями (1000 контактов и 4 слоя) или для всех подряд 300 контактов и 2 слоя. EAGLE тоже есть бесплатная версия, но с ограничением по площади платы 80 см2. И конечно этими программами все варианты не исчерпываются. Так что для всякой самодельной мелочи есть бесплатные варианты.
Ну и никто не запрещает купить на торренте, если не хватает того что доступно бесплатно.
>осиливших (за пару вечеров) нормальную EDA
Так ее ещё и осиливать нужно? Вот заебись удобно, облегчил жизнь, спасибо.
> А стоимость этого вашего фуфла всего какая? Лицензии там, всё такое,
НИКАКАЯ
KiCad опенсорсный, EasyEDA бесплатный
>>474297
> Так ее ещё и осиливать нужно?
Дед, сейчас всех студентов учат пользоваться тем же мультисимом и микрокапом. Ничего осиливать не нужно, в институте тебя уже всему научили. Поставил деталь, нарисовал провод, ВСЁ, принципиальная схема готова.
Так и не пизди, осилятор.
в той же мере, что и спринт - где там какие кнопачики и чего они делают.
Даже лучше сейчас. Куратор группы вытирает жопу всем.
>>>474350
ты футпринт не смотрел перед тем, как брать, да?
взял бы готовый модуль мелкий типа D1, там все влезет в твою макетку
Ну что ему блядь не так?
>>474357
Футпринт смотрел, даже плата уже заказана. Я хотел на макетке пока платы идут попробовать, а тут вот такая ебанинна
Если что, в качестве программатора вот это, от него же питание
Зачем конденсатор если у нас стабилизированные 3.3В с cp2102? Ну ладно, если cp2102 не может выдать нужный ток, я подключал пердуину в качестве источника 3.3В, уж она то может выдасть все 200 мА. Один хуй не работает. Ну сейчас травлю шилдик, может контакты хуевые очень
В некоторых мануалах встречается такая хуегра, смысл которой я понять не могу. Работает как логическое И, ну и не более
Да, причем после прошивки тоже автоматом не ресетает, сука. Ну а так работает всё
>Что бесплатное может генерить G код для фрезеровки платы, кроме sprintlayoit?
Ты точно правильно ищешь? Логично это делать из гербера, соответственно нужно спрашивать гугл о конвертации гербера в г-код.
Но в любом случае на фрезерном станке нормальных плат не сделаешь, если ты конечно об этом. И вообще в домашних условиях, не угробив неимоверно много времени, не сделаешь нормально. Так, только для простеньких самоделок пойдет.
Вот бы на такой платке принтсервер - это была бы имба. Сейчас самое дешевое - это за 1.5к orange pi брать и флешку. На каждый принтер дорого получается.
Ну делай, кто тебе запрещает
https://github.com/gianluca-nitti/printserver-esp8266
Правда на реддите пишут, что основная проблема в драйверах и писать самому их сложна
Так в драйверах и проблема. Вот если бы туда хоть самый минимальный линукс с купсом и езернетом.
во-первых esp8266 довольно глючное поделие, но это допустим решается тестированием как-то
во-вторых на esp8266 ты работаешь так же поверх встроенной ос типа ртос, только в отличие от линукса она никак не задокументирована и исходников нет, так что никакой уверенности, что это штука не протупит и не задержит очередную команду, нет
>на esp8266 ты работаешь так же поверх встроенной ос типа ртос, только в отличие от линукса она никак не задокументирована и исходников нет
шиз, спок
Все, отбой вопросу: обновил приложуху на телефоне и все заработало. Похаваю и буду курить другие виджеты.
>Вот если бы туда хоть самый минимальный линукс с купсом и езернетом
https://habr.com/ru/company/itsumma/news/t/568652/
Да пожалуйста
>>474638
Кондер стоит на источнике питания, ещё один ставить нахуй не надо
>Да пожалуйста
Это через эмуляцию RISC-V, как-то не впечатляет, потому что так можно на чем угодно запустить, конечно если допаять памяти.
Но ведь у ESP32 есть MMU, поэтому должна быть возможность запустить там лялекс без эмуляции. Ну или ограничения MMU не позволят.
>>474635
Ты не сможешь сделать больше двух слоев, что уже не очень. Также не сможешь сделать металлизацию отверстий и даже нормальную паяльную маску, а это уже совсем плохо. Конечно, угробив кучу времени может быть добьешься результата, но будет все равно намного хуже какого-нибудь резонита. Поэтому все так, не сделаешь нормальных плат.
ну если у тебя нормальная плата непременно означает четырехслойка - тогда да, ой. А так, среди махараечных технологий - вполне себе вариант, всяко лучше лута и в принципе сравним с фоторезистом. Еслил сравнивать с последним, то имеем бесплатную координатную сверловку. Маску можно спокойно накатать и на отгравированную плату, ее в отличие от основного рисунка можно левой ногой делать.
Нахуя толстяка кормишь?
>Ты не сможешь сделать больше двух слоев
С этой фразы уже понятно, что это очевидный жир.
>махараечных технологий
Ну вот пришли к тому что было:
>Так, только для простеньких самоделок пойдет.
> Ты не сможешь сделать больше двух слоев, что уже не очень. Также не сможешь сделать металлизацию отверстий и
Ебать, а какой же домашний метод их позволяет делать? У меня в мыслях только фотополимерный принтер с двумя смолами и гальваническим покрытием
> даже нормальную паяльную маску
> паяльная маска
> в марахайках
Нахуя блядь, если можно тупо залудить дорожки?
>>474686
> вполне себе вариант, всяко лучше лута
Да пошел ты нахуй. Не, если ты работал с ЧПУ до и эксперт, то ладно ещё. Но ЛУТ осваивается гораздо проще быстрее и прощает ошибки. И на обычном принтере с 600 dpi запросто можно хоть под TSSOP делать посадочные места
>Ебать, а какой же домашний метод их позволяет делать?
Очевидно что любыми методами вряд ли получится сделать это нормально и с приемлемой трудоемкостью. Ну и вообще, а разве подразумевалось что это нужно делать именно станком?
>Нахуя блядь, если можно тупо залудить дорожки?
Паяльную маску делают не для красоты, а для защиты от того чтобы не припаялось там где не нужно.
>И на обычном принтере с 600 dpi запросто можно хоть под TSSOP делать посадочные места
Вот это верно, с шагом до 0.65 мм и даже 0.5 мм вполне, дорожки при этом 0.3 тоже вполне можно сделать, при этом потратив не так много времени на освоение этого.
>>474763
А вот пришли к тому что:
>Конечно, угробив кучу времени может быть добьешься результата, но будет все равно намного хуже какого-нибудь резонита.
>А вот пришли к тому что:
ты, ваше императорское величество, пришел к тому, что делать платы дома никаким из имеющихся способов ваще нет совершенно никакого смысла, ибо резонит или жлспцб могут круче, так что нехуй тут рыпаться.
>пришел к тому, что делать платы дома никаким из имеющихся способов ваще нет совершенно никакого смысла
В основном конечно да. Но зависит от потребностей, кому-то может быть ничего сложного не требуется, а кому-то интересен сам процесс.
>или жлспцб
Странная контора, казалось бы что все хорошо и дешево, но совершенно не пишут какие материалы используют. Другое дело pcbway, пусть и дороже, но зато пишут достаточно подробно о материалах и прочем, поэтому с ними можно хотя бы импедансы посчитать.
> поэтому с ними можно хотя бы импедансы посчитать.
В треде СВЧшник, всем считать КСВ переходов
>совершенно не пишут какие материалы используют.
шиз плес
>The material that JLCPCB use is FR4-Standard Tg 140C. There is FR4 material available only. The material like Aluminum, Rogers, Flexible material is not available so far in JLCPCB.
Алюминий уже есть у них
Хочу на нодемсию луа управлять шаговиком, а скорости не хватает, надо десятки микросекунд, а там всё с миллисекунд начинается. Есть там возможность дрыгать ножкой заданное количество раз с интервалом хотя бы 40 микросекунд или на си надо переходить? Почему там шим только на четырех ногах, значит используются аппвратные таймеры?
>Кондер стоит на источнике питания, ещё один ставить нахуй не надо
Нахуй тогда все ставят и у них работает, а у тебя глючит не задумывался?
Погугли что такое "развязывающий конденсатор", охуеешь базарю.
Тогда можно вовсе бесплатно
https://www.oracle.com/ru/cloud/free/
https://cloud.google.com/free/
спасибо! это рэальная тема. оказывается охуеть! эта технология есть у производителей некоторых роутеров TPlink и Keenetic. Вроде мой Арчер подходит. попробую.
этой "технологии" ковырнадцать лет, анон. Обновлять адрес дднс-а может любой комп в твоей сети, для этого совершенно не обязательна поддержка со стороны производителя роутера.
лень гуглить, но скорее всего есть готовый дднс клиент и для esp, там все довольно просто делается.
>>475115
>>475114
Для того чтобы это работало, нужен динамический адрес не за NAT-ом. Вот "ковырнадцать" лет назад такое было более-менее распространено, но не сейчас. Даю 80% что анон за NAT-ом провайдера и дднс будет бесполезен. Прежде чем такое предлагать, выяснить бы для начала какой случай у этого анона.
я бы цифирь перевернул. Большинство проводных провайдеров дают белый адрес, хоть и динамический. Нат - развлечение опсосов.
у меня TTК. обычный тариф за 500 рушлей
очень слабо разбираюсь в сетевых делах
но чувствую что без интернетовского сервиса
ip перенаправления нихуя не получится
пока я терзаю луа. махарайку делаю первый раз.
а есть прога для Андроида чтобы с НародМоном
работала и алярмы делала по событию?
я не ленюсь поискать, может просто кто-то
уже такое пробовал
залезь с компа или другого устройства из своей сети на 2ip.ru, speedtest.net или чонить подобное и глянь, какой адрес воно тебе покажет. Потом пробей его на соответствие днс именам (хз как в винде rdns lookup делать, в прыщах host) и глянь на имя, оно резолвится в чото типа huipizda-gateway-ttk.hui или 128-22-33-dynamic-client.zhopa-6.ttk.hui
уменя есть прыщ (дуалбут на ноутбуке)
как захуячить вторую часть этого
(соответствие dns именам)?
первую часть я понял. спасибо за помощь
убогому лол
а все нагуглил... сейчас замучу
Глупости, VDS бесплатные есть.
У сабжа 200ма ток и 80 - 160 МГц. Так что обязательно возьми ещё длиннее провода и на сопли их повесь макеточные. У тебя же СТАБИЛИЗАТОР
А то что любой проц обвешан жуками это разрабы лохи не додумались поставить СТАБИЛИЗАТОР
А ешли у мене стабилизатор стоит на плате прямо около контроллера, но без конденсаторов?
Насколько я помню, тебе это объясняли около года назад, причем тогда ты не поверил.
>прямо около контроллера
Можно повторить слова анона выше. Разрабы лохи и не додумались поставить стабилизатор поближе? Ведь так было бы заметно проще и немного дешевле.
Помимо этого можно порассуждать о частотах. ЕСП работает как написал анон выше, на частоте 160 МГц, но нагрузка импульсная, КМОП потребляет в основном только когда что-то переключается там, поэтому спектр будет минимум на порядок шире. В итоге такой стабилизатор должен работать с нагрузкой у которой ток меняется с частотой порядка 2 ГГц (если оценивать как для синусоиды).
Другой момент это то что написано в документации на стабилизаторы. Можно взять в качестве примера LD1117, у которого в даташите написано:
>Only a very common 10 μF minimum capacitor is needed for stability.
Но ведь на esp12 и так есть кондеры на модуле
В этой схеме не нарисован кондер на ресете, который висит паралельно кнопке на всех отладочных платах с этой схемой авто ресета (иногда его
номинала не хватает при хуевом питании), смысл ее в том чтоб создать последовательный дрыг ног, а без кондера она не имеет смысла, потому что импульсы будут проходить одновременно. Я городил эту схему на отдельной платке, когда юзал FT2232HL для одновременной отладки и мониторинга серийного порта (чтоб не тыкать еще один провод в микроюсб) и без жирного кондера на ресете оно не работало, пришлось тыкать анализатор и подбирать кондер чтоб образовалась нужная задержка на ресет пине, тут чел объясняет как оно работает https://forum.micropython.org/viewtopic.php?f=18&t=4966
Ох уж эти трайбалисты.
Да-да, я знаю, что есть ESP IDF, но реально ли туда перетащить ардуинский проект без боли?
Это говно. Лучше её прошить и общаться по i2c или spi, в зависимости от того, что удобнее. Ну или вообще использовать esp в качестве самостоятельного МК, если ног мало надо
Синий светодиод всегда горит и на RX пине высокий уровень, хотя он не подключен никуда. Сопротивление между этим пином и землей или питанием несколько МОм, то есть лишнего контакта вроде нет. Куда копать то?
В добавок, на TX около 1 В, что вообще непонятно, откуда берётся. С ним тоже лишних контактов нет
Прошей Micropython, базарю. Получишь вместо ебучих ат команд нормальный питон с тем же самым подключением.
Там поверх сокетов пиши что хочешь.
Там светодиод на gpio2 вроде, чекни его. Если все норм, значит режим перепрошивки отсутствует, старая прошивка включает светодиод,
Да в том то и дело, что это две espшки с одной ленты. И на одной всё работает, а тут нет и я не могу прошить. Я вообще не понимаю, почему на TX постоянно 1 Вольт. Не 3, а именно 1. Если закоротить ресет на землю, то еспшка выключается и 1В исчезает, но как только ресет снова высокий, опять возвращается. Что вообще происходит?
Если ты хочешь передать особенное произношение Пистона текстом, следовало написать "Падмойса, Маня". А если уж поставил смягчающую "Я", то уж и вторую "о" пиши. А платы нужно мыть, от любого флюса, как можно тщательнее
Спасибо за совет, впредь буду внимательнее.
Да не, это сдох оказывается стабилизатор и его выходное сопротивление стало 500 Ом, которые я благополучно округлил
Ну извините блядь, я привык что у всей цифры между ногами в выключенном состоянии несколько мегаом
Такое было разве что во времена К561 серии. На всех современных низковольтных девайсах как минимум нужен специальный омметр с напряжением ниже 0.6, чтобы такое измерение имело смысл.
Но это и у атмег имеет смысл...
Собственно симптомы такие:
esptool.py v3.0
Serial port COM7
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
File "C:\Users\admin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/upload.py", line 66, in <module>
esptool.main(cmdline)
File "C:/Users/admin/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 3552, in main
esp.connect(args.before, args.connect_attempts)
File "C:/Users/admin/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 529, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
И на всех GPIO, которые не подтянуты ни к чему (включая TX, из-за чего пик 1) имеется 1.2-1.6 В. ВООБЩЕ БЛЯДЬ НЕПОНЯТНО ОТКУДА НАХУЙ
Если закоротить ресет на землю, то светодиод на плате все равно светится, GPIO2 совершенно не 0, а 0.9 В!
Я нахуй уже не понимаю, что тут не так блядь. С какого хуя DTR при включении имеет 1.2 В, вместо 3.3, он же сука подтянут к 3.3. Откуда блядь 1 с хуем вольт вообще взялся?
АААААААААААААААА
esp, пока грузит свое ядро и стек, творит свою espшную магию на всех пинах. Собери логический анализатор и увидишь, что там не аналог
если ты не тупо накосячил с питанием конечно
и скорость юарта при этом 28к, если я не ошибаюсь. Подбери, и увидишь вменяемый лог загрузки
Так проблема в том, что такое состояние сохраняется. Есп точно должна загрузиться за пару секунд
Да каким хуем то она могла в бутлуп уйти? И это не объясняет наличие 0.9 В на GPIO2 при ресете замкнутом на землю. Был бы 0 - я ещё понял
А ты и не найдешь объяснение, ибо сам производитель не собирается ничего объяснять - вот вам апи, используйте его и больше вам ничего не надо.То, что есп непредсказуемые и плохо документированные, и мешает им выйти из любительского в коммерческой сектор
предположу, что в коммерческом секторе этих есп-шек дохера, только это китайский сектор. Если вспомнишь, там изначально даташиты и мануалы с китайского сами любители переводили, производителю было и так вполне норм.
Собрал на макетке. Лучше не стало. При подаче питания светодиодик мигает один раз и всё. При корочении ресета на землю вообще нихуя не происходит. Прошить не могу
>>476979
А, то есть то, что я скопировал идентично подключение из nodemcu и у меня нихуя не работает - это нормально, и никакой помощи тут нет и не будет? Мм, заебись говно. Да ну нахуй тогда вашу есп, пересоберу свою марахайку на атмеге, её хотя бы невозможно отправить в бутлуп средствами ардуиноиде и случай чего всегда можно перезашить загрузчик другой ардуиной.
По идее да, светодиод же загорается при включении
а как ты вообще даташиты читаешь, если не можешь осилить страницу текста на ангельском, а мань?
На дваче спрашиваю, я ж не пидор какой на петушином читать.
> It will not start if the TXD pin is pulled down at reset time
Моя проблема сохраняется, если TXD висит и никуда не подключен вообще
там так называемые weak pull-up/down, поэтому рекомендуется вешать дополнительно наружные (или дергать эти ноги микрухой, если к ней подключаешь) для нормальной работы: на en, res, gpio2, gpio0 вверх, а на gpio15 вниз.
хз тогда, сиди прозванивай всю цепочку питания и проверяй омметром резисторы, может где-то непропай или дорожка треснула
Я всё перепроверил, все напряжения где нужно правильные, резисторы имееют правильные номиналы. Оно на макетке не работает то бля. Если сначала включить ттлку, а потом есп, то в последовательный порт вообще ничего не высрется. Совершенно. Что, вскрывать шилдик и смотреть на микруху теперь?
Чёт она у тебя пиздецово выглядит.
Та тут вообще непонятно как он его собрал, если это не готовый нодмцу модуль, а все собрано на соплях с макетной платой, то хуевый контакт в любом месте будет приводить к сбросу устройства по питанию из-за 500мА пиков при старте.
Ты уверен, что оно в принципе работает, а не перемаркировка? Нормальные флеши идут в wide корпусе
это фота такая, или там правда так насрано внутри?
НУ ЧТО ЧТО БЛЯДЬ НЕ ТАК. ХУЛЕ ЭТОТ СВЕТОДИОД ПОСТОЯННО ГОРИТ СУКА. Я РУКАМИ ЗАКОРАЧИВАЮ РЕСЕТ НА ЗЕМЛЮ, А ЕМУ ХОТЬ БЫ ХУЙ БЛЯДЬ. СХЕМА ВООБЩЕ НИ НА ЧТО НЕ ОТВЕЧАЕТ, А ЭТО УЖЕ ЧЕТВЕРТАЯ
то питание, сама ардуйня судя по джамперу - 5В, соответственно и ее выходы.
сделай все трехвольтовым.
вообще у есп-шек никто не заявляет толерантности к 5В, так что возможно ты уже пожег четыре модуля.
Ардуина это просто источник 3.3 В потому что cp2102 не выдает 200 мА, как советуют в интернете
такие макетки та еще дрисня в плане контакта, особенно с проводами с круглимы, а не квадратными пинами как у тебя, для esp32 мне пришлось на землю и питание от отладчика по 2 дополнительных провода кинуть, иначе плата уходила в brownout в 6-8 из 10 раз после сброса...
Какое сопротивление у тех резисторов подтяжки? Ток через них не должен превышать 25мА но и слишком низким не должен быть иначе не подтянется нихуя.
Ты всё так подтянул? Кондёр не обязательно.
И что значит
>СВЕТОДИОД ПОСТОЯННО ГОРИТ
А что он должен делать? Он на GPIO2 висит.
>СХЕМА ВООБЩЕ НИ НА ЧТО НЕ ОТВЕЧАЕТ
А на что она должна отвечать? Ты что-то пытаешься зашить или что?
Есть у меня I2C расширитель портов PCF8574 и используется он через эту либу https://github.com/xreef/PCF8574_library/blob/master/PCF8574.h
>class PCF8574
Я хочу использовать его внутри struct.
Пик 1 - всё работает.
Пик 2 - вызывает ебанутую не понятную мне ошибку на пик 3,4.
Что происходит? Почему?
Я не понимаю. Без "PCF8574 expander;" всё работает. Но я хочу Side.expander использовать.
Ну да. У меня выключается при ресете.
Может у тебя просто контакта на макетке нет? Возьми припаяй провод между RST и землёй. Будет гореть синий светодиод?
Не, всё, в пизду. Там такая сложная причина, судя по гуглу, что проще забить.
А если и не забить, я всё равно не понимаю что там происходит.
Пойду спать.
а нахуа ты используешь конструктор для структуры, который ты не объявлял? В плюсах-то оно да, структуры типа те же классы, но нэ савсэм. Так что или сделай ее нормальным классом, или обращайся как со структурой.
оно тебе кстати на четвертом пике вполне четко говорит, чо ему не так. Оно не понимает, какой конструктор вызывать для члена структуры expander - у класса PCF8574 нет конструктора без параметров.
можешь кстати еще сделать свой expander указателем.
Ну хуй знает. А enable припаяй ещё напрямую к питанию. Хотя я не проверял будет ли светодиод гореть без enable.
Если и с enable не будет тухнуть, то остаётся только кривое питание. Больше не знаю.
FT2232HL
Да остается только убитый МК. У меня нет вообще никаких идей, как я его мог грохнуть. Так уже сдохли 4 мк, причем один из них сначала работал, но потом после перепайки вот с этого
>>477172
на готовую плату сначала работал, а потом после отмывки флюса сдох с теми же симптомами
Паял я разумеется без антистатического браслета, где ж мне его взять да и куда заземлять без земли в розетках то? инб4 на батарею. Но вроде особо статики и не должно быть, влажность у меня дома нормальная, да и перед пайкой ткнул пальцем в металлический корпус паяльной станции.
Можешь, разрешаю!
Как ты их используешь? Может ты пины выжигаешь, или вообще моторчик/релюшку подключаешь и самоиндукцией под 400 вольт всё выжигаешь.
Да схема пикрилейтед. Я ничего даже не запускаю, просто включаю. Стабилизатор на 5В не припаян даже, если что.
Я пол дня потратил думая, что у меня что-то с антенной случилось. А оказывается это analogRead()
Сделал чтение каждые 100мс и всё моментально заработало.
Пиздос.
По крайней мере на ESP-07. Может на 12 не так.
Я в loop() читаю A0. Меняю return analogRead(A0); на return 0; и сразу вайфай работает, MQTT подключается, вебсервер сервится.
А если читать A0 то вайфай больше не подключается.
ПОМОГИТЕ снова.
Я сделал на классах, передаю их друг другу как &var а в .h свойство объявлено как *className
И вот у меня проблема. Я не могу читать состояние пинов расширителя. Если я вызываю debug__pin изнутри SideControl то всё работает. Состояние пина у меня 1.
Но если я вызываю его из любого другого места, то всегда возвращается 0.
Будто что-то где-то склонировалось, а не ссылается на уже созданный объект класса.
Что я делаю не так?
Да сука! У меня там вообще всё дублируется что ли.
Вот у меня в side.control.h
>extern SideControl side_control_right;
То есть он должен быть один для всех файлов. Нет? Или для каждого файла делаются дубли в памяти?
Дальше к коду добавил
> this->debug__pin("after initialization read");
> side_control_right.debug__pin("after initialization read via side_control_right.debug__pin");
this->debug__pin и side_control_right.debug__pin должны быть равны. А оно мне выводит
>163.170) DEBUG READ(after initialization read): 1
>163.350) DEBUG READ(after initialization read via side_control_right.debug__pin): 0
Как так то.
Я ничего не понимаю.
>Что я делаю не так?
показываешь скриншоты кусков кода, думая, что мы догадаемся об остальном содержании. Кинь минимальный неработающий пример куданить на пастбин.
Сначала надо понять какой кусок там не рабочий. Мне кажется что переменные копируются. Но у меня нет никаких доказательств этого.
Когда я пытаюсь выдать рандомные ид классам, меня убивает вачдог. Пиздос.
Попробуй ещё раз на скрины посмотреть, вон на тот с красными линями, может поймёшь что там случилось?
>>477549
ПОЙМАЛ!
https://pastebin.com/M2Y544e0
>Pin state inside init: 1
>Pin state outside init: 0
А должно быть и там и там 1
ЧЯДНТ?
а что у тебя за либа такая? В той, что слету гуглится для PCF8574, нету digitalRead, только read и read8
То ли либа говна, то ли чип.
Ясно. В либу встроен дебоунс по дефолту. https://github.com/xreef/PCF8574_library/issues/47
С его отключением всё работает.
Хорошо. Здорово. Пойду достану дедово ружьё.
очевидно что оба, потому что ты в глаза ебешься (заголовки столбиков в разном порядке)
>>477172
Такое ощущение что я нашел корень своих проблем с еспшками и им оказался... dm78a. Наскольоко я помню, единственную рабочую еспшку я не тыкал омметром. Это конечно не объясняет её смерть после отмывки, но уже похоже на хоть какую-то загвоздку. Сейчас я припаял на вот эту же плату последний модуль и он заработал. Это конечно странно, так как омметр не должен пропускать сколь большие токи, но других идей у меня нет. У всего остального я проверял омметром наличие контакта после пайки
там внутренние подтяжки
Так у меня не ноги, у меня вся еспшка грохалась. Алсо, я нашел ответы на вопросы!
https://electronics.stackexchange.com/questions/329737/is-this-a-flip-flop
https://electronics.stackexchange.com/questions/350601/explain-why-the-nodemcu-auto-program-circuit-would-be-useful
В общем эта вся странная схема нужна чтоб можно было И программировать есп И использовать пины в программе на вывод/ввод
PS C:\Users\admin> esptool.py --port COM9 read_mac
esptool.py v3.2
Serial port COM9
Connecting......................................
A fatal error occurred: Failed to connect to Espressif device: No serial data received.
For troubleshooting steps visit: https://github.com/espressif/esptool#troubleshooting
При этом RX светодиод на CP2102 мигает, че за хуйня. Ну открываем порт на 74880, читаем
ets Jan 8 2013,rst cause:2, boot mode:(7,2)
ets Jan 8 2013,rst cause:2, boot mode:(7,2)
ets Jan 8 2013,rst cause:2, boot mode:(7,2)
ets Jan 8 2013,rst cause:2, boot mode:(7,2)
ets Jan 8 2013,rst cause:2, boot mode:(7,2)
Что вообще происходит?
> In the bootup message 'boot mode:(x,y)' three low bits of x are {MTDO, GPIO0, GPIO2}.
Но как? У меня GPIO15 (MTDO) притянут к земле ж
эта странная схема всего лишь формирует ресет из сигналов ком порта, подтяжка gpio0 бонусом. Если gpio0 у тебя и так подтянут, можешь формировать конденсатором, как у ардуины
на будущее, сразу бери отладочную плату, чтобы если у тебя не завелось, потыкать посравнивать с ней напряжения и остальное
Для прошивки надо сделать это всё:
RST -> HIGH
EN -> HIGH
GPIO15 -> LOW
GPIO0 -> LOW
GPIO2 -> HIGH
> покупать ОТЛАДОЧНУЮ плату, чтоб потом мультиметром разбираться с пинаутом
Мдаааааа. Даташиты где? Где даташиты, билли?
Ты ж понимаешь, что я просто купил её у первого местного барыги, который просил менее 400 рублей? Сзади наисано NodeMCU v1.2, но в даташите на него этого светодиода нет, да и usb ttl другой
потому что это китайский клон китайского клона (который с нормальной uart микросхемой) оригинальной esp8266-devkitc, какие нахуй даташиты
Тут упор в слово клон, потому что скорей всего их клепают в подвале на списанном оборудовании по схеме и разводке платы сделанной первокурсником племянником сторожа Хуи Пина, с вторичных компонентов сомнительного качества, купленных в соседнем подвале у таких же пиздоглазых бизнесменов. К примеру те же клоны esp32-c3 от AI-thinker это просто цирк, у них пол года продавались платы с неправильно разводкой очереди сброса, из-за чего 3 ноги не работали, надо было резать дорожки и перепаивать провода, и даже сейчас у них на платах шелкография пинов с задней стороны платы, что супер хуево если втыкаешь модули в макетные платы.
> К примеру те же клоны esp32-c3 от AI-thinker это просто цирк, у них пол года продавались платы с неправильно разводкой очереди сброса, из-за чего 3 ноги не работали, надо было резать дорожки и перепаивать провода, и даже сейчас у них на платах шелкография пинов с задней стороны платы, что супер хуево если втыкаешь модули в макетные платы.
Блядь, а ведь все esp-XX модули, на 8266 как раз от Ai Thinker, пизда. Постараюсь вообще не трогать есп больше, понял
а лучше вообще не прикасайся к железу и сразу иди на галеру веб макакой, а то еще заглянешь в еррату какой-нибудь стм32, поймешь что это 20-какая-то ревизия на 50+ страниц - сознание потеряешь
Вот к стм32 как раз очень подробные даташиты и там всё найти можно. К тому же, ст микроэлектроникс все ж европейская компания, а не ебучиие китайцы и случай чего ты можешь задать почти любой тупой вопрос в техподдержку, даже если ты не компания, а просто любитель, и получишь ответ с указаниями куда смотреть, какие могут быть проблемы и как их решить.
А есп - анально огороженные, к тому же сами по себе чипы никто не покупает, покупают модули на их основе. Единственный плюс такой модели - можно ставить любое поддерживаемое количество памяти и не надо ебаться с СВЧ анетннами. Минусы же очевидны: ты случай чего хуй поймешь, то ли у тебя чип сломался, то ли производитель модуля пидорас и напутал в схемотехнике/брак в производстве. К тому же оба китайцы и хочешь поддержки - получишь кривой английский через гуглотранслит в ЛУЧШЕМ случае
>даже если ты не компания, а просто любитель, и получишь ответ с указаниями куда смотреть, какие могут быть проблемы и как их решить
Хуйня, у них довольно похуистичное отношение, часто лажу по их форуму и постоянно натыкаюсь на старые посты с вопросами о работе периферии и 0 ответов, поддержка со стороны СТ чуть выше средней я б сказал.
>К тому же оба китайцы и хочешь поддержки - получишь кривой английский через гуглотранслит в ЛУЧШЕМ случае
У них есть англоязычный раздел форума, где отвечают немного оперативнее чем у СТ, особенно в плане софта, потому что отвечают непосредственно разрабы esp-idf, так же можно на гитхабе создать issue пост, на него почти гарантированно ответят.
В остальном да, стм32 более надежные, потому что архитектура простая как палка, 2-3 шины и набор управляющих регистров с таймерами, у есп осоновные траблы связаны с вайфаем/блютузом и шинами периферии, которая частично ими задействованна.
А чем тебе isp на platformio не нравится? Луа - это для петухов-неосиляторов.
Это твой отец петух такого грубияна воспитал. Вопрос был не в чем писать, а о средствах организации беспроводной связи между контроллерами.
>ESP-IDF
Зачем оно нужно и нельзя ли обойтись обычным и более привычным мейком или симеком каким-нибудь? Хотя мне все равно эти ваши есп пока не требовались.
Так esp-idf и си есть в platformio. С выводом logi в консоль по юарту. Просто тулчейн удобнее, чем дефолтный.
Это девелопмент фреймворк от разработчиков, без него ты тупо не сможешь работать с большей частью периферии, особенно с вайфаем и блютузом, хз насколько отстающая от релизной и насколько урезанная версия находится в той же ардуино иде. На мейки симейки вообще поебать при разработке, потому что они генерятся автоматически при создании проекта и нужны только для линковки внешних модулей, я на них никогда не обращаю внимания, только если новый модуль создаю, тогда надо создать в папке с ним симейк с 2 строчками.
>>478406
Ну тогда еще норм, я просто в еклипсе все делаю, потому что привык к его инструментарию + в нем найс интегрирован OpenOCD ля отладки по JTAG.
Это ты хуесос и дрочила. Вопрос о том, какие еще есть способы использования вайфай помимо пидорского тсп или вафлерского удп? Мне вообще похуй на чем писать.
есть способ, можешь пойти нахуй и свой пидорский lua с собой прихватить
ну можешь как настоящий суровый муж сырые IP датаграммы или вообще эзернет фреймы юзать безо всяких пидорско-вафлерских транспортных протоколов.
Ну пусть свою реализацию bare metal хуярит. Манчестерский код для лохов, вот это все.
это не ассеблер
Где мне блядь в ДС найти такого человека?
Что, тру еспшники к еспшкам вообще не притрагиваются? Мне блядь надо только завести её сука, даже не про программирование речь
Когда мне советовали ЕСП, меня все сука заверили поголовно, что это просто как ардуина. Ну да, пиздец как просто, когда скопировав схему подключения из ноды у тебя дохнет чип ХУЙ ПОЙМИ ПОЧЕМУ СУКА. И че-то все вот кто заверял что просто и элементарно сразу сдулись, а помощи искать уже не у кого
Кто все? Ты здесь один, нахуй.
у вас там почту не завезли чтоли?
>> Задача простая - пофиксить.
Каждый раз, когда заказчики мне это говорили, приходилось полностью переделывать им плату, софт и все на свете. Не трать время людей, сделай это сам
гарантия, что у тебя все собрано по схеме, ничего не коротит в рандомный момент времени и хлебная доска норм контачит?
энивей, тебе уже сказали, что esp непредсказуемы и полны сюрпризов - бери NODEMCU, и если на ней прошивка запустится - бери осциллограф и сравнивай
>бери NODEMCU, и если на ней прошивка запустится
Я решил сделать так. Мне ОЧЕНЬ стыдно, но что поделать? По крайней мере нодмсу сама по себе работает прошивается, так что придется вместо контроллера на базе делать ебучий шилд
Да проверил
попробуй еще модулей парочку у другого китайца купить. Не должны они так дохнуть.
>ничего не коротит в рандомный момент времени
Так обычно в таком случае дохнет или охуевает источник питания, а не чип
У меня нет осциллографа с памятью и логического анализатора, чтоб понять, что идет не так. К тому же я не работал раньше с вашим говном и не знаю каких-нибудь особенностей
Разводка уровня БОГ
Ктож под опторазвязкой проводник пихает? По уму там вообще прорезь должна быть. Как-то опасненько 220 так близко рапологать
Ок, а при чем тут смерть espшки? Разумеется что при запуске 220 к плате вообще не было подключено
Питание не по рекомендациям
Автопогромирование тоже не как диды завещали
Ставь тогда уж кнопОчку
Короче налепил ты говна и удивляешься. Возьми ты уже готовое решение и не мучайся.
Включения питания, лол. Когда включаешь питание, то по UART на 74880 ничего не прилетает (да и не прилетает ВОООБЩЕ НИЧЕГО), а светодиод намертво горит синим и ни на что не реагирует
> то по UART
Такой адаптер? Ты его на 3.3V перевел?
Может ты свою esp насилуешь 5V по RX, TX, DTR
Такой и перемычка на 3.3 В
Проверь, что твой USB - UART выдает 3,3в и подключи, как рекомендовано.
RX, TX и GND и кнопочку для погромирования.
Как твой конвертер работает с ногами RST и DTR?
>RX, TX и GND и кнопочку для погромирования.
Подожди ты программировать. Я впаял esp12f в модуль, подключил usb ttl, только tx rx и землю, включил usb ttl, открыл ком порт, затем подал питание на esp12. После чего в ком порт ничего не прилетело, а на есп загорелся светодиод и дальше ничего не происходило. На ресет не реагирует
> Я впаял esp12f в модуль, подключил usb ttl, только tx rx и землю.
А питание ты на свою плату подаешь при этом?
А если не впаивать в твою плату, а сделать вот так? Робит?
> подключил usb ttl, только tx rx
А зачем? Если тут >>478630 у тебя запаяна NodeMcu и у неё уже все на борту
Из дальнего ящика достал пыльную NodeMcu V3. Лежит там уже года 4
Воткнул USB провод
Всё робит
Что я делаю не так?
>А питание ты на свою плату подаешь при этом?
5 В на вход LM1117, тыкал мультиметром, все нормально, 3.3 В без просадок есть на выходе
>А если не впаивать в твою плату, а сделать вот так? Робит?
Ну я могу выпаять и поставить на макетку, только вряд ли что поменяется
Протеус, как ты мог заметить
https://files.catbox.moe/nplfg8.pdsprj
>>478689
Я как ни старался, не смог развести это на одной стороне, вот серьезно. В основном сложность с max31856, там ебанутое расположение пинов. А ещё у китайцев стоят одинаково что 2х сторонние, что односторонние, так что зачем усложнять жизнь?
скопируй тупо схему nodemcu. Как минимум, конденсатор у них в 10 раз больше, и керамика есть поближе к модулю
и подкинь свой китайский модуль на nodemcu, мб у тебя там вообще отбраковка производства
а где ты берешь оригиналы max31856? с али идут вообще никак не работающие подделки
file was created in a later version of proteus than this version
in order to load this project you must use proteus version 8.11 information on the version of proteus you are running is available on the home page
>мб у тебя там вообще отбраковка производства
Я покупал в 3х разных местах (хотя один хуй все с китая их перепродавали), поэтому как-то даже не рассматривал этот вариаент
кек, ну удачи
вот тут должны быть оригиналы, но я не проверял:
https://www.electronshik.ru/item/MAX/MAX31856MUD+
Он работает, я вполне проверил. Если что чип дип сами заказывают все с маузера, особенно они не палятся на товарах, которые не на складе, а со сроком поставки в пару недель, они тупо переклеивают этикетку поверх Алсо, потом уже нашел по такой же цене как и ты скинул на терраэлектроника.
Ну могу скинуть герберы, если не открывает
если бы они заказывали только с мышача, жизнь была бы куда проще. Они тянут отовсюду, откуда только смогут
Иииии
ets Jan 8 2013,rst cause:1, boot mode:(3,0)
load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79
2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000
rf cal sector: 1017
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 1.5.4.1(39cb9a32) compiled @ Jul 1 2016 20:04:35
phy ver: 972, pp ver: 10.1
hhip$x,q(Ѫ8jtN
Что за магия? Оно живое
Иииии
ets Jan 8 2013,rst cause:1, boot mode:(3,0)
load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79
2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000
rf cal sector: 1017
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 1.5.4.1(39cb9a32) compiled @ Jul 1 2016 20:04:35
phy ver: 972, pp ver: 10.1
hhip$x,q(Ѫ8jtN
Что за магия? Оно живое
Здарова, сексуахи :3
Подскажите, пожалуйста, как сделать context switch на esp32? Хочу запилить подобие учебного планировщика. Какие маны смотреть? Есть ли что-то вроде стмовского programming manual, но для esp32?
И, пожалуйста, Не надо мне писать про питон и джаваскрипт, мне этой хуеты и на работе хватает. Вне работы я угораю по си.
Никакой магии. Делай, как написано в документации.
Ты своей схемой некорректно работал с принтами RTS и DTR
Да на плате у меня даже при подключении питания ничего не просиралось в порт на 74880, так что всё ж магия. Ну пины решаются простой платкой, которую мы ща сделаем
Зошебис, благодарствую \м/
> D4GPIO2pulled upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
Собственно MOC3043 обеспечивал низкий уровень GPIO2 из-за чего есп даже не загружалась. И я не убил ни одну есп на самом деле, все они работали.
В чем проблема теперь. А У МЕНЯ БЛЯДЬ НЕТ СВОБОДНЫХ ПИНОВ. У нас кроме spi и i2c остается только 3 свободных пина, из которых 2 отвечают за режим загрузки, а на третьем нельзя использовать ШИМ.
Какие будут советы по решению этого?
Если я приеду и тебе всё сделаю отсосешь у меня? Я не гей, просто мне ни разу не сосал парень, говорят, что только мужчина знает как доставить наивысшее наслаждение другому мужчине.
>У нас кроме spi и i2c остается только 3 свободных пина
ты прям оба интерфейса используешь? еще и cs в spi?
что за дисплей? если есть вариант подключить spi дисплей, то освободится один из i2c пинов
Ну может проще приделать второй МК? Один хуй софт ещё не написан и это марахайка для себя
>остается только 3 свободных пина, из которых 2 отвечают за режим загрузки, а на третьем нельзя использовать ШИМ.
поключить к нему транзистор и после уверенной закрузки переключать гпио2 на диммирование.
ОУ тогда уж, его проще вкорячить на готовую плату
а ты не можешь оптопару повесить на плюс и открывать минусом? Только проверь, чтобы бутлодер не открывал ее
https://rabbithole.wwwdotorg.org/2017/03/28/esp8266-gpio.html
естественно выкинет.
безопасные для пелюх и важной хуйни только порты 4 и 5, остальные во время бута теребятся.
Как вариант присрать временную задержку, которая подключает всё важное к портам через несколько секунд после загрузки.
Ну или расширитель порта прикрутить, MCP23017 например, хоть к i2c хоть к SPI, и всё заебись будет.
>В интернете пишут что угодно от 0.5 Вт, до 4 Вт
в интернете пишут блять.
если у тебя вентилятор на руках - возьми да померь епт. Если еще нет - нагугли даташит на тот вентилятор, который собрался покупать.
Никогда не читаю треды, только ответы на свои вопросы. Ну опоздал так опоздал. У меня из-за этой ебанутой подтяжки тоже гимор был.
Эта хуитка выглядит как обычная 17-ногая ESP-12 с приёбанным USB адаптером, но шесть висящих в воздухе ног обескураживают. А юсб хочется, чтобы с адаптером не ебаться. Или эти ноги как-то в работе адаптера участвуют?
Нахуя вообще все платы на базе 8266 так по-ёбнутому распаивают, срезая центральные выводы?
Чувак, загугли даташит на esp12. А распаивают их на всякий случай, вдруг кто захочет грузиться с сд карты
Нихуя не понял, у 8266 своей внутренней памяти нет что ли?
Чому они тогда обозначены как GPIO и что будет, если мигание светодиодом на них повесить? МК перестанет читать flash и наебнётся?
Есть какие-нибудь гайды/готовые примеры по работе с этими центральными пинами? Наскоком ничего не гуглится.
Это зовётся SDIO. Так и ищи ESP8266 SDIO.
Это выводы SPI, они подключены к внутр. флешу, флеш постоянно сливает в кеш оперативки код программы.
Внутренний флеш можно сконфигурировать в режиме DIO или DOUT, освободится GPIO10, но т.к. он все равно подключен к флешу остается, то надо аккуратнее с него тянуть ток или нагружать.
Вообще при этом освобождается оба гпио9 и 10, но гпио9 надо отпиливать от внутреннего флеша и притягивать ногу флеша к плюсу.
http://smarpl.com/content/esp8266-esp-201-module-freeing-gpio9-and-gpio10
> Нихуя не понял, у 8266 своей внутренней памяти нет что ли?
Здравствуйте
> Чому они тогда обозначены как GPIO
Ну вот такие разработчики
> и что будет, если мигание светодиодом на них повесить? МК перестанет читать flash и наебнётся?
Если твоя программа уместится в оперативке, то нет. Если же будут операции с флешом, то конечно наебнется
Подскажи, пожалуйста, как грузиться с sd карты? Тупо выпаять имеющуюся флешку и впаять гнездо sd? Как контроллер узнает это и проинициализирует её? Есть пошаговая инструкция для каракалов?
Я видел эту картинку, не понимаю как применить её. Мне надо выпаивать родную флешку, припаять sd, залить прошивку как обычно через юарт, а потом грузиться выставив ножки как для sd? Если это так, то почему пример с таким использованием найти очень трудно - я не нашел?
Подозреваю, что нет такой библиотеки у ардуино. А раз нет то он нам и нахуй не нужон SDIO boot ваш.
>Я видел эту картинку, не понимаю как применить её. Мне надо выпаивать родную флешку, припаять sd, залить прошивку как обычно через юарт, а потом грузиться выставив ножки как для sd?
Примерно так. Но вопрос, НАХУЙ ТЕБЕ ГРУЗИТЬСЯ С СД КАРТЫ БЛЯДЬ? У тебя от 1 до 16 МЕГАбайт памяти. На микроконтроллере. Туда всё влезет, а sd карта медленная и каких-то задач у неё адекватных нет
> Мне надо припаять sd, залить прошивку как обычно через юарт, а потом грузиться выставив ножки как для sd?
>НАХУЙ ТЕБЕ ГРУЗИТЬСЯ С СД КАРТЫ БЛЯДЬ? У тебя от 1 до 16 МЕГАбайт памяти.
Чтобы жирную страничку грузить.
Ножек и так мало.
>Примерно так.
Тогда как он узнает при загрузке с уарта, что по спи подключена сд, чтобы её правильно инициализировать и записать туда прошивку?
жалко ноги на них тратить.
Еще sd карты от esp могут ёбу давать во время бута, там же хуярится напряжение на spi выводах рандомно.
>записать прошивку на сд карту другими средствами
Ну да, выбросить каку и купить нормальный контролер.
https://www.esp8266.com/viewtopic.php?p=66237
Только ну вместо тех модулей, что у чувака, sh1106. Если просто подтянуть пины, которые используются как i2c к VCC, то сканер говорит No devices found, как и ожидалось. Но стоит подключить дисплей, как происходит хуйня. Причем иногда совершенно случайно дисплей может обнаруживаться, но при следующем отключении питания и включении - снова хуй.
В чем может быть причина? delay(1000) я добавлял уже куда угодно, проблему не решает.
Может дело в том, что у нас не аппаратный контроллер, а bit banging на esp8266?
Никак.
>А как программировать на ассемблере?
Читаешь "Ассемблерное дело в СССР" и просто, без задней мысли программироваешь
Нахуй иди, кокхол.
> В те времена не было ESP32.
По твоему ассемблер сильно изменился за это время что ли?
Вот ты ещё охуеешь, когда узнаешь, что ассемблер разный для каждой архитектуры. Принцип везде одинаковый, но наборы команд разные
Нет и не будет
https://esp32.com/viewtopic.php?t=17549
Есть отдельно для ULP https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/ulp_instruction_set.html
Есть (зареверсеный, как я понял) под 8266 http://cholla.mmto.org/esp8266/xtensa.html
ЕСП это ВНЕЗАПНО не ARM, а своя закрытая архитектура
Я тупой наверно, но как написали конпилятор без знания инструкций? А если писали под нда - неужели их так тяжело реверснуть из него? Даже до уровня железа на придется опускаться.
мимо
>Я тупой наверно, но как написали конпилятор без знания инструкций?
Разработчикам то инструкции известны, но не более
>А если писали под нда - неужели их так тяжело реверснуть из него?
Да команды найти как нехуй, а вот понять, что именно они делают...
> Да команды найти как нехуй, а вот понять, что именно они делают...
Ну так ты же можешь написать код уровня
i = 10
i++;
return i
и тд. Да, очевидно так можно получить знания только о базовых инструкциях, но хоть что-то.
Кстати странно что никто не слил инструкции в паблик. И не такое сливалось же, а тут едва ли не самый популярный чип на рынке, в своей области. А потом окажется что там бекдоров больше чем полезных инструкций
>а тут едва ли не самый популярный чип на рынке, в своей области.
Десяток дегенератов с двачей не добавляют неебательской популярности. Бери ...WB55 от ST и наслаждайся полной документацией, ерратами, референс-мануалами, ассемблером и прочими ништяками.
>наслаждася халом
Хоть IDF тоже всратая, но все таки лучше жрать тухлячок, чем жрать высраный кал.
Мань, HAL уже давно не тот же, что несколько лет назад, его много раз фиксили и сейчас его даже можно спокойно использовать в продакшене.
>но все таки лучше жрать тухлячок
Конечно. Особенно охуенно его жрать в промышленных масштабах из-за отсутствия документации. Всё, на Харкаче сказали, что HAL говно и пубертатный позер стал в позу и ни в коем разе не прикоснется к нему даже пальцем. Иди нахуй, школотун. Дрочи свой китайский высер.
там как то муторно, вроде что то с бутлоадером и небольше трех прошивок. как обновлять удаленно софт..
ну а ты как хотел, когда там фьюзы просто перегорают. Зато защищено. Нахуй тебе это надо вообще? Даже если сделают дамп твоей ЙОБА прошивки, ее заебешься же реверсить. Чай не ракеты строишь
В обычном режиме хоть обпрошивайся. Там обычный лимит уровня лимита твоего ссд - может быть 100 тысяч записей и повредят что-то, но не меньше цифры с потолка, разумеется, но суть ты уловил
А вот если хочешь в защищенный режим - там нужно жечь фьюз буквально пережигаешь проводок внутри чипа, что бы включилась защита от чтения. И так можно сделать сколько-то раз, не помню количество, но очень мало.
Но я смутно представляю зачем такая жопоебля, даже в заводских устройствах на есп так не делают, хотя уж там то это логичное требование может быть.
да там мутная мутка, спиздили и исходник и псб. девайсов подобных мало и узкоспециализировые. буду развивать дальше, не хочу что бы дальше юзали, у меня есть время но не сильно много, ебучая неизлечимая болезньиз за некомпетенции мудаков, которые не смогут дальше реверсить. помню что читал про фьюзы, но не стал разбираться. или вообще все выложу в опенсорс и подгорит у кого надо и я оставлю наследние себя, лол
Братан не умирай. Можешь хоть намекнуть что за сфера такая, что такой движ?
Но если и вправду осталось не долго - ебош в опенсорс. А если хочешь тралировать всех посметрно - найтрой что бы оно слилось в осс через неделю\месяц после твоей кончины. Вот это пушка будет
Предлагаешь ему арендовать впс, настроить автоматическую публикацию через неделю и выпилиться?
Выпиливаться не предлагаю, я так понял ему и так хуево, но да, суть ты понял, сделать какой-то условный бот в телеграме, которому если раз в неделю не писать "я жив" - он публикует все говно.
> тема: сценическое оборудование. реквизит, в основном световой.
Спасибо, интересно, подозреваю все охуевают с цены полноценного оборудования, а ты нагнул всех своей платкой за долар с алиэкспресса? Достойно уважения, без шуток. Отдельно достойно что какие-то васяны умудрились сдампить и хоть как-то реверснуть твой код, не каждый такое умеет. Можешь, кстати, попробовать обфусцировать билд, там-то почти обычный с++ конпилятор внутри. Скажем оптимизации странные настроить или еще что-то.
Так полно уже таких сервисов. Даже гмейл умеет в такое - если не заходить в него настроенное время, он всем будет отвечать заранее заготовленным письмом + может разослать его же контактам. Кроме того он будет тебе напоминать о его существовании раз в какое-то время. Лет 15 назад настроил эту штуку, с тех пор он напоминает мне что я смертный.
китайцы делают просто пиздец шлак. единственный конкурент тоже в рф (в мире рили ничего такого нет, есть немного похожее, но не совсем что нужно) и он охуев от монополии накрутил цену уже как половина готового продукта (самого реквеза). ну и я подскочил на эту темку, но не успел выйти в рынок болезнь скосила, лечился с год, а сейчас выясняется что исходники и pcb слиты внутри компании, типа тебе все равно умирать, лол и начали продаваться.
код и так непонятен. я из тех кто не делает комментарии м документацию, но если посидеть разобраться можно. и да, они не реверснули, а забралия исходник, сложная история короче
ну не совсем прям плата с али, скорее плата с jlc, лол. esp32 прям норм так подошел для задач, немного исправить pcb и решить проблему со стабильностью и можно демпинговать.
ладно, пишу не по теме. буду курить даташиты на предмет шифровки конкурент то на стм делает, там проще
А нельзя шифрование реализовать как-то более аппаратно?
Допустим, в основном loop микроконтроллер постоянно обращается по i2c к некой внешней микросхеме типа таблетки от домофона и шлёт ей 256-битное число. Микросхемка неким секретным алгоритмом вычисляет хэш со своего уникального серийного номера и отсылает назад. Микроконтроллер сравнивает со своим серийным номером, и если не сходится - ничего не делает и выводит на экран "ТЫ ХУЙ ТЫ ПИДОР".
Из плюсов получаем абсолютную кроссплатформенность. Хоть на STM делай, хоть на ардуинах. Защищать от копирования нужно именно внешнюю микросхемку. А это уже легче, наверняка на рынке есть какие-нибудь пиздюлинки уровня аттини13 или ещё проще, оптимизированные под эту задачу, в которых нет ничего лишнего, а невыдираемость прошивки обеспечивается пережиганием лишних контактов.
Ломануть такое в теории можно, но абы какой мимовасян не справится. Плюс можно добавить слой физической защиты в виде заливания микросхемки эпоксидкой.
Прохладная история конечно. надеюсь ты вылечишь свою пиздецому и выебешь там всех в своей сфере. Если у вас в конторе сорсы в относительно свободном доступе, но по факту их пишешь только ты - туда легко всунуть какой-то прикол, который найдут далеко не сразу, скажем легко сделать хуевый алгоритм который будет ломаться через N итераций, чего не найдут при тесте, но вылезет на сцене, лол. И только ты будешь знать что сконпелировать в железку что бы было нормально. Понятно что это тоже найдут рано или поздно, но нервы потрепает всяким дурачкам.
>>485497
там тот анон ответил уже. Самое аппаратное что есть - жечь фьюзы с защитой от дампа. Такое слить практически невозможно, разве что ты наймешь лабу и вьебешь столько бабла что проще купить аналог. А так то конечно можно дохуя чего придумать, но вопрос в контексте задачи, врядли этот анон разрабатывающий светомузыкальные приколы сам же ее и запускает потом на каждом ивенте.
Бери stm32, ставь защиту от чтения, криптуй прошивку, используй
https://www.microchip.com/en-us/product/ATECC608B
Для работы.
Или аналогичное решение, по типу смарт-карт.
Ключ из нее не вытащить за вменяемые деньги даже если очень надо, профит.
еще можно сделать виртуальную машину и написать в прошивке как ты в рот ебал воришек
еще видел варианты с arm trust zone
еще можешь взять два чипа и связать их криптографией и хранить в них только части прошивки, чтобы совсем все обосрались
>что исходники и pcb слиты внутри компании
печально
одно дело, когда воруешь готовый софт попользоваться, но тут ДРУГОЕ
удачи, надери им анусы
Искать не пробовал?
https://aliexpress.ru/item/1005003528888188.html
https://aliexpress.ru/item/32812849093.html
https://aliexpress.ru/item/32961432959.html
Ещё видел на пружинных контактах, но найти не могу. Может раскупили.
>что бы включилась защита от чтения
Падажжы ебана блять какая еще защита от чтения в ESP? Там же внешняя обычная SPI флешка, не? Ты его никак вообще не защитишь.
вот её содержимое и шифруется как я понимаю. да и у васянов не хватит ума что то делать с флешкой
странно что никто не спрашивает, почему я работал на компанию, а выебываюсь. а потому что я работал в доле 50% от продаж, а в итоге полностью разработку вел только я и программную часть для винды тоже, а в итоге получил хуй.
защищайте себя юридически
хуль ты несешь то довн. чем оно шифруется то блять опкодами икстенсы штоли блять?
>у васянов не хватит ума что то делать с флешкой
васяны твои по кд эти флешки биосные ебут. их такой хуйней не удивиш
в том, что никак не оформил это юридически. все на доверии . уже второй раз такая хуйня, я необучаемый.
Довенченесса?
Ну тогда, блядь, объясни как оно работает и как как сделать любую защиту прошивки. Именно об этом и спрашивают сверху
Знакомая хуйня! Только я исходники держу у себя на ноуте и никому не даю. Да никто особо и не просит.
Там все довольно просто: создается раздел в микросхеме флешки с encrypted флагом, в который все пишется под ключ AES 256, сам ключ находится в ESP32 чипе в FUSE'ах + есть фьюз режима работы (отладка - можно вычитывать/записать содержимое енкриптед раздела плейнтекстом через UART сколько угодно раз, имея на компе ключ и заранее зашифрованный бинарник, релиз - нельзя, чтоб не подбирали генератором), менять ключ можно всего 4 раза (при этом прошивка заливается не зашифрованной и автоматически шифруется новым ключем через блок шифрование еспешки, к которому нет доступа из вне), после 4 раз выставляются биты и всегда включено шифрование с последним сгенерированным ключем (опять же чтоб не подбирали ключ), дальнейшее обновление только через OTA или серийник с уже зашифрованной прошивкой.
P.S. Там еще есть Secure Boot (можно юзать как с шифрованием так и без), который при каждом сбросе устрофства проверяет целостность прошивки через AES алгоритм, чтоб никто не залил модифицированную версию с бекдором.
>сам ключ находится в ESP32 чипе в FUSE'ах
P.S.S. очевидно что его нельзя считать, к нему есть доступ только у блока шифрования еспешки
ура, адекват в треде. вот не понял про четыре раза. вкратце: можно ли сделать так чтобы зашифрованная прошивка заливалась в зашифрованный блок памяти по uart?
Да, можно.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/security/flash-encryption.html
По хорошему надо в релизе вообще отрубать UART прошивку и обновлять только через OTA - оно принимает незашифрованную прошивку и само шифрует ключом из фьюзов, поэтому OTA настраивает через SSL сертификаты, это сделано с точки зрения безопасности IoT (у каждого устройства должен быть свой уникальный ключ шифрования прошивки, который генерится самой есп32 при первичной прошивке устройства, а при SSL шифровании трафика неважно в каком виде пересылать бинарник, поэтому шлется незашифрованный и есп его потом сам шифрует при записи в нужный раздел), хотя вроде несложно переписать под себя OTA обновлялку, чтоб принимала уже зашифрованный бинарник и просто писала его в енкриптед раздел.
>In Release mode, UART bootloader cannot perform flash encryption operations. New plaintext images can ONLY be downloaded using the over-the-air (OTA) scheme which will encrypt the plaintext image before writing to flash.
Но если сильно хочется через UART:
>If you have pre-generated the flash encryption key and stored a copy, and the UART download mode is not permanently disabled via CONFIG_SECURE_UART_ROM_DL_MODE (ESP32 V3 only), then it is possible to update the flash locally by pre-encrypting the files and then flashing the ciphertext. See Manually Encrypting Files.
ota проблематично реализовать в моем проекте. там не совсем iot, но в перспективе да, будет.
спасибо, почитаю. можно будет потом еще к тебе обратиться?
>вот не понял про четыре раза
Ты можешь заливать через UART незашифрованную (плейнтекст) прошивку всего 4 раза (включая первичную генерацию/запись, и вроде при записи нового ключа происходит та же процедура - точно не помню, больше года назад делал шифрование в своем девайсе), потому что оно как бы будет выключать/включать шифрование увеличивая фьюз-счетчик, поэтому надо все разрабатывать/тестировать в девелопмент режиме.
>Limited Updates
>Only 4 plaintext serial update cycles of this kind are possible, including the initial encrypted flash.
>After the fourth time encryption is enabled, FLASH_CRYPT_CNT efuse has the maximum value 0x7F (7 bits set) and encryption is permanently enabled.
>Using OTA Updates or Reflashing via Pregenerated Flash Encryption Key allows you to exceed this limit.
Лучше почитай по ссылке выше все, там подробно расписано, это собственно офф документация от разрабов, более детальной инфы все равно нигде не найдешь.
>спасибо, почитаю. можно будет потом еще к тебе обратиться?
та я сюда раз в пол года захожу, тут либо мертвач, либо кидание говном друг в друга, лучше читай доки + чекай примеры esp-idf в папке examples, там все супер подробно
А что ей станется то от -40? Я понимаю высокая температура может чип с защиту загнать, и пережечь там что-то внутри, а от низкой то что? При условии отсутствия конденсата, например.
мимонафаня
надо бы проверить, у меня есть котельная где под потолком под 100.
или можно в баньку там еще и влажность
Тут нюанс: это сам чип, не модуль. С влажностью надо замазать эпоксидкой контакты, иначе может накрыться.
Охуеть, даже не знал что такое бывает.
Но в теории если паять свинцовым или каким другим спец припоем - самому чипу то похуй будет?
>Но в теории если паять свинцовым или каким другим спец припоем - самому чипу то похуй будет?
В общем то да, похуй
Дед, это было актуально в начале прошлого века.
Там скорее всего не равномерное изменение свойств материалов от температуры.
WiFi.psk();
>Видео на композит и через другую плату передать аналоговые видео.
Если так, то я бы, без всяких этих ваших есп, подмешал всю информацию в гасящие импульсы строк, а потом уже на приеме добавил бы индикацию. Но тут зависит от того на что ты собираешься принимать.
Может быть ток не выдает хоть сколько-нибудь нормальный или пульсации большие. Надо подключить к электронной нагрузке или резистором ток задать и проверить напяжение. И осцилом форму напряжения посмотреть.
Оказалось, что:
1) Макетка говно. Плохие контакты местами что ли
2) Еспресиф пидорасы. Светодиод и не должен загораться, так как стоит по линии 5В, а не 3.3
Вопрос: нахуя? По даташиту на cp2102 туда ведь надо подавать прямо VBUS, зачем есперссиф поставили делитель тут?
Vbus это не vdd, это детектор подключенного usb. На vdd идет как раз 3 вольта
Понадобился мк с разными интерфейсами, esp8266 как раз и он есть, шить каждый раз можно, но напрягает, сделали бы что ли его редакцию с навешенной spi озу на пару мегабайт...
Прошивка nodemcu состоит из модулей, чем их больше добпвишь, тем меньше оперативки доступно. Почему так? Лежат они на флеше и пусть лежат, а грузиться должны только в случае необходимости, что тут непонятного? Спрашиваю потому что может это есть, просто я что-то не так делаю.
Ну это логично блядь
>тем меньше оперативки доступно. Почему так?
Потому что у них есть свои переменные, ВНЕЗАПНО
>Спрашиваю потому что может это есть, просто я что-то не так делаю.
Компиляешь без -O3, вот что ты делаешь не так. Запомни, -O3 творит магию, с ним можно даже засунуть халоговнокод, нагерененный кубом в STM32L0! С ним плисины дёргают ногами в 100 раз быстрее!
> Компиляешь без -O3, вот что ты делаешь не так.
Пердуина иде же всегда с -О3 конпилит, разве нет?
Да в общем-то нихуя
https://github.com/arduino/ArduinoCore-avr/blob/master/platform.txt
Где тут O3?
Поищи на snapeda или componentsearchengine, там есть для всего вообще, чем пользуются люди
а бля, точно, попутал с Os
Прикупил себе китайский NodeMCU на CH340 (aliexpress /32656401198.html), раньше настолько умные вещи не трогал.
Чем его можно питать?
Вижу на плате пин VIN, но мерзкий китаец не пишет пределы напряжения питания.
Пошёл к истокам, на https://github.com/nodemcu/nodemcu-devkit нашёл схему, по которой с этого пина напряжение идёт на стабилизатор 3,3 В, с которого питается вся плата.
Нашёл на плате стабилизатор в корпусе SOT223, маркировка 1117C 33 2207.
Загуглил даташиты на стабилизатор 1117C - нашёл десяток произвоодителей с заявленным допустимым напряжением на входе от 12 до 20 В.
Можно ли как-то по этой невнятной маркировке определить производителя, или 2207 - это дата выпуска, и стабилизатор абсолютно анонимен?
>Питание модуля NodeMcu
>Подавать 5-18 В через контакт Vin;
>5В через USB-разъем или контакт VUSB;
>3,3В через вывод 3V.
Ты обдолбаный там? У тебя на плате прямо написано.
Нет, не обдолбанный, просто параноик. Ты смотришь на плату с CP2102 и белым дном, а у меня - с CH340 и чёрным дном. Нет никаких гарантий, что они собраны в одном подвале с одинаковыми стабилизаторами.
Это как корректно делается, командой WiFi.mode(WIFI_OFF); в сетапе?
в ардуино иде как выяснилось если ты никак не вызываешь wifi, то он автоматически будут полностью выключен
А что-нибудь вообще известно про фоновые функции?
Просто в стандартном ядре для ардуино уно, например, один и тот же код внутри loop() и код, запертый в цикле for(;;) исполняются за разное время. Потому что в главном лупе иногда происходят какие-то там проверки. Эти проверки вырезают в васянских ядрах, благодаря чему эти ядра работают заметно быстрее.
А у Esp8266 внутри нехуйская скрытая система, управляющая подгрузкой прошивки, программными таймерами, ШИМами и прочей хуйнёй. И фиг знает, сколько тактов процессора от 80МГц это всё отжирает. Скажем, на полностью пустом скетче из 1Мб занято 260кб (24%) флеша. А из 82Кб оперативы занято 28Кб (34%). А вот сколько по факту "отгрызено" у частоты - в этом интерес.
оно не такты отжирает, оно дает тебе время выполнить твой код, а потом свой. Если ты нафигачишь код в прерываниях с приоритетом выше системного и с дма - ничего не отожрет.
A так, в официальной доке это не описано и декомпилировать всё желания пока не нашлось. Известно только, что стэк там lwip.
>>девственный микроконтроллер общего назначения
нет и в принципе быть не может. Ты пишешь куски под встроенную ось типа ртос и никак иначе. Кстати, там вроде были варианты прошивки с rtos, мб оно более понятно будет
>Если ты нафигачишь код в прерываниях с приоритетом выше системного и с дма - ничего не отожрет.
А этот приоритет как-то отдельно настраивается?
Я кароч изучаю возможность 3д-принтера на Esp8266, поскольку это самый копеечный модуль из всего 32-битного, при этом ебически мощный и с аппаратными интернетами. А что пинов мало, так это лечится i2c мультиплексором. Но какова вероятность пропуска шагов из-за этой псевдоrtos- хуй его знает.
Ты ебанутый, реально!
Бери esp32, у 8266 ног не хватит, а с i2c расширителем будет медленно, у нас же там софтварный i2c со всеми прелестями
И вообще
https://www.pandapi3d.com/product-page/pandazhu
>>495839
>оно дает тебе время выполнить твой код, а потом свой
Ровно наоборот, пока мы не ебемся с вайфаем - можешь выполнять своё говно
Вот на китайцах с их миллиардами багов только ЧПУ пилить. Аппаратный I2C на 8266 так и не доделали, кстати
>Бери esp32, у 8266 ног не хватит, а с i2c расширителем будет медленно, у нас же там софтварный i2c со всеми прелестями
Я наверное упоротый, но меня смущает тот факт, что esp8266 Espressif делают у себя, а esp32 заказывают на Тайване. Который в обозримом будущем может оказаться разъёбан, похоронив вместе с собой и платформу.
Ног теоретически впритык хватает. Три на SD-карту, шесть на X-Y-E моторы, две на i2c, итого ровно 11, плюс ацп на градусник. По i2c подключается только медленная хуета: экранчик, кнопки и Z-мотор.
Есть ещё всратая идея взять два ESP12 и соединить по UART, потому что скорость там 2Мбод минимум, читал что и 20 вывозит. Тогда получается почти взаправдашний двухъядерный процессор из топора, 18 GPIO и 2 ацп, чего уже для серьёзного принтера хватает. Только прошивка обещает быть ещё тем весельем.
>>495903
>Вот на китайцах с их миллиардами багов только ЧПУ пилить.
А на чём ещё? Атмеги медленные, 99% стм с алика - китайские клоны с миллиардами багов, SAM3X8E Cortex M3 стоят как ёбаный самолёт.
https://lcsc.com/mobile/products/ST-Microelectronics_474.html отфильтруй по наличию, ну и 32-битные камни у многих производителей есть так-то.
А вообще, купи на Али готовую материнку и не страдай фигнёй
>Я наверное упоротый, но меня смущает тот факт, что esp8266 Espressif делают у себя, а esp32 заказывают на Тайване. Который в обозримом будущем может оказаться разъёбан, похоронив вместе с собой и платформу.
Ты наркоман два раза:
1) Если TSMC разъебут, то тебе явно будет не до разработки каких-то устройств
2) Схуя ли похоронит платформу? Там че, надо 7 нм? SMIC (да и вообще другие контрактные производители) вполне себе умеют в 28 нм и выше, что и нужно для esp32
>Ног теоретически впритык хватает. Три на SD-карту, шесть на X-Y-E моторы, две на i2c, итого ровно 11, плюс ацп на градусник. По i2c подключается только медленная хуета: экранчик, кнопки и Z-мотор.
Ну смотри. На sd карту уходит весь spi, i2c также минус. Остается 3 ноги. Где ты 11 насчитал?
>Есть ещё всратая идея взять два ESP12 и соединить по UART, потому что скорость там 2Мбод минимум, читал что и 20 вывозит. Тогда получается почти взаправдашний двухъядерный процессор из топора, 18 GPIO и 2 ацп, чего уже для серьёзного принтера хватает
Пффф, лол, с тем, что на прерывание еспшка тратит тактов так 50-60 и тем что двухядерный процессор будет работать поверх RTOS, а чтоб использовать два ядра эффективно, нужна опять ОС, и такой будерброд мало того что сложно сделать, так ещё и работать будет хуево, особенно когда у нас УЖЕ есть esp32 с двумя ядрами
>1) Если TSMC разъебут, то тебе явно будет не до разработки каких-то устройств
>2) Схуя ли похоронит платформу? Там че, надо 7 нм? SMIC (да и вообще другие контрактные производители) вполне себе умеют в 28 нм и выше, что и нужно для esp32
1) Ну хуй знает, колхоз на всякой массовой упрощённой элементной базе в этом случае как раз наберёт популярность. Будут из IoT-хлама с помойки чипы выпаивать.
2) 28нм SMIC пока едва освоил, и на этот цех будет огромная очередь.
>Ну смотри. На sd карту уходит весь spi, i2c также минус. Остается 3 ноги. Где ты 11 насчитал?
На SD-карту уходит: 14, 12, 13 (CS нам не нужон, это чтобы в режиме слейва работал сам esp8266).
На i2c уходит: 5, 4
Остаются: 1, 3, 0, 2, 15, 16 (15 на выход работает нормально), которые нужны для скоростной работы.
>Пффф, лол, с тем, что на прерывание еспшка тратит тактов так 50-60 и тем что двухядерный процессор будет работать поверх RTOS, а чтоб использовать два ядра эффективно, нужна опять ОС
Зойчем? Идея бутерброда в том, чтобы разбить задачи на два максимально независимых блока, которым друг от друга нужен минимум килобит в секунду, упакованный в стандартный пакет.
Скажем, для принтера на двух esp12 один есп может заниматься экраном, SD-картой, кнопками и конвертацией гкода в управляющие биты. А второй управлять только моторами, принимая по UART массив допустим из пяти uint32_t координат.
В наихудшем случае, если ебашить 0.1мм отрезками со скоростью 200мм/с, потребуется 2000 пакетов в секунду или 40 кбайт/с. А еспшка по UART спокойно держит 200кбайт/с, сам проверял. Значит в теории можно ещё раза в два скорости добавить, дальше уже предел по механике.
Причём в этом случае дуплекс нам не нужон, можно на первой еспшке задействовать только TX, на второй только RX. Тогда на первой еспшке имеем SPI+i2c+пять свободных пинов. А на второй имеем возможность повесить до 5 моторов.
Хотя, конечно, всё то же самое можно сделать на есп32, раскидав таски между двумя ядрами.
>>495932
У этих только оптом по 200+шт тариться, меньше переплата раза в три.
>1) Если TSMC разъебут, то тебе явно будет не до разработки каких-то устройств
>2) Схуя ли похоронит платформу? Там че, надо 7 нм? SMIC (да и вообще другие контрактные производители) вполне себе умеют в 28 нм и выше, что и нужно для esp32
1) Ну хуй знает, колхоз на всякой массовой упрощённой элементной базе в этом случае как раз наберёт популярность. Будут из IoT-хлама с помойки чипы выпаивать.
2) 28нм SMIC пока едва освоил, и на этот цех будет огромная очередь.
>Ну смотри. На sd карту уходит весь spi, i2c также минус. Остается 3 ноги. Где ты 11 насчитал?
На SD-карту уходит: 14, 12, 13 (CS нам не нужон, это чтобы в режиме слейва работал сам esp8266).
На i2c уходит: 5, 4
Остаются: 1, 3, 0, 2, 15, 16 (15 на выход работает нормально), которые нужны для скоростной работы.
>Пффф, лол, с тем, что на прерывание еспшка тратит тактов так 50-60 и тем что двухядерный процессор будет работать поверх RTOS, а чтоб использовать два ядра эффективно, нужна опять ОС
Зойчем? Идея бутерброда в том, чтобы разбить задачи на два максимально независимых блока, которым друг от друга нужен минимум килобит в секунду, упакованный в стандартный пакет.
Скажем, для принтера на двух esp12 один есп может заниматься экраном, SD-картой, кнопками и конвертацией гкода в управляющие биты. А второй управлять только моторами, принимая по UART массив допустим из пяти uint32_t координат.
В наихудшем случае, если ебашить 0.1мм отрезками со скоростью 200мм/с, потребуется 2000 пакетов в секунду или 40 кбайт/с. А еспшка по UART спокойно держит 200кбайт/с, сам проверял. Значит в теории можно ещё раза в два скорости добавить, дальше уже предел по механике.
Причём в этом случае дуплекс нам не нужон, можно на первой еспшке задействовать только TX, на второй только RX. Тогда на первой еспшке имеем SPI+i2c+пять свободных пинов. А на второй имеем возможность повесить до 5 моторов.
Хотя, конечно, всё то же самое можно сделать на есп32, раскидав таски между двумя ядрами.
>>495932
У этих только оптом по 200+шт тариться, меньше переплата раза в три.
Ты напомнил новость про чувака, который делает 3д принтеры в Африке из мусора с помойки. Допустим у тебя получится и допустим качество будет хотя бы... будет, зачем в Африке 3д принтеры?
Как зачем? Печатаешь геометрически хитровыебанную фигуру, кубик в кубе в кубе, почти что тессеракт. Говоришь, что ты колдуен. Все охуевают и падают ниц. Требуешь девственницу и ешака. Девственницу ебёшь, на ешаке доезжаешь до Kantanka Co Ltd, находишь там самый большой сарай и в нём самого пафосного мужика. Это Апостол Квадво Сафо. Говоришь ему, что ты из адептус механикус, владеешь супер уникальной технологией, и вообще you know da wae. И теперь мы будем строить не только роботов из ржавых банок, но роботов из ржавых банок с пиздатыми шестерёнками, супер корпуса, супер литьё по формам, супер приблуды для домохозяек и протезы для жертв гражданской войны в Уганде. Тебя делают большим начальником, дают много рабов и девственниц. Засираешь ютуб видосами про африканские технологии, клянчишь у блм-хипстеров донаты на Ваканду. Профит.
На самом деле чуваки с автоматами берут тебя в рабство, и ты печатаешь для них что скажут с перерывами на анальную еблю
>Хотя, конечно, всё то же самое можно сделать на есп32, раскидав таски между двумя ядрами.
Даже не понадобится, этим займется RTOS, хотя можно и руками раскидать если надо
>2) 28нм SMIC пока едва освоил, и на этот цех будет огромная очередь.
Intel, Global Foundries. esp32 настолько востребован, что его без вопросов возьмутся производить
>>496027
Не так я себе битардск представлял...
Да, но у меня пруфов нет. Где-то я читал, что ардуино на есп всё делает программно, отсюда и лаги.
Теперь вопрос на миллион, каким хуем его уменьшить в Arduino IDE? Инфа отсюда https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_master.html нихуя не помогает. Строчки вида spi_bus_config_t.max_transfer_sz = 128; или SOC_SPI_MAXIMUM_BUFFER_SIZE = 128; компилятор в упор не понимает.
> на дефолтной частоте
Поднять рабочую частоту пробовал?
Вроде по дефолту 160 МГц, а выставить в MenuConfig можно 240 Мгц.
Правда, всё зависит от камня в модуле. Так что сам смотри.
>И этот буфер на дефолтной частоте забивается как раз за 10мс.
Чем ты его там забиваешь? Попробуй разделить объёмы передаваемых данных на куски (chunks), а не пихать всё в буфер сразу.
>Поднять рабочую частоту пробовал?
Пробовал, но у SPI своя частота. До 40МГц, внутренняя до 80. Реально с внешним модулем между 24МГц и 40МГц разницы нет, потому что модуль не вывозит. Где-то до 5мс задержку можно таким макаром сократить, но не более.
>Чем ты его там забиваешь? Попробуй разделить объёмы передаваемых данных на куски (chunks), а не пихать всё в буфер сразу.
Так я делю. Беру аккуратно по 64 байта. Ядру похуй. У ядра во внутренней периферии есть DMA-раздел на 4092 байта, и что бы я туда с флешки ни клал - он забивает его весь, проглатывая сколько может проглотить, как дорвавшаяся до еды голодная собака. И из этой кучи потом выдаёт мне в мой буфер по 64 байта, а потом снова уходит в астрал и жрёт 4092.
Я уже расковырял все файлы ядра нахуй. Пытался ставить редефайны:
#define SPI_MAX_DMA_LEN 64
#define LLDESC_MAX_NUM_PER_DESC 64
#define SOC_SPI_MAXIMUM_BUFFER_SIZE 64
Похуй ему. Пытался получить из скетча доступ к переменной max_transfer_sz - нихуя.
Пытался вручную эти дефайны править прямо в ядре, куда только смог дотянуться - всё равно нихуя.
Ну что за ебанатство-то! Ну что за мудак это придумал! 240 ебучих мегагерц с задержками по 10мс, потому что какой-то хуй решил взять сразу побольше и куда-то намертво это зашил, обосрав всю выгоду от частоты.
Могу посоветовать спросить тут: https://gitter.im/espressif/arduino-esp32
Это чатик ардуинщиков, сидящих на esp32. Правда на инглише, но тут гугл-транслейт в помощь.
>max_transfer_sz
По ссылке документация на SPI драйвер, но для ESP IDF. Хотя ролять не должно.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_master.html#_CPPv4N16spi_bus_config_t15max_transfer_szE
Если не получается достучаться до поля структуры - значит ты что-то не объявил :)
> Пытался ставить редефайны:
Опять же: где ты их пытавишься ставить?
В проектах Visual Studio Code настройки проекта хранятся в файлах sdkconfig.*. Или их можно изменить через MenuConfig (шестерёнка на панельке).
Как там для Arduino я, правда, не знаю.
>Это чатик ардуинщиков, сидящих на esp32. Правда на инглише, но тут гугл-транслейт в помощь.
Ну буду пробовать, хоть так.
>Если не получается достучаться до поля структуры - значит ты что-то не объявил :)
Чуть ли не всю структуру в скетч перепечатывал со всем объявлением. Без особого эффекта. Хотя хз, сколько там ещё внутренних зависимостей, и куда эти спагетти тянутся.
>>500631
>Опять же: где ты их пытавишься ставить?
Да тупо в заголовке скетча. Компилятор даже реагирует, пишет "ох нихуя себе значение изменилось". Но ситуация не меняется.
>В проектах Visual Studio Code настройки проекта хранятся в файлах sdkconfig.*.
Так, вот это уже интереснее. Подобных файлов обнаруживается два:
Arduino15\packages\esp32\hardware\esp32\2.0.3\tools\sdk\esp32\sdkconfig (без точки)
Arduino15\packages\esp32\hardware\esp32\2.0.3\tools\sdk\esp32\qspi_qspi\include\sdkconfig.h
Файлы набиты настройками, которые во многом дублируют друг друга. Среди прочего встречается строчка:
CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE 4096
Поскольку SPI-драйвер на общение с внешней флешкой и с внутренней один и тот же - вероятно, причины кроются где-то здесь. (Документированы эти настройки вроде здесь https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html хотя я точно не уверен.)
EN - подтянуть резистором к ПИТАНИЮ
MTDI (GPIO12) - подтянут внутри чипа через 45кОм к ЗЕМЛЕ (нельзя подтягивать к питанию)
GPIO0 - подтянут внутри чипа через 45кОм к ПИТАНИЮ (нельзя подтягивать к земле)
GPIO2 - подтянут внутри чипа через 45кОм к ЗЕМЛЕ (можно подтягивать к питанию?)
MTDO (GPIO15) - подтянут внутри чипа через 45кОм к ПИТАНИЮ (можно подтянуть к земле, но тогда пропадёт лог загрузки)
GPIO5 - подтянут внутри чипа через 45кОм к ПИТАНИЮ (его подтягивать к земле можно или нельзя?)
Объясните. У меня уже голова квадратная.
Просто спизди схему из даташита. На esp32 не такой ебли как на 8266. Вот так выглядит типовая схема подключения esp32
>На esp32 не такой ебли как на 8266
Ага. На 8266 нужно при включении чтоб GPIO0 и GPIO2 были подтянуты к питанию и всё.
На ESP32:
GPIO2 GPIO4 GPIO12 не подтягивай к питанию, GPIO0 GPIO15 GPIO5 не подтягивай к земле.
Но некоторые можно освободить зашив eFuse. Но есть нюанс.
>Fundamentally, an eFuse is a single bit of non-volatile memory with the restriction that once an eFuse bit is programmed to 1, it can never be reverted to 0.
Можно так себе выстрелить в ногу, что охуеешь потом и выбросишь чип.
Ещё неизвестно какие фьюзы китайцы на заводе шьют в модули.
Затестил NodeMCU с али, там вроде ничего не зашито.
>GPIO2 GPIO4 GPIO12 не подтягивай к питанию, GPIO0 GPIO15 GPIO5 не подтягивай к земле.
Ну а в чем проблем пользоваться внутренними подтяжками уже после загрузки? Я вообще никогда не заморачивался этой хуйней
Периферия может подтягивать, я на esp8266 подключал тм1638по spi, так вот другие ножки все заняты, а она подтягивает, пришлось эмиттерный повторитель на mosi городить.
>>511652
Видимо веселее всего будет если у тебя 3.3V память, а ты какой-то датчик на GPIO12 повешаешь, который при запуске будет высокий уровень выдавать. Память будет запитана от 1.8V и будет очень весело искать ошибку у себя в коде, по которой чип то запускается, то нет, то зависает, то что-то рандомное делает.
Представили лицо самодельщика?
Ещё очень интересно, что на 8266 RX выдавал данные на UART, а на 32 TX их выдаёт. Тут тоже можно наебаться.
ADC не видит первые 0.1В, а мне они очень важны.
Как вы с этим боритесь?
Судя по найденному решению, не так уж сильно они мне и нужны.
китайские ацп говно во всех микроконтроллерах, ставь внешний
Я в ахуе с возможностей ChatGPT. Только для регистрации телефон нужен.
Ещё час назад я понятия не имел что там за второе ядро и можно ли с ним что-то делать, а уже думаю как я его буду использовать.
Спроси у него как из ардуино запрограммировать третье ядро, которое энергоэкономичное ulp.
Пик 1 как всё началось и пик 2 после всех правок, которые я просил его сделать. Сам я ни строчки кода не написал.
И ОН ЗАПУСКАЕТСЯ И как-бы РАБОТАЕТ
Но он мне сразу в негативные значения DAC угоняет и ИИ уже сам запутался, мне кажется. Даже если я i_limit_dac руками в 128 выставлю оно всё равно улетает вниз.
Мне уже проще дальше самому писать. Да и он после каждого сообщения говорит, что это всё не готовый скрипт и его надо допиливать.
А ещё он вообще никак не учитывает нелинейность ADC и мёртвую зону в начале. Это всё самому знать надо и учитывать.
Слушайте, логика вообще кривая. Последняя мощность (p_mpp = p) записывается только если p > p_mpp.
А иначе он только снижает мощность и чем дальше это идёт тем безнадёжнее ситуация. Он может записать новую p_mpp только если текущая мощность была выше неё, а она никогда выше не будет, если выходной ток постоянно понижать.
Но попытка не плохая. Этот ChatGPT сделан на нейронной сети GPT-3.
А они сейчас GPT-4 делают. Он сможет что-то круче. Если только не уничтожит человечество раньше.
ИИ признал ошибку, извинился, и добавил костыль. Но оно всё равно не ищет MPP.
В общем его можно домучать, но проще самому написать.
Я тебе подробную инструкцию выпросил. Для ULP нужна программа, которая грузится в ulp_load_binary. Вон как её сделать.
В написании тебе наверняка поможет сам ИИ.
ЧЕЛОВЕЧЕСТВУ ПИЗДЕЦ
Он может всё!
Только пришлось нагуглить где ulp_load_binary() взять, он сам предлагал не то.
Дальше ещё есть ошибки, буду его мучать, отпишу что получится.
Видимо надо всё таки компилировать тот код на ассембреле и приделывать его к проекту. Я не умею и не хочу. Там наверняка ебли ещё на пол дня.
Рано радуешься. Это говно ещё пилить и пилить. Это ты, восторженный мамкин погромист, считаешь что УЖЕ ГАТОВА. Вот только для простого обывателя не имеюжего дела с чем то конкретным вообще - нужно хотя бы в принципе как то задать вопрос.
Например я даже приблизительно не то что не знаю что такое ulp_load_binary. Но и даже нисколько не представляю.
Ты недооозениваешь знания людей и переоцениваешь это говно. Оно просто будет ещё один уровень между машинами и челом. Сейчас этим является ПК. И чё? Все прям повалили его использовать? Ага, щяс. Как бабка или твоя мамка не знала с какой стороны к нему подойти так и не знает. Тут то и нужен будешь ты - АИ-эникей. Как существуют шиндос-эникеи сейчас.
Короче, уровень чуть выше голой машины в которой нужно знать не только команды но и их форму, но по прежнему бесконечно далёк от того чтобы простой смертный, например баба срака, себе настроила голосом автополив цветов например.
Не говоря ещё что какой-то саня-АИ должен для начала ей купить аппратаные средства для этого и/или собрать
Это я и без твоего ИИ знаю, мне лень разбираться во всем этом китайском фуфлк есп идф, я хочу на сишечке в ардуино иде написать и чтобы оно робботало.
Зачем? Чем восторженнее гуманитарий восхищается "магией", тем глубже вздыхает технарь.
>Технические реализации нужно перепроверять.
Это да. Он мне сегодня заявил, что analogRead() и digitalRead() при INPUT_PULLUP блокируют выполнение кода. И придумал охуительную историю про то почему это происходит.
А потом извинился.
Ещё он умеет выдумывать названия библиотек и использовать их выдуманные функции в коде. И названия с характеристиками радиодеталей тоже выдумывает >>515030 →
Но вообще штука безумно полезная. Я очень много узнал благодаря нему.
Когда запилят GPT-4 он обязательно станет в разы умнее. Правда он к тому времени уже платный будет наверное.
https://help.openai.com/en/articles/6783457-chatgpt-faq
>How much does it cost to use ChatGPT?
>During the initial research preview, ChatGPT is free to use.
Не переиграл. Ты понимаешь что ты в курсе был хоть примерно что и зачем ты делаешь и чего ожидаешь добиться? Видимо не понимаешь.
>Получается, ИИ хорош для беглого экскурса в полузнакомую тему
Добрый вечер, чатгпт по сути чуть более умный гугл, который вместо ссылок дает сразу тебе их содержание в +- удобочитаемом варианте и с высокой вероятностью достоверной информацией. Ничего более крутого он пока не продемонстрировал. Он позволяет отлично рефакторить тексты, но вот что касается программирование - ничем не лучше стаковерфлоу
>>515265
>я про ULP только от ИИ всё узнал.
Да, но тебе не нужен для этого ИИ, это и так всё можно нагуглить
>>515267
>Это да. Он мне сегодня заявил, что analogRead() и digitalRead() при INPUT_PULLUP блокируют выполнение кода
Про подтяжку действительно шиза, но опять же, здравствуйте, обращения к периферии всегда блокирующие, кроме DMA
Он говорит можно. Но чую я, он пиздит. Нет никаких "ULP-coprocessor-Arduino" и "ESP32 ULP". Он это выдумал.
Я сам погуглил, все пользуют ulptool
Там есть пример https://github.com/duff2013/ulptool#assembly-example
Нужен ассемблер. Можешь попробовать просить ИИ писать тебе код на ассемблере.
Вот я просил его
>Can you make ULP program that wakes up ESP32 from deep sleep mode every 1 hour?
Он мне выдал это https://pastebin.com/raw/mtwbuvLe
Можешь попробовать заменить код из примера на этот и посмотреть что будет.
Я бы сам попробовал, но мне надо в факторио отомстить жукам
>>515351
Оказывается если читать страницы описания проектов дальше половины страницы, можно узнать, что можно и без ассемблера писать код для ULP.
https://github.com/duff2013/ulptool#ulpcc-example
Двач - лучшая нейросеть! Спасибо, это почти то, что мне нужно!
>>515353
Я бы с удовольствием сам поговорил с этой сетью, однако я даже инстаграм не могу запустить, не говоря уж о регистрации не российского номера.
Спасибо, анончики, кстати, я оп, со времени создания треда я поменял жесткий диск, поменял ноутбук два раза, споял три махарайки две на 8266 и одну на ардуино промикро.
Интересно, как они пилят эту нейросеть, допустим у меня есть сервер, 128 гб озу и интернет, могу я на питоне сделать свой скайнет? с блекджеком и шлюхами, разумеется
> допустим у меня есть сервер, 128 гб озу и интернет, могу я на питоне сделать свой скайнет?
Мало, тебе нужно как 256 гб озу и минимум rtx 3080. А лучше риг из видеокарт на 200+ гб памяти. Единственная открытая модель которая близка к чатгпт это YaLM 100B
https://github.com/yandex/YaLM-100B
Самому натренить модель ты не сможешь выше кидали сколько стоило обучение gpt-3
О какую хуйню анонсировали, а вы тут с нейросетями срётесь
Всё равно нормальную систему разработки с отладчиком под это 10 лет ждать, описание регистров периферии они скроют опять, в общем хороша маша, жаль не наша.
А для стм есть куб с лл и халом, для эстетов подробная документация.
Купил ESP32-DevKitC V4 WROOM-32U, прочитал сразу ком порт (дефолтную прошивку), нихуя не понял, залил прошивку wifi scan, просто что бы проверить плату и проверить, надо ли мне держать кнопку на плате во время прошивки. Всё работает.
Вопрос с том, есть ли тут люди, которые сделали из esp32 интерпретатор JS'а? Я так понял, в плату надо залить espurino. Есть ли такие люди? Я не хочу параллельно изучать радиоэлектронику и плюсы. синтаксис в смысле
Вот пикрил, например. Я нихуя не понимаю, что за extern C и откуда берутся функции, setup() loop(), типа они инклудятся из других файлов? Это только один небольшой пример, где я не вдупляю синаксис, поэтому хочу писать на JSе, если прям никак не получится, то буду копать в сторону microPython'а.
мимо даун
Скачиваешь прошивку
http://www.espruino.com/Download
Заливаешь через esptool
Пользуешься.
А что за extern C, initArduino() и прочая херня я сам не понимаю. там должен быть 1 инулкд и 2 функции - setup и loop и всё.
Но вообще я сам начинал с NodeMCU с его LUA прошивкой но оно такое глючное, что ну его нахуй. Научился как на C++ писать.
>Заливаешь через esptool
Она будет залита в место под обычные прошивки? Т.е я откушу часть памяти, верно? Или я перезапишу дефолтный интерпретатор? Алсо, спасибо за ответ.
Ок, а текущий интерпретатор как-то скачать можно? Допустим, я наигрался с espurino и подучил плюсы и захотел залить дефолт.
Да, через esptool read_flash можешь скачать текущую прошивку, потом залить обратно.
Но она там нахуй не нужна. Ты когда на C++ пишешь, ты заливаешь свой скомпилированный код взамен того, что там было.
>Ты когда на C++ пишешь, ты заливаешь свой скомпилированный код взамен того, что там было.
Ахуенчик. Я просто не хочу плату сломать/испортить, поэтому пытаюсь максимум узнать, что да как.
Так, возможно я с двух мест пытался читать порт и одновременно этого делать нелья. Теперь putty показывает пустоту. Но как заливать на плату код, если espurino ide не коннектит?
Первый скрин не знаю откуда, а 2 и 3 вообще никакого отношения к ESP32 не имеют. COM порт тебе отдельный чип стоит, который до ESP32 стоит.
Если такая ошибка, то переткни в USB порт просто. Это не связано с прошивкой.
Я сам сейчас залил в свою ESP-WROOM-32
>esptool.py --port COM3 write_flash 0x0 espruino_2v16_esp32.bin
И оно не работает. espruino_2v16_esp32.bin от какой-то другой ESP32. Они там есть S2/S3 сейчас вот P4 делают >>515799
Тебе нужна какая-то другая прошивка.
>>515867
Ну тогда вообще хуй знает. У меня то не работает. А у тебя такой же ESP-WROOM-32 стоять должен.
>Первый скрин не знаю откуда
Это https://www.espruino.com/ide/ через сайт подключаться к плате. А ты через что прошиваешь/отлаживаешь?
Алсо. я прошивал через
esptool.py --chip esp32 --port COM8 --baud 921600 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader.bin 0x8000 partitions_espruino.bin 0x10000 espruino_esp32.bin
И три файла:
bootloader.bin
partitions_espruino.bin
espruino_esp32.bin
Ну и проблема была, в скорости в случае с веб иде (почему не читала), а путти, как я понял, не читал, потому что порт был занят.
>Там ещё какие-то файлы нужны. В пизду.
Я так понял эти три файла - это то что лежит в espruino_2v16_esp32.bin. Ну по крайней мере там был выбор либо один файл и с ним шить, либо с тремя.
>VSCode+PlatformIO
Это есть, я думаю с начала посмотреть как оно всё работает плата и вообще радиотехника в целом через прокладку в виде espruino , что бы быстрее писать прошивки. А потом буду учить С++ и спускаться на абстракцию ниже.
https://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/tutorials/partition_table.html
>app type is used to define the partition that will store the application.
https://github.com/espressif/arduino-esp32/blob/master/tools/partitions/default.csv
>app0
>app1
Это у меня что, по дефолту зарезервировано место сразу под две прошивки? И вторую ардуина никогда в жизни не будет использовать, оно там просто валяется без дела?
Или как это работает?
Кажется я понял. otadata это не для хранения прошивки при OTA, это что-то размером 0x2000 (8 кб) всего.
А вот две app0 app1 отмечены как ota_0 ota_1 и, видимо, в одной хранится прошивка, а вторая уже для OTA нужна.
Они обе по 0x140000 = 1310720 байт
И на удивление это совпадает в выводом компилятора.
А SPIFFS аж 0x160000 = 1441792 байт / 1408 килобайт
Это если мне этот ваш спифс и нахой не нужон, я могу по 704кб под программу свою добавить?
Надо будет поиграться, потестить.
Эта таблица разделов она прям куда-то в ESP32 пишется, или о ней только компилятор знает, и для чипа это просто поток данных без всяких разделов?
{ "free": 2261, "usage": 39, "total": 2300, "history": 0,
"gc": 0, "gctime": 2.218, "blocksize": 13 }
Хочу сравнить свою с прошитой espruino. и одной строкой JS кода
Я залил скетч для мигания светодиода на плату с еспхой 32. Всё подсоединил. Куда на плату питание подавать? На ногу 3.3Vили 5V плюс, и ноль на GND? всегда думал, эти ноги, что бы снимать питание, а не подавать
У тебя пикрелейтед? Ты не можешь от микроусб её запитать?
А так либо на 3.3 подай 3.3, либо на 5 подай 5.
На GND минус.
Да и да, я уточнить, правильно ли я понял, что выводы 3.3 и 5 можно юзать как на подачу так и на снятия напряжения.
Ну смари. Ты подключаешь USB и с него питание напрямую попадает на 5V. Снять ты там можешь, но всё ограничено толщиной дорожек.
А 3.3V формируется на линейном стабилизаторе 1117, и эта скотина всё, что не влезает, сжигает в тепло. Если на входе 5В на выходе 3.3В и потребление 800мА то на стабе сгорает (5-3.3)х0.8 = 1,36 ватт.
>the device's maximum Power Dissipation at 25C ambient should not exceed 100/70 = 1.4 Watts.
Больше 500мА не выжирай с него.
>батарейки
Смотри на схему.
VDDUSB (5v) идёт на USB-TTL конвертер (чип COM порта), и что с ним будет если ему подать вольт 12 я не знаю. А при 12 ещё и 1117 будет греться.
В общем лучше больше 5.5 на 5V не подавай и больше 3.6 на 3.3 не подавай.
Ок, спасибо.
>Эта таблица разделов она прям куда-то в ESP32 пишется, или о ней только компилятор знает, и для чипа это просто поток данных без всяких разделов?
Так блэт. Докладываю.
Таблица разделов хранится в флешке.
Адрес 0x8000 (32кб) размер 0xC00 (3кб)
Можно скачать её
>esptool.py --chip esp32 --port COM4 read_flash 0x8000 0xC00 partitions.bin
А потом конвертировать через esp-idf
>gen_esp32part.py partitions.bin partitions.csv
Пикрелейтед. Это из ESP-WROOM-32 которая зашита через VSCode+PlatformIO
И как поменять на своё:
В файл src\partitions.csv записал свои разделы и в platformio.ini прописал
>board_build.partitions = src\partitions.csv
Если таблица не понравится, будет
>CSV Error: Partitions overlap. Partition at line 6 sets offset 0x1d2000. Previous partition ends 0x1f0000
>* [.pio\build\nodemcu-32s\partitions.bin] Error 2
Или типа того.
Ещё
>Partitions of type app have to be placed at offsets aligned to 0x10000 (64 K)
Размер разделов ota_0 ota_1 должен быть кратен 64кб
Увеличил себе размер разделов под код с 1310720 байт (1280 килобайт) до 1966080 байт (1920 килобайт).
Файловая система у меня LittleFS, которая говорит
>Total Space: 196608bytes, Used Space: 8192bytes
Всего 192кб (как и в partitions.csv), использовано 8кб (создал только 1 файл размером до 50 байт). Видимо остальное системные данные.
Шикарно.
Теперь я хочу поменять 4мб флешку на 16мб и залить кучу музыки и играть её на DAC пине. Ещё не придумал зачем.
SPIFFS это раздел под файловую систему, которую можно форматнуть в SPIFFS а можно в LittleFS, а можно и в FAT вроде. Я использую LittleFS.
Если ты не собираешься хранить там файлы, можешь вообще её удалить.
В VSCode делаешь папку data, закидываешь туда свои файлы и жмёшь Upload Filesystem Image, и оно всё заливается в этот SPIFFS раздел. Можешь и создавать файлы там сам из кода, писать туда логи какие-нибудь или ещё чё. Я там буду хранить всякие картинки, js, css и прочее говно для вебсервера. Ну и конфиг свой для своего кода.
В platformio.ini укажи "board_build.filesystem = littlefs" если хочешь заливать образы LittleFS.
А если не собираешься заливать прошивку удалённо (OTA) то можешь и оставить только 1 раздел под код, и увеличить себе свободное место почти в 2 раза.
Ещё раздел otadata это системная информация для OTA.
А ещё есть nvs - Non-volatile Storage. В нём можно хранить данные ключ-значение. Скорее всего там хранится твой вайфай и пароль от него если ты включил сохранение. И сам можешь туда данные писать.
Вон либа под него https://github.com/rpolitex/ArduinoNvs
Хоть строки храни
>String dataSt = "Namespace String";
>mynvs.setString ("myString", dataSt); // this string is stored in "customNs" namespace
Но мне как-то файлы в LittleFS больше нравятся.
Вон примеры готовых файлов под разделы.
https://github.com/espressif/arduino-esp32/tree/master/tools/partitions
Можешь выбирать себе какой хочешь. Все, где не указано 2M/8M/16M сделаны под 4Мб флешку, которая у нас с тобой.
И, кстати, у меня почему-то нет раздела coredump, хотя в default он должен быть https://github.com/espressif/arduino-esp32/blob/master/tools/partitions/default.csv
Это странно. Надо изучить этот вопрос.
А блять, это типа кеша. Один отсек под прошивку, второй под storage. Это полезно так-то, можно заливать туда данные и использовать, как переменные окружения.
>это типа кеша
Это ты о ota_1?
ota_1 это кэш. Туда грузится прошивка, если ты её удалённо заливаешь. В otadata записывается, что при следующей перезагрузке надо перенести её из ota_1 в ota_0.
А SPIFFS это storage, да. Оттуда напрямую можно файлы сервить в вебсервер
>server.serveStatic("/file1.png", LittleFS, "/file1.png", "max-age=43200");
Запрашиваешь http://192.168.1.111/file.png и тебе выдаётся файл из раздела SPIFFS.
Ща буду смотреть, как у меня разделены разделы.
Алсо, в vs code, erase flash - удалит только мой код прошивки и всё?
А хрен знает.
Сделал Erase Flash, он удалил и SPIFFS и программу. Удаляет ли он и NVS я не знаю.
coredump какая-то новая фича, год назад её ещё небыло видимо
https://kotyara12.ru/iot/remote_esp32_backtrace/
>Проблема в том, что на текущий момент ни framework-espidf, ни framework-arduinoespressif32 не предусматривают сохранение backtrace куда-либо, кроме COM-порта.
А сейчас оно должно в coredump сохраняться.
Да и вообще работа с бектрейсами в PlatformIO была очень геморойная
https://kotyara12.ru/iot/platformio-addr2name/
В ардуине это всё проще, конечно. Там окно открыл, дамп вставил из консоли и он тебе сразу показал где в каких файлах.
Видимо надо ждать пока допилят перед тем как пользоваться.
Создал раздел coredump аж в 64кб как тут https://github.com/espressif/arduino-esp32/blob/master/tools/partitions/default.csv
Поделил на ноль, в консоль вывалился дамп, а в coredump ничего не записалось. Всё забито FF.
Видимо PlatformIO пока вообще не поддерживает это.
Нужна либа под ESP IDF для GSM мопедов, типа SIM7080G.
Не получается нагуглить.
Не знал, что такой тред есть. Что почитать, чтобы разбираться в этой электрической части? Я только по коду, ну и паять чуток могу.
Хоровица и Хилла почитай.
А я сижу костыли пишу, чтоб бороться с переполнением.
поздравляю, вы эволюционировали с ардуиномышления на нормальный эмбед
https://github.com/stasberkov/espruino-ts-quickstart
Ну вдруг, кто-то такой же упоротый заливает жс на плату и, как я, хотел бы это делать через вс код.
Потом почитаю.
Ну вот я тоже подумал, что milis() как-то маловато и должна была бы быть другая, более долгоиграющая функция.
Но решил оставить milis() для переносимости кода, т.к. заметил ту же функцию в скетчах для других контроллеров.
гуманитарий из /б/
>Для такого придумали дефайны
У них типы разные.
unsigned long millis()
int64_t esp_timer_get_time()
Это всё для айтишников наносеков. А я гуманитарий и мне в этом разбираться не положено. Буду делать как получится.
Так сделай функцию int64, в ней через дефайн определи что вызываешь и возвращай с преобразованием типа, ёпта.
Ты в ардуино атмелах не сможешь нормально пользоваться int64.
Ещё и операции с int64 будут занимать много процессорного времени.
едрить ты дядя. ЦРУ тебя не тронет, а вот у родных бутылка на каждого приготовлена
Пик 3 - один из 8 ESP8266 (ESP12F) подключенных к роутеру через 4 стены из другого конца квартиры с нагруженной прошивкой, в которой куча кода.
Вопрос: КАКОГО ХУЯ?
Оказывается там энергосбережение включено, если выключить
#include <esp_wifi.h>
void loop() {
esp_wifi_set_ps(WIFI_PS_NONE);
}
То пик 4.
А для какой цели критичен пинг у еспшки?
Несколько лет назад купил 3 шт. ESP-12F на пробу, за всё это время применил лишь одну, да и та в итоге стала не нужна и тоже лежит уже года три. Им бы АЦП нормальный, можно было бы наклепать "беспроводных" датчиков, а так - сами по себе штуки малополезные.
>А для какой цели критичен пинг у еспшки?
Я думал там слабый сигнал вайфая. А там так задумано.
>сами по себе штуки малополезные
У меня на ESP8266 все выключатели света в доме, автоматический фумигатор, автоматический подогрев кровати, автоматический свет на кухне с датчиками приближения, контроль света и питания в боксе 3д принтера, дверной звонок, портативный выключатель света у кровати, и я ещё что-то забыл наверное.
Мега полезные чипы.
А АЦП говно говна и на ESP32 с мёртвыми зонами и нелинейностью. Только их больше.
У ESP8266 даже лучше ADC. Но всего один.
Но я себе для этих задач накупил аналоговых мультиплексоров 16 канальных 74HC4067.
Ебать ты автоматизатор.
https://github.com/me-no-dev/ESPAsyncWebServer
Я с ней 2й день ебусь и она подкидывает всё новые и новые проблемы.
Во первых пидорас на авторе починил пару багов и не обновил версию либы. В итоге в версии из PlatrofmIO не работает авторизация.
Во вторых сама авторизация не ставится на весь вебсервер. Надо на каждый путь отдельно. Нигде это не указано.
В третьих заливка файлов это какой-то пиздец.
Ты делаешь
>httpServer.on("/path", HTTP_POST, handlePost, handleFile)
И там происходит что-то страшное. Если ты постишь файл, то вызывается handleFile, но если в него отправить ответ, то тогда не надо отправлять в handlePost, потому что он вызовется после handleFile.
Там вообще получается сначала обработать всё в handleFile, а ответ вернуть в handlePost. А что если там 2 клиента будет и ответы перепутаются?
Дальше - тебе надо узнать размер файла.
Как?
А НИКАК НАХУЙ!
Вот этот например https://github.com/lbernstone/asyncUpdate/blob/master/AsyncUpdate.ino#L85 делает
>content_len = request->contentLength();
Но это не работает. Он больше, чем размер файла.
Видимо по этому у него для ESP32 используется UPDATE_SIZE_UNKNOWN
У самого автора https://github.com/me-no-dev/ESPAsyncWebServer#setting-up-the-server
>if(!Update.begin((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000))
Это размер чего? Облаков на Марсе? Это не смотрит на размер приходящего файла.
Кстати там же используется
>Update.runAsync(true);
Которой вообще нет в ESP32
Идём дальше. У меня в POST форме пару полей используется. Как их читать?
>AsyncWebServerRequest::getParam(const String& name, bool post, bool file)
Думаете всё так просто? ХУЙ!
Внутри handleFile вообще нет ни одного параметра. Их просто нет. Не знаю насчёт handlePost, но в handleFile никаких параметров.
Ну и на бонус - автор пропал год назад с началом войны.
Я пока что придумал - размер файла узнавать на стороне браузера через JS и слать его в GET параметрах, так же как и все поля ввода, которые у меня есть. GET параметры нормально обрабатываются.
https://github.com/me-no-dev/ESPAsyncWebServer
Я с ней 2й день ебусь и она подкидывает всё новые и новые проблемы.
Во первых пидорас на авторе починил пару багов и не обновил версию либы. В итоге в версии из PlatrofmIO не работает авторизация.
Во вторых сама авторизация не ставится на весь вебсервер. Надо на каждый путь отдельно. Нигде это не указано.
В третьих заливка файлов это какой-то пиздец.
Ты делаешь
>httpServer.on("/path", HTTP_POST, handlePost, handleFile)
И там происходит что-то страшное. Если ты постишь файл, то вызывается handleFile, но если в него отправить ответ, то тогда не надо отправлять в handlePost, потому что он вызовется после handleFile.
Там вообще получается сначала обработать всё в handleFile, а ответ вернуть в handlePost. А что если там 2 клиента будет и ответы перепутаются?
Дальше - тебе надо узнать размер файла.
Как?
А НИКАК НАХУЙ!
Вот этот например https://github.com/lbernstone/asyncUpdate/blob/master/AsyncUpdate.ino#L85 делает
>content_len = request->contentLength();
Но это не работает. Он больше, чем размер файла.
Видимо по этому у него для ESP32 используется UPDATE_SIZE_UNKNOWN
У самого автора https://github.com/me-no-dev/ESPAsyncWebServer#setting-up-the-server
>if(!Update.begin((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000))
Это размер чего? Облаков на Марсе? Это не смотрит на размер приходящего файла.
Кстати там же используется
>Update.runAsync(true);
Которой вообще нет в ESP32
Идём дальше. У меня в POST форме пару полей используется. Как их читать?
>AsyncWebServerRequest::getParam(const String& name, bool post, bool file)
Думаете всё так просто? ХУЙ!
Внутри handleFile вообще нет ни одного параметра. Их просто нет. Не знаю насчёт handlePost, но в handleFile никаких параметров.
Ну и на бонус - автор пропал год назад с началом войны.
Я пока что придумал - размер файла узнавать на стороне браузера через JS и слать его в GET параметрах, так же как и все поля ввода, которые у меня есть. GET параметры нормально обрабатываются.
Возьми одноплатник и не насилуй то, что не предназначено для веб-сервера
>esp32
>через реле
Ебать ты хлебушек. Реле для работы жрёт ток, и довольно нихуёвый. Ты бы ещё электромотор напрямую к gpio подключил. Выход микроконтроллера может безопасно питать максимум маломощный светодиод. Всё, что выше - запитывать строго через mosfet транзисторы, которые тока для работы не требуют вообще. Причём между МК и затвором поставить резистор на 100 ом, чтобы ограничить мгновенный ток при переключении. А между затвором и землёй поставить резистор на 10кОм, чтобы статика не накапливалась.
Слушай, а как у твоих ESP8266 со стабильностью?
У меня, помнится, были проблемы с тем, что они зависают при малейших проблемах с питанием (будь то просадка или пульсации). Причём, виснут намертво, и жрут при этом как не в себя, помогает только вырубить-включить питание.
Всякие атмеги и аттини в тех же условиях работают абсолютно стабильно, без каких-либо проблем.
>они зависают при малейших проблемах с питанием (будь то просадка или пульсации).
Поставить конденсатор по питанию жирный или присобачить микросхему-супервайзер, которая будет дёргать питание при просадке или отсутствии пульсаций на выводе.
В стенах платы года 4 работают, никогда не зависали. Питаются от китайских HLK-PM01 через стабилизатор 1117.
Но вообще с питанием это старые подводные камни, надо ставить тантал 100uF близко к входу питания. Я когда только начинал с ними играться, я тоже проблемы ловил из-за питания.
А вот на кухне подсветка зависала намертво и я долго искал причину, оказалось при электроподжиге плиты плата сходит с ума из-за искры.
Обмотал корпус фольгой и заземлил, и датчики по экранированным проводам пустил, которые тоже заземлил.
Больше никогда не зависала.
>присобачить микросхему-супервайзер
Если нужны модели, есть MAX809T (3.08V) и MAX809S (2.93V)
Но если верить гуглу
>Minimum voltage for stable operation is 2.5V and the maximum allowable limit is 3.6V
Даже MAX809R (2.63V) подойдёт.
>>518966
Да это всё понятно, просто как-то печально что в них нет своего полноценного вотчдога, как у обычных МК. В итоге получается, что хочешь нормальный АЦП - ставь внешний, хочешь вотчдог - ставь внешний и т.д. Просто как дистанционная включалка света в сортире - вопросов нет, а так - без лишней ебли не обойтись.
ЕСП32 не пробовал, кстати.
>нет своего полноценного вотчдога, как у обычных МК
При этом есть куча всего, чего нет у обычных.
А цену видел? Ты за эту цену кроме всего, что есть, хочешь ещё больше.
И у ESP32 есть bronwout детектор, он ресетает микруху, если напряжение падает ниже выставленного.
Но если плавно повышать напряжение при запуске, то чип всё равно зависнет.
>А цену видел? Ты за эту цену кроме всего, что есть, хочешь ещё больше.
Согласен, однако не вижу проблемы, почему нельзя было реализовать полноценный встроенный вотчдог. На цену эта фича вообще никак бы не повлияла. С АЦП понятно, что геморно реализовать его на навороченном чипе с радио-фичами.
Кстати, вот тут в шикарном качестве можно позалипать на внутренности ESP8266:
https://www.youtube.com/watch?v=dX-472O9gFE
(начиная 17:32)
Периодически натыкаюсь на краши с бесконечной перезагрузкой и приходится чуть-чуть переписать код чтоб заработало.
Вот очередной раз наткнулся.
Функция handleUpdatePost() вызывается только при POST запросе.
А чип крашится вообще до подключения к вайфаю.
ПРИ ЭТОМ ЕСЛИ Я РАСКОММЕНТИРУЮ
>Serial.println("HUISASI");
ВСЁ НАЧИНАЕТ РАБОТАТЬ!
Это что, просто баг компилятора? Просто так звёзды сложились, что именно один println именно в этом месте выдаёт какой-то неправильно скомпилированный код?
Или попробуйте мне объяснить в чём тут моя ошибка. Закомментированный код можно удалить, краш останется.
Не первый раз у меня такое. Приходится жать Ctrl+Z и заливать код пока ошибка не пропадёт, чтоб вычислить какая строка ему не нравится.
у тебя хип вылез за пределы раздела, то есть ты выжрал всю оперативку, которую отвел под оперативку
Компилятор врубает какую-то оптимизацию строк или вызовов.
Ты пробовал гуглить сообщение об ошибке, там тонна инфы? Оно конечно не пофиксит за тебя, но ты хотя бы поймешь суть
https://esp32.com/viewtopic.php?t=29886
Да как-то не особо много инфы в гугле. 12 результатов по
>assert failed: multi_heap_get_allocated_size ESP32
А по твоей ссылке у человека реальная ошибка в коде была. У меня один Serial.println() крашит, два подряд уже нет.
Я не понимаю что это, но и как-то не очень пока хочу разбираться.
Я думал у вас у всех такое бывает и это просто надо терпеть.
Научусь отлаживать память, может и попробую разобраться. А может вообще хардварный отладчик купить надо.
Кстати я создал раздел coredump на будущее. Туда должны писаться дампы при краше.
Но как я гуглил, оно в PlatformIO не поддерживается. Но мне сейчас при запуске пишет
>E (401) esp_core_dump_flash: Core dump�␘␌&�W␖�,ZY�-HV�-[Y��
Он туда что-то записал видимо. Может можно и в эту сторону покопать. Взять сохраненный дамп и разобраться как с ним работать.
У меня есть теория.
Serial.println() же вызывает задержку.
Возможно асинхронный код какой-то конфликтует с синхронным и когда Serial.println() притормаживает синхронный код, там какие-то тайминги совпадают и один код убивает другой.
А если два Serial.println() то это окно для конфликта проезжает и проблема не случается.
Лол блядь.
Пик 1 - крашится
Пик 2 - не крашится
Разница - напихал хуёв в debug() который просто в консоль выводит текст.
Дольше времени нужно на вывод хуёв - не крашится.
А ну смотри.
Сейчас код в таком состоянии, что при включении происходит 3-8 крашей подряд, и потом запускается.
Я добавил Serial.println(esp_get_free_heap_size()); Пик 2.
Крашится без остановки. По крайней мере я 30 раз подождал и не запустилось.
До Serial.println(esp_get_free_heap_size()); не доходит.
Получается крашится либо в асихронном коде, либо в debug()
И я честно скажу, не первый раз у меня debug() вызывает проблемы.
debug() - пик 2.
Если я после Serial.println(str); добавляю return; то все краши прекращаются и я не могу их повторить. На первый взгляд.
Может ли этот код снизу каким-то образом выжирать всю память?
> debug_log += time.substring(0, time.length() - 3) + "." + time.substring(time.length() - 3) + ") " + str + "\r\n";
> if (debug_log.length() > LOG_MAX_LENGTH) debug_log = debug_log.substring(debug_log.length() - LOG_MAX_LENGTH);
LOG_MAX_LENGTH = 2000
Но даже если так, как это завязано на тайминги. Как Serial.println(esp_get_free_heap_size()); после debug() заставляет память переполнится.
Анус ставлю, это просто совпадение, просто на эту работу с строками не тратится время и код по этому не падает, а не из-за памяти.
Ну блядь, я добавил Serial.println(esp_get_free_heap_size()); внутрь debug(); и само это добавление прекратило краши. Пиздос.
Ну там точно что-то с таймингами, а не памятью.
>Serial.print("Total heap size: ");
>Serial.println(ESP.getHeapSize());
>Total heap size: 319180
>for info, even if you built the firmware.elf with platformio, the Arduino plugin can be used from within Arduino IDE as when it is started it asks for the .elf file where you can provide the ".pio/build/esp32dev/firmware.elf", then pasting the exceptions will work, I just tested it, it worked out for me.
А так можно было?
Оказывается можно.
Это что получается, всё таки проблема в моём debug(), а именно в склеивании строк получается?
>debug_log += time.substring(0, time.length() - 3) + "." + time.substring(time.length() - 3) + ") " + str + "\r\n";
Но я вообще не понимаю каким образом.
И оно происходит же полу-рандомно. 3-8 раз крашится и ребутается, а потом запускается.
Да и если добавить хуёв в вывод (>>518999 пик 2) то оно наоборот перестаёт крашиться, хотя строка становится длиннее.
Ничего не понимаю.
Напихал delay(5); между функциями в main() и тогда код крашится всегда. Но трейсы бывают разные.
И все они идут через мой debug()
Кто сможет объяснить что там не так в нём?
>#define LOG_MAX_LENGTH 2000
Как я понимаю проблема в 37 строке, в склеивании строк.
Туда попадают строки
>webconfig loading
>webconfig LittleFS loaded
>LittleFS: Total Space: 1441792bytes, Used Space: 204800bytes
>webconfig load()
>webconfig version 4
>webconfig load() done
>last reset reason CPU0=SW_CPU_RESET,CPU1=SW_CPU_RESET
>WiFi Event: WiFi interface ready
>WiFi: wifi_connect()
>WiFi Event: WiFi client started
И после последней WiFi Event: WiFi client started при попытке её склеить в 37 строке оно падает.
Если я всё правильно понял.
В общем я прочитал вот эту пелену https://arduino.stackexchange.com/questions/85157/using-string-instead-of-c-string-yet-another-attempt-to-touch-a-loaded-issue
И очень даже возможно, что у меня всё крашится из-за склейки строк. Там происходит ад в памяти, копирование, фрагментация, гроб гроб кладбище пидор. Причём там так и пишут, что может рандомно крашиться и обычно при запуске.
Надо либо умно использовать String либо переписывать на char[].
Ещё оказывается в PlaformIO есть свой декодер бектрейса.
>monitor_filters = esp32_exception_decoder
Он даже строку в коде показывает внутри debug(). Ардуиновский декодер так не умеет.
>всё крашится из-за склейки строк
cтроки иммутабельны, то есть каждый раз создаются заново, да. Но склейка явно не должна выжирать 80кб, это где-то явно накосячили с указателями.
Попробуй для сборки строки со вставками использовать printf, а лучше snprintf, если он там есть, а для отправки в сериал апи функции из сдк, а не ардуинолибу, она под капотом тоже кеширует.
>переписывать на char[].
на char* скорее
Срёшь в память где-то неосознанно. У меня была такая хуйня, что строго один asm("nop"); в строго определённом месте со строго определённой частотой тактирования и строго определённой включенной периферией заставлял программу на стм32 работать. Хоть какое условие измени, крашится нахуй всё. Причём ошибка "деление на ноль". Потом увидел, где с указателем обосрался, из-за чего читал не откуда надо и через два деления получал ноль. А этот один ебучий ноп как-то двигал память так, что указатель указывал хоть и в неправильное место, но туда, где было значение того же типа и того же порядка.
Я сделол. Впервые работаю с C строками.
В начале резервирую память
>#define LOG_MAX_LENGTH 2048
>char debug_log[LOG_MAX_LENGTH];
>char time_str[19 + 1]; // int64_t (19 symbols max) + )
И дальше только туда пишу. Ничего нового не занимаю в памяти.
Там 2048 байт логов и когда приходит новый текст, всё старое съезжает влево и в конец добавляется время и новое сообщение. Получается такое:
>38478)Hello, word
>213150)Starting
>1387799)Done
Теперь надо весь код переписать на эти char*
>>519079
У меня там нет кода для работы с памятью. Я только ардуиновские функцию использую, которые не дают выбрать в какой участок памяти что писать.
Этот debug() это впервые, когда я написал код, в котором можно промахнуться мимо памяти и насрать в рандомные места.
Вы не знаете что такое char[] строки. Это такой ад.
Их даже из функции вернуть нельзя, потому что пока указатель на неё вернётся, она уже уничтожится.
Но больше ничего не крашится, но в один из запусков вайфай отвалился, а WiFi.status() = WL_CONNECTED и никаких эвентов.
Чип думает, что он подключен, а на самом деле нет.
Хреново это.
Да и не факт, что краши пропали. Просто я пока их не увидел и не смог вызвать.
>Их даже из функции вернуть нельзя, потому что пока указатель на неё вернётся, она уже уничтожится
Не объявляй их внутри функции, объявляй снаружи. В с ты сам управляешь памятью, никаких чудес
>не факт, что краши пропали
это esp, ты никогда не будешь до конца в этом уверен
>Их даже из функции вернуть нельзя, потому что пока указатель на неё вернётся, она уже уничтожится
Не объявляй их внутри функции, объявляй снаружи. В с ты сам управляешь памятью, никаких чудес
>не факт, что краши пропали
это esp, ты никогда не будешь до конца в этом уверен
>объявляй снаружи
Чтоб объявить снаружи я заранее должен знать длину строки, которая вернётся. Очень увлекательное занятие, сидеть считать количество букв, которые возможно может вернуть функция.
Если функция в 99% случаев возвращает 10 букв, но 1 раз в год может вернуть 1000 букв, то тебе каждый раз придётся выделять 1000 байт, на случай, если вернётся 1000.
А потом добавишь в функцию сообщение подлиннее, забудешь ожидаемую длину поправить и запишешь свой текст в чужую память.
Если я всё правильно понял.
>Их даже из функции вернуть нельзя, потому что пока указатель на неё вернётся, она уже уничтожится.
>>519147
>но 1 раз в год может вернуть 1000 букв
А ты в курсе что локальные переменные в функциях лежат в стеке, когда в регистры не влезли? А ты в курсе что стек не резиновый? А что будет при переполнении стека?
Ну и на мой дилетантский взгляд для микроконтроллеров лучше статично выделять память, чем играться с кучей с ее последующей фрагментацией, да и не забудешь потом ещё память освободить.
Для печати в uart есть смысл сделать просто fifo размером побольше. Где хочешь напечатать пихаешь в fifo, а перекидываешь из fifo в uart тупо по прерываниям, все равно он медленный. И ещё не забудь обеспечить возможность полностью вырезать препроцессором всю отладочную печать. Если не влезает в fifo, то выводить сообщение об ошибке, все равно это для отладки у вас, если я правильно понял. Опять же, на такое вдруг 1000 буков как у тебя, гарантируешь что это вдруг не начнет спамить так, что скорости uart не хватит? Так что какую-то проверку целесообразно сделать, чтобы потом не удивляться результатам.
Проходил мимо и все ваше обсуждение не читал, да и есп не касался.
Но во всякой automotive технике глобальные (со статичным адресом) переменные считаются дурным тоном. Хз почему. Может, тут кто-нибудь пояснит?
>Хз почему. Может, тут кто-нибудь пояснит?
Не знаю, хорошо бы кто пояснил. Так-то фрагментацию памяти никто не отменял. Это если free() делать, а не malloc() разово, но тогда разницы со статикой не будет.
Так-то есть MISRA C, я не читал, там вроде как или не рекомендуется динамически выделять и освобождать память или вовсе запрещается. Можешь открыть и полистать этот стандарт.
496x612, 0:46
Накодил обновление прошивки и файловой системы.
Ещё сделаю страницу настроек, в которой можно будет добавлять нужные настройки под проекты.
А тут?
Было на String, переписал на char*.
Пик 1 было, пик 2 стало.
Всё правильно сделал? Так и надо?
Вы не представляете насколько стабильнее код стал, раньше 20 сообщений за секунду и чип перезагружался.
Я сейчас в while(1) шлю сотни сообщений в секунду и чипу плевать.
При этом у меня продолжает работать вебсервер и стабильно отвечать и обновление прошивки по воздуху обновляется будто ничего и не нагружено.
Немного не та первая функция. Вот без room, как вторая.
гiднота
>>518999
>>519012
>>519109
Пацаны.
Хотите прикол?
Мы тут с вами думали как же мои String() могут забить 200кб+ хипа.
А String, оказывается, скорее всего мои строки писал в стек.
https://arduino.stackexchange.com/questions/35811/arduino-string-memory-allocation
Которого всего то ли 4кб то ли 8кб.
Теперь вообще всё понятно стало. Я там столько склеек делал, а если они все были в стеке, естественно мой код будет рандомно крашиться, когда место в стеке кончается.
Я сделал круче. Наверное.
Выделил на старте 8 участков памяти по 512 байт и пишу в них по очереди. Потом читаю результат.
8 строк по 512 байт строк хватит всем.
0 записи в стек.
0 записи в хип.
>Я сделал круче.
Чем это лучше простейшего fifo буфера? Чем хуже понятно - 8 кусков вместо одного и соответственно больше кода.
Ля чё творю. Теперь есть cstr_writef() в котором можно форматировать данные, и не занимать место в heap/stack.
>>521435
>fifo
Я ещё не знаю что это. Я только учусь.
Погуглил, но не понимаю как это пользовать. Я же могу много раз дописывать в буффер данные, а как тогда узнать где мне начинать следующую запись, если я в предыдущую ещё дописать могу.
>как тогда узнать где мне начинать следующую запись, если я в предыдущую ещё дописать могу.
пеши байты, а не строки
2 месяца назад сделал плату на ESP32, перед этим тестировал все пины и код отдельно на NodeMCU.
А теперь когда пишу прошивку и всё должно работать вместе СЛУЧИЛСЯ ПИЗДЕЦ!
>analogRead(GPIO27)
>analogRead(GPIO13)
>[660208][E][esp32-hal-adc.c:170] __analogRead(): GPIO27: ESP_ERR_TIMEOUT: ADC2 is in use by Wi-Fi. Please see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html#adc-limitations for more info
>[660218][E][esp32-hal-adc.c:170] __analogRead(): GPIO13: ESP_ERR_TIMEOUT: ADC2 is in use by Wi-Fi. Please see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html#adc-limitations for more info
ЧТО ЗА ХУЙНЯ?!
Я не могу читать ADC на пинах GPIO0, GPIO2, GPIO4, GPIO12 - GPIO15, GOIO25 - GPIO27 пока работает вайфай.
Я в ахуе. Я про это ничего не знал.
Причём у меня на ESP8266 была проблема, что у меня вайфай отваливался если я слишком часто читал ADC. Видимо там точно такой подводный камень есть, только он сам вайфай вырубает.
Как я надеюсь, что у этой проблемы есть простое решение. Что мне не надо будет полностью вырубать вайфай между чтениями.
Земля пухом. Решения нет.
Не используйте GPIO0, GPIO2, GPIO4, GPIO12 - GPIO15, GOIO25 - GPIO27 на ESP32 для ADC если планируете использовать вайфай.
Даташиты надо читать вовремя.
Универсальная ёба-плата для IoT, которая из коробки умеет всё на свете, и при этом дешёвая - непременно подразумевает нажористые подводные камни, ибо чудес не бывает. В частности, всё на свете она умеет не одновременно, мегагерцы китайские, некоторые традиционно-аппаратные вещи являются программной эмуляцией, размеры буферов жёстко заданы и.т.п.
В твоём случае, если ты не сверхскоростными гальванометрами в реальном времени шевелишь, проще воткнуть внешнюю АЦП. Да и точнее будет, ибо собственная АЦП у esp32 слегка нелинейная.
Ещё один баг в ESPAsyncWebServer, который мне 3 дня мозг выносил. И я так и не понял почему он происходит и как его чинить, я его обошел не до конца понимая что там происходит.
Когда тебе приходит запрос, ты можешь ответить
>request->beginChunkedResponse("text/plain", [](uint8_t* buffer, size_t maxLen, size_t index) -> size_t {});
И передавать ответ чанками, кусками.
Тебе приходит буффер и максимальная длина, которую ты можешь записать.
Но если ты занят, ты можешь вернуть RESPONSE_TRY_AGAIN и либа заново тебя вызовет.
Вот я раз 10 возвращаю RESPONSE_TRY_AGAIN и потом начинаю давать данные в 3 захода.
Смотрите пикрелейтед - сырой ответ от сервера.
Первый чанк - длина 163f =5695
И это именно столько, сколько я записал в буффер и вернул.
Но пришло только 5625 байт.
Дальше должен быть \r\n и длина следующего чанка. Вместо этого там сразу идёт 5 - длина следующего чанка и "BBBBB" - это и есть следующий чанк.
Но всё это не имеет значения, потому что браузер уже ебанулся к этому времени и нихуя не понимает что от него хотят.
Моё решение:
Если мне пришел буффер меньше 256 байт - идёт нахуй возвращается RESPONSE_TRY_AGAIN. А эта пидарасина любит рандомно вернуть очень маленький буффер, я видел до 8 байт. Что я, нахуй, должен вернуть на 8 байт?!
Кроме того я не дописываю последние 128 байт в буффер. Это и помогает.
Это ужасная либа.
>Даташиты надо читать вовремя.
Я не он, но даташиты читать там охуеешь, esp это всё ж че-то среднее между МК и микрокомпьютером и всё хуй учтешь, ну если ты конечно не делал уже пару проектов на ней ранее
>В частности, всё на свете она умеет не одновременно
В общем она имеет достаточно всего одновременно для IoT. Но вот иногда такая херня происходит, да. Нахуя вообще может понадобиться АЦП без вафли тут - вопрос открытый, но ок
>мегагерцы китайские, некоторые традиционно-аппаратные вещи являются программной эмуляцией
А вот про это поподробнее можно?
Вот пример того, что творилось в опере, хроме и cURL.
Это должны были быть просто числа через запятую.
>А вот про это поподробнее можно?
Не вся периферия умеет в 240мгц, таймеры распердеть выше 80 не получится. Шим программный. Ускорителя вычислений то ли нет вообще, то ли он упоротый, из-за чего операции с float идут в десятки раз медленнее, чем на стмках той же частотности. Некоторые издержки вынесения флеша в отдельную микросхему, влияющие на низкоуровневую настройку SPI, что делать крайне геморройно и не всегда возможно. Ну и к либам есть вопросы, да.
>Шим программный.
Про это можно подробнее? То есть там в таймерах нет каналов захвата/сравнения? Я просто в раздумьях, стоит ли вообще выкатываться и если там даже такого нет, то как-то оно сомнительно.
Ну 4 аппаратных таймера там есть и прерывания по ним тоже вроде как есть, значит аппаратный шим сделать можно. Но гарантировать, что вайфай при этом не отвалится, или что-нибудь ещё, я не могу.
Дело в том, что усилок ловит дичайшие помехи при работе GSM модема.
Вроде как можно пофиксить заэкранировав схему с усилком под металлическим экраном и правильной разводкой печатной платы.
А пока всё на хлебо-плате что-то можно сделать? :-\
Аноны есть идея, сделать "портативную консоль", суть такая, на пк запускается софт типо удаленного рабчоего стола, консоль коннектится к компу по вайфаю, информация о нажатии кнопок отправляется по вайфаю на пк, на пк обрабатывается и видеосигнал отправлятеся обратно на консоль. Суть в том что бы можно было гамать в пк игры дома на дешевом устройстве и не горбатиться за пк когда спина устала. На сколько реально такое реализовать? Будит ли esp оптимальным решением?
Пропускной способности чего? Я видел гувер через юсб видео на ардуинку передавал, вайфай-то быстрее будет, да и есп по мощнее. Там правда разрешение было низкое и фпс 5
>ам правда разрешение было низкое и фпс 5
>Пропускной способности чего?
Ну ЧЕГО-НИБУДЬ. У еспшки нету lvds, ты собрался как выводить видео? По SPI выйдет максимум 80 Мбит/с. А тебе для разрешений от 720p60 нужно порядка гигабита. У тебя esp32 просто ну никак ни на каком интерфейсе не выдаст столько. В теории конечно ты можешь поискать какой-нибудь аппаратный декодер читай - видеокарту h264 с spi (лол) входом. Сжатый поток влезет в 10 мегабит. Но я че-то не уверен что такие микрухи есть и обойдутся дешево штучно.
>Или там цвет парашный?
>Форматы: YUV(422/ 420)/YCnCr422, RGB565/555, 8-битные сжатые данные
Конечно говно говна
>Поддерживает до 1600х1200 при 15фпс, 800x600 при 30фпс
Консоль уровня /б будет
OV2640 само жмёт джипеги уже, соответственно на долю есп остаётся только передать уже небольшой готовый кусочек. Сжатие это ресурсоемкая операция. Поэтому этот пример вообще мимо, дисплеи то джипег сами не разжимают.
И это ерунда полнейшая, ссаная ip камера, каких множество и продают недорого. Нет бы что получше сделать.
>Консоль уровня /б будет
Никто ж не пытается сделать третью плойку. Вот замутить аналог денди на ЕСП было бы прикольно.
>>527260
>OV2640 само жмёт джипеги уже
Ебать, там прямо видеокарта в эту пиздюлину встроена? А можно её оттуда выдрать или купить какой-то дешёвый аналог, чтобы присобачить к есп?
> Никто ж не пытается сделать третью плойку. Вот замутить аналог денди на ЕСП было бы прикольно.
Аналогов денди жопой жуй, речь же шла про стриминг игорей по вайфаю, типа того как в гугл стадии
> Ебать, там прямо видеокарта в эту пиздюлину встроена? А можно её оттуда выдрать или купить какой-то дешёвый аналог, чтобы присобачить к есп?
Самый дешевый аналог это купить FPGA. Никто не будет в здравом уме ставить декодер в камеру, нахуй он там нужен. Там только энкодер.
На чем лучше писать? Слышал что есть как минимум lua и python. Или даже так спрошу: на какой язык легче нагуглить пример?
Еще вопрос: на сколько тяжело работать с сетевой частью? Интересуют wifi и медь.
Вообще задача у меня такая: нужно по wifi и медному ethernet получать данные с датчиков через http/s, syslog и snmp.
Давным давно делал подобное на ардуине, сейчас опять такая же задача стоит. Но чет хочется нового чего-то потрогать, да и esp мощнее и дешевле.
>Антоши, хочу вкатиться в esp32. Какой положняк по платам? Какая лучше подойдет новичку? С какой меньше мозгоебли?
Берешь devkit v4 без задней мысли
>На чем лучше писать? Слышал что есть как минимум lua и python. Или даже так спрошу: на какой язык легче нагуглить пример?
PlatformIO и Arduino Core. Ща конечно набегут тру низкоуровневые программисты, но это вполне оптимальный вариант для начала
>Еще вопрос: на сколько тяжело работать с сетевой частью? Интересуют wifi и медь.
С вафлей всё просто а с поддержкой эзернета нихуя не понятно. Вроде бы к esp32 (обычной, не всяким там s3) можно приделать эзернет но как - непонятно, то ли там чип нужен, то ли нативная поддержка хуй знает
>Слышал что есть как минимум lua и python.
Не касался esp32, но там же вроде как только микропитон. А толку с этого микропитона? Это в полноценном питоне все легко делается, там тебе и numpy и lxml и все что угодно. Нафиг этот микропитон не нужен.
А луа это в основном встраиваемый язык для скриптования в игрушках и прочем, там тем более нет множества всяких штук какие есть для питона.
Может тебе пойдет просто старый комп (может ноутбук) на атоме? Проще ведь будет и не особо дороже.
вопрос, есть толковый чат по есп где нубов говном не обливают?
есть один крупный, но там так душно шо пиздец
я аутист и хочу во всю бытовую технику напихать есп, и мониторить состояние приборов и окружающей среды по вайфай.
Типа температуру батарей, температуру за окном, напряжение в сети, температуру водогрейки, температуру холодильника и сколько он потребляет.
Все это должно масштабироватся.
Управлять этим желательно не через телегу, а поднять локально сервер типа почты или джаббер.
Что посоветуете?
>по вайфай
так себе идея для большой кучи устройств, смотри в сторону BLE, в esp32 есть.
>Управлять этим желательно не через телегу, а поднять локально сервер типа почты или джаббер.
чем не устаивают нормальные IoT/умнодомовые системы а-ля openhab или home assistant?
Я мало того что аутист, ещё и тупой.
Я у код не могу.
Мне бы все для детей 3-5 лет.
по поводу айот, не хочу быть привязанным к облаку. Хочу все локально крутить
так крути локально, кто тебе мешает?
>Я мало того что аутист, ещё и тупой.
>по поводу айот, не хочу быть привязанным к облаку. Хочу все локально крутить
> home assistant
>Хочу все локально крутить
Да ты не просто тупой, ты совсем тупой. Погуглил бы хоть сначала чем писать такую хуйню
>Я у код не могу.
А во что умеешь? Бери тогда https://esphome.io/ останется только ебануть платки с сенсорами, уж развести и ЛУТануть говно вопрос
>Мне бы все для детей 3-5 лет.
Идешь в гугл с запросом че поддерживается хоум ассистантом без облака.
Для начала проверь load average на OrangePI когда лагает. Если там больше 1, то проблема там. Ищи что его грузит. Причём это может быть не проц, а память или сеть или "диск" или ещё чего. Load average показывает боттлнек.
Хотя делал другую плату раньше с ровно такой же обвязкой - всё работало
Отбой, это непропай, всё заработало
Через usb-uart переходник, очевидно же. Чтоб не жать руками кнопки выбора режима бута, у usb-uart нужны dtr rts и два ss8050 с резисторами, а что?
разными. Под винду можешь https://www.espressif.com/en/support/download/other-tools взять, а так обычно флешер есть в коробке со средой, в которой ты кодить собрался.
Программировать в ардуино или VSCode+PlatfomIO, там само всё заливаться будет.
А если залить готовый дамп, то ставь питон и делай pip install esptool
Дальше в винде пользуешься командой esptool.py
Всё маломощное оно сложное. Оставляй резисторы, но они, возможно, будут наименьшей проблемой.
Паяй и тестируй. Купи мультиметр, который умеет микроамперы и замеряй. Или пикрелейтед хоть на барахолке найди.
Даже в твоих резисторах - хуй знает. 2 резистора по 100к в сумме в теории будут выжирать 162мАч в год. А какая там утечка ещё на C9? А всё остальное на плате?
Только тестить.
оказывается, ESP32-C3 с какого-то хуя имеет статус "export control" под нумером "5A002.A", что означает
> Information security hardware that is designed or modified to use "cryptography," employing analog principles when implemented with digital techniques, with the following features:
> A symmetric algorithm employing a key length in excess of 56-bits; or
> An "asymmetric algorithm" where the security of the algorithm is based on any of the following:
> Factorization of integers in excess of 512 bits (e.g., RSA);
> Computation of discrete logarithms in a multiplicative group of a finite field of size greater than 512 bits (e.g., Diffie-Hellman over Z/pZ); or
> Discrete logarithms in a group other than mentioned in 5A002.a.1.b.2 in excess of 112 bits (e.g., Diffie-Hellman over an elliptic curve)
ебануться. вы же в курсе, что пользуетесь "оборудованием двойного назначения"?))))0)0
отправил им отписку "for home use", посмотрим, что ответят.
>esp32
>шмаузер
Ты какой-то ебанутый. Покупать что-то напрямую у евро-немецких фашистов в 2023, лолблядь.
Это говно сейчас продаётся везде, от алипомойки до озона и местных радиомагазинов.
да мне там другие вещи нужны были, просто "на сдачу" закинул в корзину пару еспшек на поиграться, и теперь из-за одной этой C3 (ЧСХ S3 и C6 под этот идиотский контроль не подпадают) весь заказ завис.
попросил убрать из заказа C3, буду играться с S3 и C6
Дайте совет с чего начать вкативатся в esp32, есть что для чайников?
Ты на уровне ассемблера собрался? Или ты даже в ардуино не умеешь?
Купи NodeMCU на ESP32 и вкатывайся в ардуино на нём. Уроков мигания лампочками полно.
Нет, категория C. Хотелось бы почитать об том как устроен в общих чертах. Для чего нужен загрузчик в esp32 и что он делает и т.п.
посмотрел описание на https://www.espressif.com/en/products/socs
ESP32-S3:
> Reliable security features ensured by RSA-based secure boot, AES-XTS-based flash encryption, the innovative digital signature and the HMAC peripheral, “World Controller”
ESP32-C3:
> Reliable security features ensured by RSA-3072-based secure boot, AES-128-XTS-based flash encryption, the innovative digital signature and the HMAC peripheral, hardware acceleration support for cryptographic algorithms
судя по тому, что у S3 не указана длина ключа RSA и AES - скорее всего они меньше, чем 3072 и 128.
так что вполне возможно, что C3 действительно подпадает под экспортные ограничения, в отличие от S3 и C6
А если я не люблю ардуину и хочу программировать на C++, на чем мне программировать esp32? Есть статьи про это?
CLion купи
Хочу поднять на такой вайфай, подключить юсб устройства и включать-выключать их через веб в локалочке.
Я так понимаю, нужен какой-то модуль чтобы организовать 5в, ну и сами разъемы. Или как это лучше сделать?
Всякие девборды-бредборды тоже есть в наличии.
Я к своему dekit'у подключал ровно 5В от павербанка, скетч не работал, только начиная с 6В.
инсекьюрные братушки желают надежности
расскажи лучше как спарить две тушки по есп-нау
но только чтобы юзерфрендли дохуя, без АТ+ и прочей залупы
хочу подключаться по БТ через кром апи, но чето я ебал оно везде выключено по дефолту пизда, не хочу писать приложуху под робота чтоб все красиво было, а сервак с вью эта шняшка не вывезет наверное
Та я нуб ёбаный. У меня даже к вайфаю не подключается еспха от внешнего питания (от юсб подключается)
Внезапно вдруг оказалось, что brownout detector когда срабатывает, ОН НЕ СБРАСЫВАЕТ СОСТОЯНИЯ ПИНОВ!
И получается охуительная ситуация, в случаях, когда от ESP зависит её же питание.
ESP у меня питается от того же источника, что и нагрузка, для которой ESP регулирует ток.
И может возникнуть такая ситуация, что источник питания не сможет больше удерживать выставленный ток, напряжение снижается, срабатывает brownout detector, И ПЗИДЕЦ!
Ток остаётся выставленным, мосфет нагрузки не отключается (на нём подтяжка к земле, только это похуй, потому что высокий уровень на пине зависает навсегда), бесконечный ребут по brownout detector.
Выключайте нахуй этот brownout detector, и ставьте отдельный супервизор.
MAX809TTR/STR/SEUR
https://www.aliexpress.com/item/32844148871.html
64 цента за 20 штук.
При падении напряжения ниже 2.93 (для MAX809S) он подаёт низкий уровень на EN, после поднятия напряжения ждёт 200мс перед тем как подать высокий.
Есть и инвертированный выход, это MAX803*
Таблица отклеилась.
Вы когда на ногу (питания 5В) 5В подаёте, у вас на входах/выходах регулятора напряжение какое? У меня какого-то хуя на входе C платы 2.8В, а на плате С6 3В с копейками, нигде 5 нет. По USB нормально 5В. Чому так?
Я нихуя не понял, но и ESP32 и ESP8266 питаются от 3.3В, никаких 5В.
Если ты про NodeMCU то там LM1117 делает из 5В 3.3В.
У тебя в чём проблема?
Вроде разобрался уже. У меня несколько девкитов. Подключал питание к ноге 5В и не работала плата. (оказалось крона чутка просела и там через понижайку было 4.7В). Подал на ногу 5.5В и всё заработало.
Аригато
640x360, 1:59
>У меня несколько девкитов
>Подключал питание к ноге 5В и не работала плата
>оказалось крона чутка просела и там через понижайку было 4.7В
Это вы кого вызвали? Вы чо угараете? Какую дурку блять?
Кажется Я ЭТО СДЕЛАЛ НАХУЙ!
Всего спустя каких-то 9 месяцев и кучи перепробованных алгоритмов удержания точки максимальной мощности.
И то не факт, может солнце спадёт и вечером всё станет хуже. И у меня штук 5 треснувших ячеек, я за 9 месяцев их все переломал. И точка MPP у меня вообще за пределами таблицы.
Но сука ЭТО НАКОНЕЦ ТО РАБОТАЕТ!
Пик 1 моя панель, без 1 разбитой ячейки. Пик 2 мой контроллер.
Пик 3,4 работа контроллера.
Я пытался найти точку MPP кучей способов, из-за говёного ADC на ESP32 и моего неумения в математику нихуя не получалось. В итоге я взял готовую таблицу эффективности с али, где я купил ячейки, и там указаны точки. Отступаю от них 5% (идеально их держать не получается, напряжение сваливается), нахожу и удерживаю.
Кто молодец? Я молодец.
хуя ты
Забудьте всё, что я говорил. Нихуя не работает.
Мощность упала до 15 ватт и U(mpp) по таблице рассчитывается так, что напряжение сваливается ниже 5 вольт.
Сука.
Может перейду на ESP32 и все заработает.
Плата для зарядки аккумуляторов от солнечной панели. Получить максимальную мощность с панели очень не просто если ты дебил, как оказалось.
>>536620
Я СДЕЛОЛ!
Теперь и на 3 ваттах работает, и даже там, где ADC ESP32 с мёртвой зоной не видит ток. Хотя он там на самом деле есть.
А знаете как?
Для регулировки тока я использую CC CV модуль на XL4015 и лапой PWM на ESP32 повышаю/понижаю ток.
И тут есть проблема. Этот модуль следит за током на выходе, а не на входе.
И когда я, повышая выходной ток, подхожу к точке максимальной мощности панели (MPP), то XL4015 пытаясь удержать ток на выходе, начинает повышать ток на входе. Из-за этого уменьшается напряжение панели, а из-за этого XL4015 пытается ещё больше тока высосать, в итоге напряжение улетает в самый низ.
Я думал это недостаток моей платы. Но оказалось это преимущество.
Я только вчера понял, что когда XL4015 вырубается, унося с собой напряжение, ЭТО, БЛЯДЬ, И ЕСТЬ MPP!
Я, получается, поднимаю мощность, и в момент, когда мощности больше невозможно прибавить, напряжение резко сваливается вниз.
Теперь этот момент я и считаю MPP и когда напряжение сваливается, я отступаю чуть назад и плавно повышаю ток, пока опять напряжение не свалится.
Мне теперь вообще похуй на показания тока, с его мёртвой зоной. Меня интересует только напряжение теперь.
Зачем менять одну жабу на другую? Лучший вариант это platformio, а там уже хоть IDF если ты извращенец, хоть православный Arduino.h
Нужно послать сигнал на обычную рацию без лицензии
Вот эта хуйня сгодится?
Или с этой хуйни можно слать только на ЛОРУ?
то есть придется делать рацию из лоры
https://aliexpress.ru/item/1005002808672088.html
https://aliexpress.ru/item/1005001723778746.html
Интернета нету на рабочей станции
Можете пояснить чем разница 1 от 3?
У меня вообще плата nodemcu-32s
я думал у меня esp32 лол
>NodeMCU
Это торговая марка производителя плат и нахуй не нужной среды разработки.
>ESP8266
Старая ардуинка с вайфаем. Пригодна для простых вещей с управлением через консольку.
>ESP32
Новая жирная ардуинка с файфаем и даже костыльным ethernet. Больше выводов, больше жиру для веб интерфейса.
бля пиздец у них разновидностей
Это все ESP32 просто различия по оперативке и портам с пинами?
Брать любую вообще похуй какую главное не омежную ESP8266 ?
>рать любую вообще похуй какую главное не омежную ESP8266 ?
Лучше бери esp32 devkit v4. На пиках платы тоже сойдут, но распиновка иногда бывает ёбнутой там
Я вообше так понимаю они взлетели только из за низкого прайса, типо как rpi для бомжей, добавь чуток монеток и купи нормальный микроконтроллёра.
>Брать любую вообще похуй
Нет не похуй. Там есть версии с 1 ядром вообще, а есть и без блютуса.
Самый мейнстрим это WROOM-32 он же ESP32-S он же ESP32-D0WDQ6 (но это не точно, лень читать ID своего чипа)
Я могу что-то путать, ибо их там ДОХУИЩА.
Это почти единственный МК с вафлей, вот почему они взлетели. Ну и прайс да, у тебя есть вайфай и достаточно быстрое ядро за почти нихуя, а уж оперативки сколько! Это тебе не 512 кбайт на каком-нибудь stm32f4
Привет!
Хочу сделать устройство для поддержания температуры, и чтобы оно ещё сидело в вайфае и могло принимать команду "поддать газку" - установить целевую температуру не 15С а 20С. Т.е. мне нужен сам микроконтроллер, термодатчик и что-то для управления нагрузкой обогреватель на 2.5КВт. Что-то ещё понадобится? И подскажите конкретные названия компонентов, желательно со ссылками на магазины.
В ютубе твоя хотелка за 5 сек нахоится
Но он нихрена не заводится - просто горит подсветка и на регулировку не реагирует. Не попадался кому такой?
Короче, как мне объяснили это модуль с поддержкой расширенных команд и с расширенным рабочим диапазоном температур.
Он ничем не отличается от HD44780, хоть и контроллер другой.
Только для регулировки контрастности надо подать отрицательно напряжение на вывод Vo для регулировки яркости.
Бамп
Ах да, есп32 нужна.
Дейфан не обрубок. Берешь девкит за 200 рублей @ учишься. Светодиоды в макетку воткнешь
Да я понял что девкит. Только хуй пойми какой брать, слишком уж их дохуя. После ардуины глаза разбегаются. Какая плата самая мейнстримовая?
>слишком уж их дохуя
>есп32 нужна
именно ESP32 (не 8266) три с половиной варианта. Бери хуиту с оппика.
Бери это https://youtu.be/GViE8H_9npQ?si=oeH5eekf8FMdnOY2
Иди в ногу со временем, будущее за рисками.
Ну если ты не долбоёб то сложно. Статикой готовую девборду вряд ли спалишь, других опасностей особо не представляю
Советую пройти курсы работы за ПК, если не можеш на офф сайт есп32 зайти и выбрать модель.
Вот с вафлей и бт https://www.aliexpress.com/item/1005003989099547.html
>Советую пройти курсы работы за ПК, если не можеш на офф сайт есп32 зайти и выбрать модель
>Бери это RISC-V WCH CH32V203C8T6. Похоже на STM32? Разбор полета
Ты долбоёб или да?
Касательно еспшек на риске - тотально похуй. Вся периферия закрытия и единственный способ её использовать это пользоваться готовым тулчейном ESP-IDF с закрытыми сурсами. Толку от того что у тебя опенсорсный набор команд процессора вообще ноль.
По ссылке не esp32 и более того вообще не микроконтроллер
Ещё раз: какая нахуй разница какая у тебя архитектура ядра, если производитель даёт готовый тулчейн? Единственное о чем я могу подумать, так это запуск линукса. Но: а) такой хуйней под esp32 никто не занимается б) Линукс отлично собирается и запускается на xtensa в) Тебе никто не мешает перекомпилять линуксовый софт под xtensa.
Разработка на высокоуровневых языках вообще безразлична к набору команд процессора, отличаются только настройки компилятора, но производитель даёт тебе всё это, поэтому хоть на x86 были бы еспшки - вообще похуй
За эти годы появилась куча разновидностей модулей с ним, от ESP-01 до ESP-14, сменилось множество ревизий чипа, выпустили серию ESP32, чипов и модулей с которой тоже минимум несколько разновидностей.
Собственно, сейчас у меня вновь появилась нужда и интерес к модулям на этих мк.
Реквестую обобщённое сравнение энергопотребления всего этого зоопарка чипов и модулей, в разных режимах работы. Есть ли где-нибудь такая информация?
У esp8266 энергопотребление не изменилось. У esp32 есть ULP ядро, с ним можно потреблять до 150 мкА да-да, МИКРО, но удачи эту ебень программировать
https://deepbluembedded.com/esp32-sleep-modes-power-consumption/
Там же AMS1117 на этих модулях с ESP32? Этот стаб один без нагрузки будет жрать несколько мА. А ещё там какая-то интерфейсная микруха у юсб... В общем, с режимами сна на этих модулях можно вообще не заморачиваться.
Да
> ря блобы из интернета
> ря нет исходников
> ря curl | sudo bash
> ря малварь
мнение ИБ-шизов никого не волнует
в целом - пиздец, но это относится не только к ардуино, а вообще к любому ембеддеду, да и не только ембеддеду.
что для FPGA надо скачивать терабайты говна "full of mystery binaries, from the board vendor (or others)", что для веб-разработки, см. мемас пикрил.
Онлайн симулятор ESP32
https://wokwi.com/esp32
https://wokwi.com/projects/321525495180034642
Можно свои схемы и код отлаживать.
Хочу взять коллекционную машинку аля пикрил и превратить ее в машинку на bluetooth управлении по типу коллекционных shell машинок
То, что связано с программированием мне понятно, то, что связано с аппаратурой и ее взаимодействием, мне не понятно
Можете подсказать, в каком направлении курить материалы/курсы и тд?
Как я понимаю, мне нужна платформа вроде arduino + питание к ней.
Влезет ли это все в такую машину или это изначально провальная затея?
Предположим, что у меня хватит терпения
Раскурочь конструктор от Лего или ксяоме. Быстрее будет и приложения под все платформы уже написаны. Лего интересней, там brick controller есть.
А вообще, щас подумал, мотор Лего питается от 6 АА элементов. Ты столько не запихаешь в эту машинку, не превратив ее в колхоз. Соосность колес там хуевая. Прямо ездить оно не будет. Так что хз что там получится.
опять же я смотрю в качестве примера машинки shell
они хорошо и быстро ездят, при этом маленькие, значит такое сделать возможно теоретически
Эдектромеханику найди сначала. Моторы и сервы достаточно мелкие на раз не гуглятся.
Платное там это загрузка своих либ, файлов и подключение к своему вайфаю через какой-нибудь протрояненный софт.
> То, что связано с программированием мне понятно, то, что связано с аппаратурой и ее взаимодействием, мне не понятно
Берешь и портируешь ardupilot под esp32, для роверов он тоже годится
https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_HAL_ESP32/README.md
>>545025
И для него сойдет тоже
Да тебе хуй угодишь.
А по моему отличная штука для проверки своих схем перед тем, как разводить плату.
Так в том и дело, ты посмотри что там есть - гирлянду сделать и будильник. А мне например надо умный гараж сделать, там дохера чего нету.
Ты туда не гараж грузить должен, а плату. А на плате у тебя пару реле и входов концевиков будет.
Плат мало, новых нету.
Будет ли нормально работать вращающийся энкодер если подключить его как пару таких кнопок?
Кончились свободные пины на контроллере, хочу так приколхозить по-быстрому
Самое охуенное когда оно будет глючить где-то внутри этой гламурной софтины
Leonardo Russo’s ArduinoSimulator is an open-source Arduino Simulator written in JavaScript that runs code directly in your web browser and shows the serial output and digital/analog pins status for various Arduino boards namely Arduino UNO R3, MEGA1280, MEGA2560, and NANO V3.
https://www.cnx-software.com/2024/01/16/arduinosimulator-is-an-open-source-arduino-simulator-that-runs-on-your-web-browser/
Ну, вообще там 500 строк кода на всю либу большая часть из которых – хтмл, хттп сервер и подключение к вайфаю, баги не сложно выловить. Скорее тормозить может из-за чего непригодно для частоты выше чем заметно глазу.
В общем-то это просто софтарный логический анализатор на переопределённых макросах стандартной библиотеки, хз что вы возбудились от мигающих диодов.
Логический анализатор предполагает наблюдение за несколькими сигналами параллельно.
>показывало уровень заряда батареи esp, без посторонних приложений
Тебе нужен виджет на ведре который это сделает, очевидно же. Это невозможно сделать без сторонних приложений (беспроводные наушники показывают если че тоже через СТОРОННИЕ приложения)
Наушники реализуют стандартные GATT профили, у HID среди прочего есть обязательный сервис батареи. В нём в характеристиках заряд и лежит, телефон оттуда и читает по стандартной схеме. Приложения для этого не нужны, вопрос только в правильной поддержке протоколов.
>>546581
Если ты не делаешь какой-нибудь плюс-минус стандартный тип устройства и не готов упороться по BLE то никак.
Мне надо всего лишь: запись в лог действий с проводного датчика двери, в идеале в веб-морде самой esp (то есть автономно), без интернета.
В каком направлении двигаться, какую прошивку залить?
NodeMCU V3 Lolin
Собрал простой сенсор на еспхоме, а он сука работает только в непосредственной близости от точки доступа, ну пару метров может. В другой комнате отваливается, за углом в той же тоже.
Понятно что это хуйня а не антенна, но я ожидал что хоть на квартиру хватит. Керамическая лучше или сорта говна и нужна внешняя нормальная?
Немного разобрался (или нет), прошил в общем Tasmota, ну меню открывается, подключение не слетает.
Но, как теперь это всё перевести в автономность? Чтобы я просто мог зайти с телефона на точку доступа esp и смотреть показания датчиков в локальной веб-морде?
Ну, для финального девайса я вообще голую есп собираюсь поставить, нахуй нужен этот весь этот обвес.
Но судя по тому что здесь только кусок текстолита антенну загораживает с голой не сильно лучше будет, и уже точно не надёжно.
Видимо придётся какую-нибудь хуйню из пикрилов хотя бы взять.
Да поменяй плату говорю. Так хуёво не должно работать. Ну может еще с питанием траблы какие-то или нахуевертил еще чего.
на бутылки подсадят.
Я пытаюсь вкатиться и у меня вопрос.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ulp_instruction_set.html#jumps-jump-to-a-relative-address-condition-based-on-stage-count
>JUMPS – Jump to a Relative Address
>Syntax
>JUMPS Step, Threshold, Condition
>Step – relative shift from current position, in bytes
Ну то есть я могу прыгнуть на +10 байт вперёд, или на -5 байт назад.
Там есть пример:
>JUMPS 16, 20, EQ // Jump to (position + 16 bytes) if stage_cnt == 20
Ну всё верно получается. Прыгаем на +16 байт.
Но дальше в примерах идёт это:
// Up counting loop using stage count register
> STAGE_RST // set stage_cnt to 0
> label: STAGE_INC 1 // stage_cnt++
> NOP // do something
> JUMPS label, 16, LT // jump to label if stage_cnt < 16
Чего, нахуй?!
>JUMPS label
Туда попадёт адрес label (на пример +10) и вместо прыжка на -3 (например) (чтоб попасть в label) программа должна прыгнуть вниз на +10.
Мне даже чатжпт не может объяснить какого хуя происходит. Почему так нахуй?
Почему инструкции, которая получает относительные адреса, вдруг передаётся адрес label, который нихуя не относительный? И почему это работает? (а я подозреваю, что это работает)
Чатжопа абсолютно сломался вместе со мной.
Там в документации есть
>JUMP label
и
>JUMPS label, 16, LT
при этом JUMP принимает АБСОЛЮТНЫЙ адрес, а JUMPS ОТНОСИТЕЛЬНЫЙ.
У меня только одно возможное объяснение. Компилятор, который компилирует ассемблер в байты, сам подставляет адреса label'ов. Для JUMP абсолютные, для JUMPS относительные.
И еслиб я был умный, я бы мог скомпилировать какой-то код и посмотреть в хекс редакторе. Но я слишком тупой пока для этого.
>даже чатжпт не может объяснить какого хуя происходит.
"даже". Типа это редкая ситуация, когда оно вообще не вдупляет.
>адрес label, который нихуя не относительный
и ты так думаешь почему именно? У метки вообще в принципе нет адреса, это синтаксическая конструкция языка, в данном случае ассемблера.
>Компилятор, который компилирует ассемблер в байты, сам подставляет адреса label'ов. Для JUMP абсолютные, для JUMPS относительные.
это.
А что будет если я в конце ULP программы не сделаю HALT?
Она просто сама собой выйдет?
После этого таймер, установленный ulp_set_wakeup_period() нормально её вызовет снова?
Или всё распидорасит?
И нужно ли мне делать перед выходом
>REG_WR 0x006, 24, 24, 0 // Stop ULP timer (clear RTC_CNTL_ULP_CP_SLP_TIMER_EN)
если я не устанавливал таймер?
В документации используют не показывая был таймер, или нет.
Для PlatformIO+framework=arduino я не нашел как чистый ассемблер приделать, но можно макросный.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ulp_macros.html
Просто вот этот один main.cpp берёте и всё https://pastebin.com/raw/RPfsucJx
И он мигает основным ядром светодиодом, потом засыпает и мигает на ULP.
А дальше уже можно переписать макросный ассемблер под себя.
В двух словах как этот пример работает. Он в первые 3 ячейки RTC памяти пишет свои параметры (всего памяти доступно 8кб)
> RTC_SLOW_MEM[ULP_DATA_OFFSET] = (RTC_FAST_CLK_FREQ_APPROX / 25000) onTime / 1000;
> RTC_SLOW_MEM[ULP_DATA_OFFSET + 1] = (RTC_FAST_CLK_FREQ_APPROX / 25000) offTime / 1000;
> RTC_SLOW_MEM[ULP_DATA_OFFSET + 2] = repeat;
Сколько времени держать включенным светодиод, сколько выключенным и сколько раз мигать.
И изнутри ULP уже читает чё там в трёх ячейках
>I_LD(R2, R1, 2), // R2 <= repeat
>I_LD(R3, R1, 0), // R3 <= onTime
>I_LD(R3, R1, 1), // R3 <= offTime
А дальше в гугле можно разобраться.
Основные 2 ядра можно не усыплять, тогда можно нагрузить одновременно все 3 ядра.
В них затащили IEEE 802.15.4 (читай: Zigbee, Matter и Thread). WiFi (6 кстати) и BLE никуда не девали.
Ультимативный девайс получился для датчиков и умного дома. Осталось дождаться когда в ESPhome подвезут, там пока один пердёж в воздух: https://github.com/esphome/feature-requests/issues/1397
H2 - 1 ядро, 96 MHz, 19 GPIO.
Нахуй они так делают? Зачем они делают чипы хуже?
У ванильной ESP32 2 ядра по 240MHz и 36 GPIO.
Да а нахуя тебе в коммуникационном чипе больше?
Хочешь биткоин майнить - Ставь основной микропроцессор на сколько надо, а есп к нему присоской.
Для термостата что так что так пойдет.
Так оно само как ULP ядро
>>548357
Ну вообще оно должно быть и дешевле. Затем же зачем существуют одновременно stm32h7 и stm32l4. Другой вопрос что пока на али это говно стоит также как обычные esp32 на али - оно в принципе то и не нужно, разве что h2 из-за zigbee.
Скорее бы блядь вышел P4, если он внатуре будет по 2-4 бакса и с поддержкой внешней оперативной памяти мегабайт так до 128 то это пушка
Плата типа пикрил на 38 пинов. Пытаюсь хотя бы блинк запустить, но не выходит. Прошивка вроде как грузится и всё. (Светодиод должен мигать во время прошивки? У меня не мигает.)
Ебаный рот, разобрался. У меня подключен модуль sim800l. Когда отключаю землю от него и ресетаю - начинает мигать. Какого хуя так? Есть мысли? Модуль этот отключен в настоящее время. Связь на пикрил.
Еще вопрос знающим. Нахуя в гайде землю модуля подключают на sd0 есп? Вообще гайд вот он https://circuitdigest.com/microcontroller-projects/interfacing-sim800l-module-with-esp32
В гайде чел сначала пишет подключать на sd0, но в конце в видео уже на земле вроде бы. Какого хуя?
Не, братан, я знаю сколько жрет сим. Я же написал что он не запитан вообще. Я только землю соединил и пины для связи. Я сим от аккума запитаю, vin у него вообще никуда не подключен. Я в первый раз с есп, блинк загрузил чтобы вообще проверить доска работает или нет. Вот, блять, тормознул на этом моменте.
Покажи вывод в консоль когда ты ресетаешь плату с подключенным модулем. Она там должна вывести состояния пинов, там понятно будет в чём дело.
Если G0 на картинке это D0, то подозреваю что у тебя незапитанный модуль его подтягивает к 0 и из-за этого есп грузится не в том boot mode
Такая ебанина бывает когда питание вольта два. Или ты землю не подключил.
sim800l - достаточно капризная дрянь, её в идеале надо питать напрямую от лития.
И согласование уровней RX - для неё норм 2,5В, 3,3 для не дохуя, мог и пожечь модуль...
Нахуя ещё и столько каналов если измерять всё равно он ничего не может?
Нахуя его тут делить? Верхняя граница то наименьшая из проблем.
Для нижней наоборот усилитель надо и шумы вычищать, а тут уже проще внешний АЦП взять и не ебаться.
Что ты собрался мерить что тебе критичны эти 100 мВ снизу?
>выполнять скрипты lua на мк
Нахуя и зачем? В условиях вычислительных мощностей и объёма оперативки на этих штуках интерпретируемая динамикопараша будет худшим выбором для любой задачи сложнее хелоуворда.
тут отцы на месте?
кто сможет раскидать на пальцах для нуба?
типа на чем програмировать.
почему lua, почему at команды, как понять на чем программировать, как контроллер понимает и питон и си и прочие.
хочу например купить плату 8266 f12, чтобы один gpio мерил, другой свет включал, третий кидал сообщение в телегу.
что для это нужно помимо платы, на чем это программировать
о себе я тупой, ленивый и бедный.
жду гайдов
мерил напряжение
чтобы все это через веб морду управлялось и писалось в логи и строило статистику и графики.
ну можно ещё чтобы эта плати была метеостанцией ну и всякое.
Lua это самый быстрый интерпретируемый язык если что и если тебе не нужен реалтайм на мегагерцах то в целом луа отлично подойдет
Я начинал с ESP8266+LUA. Но оно такое глючное было, перекатился в C++ и ни дня не жалею.
В даташите 22мкФ + 0.1мкФ, тип не уточняют. Выше в треде анон тантал на 100 советовал, а у самого алюминиевый стоит лол.
>тип не уточняют
Тип обычный
>тантал на 100 советовал
Это для 8266, для 32 хватит того что в даташите, ну можешь въебать тантал на 10 мкФ чтоб наверняка
Кто-то прогулилвал радмат, сразу видно
Сам я не пробовал, но через GPIO16<->RST должно будить. Проверяй код. Хуй знает.
>>550096
>I have battled with this issue for months on and off. Was finally able to get the Lolin Nodemcu v3 to wake up from deepsleep using a 220resistor between SD0(MISO) and 3.3v.
(this is in addition to the bridging of GPIO16 and RST of course)
На одном из форумов нашел и это тут же заработало. Пиздец 5 часов пердолил.
А в ESP8266 как? Нихуя найти не могу.
Его можно поменять, можно залить свою таблицу разделов. Как узнать какой размер залит?
Каждые 10 минут станция просыпается на 10-15 секунд. За это время инициализирует датчики, собирает показания, коннтектится к wifi и по rest api отсылает данные на домашний сервер. Чтобы сон нормально заработал пришлось долго гуглить и припаивать резистор. Также к антенне припаял провод чтобы лучше ловила.
На сервере поднят эндпоинт с sqlite который записывает показания влажности, давления, температуры. В графане я рисую графики. В боте телеграм могу запросить информацию о последних показаниях.
Мне самому очень интересно. Но надо подождать дней 20. Сейчас аккум заряжен до 4.1 вольт.
Не проще было HA и ESPhome? Там вся программная часть сразу есть, графана в том числе. Да и инфлюкс по молчанию, скулайт у тебя сдохнет когда накопит критический объём данных.
> к антенне припаял провод
Бери просто есп с разъёмом под антену и отдельно внешнюю.
Лично для меня не проще. Сервак у меня многоцелевой, там крутится дохуя чего: торренто стрим, боты телеги, графана, веб сервер для пары хуевин и прочее. Тем более esp8266 работает в режиме максимальной энергоэффективности, а не крутится 24/7.
Хехех, один дома в качестве проца N5095, 16 ГБ ОЗУ, 1TB SSD. Второй купленный VDS за бургом.
@
смотриш доку на офсайте https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html
@
pin 38
@
говнокодиш
@
светодиод не моргает
@
думоеш
@
смотриш example Blink.ino
@
не моргает
@
снова гуглиш
@
находиш другой пинаут на каком-то левом сайте "мишаня.орг" https://mischianti.org/esp32-s3-devkitc-1-high-resolution-pinout-and-specs/
@
pin 48
@
бугуртиш
девкит не китайский, оригинальный от еспресиф
Итак, дети, тема сегодняшней лекции - ревизии!
Если бы ты внимательно посмотрел на картинки на своей же первой ссылке, то понял бы почему
спс
Сап, это сюда мне с вопросом по wemos D1 mini, ну она вроде на ESP8266, да? Есть какие-то гайдлайны по программированию на ней? Вкраце - нужно написать прошивку, передающую серверу данные с датчиков по беспроводу. С датчиками я разберусь, с сервером наверное тоже.
>она вроде на ESP8266
Да.
>Есть какие-то гайдлайны по программированию на ней?
Шлёшь ардуино иде нахуй, качаешь VSCode, там ставишь PlatformIO, через домашнюю страницу PlatformIO (домик снизу слева) создаёшь проект, платформа espressif8266, плата d1_mini, кодишь, ?????, PROFIT!
Если бы мы знали что это такое. Но мы не знаем что это такое.
Чаво блять? Гугли за 8266 или что у тебя там
Под ардуиной - никакой особой разницы с атмегами. Мелкие нюансы перечислены у гувера на сайте: https://alexgyver.ru/lessons/esp8266/
Два чаю, спасибо!
Прошло 2 недели. Понял что накопились проблемы. Вопервых, чтобы показания были действительно точными надо открывать балкон. Иначе метеостанция будет показывать температур на балконе. Что вообще не супер. Купил DS1820 на длинном проводе, просунул в щель, теперь показывает реальную температуру на улице. И не нагревается от солнца.
Во-вторых, за две недели аккум не разрядился полностью, но просел с 4.1 до 3.6 вольт. И это печально. Сделал оптимизацию кода, убрал ненужные delay. Теперь вместо 12 секунд время передачи занимает 5.5 секунд. Также до этого солнечная панель стояла за стеклом. А как мы знаем стекло задерживает УФ. То есть панель давала меньше тока. Пик 2, переставил панель на улицу приклеив на стену.
В-третьих, 1-3 раза в сутки заметил что метеостанция не прислылает данные. Добавил ретраев в отправку. То есть если с первого раза не отправила, то ждём 5 секунд. И так 5 раз.
Пусть ещё две недели стоит, посмотрим как себя поведет.
>>550770 - кун
>просунул в щель
Лучше б заделал щели прежде чем электроникой заниматься.
>То есть панель давала меньше тока.
Спектр квантовой эффективности панели то посмотри
3.6 – это номинальное напряжение литиевых банок как раз. На нём батарея работает 80% времени. Возможно она у тебя на 10% заряда, возможно на 90%.
>микроконтроллеры
>слетела прошивка
Это невозможно же физически? Кто нить хоть раз наблюдал такое чтоб слеиютела прошка с мультварки/стиралки/тойота_ланд_крузер ???
Ааа не, эти капельки только в пультах
Насколько я понял, либы и примеров нету, можно только самому наколхозить drain - подать нужное тактирование, и пробовать что-то писать как обычным уартом соединив порт ввода и вывода в один. Ну, если уарт нельзя создать сразу с одним портом.
Соре, промазал тредом
Слева контроллер не 5 вольтовый? ЕСП32 на 3.3в
Вообще я считаю, что ардуинщики должны страдать, у них такое призвание, делают хуйню, документацию не читают, пишут говнокод (пардон, говно-скетчи). Фу.
Неужели правда дело в логических уровнях?
Там не i2c там напрямую подключение.
https://youtu.be/cQhwIugPLeU?si=eQFfVmjnIvPekSIt
Вот у этого получилось
етот прав, ардуина 5в, есп 3
Инструкции есть в гугле и на ютубе.
Но я тебя прошу, не лезь в это дерьмо. Программируй как нормальный белый человек в ардуино или PlatformIO.
Не в тот тред. Игнорируйте.
Минусы будут?
>хеллоуворлд собирается почти минуту
Он каждый раз так долго собирается или только первый?
В PlatformIO первый раз долго, а потом только изменившиеся файлы перекомпилирует.
Ну в первый раз конечно дольше чем следующие, но потом все равно долго, по сравнению с более простыми контроллерами.
> Попробовал прошивать в Espressif IDE, настроек так пиздец много конечно, совсем непривычно после стм32 контроллеров.
Везде одинаково, не выдумывай
То что от тебя IDE что-то прячет это твои проблемы, проприетарный говноед
У меня 8266 на луа умным домом управляет, сейчас ножек и ресурсов перестало хватать, думаю перекатываться. С луа удобно, пару файлов прямо с алгоритмами правлю. В основном там луа таблицы, была б готовая подобная динамическая структура в иде или на си, чтобы конфиг файл написал, а он раз и так как надо в памяти.
А у меня 8266 в содружестве с ХА на малине управляет вентиляцией в ванной комнате.
В принципе, умный дом только получает данные с датчика для красивых графиков и шлёт команду на включение и выключение ночного режима.
Прошивка сгенерирована из под ESPHome, написана на встроенном в него YAML.
>А у меня 8266 в содружестве с ХА на малине управляет вентиляцией в ванной комнате
Ты, должно быть, ходишь с двумя пакетами, собираешь туда говно, потом вываливаешь в эту ванну, 8266 включает вентиляцию, а ты залазишь в ванную и дрочишь?
Чего сложного-то? Умный дом у меня уже давно. Просто добавил ещё один компонент.
Если бы не было умного дома, сделал бы такую же систему на какой-нибудь Ардуине нано.
А вообще, штука получилась классная в плане поддержания свежести и сухости в санузле. Лучше, чем просто вентилятор.
Ну может быть, но ящитаю, что контроллер для этого слишком производительный, можно реле времени ограничиться.
Хвастаюсь. У меня пишет температуру из всех критичных мест, давление, влажность, включает выключает котел, следит за расходом воды и газа, включает выключает свет и контролирует концевики в некоторых местах. Нахуя? Не знаю, был кураж я сделал, сейчас только время на нем смотрю и изредка температуру на улице, остальное как бы есть.
Там смысл не во времени, а в мощности вытяжки, в зависимости от влажности. В спокойном режиме вентилятор работает на 10%. И плюс отдельная кнопка для турборежима с таймером после покака.
А что до мощности, пофиг, копейки стоит.
Выглядит довольно интересно.
Ебучая нейросеть выражается в триллион раз лучше тебя, блять. Позор человечества, нахой. Про симфонию даже не спрашиваю.
Сравнил бляд.
Гнилой мясной мозг 1 индивидума
И вершину человеческой мысли и сумму технологий заключеную в кремнии.
>И вершину человеческой мысли и сумму технологий заключеную в кремнии
И имитацию глазного нерва кошки, аключеный в кремнии
пофиксил
640x360, 2:19
До этого трогал только stm32 ARM
Вопрос: в дебаггере через USB JTAG встроенный в контроллер оно ТАК МЕДЛЕННО пошагово выполняется что можно чай сходить по пить - это нормально?
При этом к первому брэкпоинту прилетает достаточно быстро. Тормозит только пошаговое выполнение
Hart (Hardware Thread) и core (ядро) — это термины, которые часто используются в контексте процессоров и многозадачности. Вот их основные различия:
- Core (ядро): Это физический компонент процессора, который может выполнять инструкции. Процессор может иметь одно или несколько ядер, каждое из которых может выполнять свои собственные инструкции независимо от других ядер.
- Hart (Hardware Thread): Это аппаратный поток выполнения, который может быть запущен на ядре. В контексте RISC-V, hart — это минимальная единица выполнения, которая может выполнять инструкции. Один hart может быть ассоциирован с одним ядром, но в некоторых архитектурах одно ядро может поддерживать несколько harts (например, через гиперпоточность).
Таким образом, core — это физическое ядро процессора, а hart — это аппаратный поток выполнения, который может быть запущен на этом ядре.
===
Model: GPT-4o (Precise)
Чушь какая-то
Что за аппаратный поток выполнения? Может ли на одном ядре АППАРАТНЫХ потоков быть больше одного или меньше одного?
В очередной раз убеждаюсь что ардуинщики долбоёбы
А одновременно это всё работает? Как это из командной строки включить?
Понял, давайте уточним.
- Core (ядро): Это физическая часть процессора, которая может выполнять инструкции. Процессор может иметь одно или несколько ядер, каждое из которых работает независимо.
- Hart (Hardware Thread): Это аппаратный поток выполнения, который может быть запущен на ядре. В контексте RISC-V, hart — это минимальная единица выполнения, которая может выполнять инструкции. В большинстве случаев, один hart соответствует одному ядру.
В некоторых процессорных архитектурах, таких как Hyper-Threading в Intel, одно физическое ядро может поддерживать несколько аппаратных потоков (harts). В таких случаях одно ядро может выполнять несколько потоков одновременно, что позволяет улучшить производительность за счет более эффективного использования ресурсов ядра.
Таким образом, на одном ядре может быть один или несколько harts, в зависимости от архитектуры процессора.
===
Model: GPT-4o (Precise)
Да, на ESP32-C3 можно использовать USB JTAG для отладки и USB-консоль для вывода сообщений через один и тот же USB-порт. Это возможно благодаря встроенному USB-подсистеме в ESP32-C3.
Чтобы это настроить и использовать, следуйте следующим шагам:
1. Настройка среды разработки:
- Убедитесь, что у вас установлена последняя версия ESP-IDF (ESP32 Development Framework). Вы можете скачать и установить её с официального сайта Espressif.
2. Конфигурация проекта:
- В вашем проекте ESP-IDF откройте файл sdkconfig и убедитесь, что следующие опции включены:
plaintext
CONFIG_ESP_CONSOLE_USB_CDC=y
CONFIG_ESP_CONSOLE_USB_JTAG=y
3. Компиляция и прошивка:
- Скомпилируйте и прошейте ваш проект на ESP32-C3:
bash
idf.py build
idf.py flash
4. Использование USB JTAG и консоли:
- Для отладки через JTAG используйте openocd:
bash
openocd -f board/esp32c3-builtin.cfg
- Для подключения к USB-консоли используйте minicom, screen или любой другой терминал:
bash
screen /dev/ttyUSB0 115200
5. Одновременное использование:
- Да, вы можете одновременно использовать USB JTAG для отладки и USB-консоль для вывода сообщений. Просто откройте два терминала: один для openocd, другой для терминальной программы.
Эти шаги позволят вам настроить и использовать USB JTAG и USB-консоль на ESP32-C3 через один USB-порт.
===
Model: GPT-4o (Precise)
Да, на ESP32-C3 можно использовать USB JTAG для отладки и USB-консоль для вывода сообщений через один и тот же USB-порт. Это возможно благодаря встроенному USB-подсистеме в ESP32-C3.
Чтобы это настроить и использовать, следуйте следующим шагам:
1. Настройка среды разработки:
- Убедитесь, что у вас установлена последняя версия ESP-IDF (ESP32 Development Framework). Вы можете скачать и установить её с официального сайта Espressif.
2. Конфигурация проекта:
- В вашем проекте ESP-IDF откройте файл sdkconfig и убедитесь, что следующие опции включены:
plaintext
CONFIG_ESP_CONSOLE_USB_CDC=y
CONFIG_ESP_CONSOLE_USB_JTAG=y
3. Компиляция и прошивка:
- Скомпилируйте и прошейте ваш проект на ESP32-C3:
bash
idf.py build
idf.py flash
4. Использование USB JTAG и консоли:
- Для отладки через JTAG используйте openocd:
bash
openocd -f board/esp32c3-builtin.cfg
- Для подключения к USB-консоли используйте minicom, screen или любой другой терминал:
bash
screen /dev/ttyUSB0 115200
5. Одновременное использование:
- Да, вы можете одновременно использовать USB JTAG для отладки и USB-консоль для вывода сообщений. Просто откройте два терминала: один для openocd, другой для терминальной программы.
Эти шаги позволят вам настроить и использовать USB JTAG и USB-консоль на ESP32-C3 через один USB-порт.
===
Model: GPT-4o (Precise)
Извините за устаревшую информацию. Давайте обновим инструкции для использования USB JTAG и USB-консоли на ESP32-C3.
1. Установка ESP-IDF:
- Убедитесь, что у вас установлена последняя версия ESP-IDF. Вы можете скачать и установить её с официального сайта Espressif.
2. Конфигурация проекта:
- В вашем проекте ESP-IDF откройте файл sdkconfig и убедитесь, что следующие опции включены:
plaintext
CONFIG_ESP_CONSOLE_USB_CDC=y
CONFIG_USB_OTG_SUPPORTED=y
CONFIG_ESP32C3_USB_JTAG=y
3. Компиляция и прошивка:
- Скомпилируйте и прошейте ваш проект на ESP32-C3:
bash
idf.py build
idf.py flash
4. Использование USB JTAG и консоли:
- Запуск OpenOCD:
bash
openocd -f board/esp32c3-builtin.cfg
- Подключение к USB-консоли:
- Найдите устройство USB CDC:
bash
ls /dev/ttyUSB*
- Подключитесь к устройству с помощью minicom, screen или любого другого терминала:
bash
screen /dev/ttyUSB0 115200
5. Одновременное использование:
- Да, вы можете одновременно использовать USB JTAG для отладки и USB-консоль для вывода сообщений. Просто откройте два терминала: один для openocd, другой для терминальной программы.
Эти шаги позволят вам настроить и использовать USB JTAG и USB-консоль на ESP32-C3 через один USB-порт.
===
Model: GPT-4o (Precise)
Извините за устаревшую информацию. Давайте обновим инструкции для использования USB JTAG и USB-консоли на ESP32-C3.
1. Установка ESP-IDF:
- Убедитесь, что у вас установлена последняя версия ESP-IDF. Вы можете скачать и установить её с официального сайта Espressif.
2. Конфигурация проекта:
- В вашем проекте ESP-IDF откройте файл sdkconfig и убедитесь, что следующие опции включены:
plaintext
CONFIG_ESP_CONSOLE_USB_CDC=y
CONFIG_USB_OTG_SUPPORTED=y
CONFIG_ESP32C3_USB_JTAG=y
3. Компиляция и прошивка:
- Скомпилируйте и прошейте ваш проект на ESP32-C3:
bash
idf.py build
idf.py flash
4. Использование USB JTAG и консоли:
- Запуск OpenOCD:
bash
openocd -f board/esp32c3-builtin.cfg
- Подключение к USB-консоли:
- Найдите устройство USB CDC:
bash
ls /dev/ttyUSB*
- Подключитесь к устройству с помощью minicom, screen или любого другого терминала:
bash
screen /dev/ttyUSB0 115200
5. Одновременное использование:
- Да, вы можете одновременно использовать USB JTAG для отладки и USB-консоль для вывода сообщений. Просто откройте два терминала: один для openocd, другой для терминальной программы.
Эти шаги позволят вам настроить и использовать USB JTAG и USB-консоль на ESP32-C3 через один USB-порт.
===
Model: GPT-4o (Precise)
Хочу попробовать софтово реализовать. Но не могу нагуглить прмиеров
Есть один прошитый ESP32. Мне нужно сдампить с него прошивку и перелить на другой ESP32.
Это реально? Или я упрусь в шифрование?
Если включено шифрование, то упрёшься.
А так любой USB-UART покупаешь и дальше уже разберёшься. Если есть ардуина, можно её как USB-UART использовать, отрубив проц ресетом.
Начни с чтения фьюзов через espefuse.py из esptool.
Спасибо, анон!
>хотел подключить esp32 вместо z80, 8 бит на адрес и 8 бит данные
>ног дохуя
>только 14 можно использовать без ограниченй
нахуя так жить
На твоей пикче 18 ног можно использовать без ограничений.
Потом расскажу, если прокатит.
Хотел проанал-лизировать логику.
Но потом почитал что и прерывания ESP32 тянет только на 200кгц, да и навесить прерывание на каждый 16 пинов для достоверного детекта изменения состояний тоже невозможно.
Поэтому придется пердолиться с дампами традиционного анализатора логики, а контролер уже подключать когда уже девайс будет отреверсинжинтирен.
А потом расскажу.
Вайфай точно нужен, хочу часы сделать, из функций - тянуть время с локального NTP сервера, для этого вафля и нужна. Нужен так же точно олед дисплей и возможно пару тройку кнопок присрать, в идеале ещё написать софтину под ведро чтобы будильник настраивать, и получается тогда нужен динамик ко всему этому и возможно флешка чтобы там лежала мелодия будильника, но вообще пока хватит самого базовго 8266 думаю чтобы начать вкатываться, но если есть какая-то йоба которая не сильно дороже и в десятки раз удобней - рассмотрю её.
А ещё у меня есть VFD дисплей покупателя Posiflex PD-2800 на USB и его тоже хотелось бы присрать, например чтобы показывал погоду (можно с компа) или ещё что, типа текущий трек.
>Бери 8266, библиотек под него много написано, бери только не чистый, а на макетке типа node mcu.
Спасибо!
>Вскрывай смоьри что внутри
Позже отпишусь и расскажу.
Я сам с дивана, немного подрочил дисплеи с помощью 8266 и чата гпт.
Но вроде то что хотел получал.
Конечно! Давайте напишем код, который будет получать сообщения из Telegram и отображать их на дисплее 1602A с использованием библиотеки LiquidCrystal_PCF8574. Убедитесь, что у вас установлены необходимые библиотеки: ESP8266WiFi, WiFiClientSecure, UniversalTelegramBot, ArduinoJson, и LiquidCrystal_PCF8574.
Вот пример кода:
cpp
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <LiquidCrystal_PCF8574.h>
// Замените на ваши данные
const char ssid = "your_SSID";
const char password = "your_PASSWORD";
const char* botToken = "your_bot_token";
// Создаем объекты для работы с Wi-Fi, Telegram и дисплеем
WiFiClientSecure client;
UniversalTelegramBot bot(botToken, client);
LiquidCrystal_PCF8574 lcd(0x27); // Адрес I2C дисплея, может быть другим
unsigned long lastTimeBotRan;
void setup() {
Serial.begin(115200);
// Инициализация дисплея
lcd.begin(16, 2); // Дисплей 16x2
lcd.setBacklight(255); // Включить подсветку
lcd.clear();
lcd.print("Connecting...");
// Подключение к Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
lcd.clear();
lcd.print("WiFi connected");
// Установка проверки сертификатов
client.setInsecure(); // Только для отладки, используйте с осторожностью
}
void handleNewMessages(int numNewMessages) {
for (int i = 0; i < numNewMessages; i++) {
String chat_id = String(bot.messages.chat_id);
String text = bot.messages.text;
// Отображение сообщения на дисплее
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Message:");
lcd.setCursor(0, 1);
lcd.print(text);
// Отправка подтверждения в Telegram
bot.sendMessage(chat_id, "Сообщение отображено на дисплее", "");
}
}
void loop() {
if (millis() - lastTimeBotRan > 1000) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}
Этот код выполняет следующие действия:
1. Подключается к Wi-Fi.
2. Инициализирует дисплей 1602A через интерфейс I2C с использованием библиотеки LiquidCrystal_PCF8574.
3. Подключается к Telegram Bot API и проверяет новые сообщения.
4. Отображает полученные сообщения на дисплее.
5. Отправляет подтверждающие сообщения обратно в Telegram.
Не забудьте заменить your_SSID, your_PASSWORD, и your_bot_token на соответствующие значения. Также убедитесь, что адрес I2C вашего дисплея правильный (в данном примере используется 0x27).
===
Model: GPT-4o (Precise - good for facts or code)
Конечно! Давайте напишем код, который будет получать сообщения из Telegram и отображать их на дисплее 1602A с использованием библиотеки LiquidCrystal_PCF8574. Убедитесь, что у вас установлены необходимые библиотеки: ESP8266WiFi, WiFiClientSecure, UniversalTelegramBot, ArduinoJson, и LiquidCrystal_PCF8574.
Вот пример кода:
cpp
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <LiquidCrystal_PCF8574.h>
// Замените на ваши данные
const char ssid = "your_SSID";
const char password = "your_PASSWORD";
const char* botToken = "your_bot_token";
// Создаем объекты для работы с Wi-Fi, Telegram и дисплеем
WiFiClientSecure client;
UniversalTelegramBot bot(botToken, client);
LiquidCrystal_PCF8574 lcd(0x27); // Адрес I2C дисплея, может быть другим
unsigned long lastTimeBotRan;
void setup() {
Serial.begin(115200);
// Инициализация дисплея
lcd.begin(16, 2); // Дисплей 16x2
lcd.setBacklight(255); // Включить подсветку
lcd.clear();
lcd.print("Connecting...");
// Подключение к Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
lcd.clear();
lcd.print("WiFi connected");
// Установка проверки сертификатов
client.setInsecure(); // Только для отладки, используйте с осторожностью
}
void handleNewMessages(int numNewMessages) {
for (int i = 0; i < numNewMessages; i++) {
String chat_id = String(bot.messages.chat_id);
String text = bot.messages.text;
// Отображение сообщения на дисплее
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Message:");
lcd.setCursor(0, 1);
lcd.print(text);
// Отправка подтверждения в Telegram
bot.sendMessage(chat_id, "Сообщение отображено на дисплее", "");
}
}
void loop() {
if (millis() - lastTimeBotRan > 1000) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}
Этот код выполняет следующие действия:
1. Подключается к Wi-Fi.
2. Инициализирует дисплей 1602A через интерфейс I2C с использованием библиотеки LiquidCrystal_PCF8574.
3. Подключается к Telegram Bot API и проверяет новые сообщения.
4. Отображает полученные сообщения на дисплее.
5. Отправляет подтверждающие сообщения обратно в Telegram.
Не забудьте заменить your_SSID, your_PASSWORD, и your_bot_token на соответствующие значения. Также убедитесь, что адрес I2C вашего дисплея правильный (в данном примере используется 0x27).
===
Model: GPT-4o (Precise - good for facts or code)
Какие библиотеки? Я дисплей покупателя вскрыл, посмотрел микруху и закрыл обратно. Подозреваю что на 8266 без проблем можно присрать 232 через какую-нибудь микруху которая будет логические уровни фиксить, связь там односторонняя.
А скажи где искать, я сегодня только заказал всё, даже не в курсе какое IDE надо и как вообще это всё шьётся.
Больше.
Иди козе в трещену, ты предлагаешь нюфане, который только учиться мигать светодиодом, писать библиотеки?
Я из-за таких умников три года подходил к контроллеру.
>Иди козе в трещену, ты предлагаешь нюфане, который только учиться мигать светодиодом, писать библиотеки?
Ты, прежде всего, агрессивный долбоёб, а потом уже ньюфаня
Я имел ввиду что на процах с разной архитектурой в общем-то бегает один и тот же софт, написанный на C. Буквально тот же самый.
>Я из-за таких умников три года подходил к контроллеру.
Да и хуй на тебя
Он хотел сказать, что на ESP32 работают библиотеки, которые работают в ESP8266.
При чем здесь си?
Софт на расте не бегает?
Софт бегает в виде бинарных команд той архитектуры, которая реализована на процессоре.
Флиппер зеро на минималках за 2к? Как раз недавно думал о чем-то подобном - esp32 в нормальном корпусе с аккумулятором, мини экраном и всякими дополнительными примочками. Голые платы годятся для освоения микропистона или для конкретных проектов, а вот какого-то набора более общего назначения в удобном формфакторе нет. А оказалось, такое уже существует. Спасибо за наводку, уже заказал, будем посмотреть.
Впринципи, дело болие-лимение продвигается.
Правда заюзал ItsyBitsy M0 Express а не esp.
Купил разъебаный синтезатор маэстро с целью глубокаго моддинга.
Первым делом оригинальную прошивку и проц выпаял сразу нахуй, т.к. хз чо они там делали, явно что-то не то. За одно освободился логический элемент испод тактового генератора, которым времено зафиксирована палёная логика (справа внизу).
Путем долгого втыкания в схему, установил что для управления достаточно 9 линий адреса и 8 данных.
Написал сканер, который тупо перебирает всю шину и выдает на каких моментах меняется значние пробника, обнаружил координаты и способы записи шифт-регистров и счетчиков-делителей, которые выдают частоту каналов.
По архитекуре выяснилось, что проц управляет только аллокацией каналов и частотами, и даже арпеджиатор это внешняя приблуда на бобах с НЧ генератором, которая дергает импульсы на запуск каналов, а так же управление фильтрами и генераторами идет просто напрямую логикой с блока управления, что несколько усложнило челендж, но так даже лучше.
Обнаружил свободный канал на мультиплексере клавиатуры, на который можно повесить 12 дополнительных кнопок, доступных процессору, может пригодиться для замены части функционала блока управления, ну или напррямую приделаю что-то со своего нового контроллера, всеравно для индикации надо будет городить какие-то выходы, диодаме мигать.
>Купил разъебаный синтезатор маэстро с целью глубокаго моддинга.
У него нет MIDI? Занятно
Сам ищу коробочку-синтезатор на батарейках чтобы к миди клаве подключать. Наверное, телефон всё-таки буду юзать
>Не понел вопроса
Это ещё что - я ответа твоего не понял
Эта коробочка за деньги продаётся? Или можно самому повторить её?
>ответа твоего не понял
Загуглить не получилось?
Литерали коробочка, с минимальным питанием
https://www.ploytec.com/pl2/
Схемы нет в открытом доступе
Суть: ЧПУ-станок с большими токами. 10-100А. Ток управляется от ЦАП, задаёт референсное напряжение, а отдельный компаратор уже ШИМит как ему надо. Так вот, при включении тока эта еблоуёбина перестаёт читать флешку. Даже если 5А на самый малый режим включить - на пине MISO (gpio19) появляются помехи, он с какого-то хуя сам переходит в высокое состояние.
Уже и вешал сглаживающий конденсатор, и пробовал подавлять помехи пуллапом/пуллдауном, и прозванивал всё на предмет гальванических наводок, и жирные конденсаторы с диодом ставил по питанию - хуй. Даже засунул это говно в заземлённый медный ящик с крышкой - всё равно шина SPI умирает нахуй.
Пиздец блядь, похоже придётся этот собачий кал выкинуть и переезжать на другую платформу, и пердолиться с другой платформой непонятно сколько времени. Вот же сука ебучая.
Сейчас бы контроллер для кружка радиолюбителей использовать в коммерческой сфере.
Скажи спасибо что тебе станок не укакошело.
А разные режимы памяти пробовал? У тебя QIO?
Попробуй DIO https://docs.espressif.com/projects/esptool/en/latest/esp32/advanced-topics/spi-flash-modes.html
>Сейчас бы контроллер для кружка радиолюбителей использовать в коммерческой сфере.
ESP изначально коммерческий как и атмелы. Это любители сами их обнаружили и начали пилить самоделки.
Попробовал положить рядом вторую esp32 с тем же скетчем чтобы определить, с какого расстояния идут помехи. К ней на gpio19 подключён осциллограф. Запитал её через зарядку от телефона.
Оказалось, что если сборки воткнуты в разные розетки - помех нет. А если в одну розетку - помехи есть. То есть, каким-то неведомым образом помеха пробирается через мощные LED-драйверы, через все их толстые дроссели и сглаживающие конденсаторы, через 220v силовую линию, через зарядку, приходит на Esp32№2 и устраивает там блядские скачки.
Причём даже если выключить S1, оставив только косвенную связь по земле - на выключенной Esp32№2 эти помехи всё равно будут. И никаким другим способом эта помеха не ловится, нет её нигде ни на питании, нигде вообще.
Ну просто охуеть, прямо передача энергии по одному проводу какая-то.
>>564421
Это для внутренней флешки чипсета. С ней всё нормально.
У меня через обычную SPI-шину подключена SD-карточка.
>Это для внутренней флешки чипсета. С ней всё нормально.
А точно всё нормально? Чип не зависает?
У меня на кухне ESP8266 вешалась от искры электроподжига плиты.
Не зависает. Меню работает, экран работает, моторами шевелит. Только на внешней SPI непонятная хуйня творится. Причём даже на выключенном микроконтроллере, соединённом только землёй с блоком питания, который воткнут в ту же розетку.
Единственный вариант, при котором помеха почти не пролазит - загородиться индуктивностями с обеих сторон. К сожалению, толстых низкоомных дросселей у меня не было, и от 5v в последнем варианте остаётся 3.48v, и на загрузку микроконтроллера этого уже не хватает.
Хосспади, как же я манал это всё, просто интересно, сколько я ещё выдержу.
Может быть и ошибся. Есть предположения, где? Свои фильтры в LED-драйверах стоят, конденсатор по питанию есть, на наводку через паразитный конденсатор не похоже - помехи пролезают независимо от расстояния. Даже если пульсации утекают в сеть, откуда тряска на пине выключенного микроконтроллера? Причём только на определённом пине.
Авотхуй, оборудование полностью самодельное. Всё методом проб и ошибок по собственному горбу.
>Подумай, почему диды логику 511 серии в таких местах юзали, в чём её фичи.
Я как бы в курсе, что дубовая ДТЛ на биполярниках это вам не нежные КМОП, которые от малейшей статики самопереключаются и без предохранительных пуллдаунов не живут. Поэтому всё КМОПозависимое у меня предохранительными резисторами обмазано, и никаких проблем нет вообще. Вопросы только ко внутренней схемотехнике esp32, где эти защиты по-разному работают на разных пинах.
>Порридж познаёт земляные петли и ЭМ помехи?
А хренли тогда при соединении земли отдельной выключенной ESP32 с остальным устройством на ней начинается тряска? Второй проводник-то где? Если это паразитный конденсатор через воздух - значит он должен зависеть от расстояния и контриться заземлённым щитком, а этого не происходит. Если это униполярная ёмкость самого микроконтроллера, то не дохуя ли она огромная для таких спецэффектов? Там же доли пикофарады должны быть.
Ты совсем сказочный долбоёб штоле, тебе всё разжевать нужно?
Экранируй своё говно, экранирование заземляй. Используй гальваноразвязку для питания и управления. Остаточные помехи на GPIO подавляй RC цепями и TVS'ами.
Почему-то миллиарды тонн пром. оборудования с КМОП контроллерами и/или логикой работают без проблем, так что проблема только в твоих мозгах и руках.
>Используй гальваноразвязку для питания и управления.
Ты пизданулся? Сколько ему будут стоить оптопары для SPI?
Шизик, ты пром. контроллеры хоть раз в живую видел? Там все (или почти все) входы/выходы через оптопары, либо трансформаторы (наподобие ethernet). Смотри типовые реализации развязки для RS485. Это, блядь, БАЗА пром. аппаратуры.
>>ответа твоего не понял
>Загуглить не получилось?
Нет, всё засрано гуманитариями-музыкантами
>Литерали коробочка, с минимальным питанием
>Схемы нет в открытом доступе
А софт?
А есть полностью открытые подобные проекты?
>А есть полностью открытые подобные проекты
Хм а что там делать, я думаю любой школяр сможет настрогать на коленке за пару дней.
Есть микросхемы DCO - digitally controlled oscillator
Есть микросхемы из 90-х которые генерируют огибающие.
Вот например https://www.alfarzpp.lv/eng/sc/AS3310.pdf
Вообще там целые серии были микросхем для разных функций синтезаторов (я забыл как гуглить сорян, в какой-то статье про маэстро были указаны прямо номера и производители).
Можешь просто взять счетчик как в маэстро и делать меандр делителем (нужен вч базовый сигнал, можно взять с PWM).
Или новодел https://www.ericasynths.lv/shop/ics/as3394e-synthesizer-voice/
Пиздишь схему polyvoks filter потом приделываешь хуй к муравью осциялтор ну и т.п.
Или тру-варик как делаются современные синты в коробочках - мелкий микроконтроллер типа atmega плюс здоровенный ДСП чип огромный нахуй, в который уже контроллер заливает прошивку, где написано как считать твой синтез. Вариантов миллионы.
Если пока туго с пониманием, припаяй ФМ-чип от спектрума для начала.
https://diyelectromusic.com/2023/01/27/arduino-opl-fm-synth/
>esp32
>ЧПУ-станок с большими токами. 10-100А.
Радуйся, что жив остался.
Схороню пост и буду каждому уебану, который хочет эту платформу запихнуть вообще куда угодно, показывать. Были тут уже споры, можно это в станки или нет. Не ты ли за китайское нечто в управлении люто-бешенными ёбами топил?
>ESP изначально коммерческий как и атмелы.
Да ладно? Может лет 10 назад так и было. Сейчас у них всё в сторону упрощения разработки и вката.
В чём именно у тебя проблема? У меня дверной звонок музыку играет на ESP8266.
>большая вероятность отказа чипа сконфигурироваться на каких-то частотах
Вангую ты выставил слишком большое разрешение. Держи формулу максимального разрешения
>80000000/2^resolution
Если ты ставишь разрешение 8 бит, то
>80000000/2^8 = 312500
При 8 битах ты можешь выставить частоту максимум 312500 Hz.
Если ты выставил 16 бит, то
>80000000/2^16 = 1220.703125
Максимум можешь выставить 1220 Hz.
Ты какую частоту ставишь и какое разрешение?
Не, в низких частотах вообще фифти фифти, или сообщает ок но на выходе ноль например. Пробовал 200-500 гЦ
А вообще иди нахуй со своеё гпт хуйней, это я и без тебя знаю. Это я тебе сообщаю, что чип тупо не работает, а не спрашиваю твоей "помощи".
>Экранируй своё говно, экранирование заземляй.
Пробовал весь контроллер в заземлённую жестяную коробку засунуть, помеха есть.
>Используй гальваноразвязку для питания и управления.
Но гальваноразвязка ведь уже есть в блоках питания, разве нет? Алсо, трансформатор сам по себе от помех не страхует. Импульсный шум со вторички может утечь на первичку. Насколько я понял, надо ставить что-то вроде пикрелейтед сетевого стабилизатора напряжения с дросселями в оба конца и Y-конденсаторами на землю. Сегодня поискал такой стабилизатор в магазине в готовом исполнении - хуй, одно говно с единственным варистором продают. Помеха скорее всего синфазная, отчего её осциллографом не видно, и из-за какой-то внутренней особенности esp она уже внутри превращается в дифференциальную.
>>564498
Для SPI оптопары не нужны. Теоретически если изолировать питание контроллера достаточно жирными дросселями - помеха через них не проскочит. См.пик 2, зелёным обведена область, которую надо очистить от помех, остальное похуй. А вот аналоговая опторазвязка на ЦАП может понадобится. Там уже так-то стоит повторитель на ОУ, но хуй его знает, может помеха и через него пролезет.
>>564526
>Схороню пост и буду каждому уебану, который хочет эту платформу запихнуть вообще куда угодно, показывать. Были тут уже споры, можно это в станки или нет.
Смотря в какие. Если что-нибудь маленькое и не сильно искрящее, то почему нет?
>Не ты ли за китайское нечто в управлении люто-бешенными ёбами топил?
Не, я пока не настолько мегаопытный, чтобы предсказывать стабильность тех или иных контроллеров в боевых условиях. Может в аналогичных условиях и СТМку бы затрясло, хуй его знает учитывая, что сейчас под видом СТМки можно нарваться на китайский клон.
Потому что он ставится от помех из внешнего мира. А у меня силовая вторичка срёт на соседнюю управляющую вторичку. И будет срать через общую землю, если ставить дроссели на стороне первички.
Наверное лучше, конечно, их и туда, и туда поставить, чтобы помехами в розетку не срало.
>>564546
Ну значит придётся развязывать и остальные. Хуй знает, что с ЦАП делать, но аналоговые оптопары вроде существуют. На крайняк её и самому сделать можно из фоторезистора.
>>564547
Подходящей батарейки под рукой не оказалось, пробовал полностью изолировать микроконтроллер от силовой схемы (ток задаю вручную потенциометром) и запитать его от блока питания, воткнутого в другую розетку. В этом случае помех нет SPI работает.
Если соединиться с силовой схемой общей землёй - SPI не работает.
Если соединиться общей землёй через 2mH дроссель - SPI работает с перебоями. Где-то 50/50 запросов корректная инфа проскакивает.
Если воткнуть блок питания в ту же розетку - SPI не работает.
Ну и ебись сам.
И вот почему:
1) корпус мутнеет даже от жала паяльника у контактов, разогретого до 270 градусов, а от фена - тем более.
2) датчик отрыгивает от буквально любой херни - у меня шерстяной пидорас почти всё время лежит на столе, где лежит всякое радио-барахло. И после лёжки кота датчик отъехал со словами: "БРАТАН, ВСЁ! Я ОТЪЕЗЖАЮ НАХУЙ." Сука, даже отладочной плате похуй, а это говно умудрилось склеить ласты!
Блядь, наверняка, даже если мышь рядом пробежит, он сгорит нахуй.
Как итог - не определяется утилиткой i2cscan... Тупо пусто вместо адреса.
Купил этой херни ещё пару штук. Сука, если опять отрыгнёт - буду искать что-то другое.
Всё, я выговорился. Мне легче. Извините.
> не берите VEML7700 от Vishay.
> Купил этой херни ещё пару штук.
если оно так легко и быстро дохнет, то зачем покупать такое же?
> аниме на аватаре
... ладно, вопрос снимается.
А нахуй тебе он нужен? Им люксы считают.
А просто для освещённости подойдёт фоторезистор по цене семечек.
>... ладно, вопрос снимается.
Ого, кто-то сходу навешивает ярлыки.
Ну а предположить, что этот датчик - не один и уже есть готовая плата для тебя непосильная задача? Бывает. Выздоравливай.
>А просто для освещённости
Так освещённость в люксах и измеряется же.
https://ru.wikipedia.org/wiki/Люкс
>подойдёт фоторезистор
Мне ехать надо, а не вот это вот всё... Шутка юмора.
Какой АЦП можете посоветовать? Или встроенного хватит?
Пробовал, как гаписано здесь: https://esp32.com/viewtopic.php?f=13&t=5793&p=140934#p38567
Но всё время нули выдаёт...