Zenembed
402 subscribers
83 photos
1 video
40 links
Новости, обзоры и анонсы одного блогера и фрилансера.

Блог: https://zenembed.com
Фриланс: https://work.zenembed.com

Вопросы, предложения: @zenls
Download Telegram
Одна из моих любимых компаний, продающих мне бесполезную хрень — M5STACK, представила новую отладочную плату. В этот раз она основана на ESP32P4 и выполнена в формате планшета, причём с возможностью подключения клавиатуры.

Я не знаю зачем, но я точно должен это купить.
🔥7😁5👎1
Всем привет! (Вероятно) вы могли задаться вопросом, куда я пропал и где же наигоднейший контент. Сегодня история будет именно об этом.

Учебные заведения в Германии гораздо более открытые, чем в России. Например, вы можете прийти в любую библиотеку и почитать любые книги, лежащие на полках. Единственное, их нельзя брать с собой, если вы не студент. Также вы можете стать "guest student" и посещать 1–2 предмета в семестре, и даже поучаствовать в сдаче экзамена. Именно в это я и ввязался.

Стать участником довольно просто: нужно найти нужный формуляр на сайте университета, подписать его у профессора (он не должен быть против), отправить обратно, и долго ждать. После этого вам дадут логин и пароль от личного кабинета студента, и можно официально учиться.

Я нашёл курс по проектированию RISC-V и цифровой схемотехнике на английском, потому что это именно то, что я преподавал в РФ, и было интересно посмотреть на разницу. Однако меня ждала подстава: то, что курс на английском, ничего не значит - семинары всё равно проходили на немецком. А ещё я залез немного глубже, чем следовало бы: через 2 недели мне нужно сдавать тест, а через 4 - презентовать групповой проект.

Вот с последним у меня и возникли проблемы. Я работаю в группе с тремя студентами. Идея такая - передача информации с помощью лазера через воздух. Конечно же, я взял на себя часть со схемотехникой, ведь я сеньор-помидор. Оказалось, что достичь 10 Mbit на 50-центовом ноунейм-лазере с Amazon и самом дешёвом пин-диоде - практически нереально. В итоге я потратил кучу времени на попытки заставить это работать, и даже не успел поиграться с FPGA и RISC-V. Кстати, кустарный прототип можно посмотреть на фото в посте.

В общем, данное приключение подходит к концу. Думаю, я ещё напишу, чем всё закончилось с экзаменом и проектом. Но главное - жизнь становится стабильнее, а значит, сейчас критическая вероятность появления нового годного контента.
🔥31🏆4👍2
Как-то совсем незаметно прошло очень важное изменение от ST. Теперь в CubeMX 6.15.0 есть полная поддержка CMake toolchain. То есть теперь при выборе Toolchain/IDE -> CMake ниже появится новый пункт Default Compiler/Linker, и там можно выбрать между GCC и Starm-Clang.

Для меня это крайне хорошая новость, т.к. теперь можно использовать всю инфраструктуру clang без необходимости думать о том, как подружить clangd со специфическими GCC-макросами. Наконец-то на контроллерах можно работать с единой экосистемой.

Я не успел ещё протестировать Starm-Clang, зато в старом конфиге (с GCC), что-то идет не по плану и обновление ломает генерацию кода. Если воспользоваться инструкцией из моей статьи, то код просто не будет собираться, с ошибками вроде:

error: implicit declaration of function ‘__LDREXW’
error: implicit declaration of function ‘__STREXW’


Это происходит потому, что в файле CMakeLists.txt не появилась очень нужная там строка:

# Include toolchain file
include("cmake/gcc-arm-none-eabi.cmake")


14 и 15 строки содержат два \n - как будто эти строки должны были появиться между ними, но что-то пошло не так.

В любом случае, проблему наверняка скоро поправят. А я думаю о том, чтобы написать третью статью из серии про работу с STM - в этот раз с акцентом на CMake toolchain и более глубокой настройкой clangd и clang-format.
11👍10
Я тут наткнулся на хакатон, для получения инвайта на который необходимо решить серию из 3х квестов. Сам он проходит под Берлином и скорее всего для вас инвайт не будет иметь ценности. Но сами квесты достатчно интересные и у меня решение заняло 3 часа. Так что если сегодня вечером вам нечем занятся, попробуйте себя в решении.
🤔3👍1🔥1
Что-то давно не было постов. Нужно исправлять.

Буквально на днях произошол очередной "инфобез момент". На этот раз, он не связан с хардварой, но от этого нечуть не менее потешный. Сейчас шкварится компания ESET. Они нашли первый в истории самовайбкоденый вирус. Идея в том что кто-ко завайбкодил вирус (на go) внутри которого есть шаблон lua скрипта и попадая к жертве данный вирус скачивает и запускает локально gpt-oss-20b и эта модель продолжает вайбкодить данный щаблон. Получается мето вайбкодинг.

Что делает эту ситуацию еще более забавной? Этого вируса не существует. Буквально. Есть только скрины ресерчера из ESET в твитере, скачать его подезасемблить и самим посмотерть нальзя. Зато есть его автор, которому мы конечно-же верим.

Это еще самое веселое. На сколько вообще тяжёлая gpt-oss:20b? Сами веса весят около 16 гигов и еще столько-же нужно видеопамяти. А наскольно быстро оно работает? на 5090 вроде ок, также на ноутах с 16gb VRAM обещают 15-25 токенов в секунду, а на Apple Silicon Macs with M2 Pro 20-30 токенов. На обычном компе буде 1-0.5 токенов в секунду, а я напоминаю что 1 слово это, в среднем, 1-2 токена.

И того, вирус попадая к вам сначала скачает 16 гигов с интернета, а потом загрузит вашу 5090 под 100 процентов чтобы самозавайбкодится. Вообщем будьте осторожны и тчательно следите за уровнем загрузки ваших RTX5090.
😁16🌚5
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня я расскажу, почему покупка Qualcomm Arduino ни на что не повлияет. И почему сама Arduino как концепция мертва уже лет 10, а сделать экзит с деньгами - лучшее, что руководитель мог сделать в своей ситуации.

Во-первых, вспомним, что было в самом начале. Arduino взлетела как удачный форм-фактор: вы могли быстро писать скетчи, не лезя сразу в чистый C или ASM. При этом авторы хоть сколько-нибудь сложных библиотек всё равно опускались на низкий уровень и мешали высокоуровневый код с С/ASM, как, например, тут. Это ужасно с точки зрения чистоты кода: библиотеки превращаются в свалку из миллионов #define под каждый контроллер. Но тем не менее это был самый простой способ доставить рабочий код конечному пользователю. Arduino помогала доставлять не только библиотеки, но и целые проекты. Самый яркий пример - Marlin. Очевидно, что сам проект разрабатывается не в Arduino IDE, но конечный пользователь, как правило, использует именно её.

Что происходило дальше? Партнёрство с Intel (2013–2017). Немногие вспомнят такие платы, как Arduino 101 (2015-2016), а также попытки в Arduino с Linux - Intel Edison (2014-2017) и Intel Galileo (2013–2015). Где они сейчас? Проблема была в том, что Intel обеспечила поддержку базовых ардуиновских функций, но внутрь платформы лезть было трудно: отсутствовала документация и примеры и ни кто этим не стал занимался. Не помогло даже то, что Edison раздавали пачками - у меня было 5 или 6 отладочных плат.

Спустя ещё несколько лет началась активная диверсификация (2018): стали появляться новые платы. Например, Arduino с FPGA - MKR Vidor 4000 (2018), Arduino с NB-IoT - MKR NB 1500 (2018), "промышленный" контроллер - Opta (2022). Особо никто не знает и не видел - и причина та же: хреновая поддержка по верхам и игнорирование потребностей энтузиастов на низком уровне (инструменты, драйверы, документация, отладка).

Последний по-настоящему массовый продукт - Arduino UNO R4 (2023). Можно наивно предположить, что по USB там есть встроенный отладчик, как на многих нормальных девбордах, но нет. Видимо отладка слишком сложна для пользователя. Если у Minima хотя бы есть разъём под JTAG, то у версии WiFi он вообще не выведен. Да, можно закостылить ESP32 как CMSIS-DAP, но что делать, если я хочу отлаживать код вместе с Wi-Fi-частью?

И вот мы в текущем дне: Arduino UNO Q (2025). Супер-переусложнённая плата с большими вопросами по поддержке. Работает как макбук: можно вешать Type-C-хаб для вывода видео и подключения периферии, все в одном type C. Прогрессивно, но что с низким уровнем и инструментами?

Подводя итог: UNO Q - новый Edison. Qualcomm не славится любовью к опенсорсу, и с большой вероятностью HAL окажется закрытым или полузакрытым - это быстро убьёт экосистему вокруг платы. Слишком высокая сложность тоже не сыграет на руку мейкерам, которые привыкли тыкать модули в гребёнку, не погружаясь в схемотехнику. А что касается самой Arduino, их новые сложные платы так и не встали на один уровень с классикой и, по большому счёту, никому особо не нужны. Идея супер-сложных ардуин с очень высоким уровнем абстракции мертва уже около десятилетия. Так что остаётся порадоваться за тех, кто заработал хорошие деньги перед тем, как всё само развалится.
🔥14👍32
Всем привет появилось желание написать что-то по поводу нового года. Этот год выдался не очень продуктивным с точки зрения контента, зато мне удалось чуть-чуть наладить жизнь за пределами интернета. Надеюсь в следующем году конткнта выйдет больше, посмотрим rust, zig в контексте микроконтроллеров, а также поковыряем RiscV и Zephyr os.

Вообщем всем с наступающем и надеюсь что следущий год будет хотябы немного лучше чем предыдущий.
🔥16👍63
В этом году в очередной раз посещаю Embedded World в Нюрнберге, и если вы где-то рядом то пишите, давайте кооперироватся.

ST кстати раздает бесплатные билеты.

Также постараюсь сделать посты если удастся найти что-то интересное непосредственно на самой выставке.
👍9🥰6🔥5
Многих интересовал вопрос, зачем нужно было в CubeIDE 2.0 вырезать CubeMX, и во время Embedded World я нашёл ответ.

Компания ST представила 2 новых семейства: STM32C5 и STM32V8. Первое -> это самый энергоэффективный микроконтроллер в мире, второе -> самый мощный (по производительности) контроллер от ST. Но важно не это, а то, что они не поддерживаются ни CubeMX, ни HAL. Для них теперь будут CubeMX 2 и HAL 2. Это не версии 2.0, это фундаментально другие продукты.

CubeMX 2 позволит не просто назначать пины конкретным периферийным блокам, а позволит подключать конкретные драйверы из списка поддерживаемых ST. Как я понял, основная идея именно в том, чтобы связать пакеты конкретной версии с определёнными пинами. Очень сильно поменяется интерфейс. Например, будет отображаться код непосредственно перед генерацией.

HAL 2 показался мне гораздо более интересным. Новый HAL должен стать минимальной обёрткой над LL, по сути, вызовы HAL будут объединением минимально необходимых функций LL.

Таким образом, CubeIDE должен поддерживать как первый, так и второй CubeMX, вот и причина. Я же очень с опаской смотрю на второй CubeMX: мне кажется, что в нём слишком много всего лишнего и что он действительно превращается в ардуино (мы берём рандомные библиотеки и наобум пытаемся их совместить). HAL 2 же, наоборот, мне показался очень интересным, скорее всего, я попробую полностью отказаться от CubeMX и перейти на чистый HAL. К тому же мне удалось пообщаться с человеком, который отвечает за архитектуру HAL 2, и он сказал, что CubeMX - фигня и настоящие мужики используют чистый HAL, у меня нет причин ему не доверять.

Сам CubeMX 2 должен выйти в релиз в ПН (16.03.26).
👍10🔥2👎1
Aus technischen Gründen muss der Kanal neu erstellt werden. Um dies in Zukunft zu vermeiden, ist der aktuelle Link zum Kanal ab sofort ausschließlich über unseren Bot verfügbar. Der alte Kanal ist nicht mehr aktiv und kann gelöscht werden.
Zenembed pinned «Aus technischen Gründen muss der Kanal neu erstellt werden. Um dies in Zukunft zu vermeiden, ist der aktuelle Link zum Kanal ab sofort ausschließlich über unseren Bot verfügbar. Der alte Kanal ist nicht mehr aktiv und kann gelöscht werden.»
Aus technischen Gründen muss der Kanal neu erstellt werden. Um dies in Zukunft zu vermeiden, ist der aktuelle Link zum Kanal ab sofort ausschließlich über unseren Bot verfügbar. Der alte Kanal ist nicht mehr aktiv und kann gelöscht werden.
Zenembed pinned «Aus technischen Gründen muss der Kanal neu erstellt werden. Um dies in Zukunft zu vermeiden, ist der aktuelle Link zum Kanal ab sofort ausschließlich über unseren Bot verfügbar. Der alte Kanal ist nicht mehr aktiv und kann gelöscht werden.»