IggyTech
46 subscribers
70 photos
17 videos
50 links
Привет! В этом канале делюсь опытом из мира электроники и программирования: как собрать отечественную игровую консоль, запрограммировать робота, настроить ci/cd. Также новости, мемы, ошибки - все в этом технодневнике

https://boosty.to/voryabchevsky
Download Telegram
Завел репозиторий, отладил плагин и потратил очень много времени, чтобы завести иконку. Думаю, утром выложу собранный плагин для vscode. Доработан функционал, чтобы просто вызывать нажатиями на кнопки (или привязать хоткеи), а именно:
- создание проекта
- тест, анализ и сборка под каждую платформу в psdk
- небольшой менеджмент девайсов
- настройка плагина, подписывание приложений

Как можно заметить, от первой демки есть некоторые различия, а именно переименованы кнопки и в целом более структурированное меню. Из ньюансов - работает только под этими вашими линуксами 🤷‍♂️ (на macos не смог завести psdk, виндус не нужон)

Исходники и релизы будут здесь. Давненько не делал для ✌️ ОС каких-то штучек. Надеюсь, каким-нибудь flutter разработчикам это поможет :)
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥31
Мой хороший друг и крутой RnD @Sphaera разработал (и поделился им) интересный девайс: электронная книга на базе RK3566 с кодовым названием Береста. За счет цветного eink он обладает большим временем самостоятельной работы, а процессор rockchip позволяет поставить практически любую ОС. Планирую поиграться, собрать туда пару вариантов ОС, ну и использовать по основному назначению, естественно.

По желанию вы можете приобрести аналогичный девкит (и поддержать разработчиков) в интернет-магазине: https://acodis.ru/raznoe/item/00000036895

Исходники и заметки по сборке от @neochapay:

https://github.com/beresta-opensource

https://github.com/beresta-opensource/kernel/wiki/Build-instuctions
6🔥3😱11
Сегодняшний вечер потратил на переустановку ВМ с coder и flutter-aurora (все еще качается psdk), чтобы проверить все что написал в статье. Теперь жду ответ и комментарии редактора и можно будет опубликовать 👉

И есть отличная новость: плагин теперь доступен из маркета vscode! Процедура в целом простая, но не очевидная. Однако, потратив немного времени и прочитав несколько страниц документации azure devops удалось найти идентификатор для публикации плагина из zsh. Осталось подождать 6 месяцев (и сделать персональный сайт) и можно попробовать получить зеленую галочку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉5
Протопад! Приблуда для отладки компонентов и софта игрового контроллера. За выходные запаяю пару экземпляров, раздам друзьям-разработчикам. Дальше останется верхнеуровневое ПО, но его сам хочу допилить со всеми фичами и косяками. За одно повторю как там эти всякие dbus и драйвера строятся 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52
2
С момента переезда в Питер у меня небыло домашнего стационарного компа и все время пользуюсь только ноутбуком (эчпочмакбук про). Это оказалось достаточно удобно: дома подкидываю thunderbolt из монитора, сразу цепляется клавиатура, трекпад и графический планшет. Вынул кабель, кинул ноут в рюкзак и поехал на встречу, в офис, etc. По необходимости— могу поменять ноут с интелом на аналогичный с армом и работать в аналогичном окружении.

Не смотря на то, что это модель 19 года, яблочная корпорация все еще выпускает обновления макоси. Но время от времени нужно обслуживать «железную» часть. Пропылесосить, продуть и заменить термопасту. В этот раз попробовал «фазовый термоинтерфейс». Производители заявляют, что эта пластина при первом повышении температуры заполняет все пустоты и царапины между кристаллом и теплоотводящими компонентами. Посмотрим 🤷‍♂️

Из забавного (тоже связанного с радиаторами) ловлю на материнской плате сервера ошибку b7. Нашел случайно на одном из форумов неочевидное решение — ослабить крепление радиатора процессора. Надо попробовать, потому что использовать ноутбук в качестве временного сервера уже становится практически постоянным решением
Please open Telegram to view this post
VIEW IN TELEGRAM
21
This media is not supported in your browser
VIEW IN TELEGRAM
За 5 секунд можно запаять целую плату! Осталось правильно нанести припой (попробую напечатать шаблон на 3d принтере), приделать выключатель термостола и можно массово выпускать платки. Сейчас потренируюсь на трекпаде, дальше контроллер робота ну и другие интересные штучки 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥1
Ошибка в 6000р!
Довольно кликбейтный заголовок, но это именно то, что произошло: я пропустил пару проводник толщиной 0.2мм и пришлось напаивать их руками. И если длинную перемычку запаял за минуту, то аккуратно подогнуть проводник, подставить его под qfp20 корпус (квадратик посередине) ушло пол часа работы под микроскопом. После выяснилось, что коммутатор работает в неправильном режиме, пришлось выпаивать чтобы просто отладить интерфейс. Для отладки — пойдет, но всю партию плат нужно переделать и перезаказать 🤦‍♂️

Сегодня запаял первую макетную плату для отладки контроллера (игрового и для робота). Там сильно больше компонентов, чем в трекпаде, но и здесь закрался косяк: не все компоненты были в наличии. Ну, хотя бы сам центральный микроконтроллер и подготовка питания готовы, а интерфейсы дело вторичное.
Please open Telegram to view this post
VIEW IN TELEGRAM
😱4🔥111
Остались мелкие доработки по плате контроллера и можно перейти к разработке устройств на его базе. Для упрощения на первое время решил собрать платформу для arduino ide. В целом, процесс не очень сложный. Но т.к. некоторые компоненты в стандартном wiring работают не очень оптимально, то буду прикручивать ядро от Алекса Гайвера. В целом, теперь получается полноценная отладочная плата, подключаемая к совместимым ide. Позже выложу исходники 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥511
Неожиданно: Разворачиваю Jupiter notebook на домашнем сервере. Чуть позже будут подробности 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥421
За вечер замутил программатор на подпружиненных контактах. Мелочь, но довольно удобно — нет необходимости паять разъем. Прошивка завершилась успешным провалом - нужно было сначала прошить с 1МГц генератора на внутренний 8МГц стабилизатор, а потом на кварц 16МГц, но я поспешил. К счастью фьюз блокировки не ставил (вроде бы 🤷‍♂️)

Параллельно развернул gitea на домашнем сервере. С каждым днем там все больше инструментов, так что еще запарился и поставил nginx с wildecard от let’s encrypt. Осталось настроить доступы и будет огромная сборочная среда для всяких там ОС.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥421
Сегодня пятница — в этот день недели в офисе выкладывают фотки своих животных 👉

Достигнут большой прогресс — программатор отлично прошивает, меняются режимы и частоты, даже записал загрузчик. Но в рамках проверки случайно прописал фьюз запрета записи по SPI, теперь нужен hv программатор 🤦‍♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥211
Наконец то поборол сборку загрузчика и прошивку в плату. Теперь можно быстро и удобно накидывать код даже с помощью стандартных функций для arduinoide. Ну или просто использовать optiboot для загрузки прошивки, а разрабатывать где угодно. Надо будет посмотреть, жив ли еще старый добрый codevisionavr, у него была поддержка отправки кода в arduino и другие совместимые stk500 платы.

Из интересного — наконец то попробовал кварцевый резонатор в smd корпусе и со встроенными емкостями. Если б микруха была сразу со фьюзами внутреннего генератора, тогда сразу можно было запаять и его, но приходится сначала костыль в виде провода делать.

Теперь можно запаять пины и пару интересных микрух, дописать наконец то код контроллера робота и тестовый для дополнительных чипов. И конечно же вернуться к коду консоли 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
Прошлый вечер потратил совсем не на разработку, а на отладку загрузчика, чтение документации и необоснованного желания получить все галочки соответствия стандартам Gitverse. Также обновил у себя в голове информацию о лицензиях (остался при мнении, что mit лучше, чем gpl).

Также пришлось вспомнить закон ома для расчета нагрузочных резисторов. Довольно бездумно было ставить одинаковое сопротивление на цветовые индикаторы разных цветов, но в рамках уменьшения номенклатуры деталей неосознанно сделал именно это. И к сожалению, это вообще резисторная сборка, так что придется на текущих платах сделать все светодиодны одного цвета. Ну или работать в солнцезащитных очках, потому что индикатор питания - ярко белый 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
31
Сегодня ощутил по-настоящему импортозамещение: искал проблему с китайской микросхемой в японском блоге, чтобы понять почему не программируется (более одного раза) российский чип 👉 Однако, добился больших успехов: optiboot получает по stk500v1 прошивку и успешно пишет ее в память. Следующий шаг — переписать avrdude (ну не консолью же заниматься). Мне кажется, что за пару дней разберусь как загружать прошивку с помощью системы на небезызвестной мобильной ОС.

В целом получается довольно интересно: из небольшой гипотезы выстраивается прикольный продукт. Хз, выйду ли с ним на рынок, но точно получил в свое распоряжение достаточно удобный инструмент. Осталось отладить стандартные функции, пару тестов и запаять пару версий для друзей.

Если у кого также возникнет проблема с ch340x: помимо 100нФ между ресетом чипа и dtr нужно еще и 4.7кОм между cts и dts.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43
Разработка документации к продукту (а особенно если это библиотека или api) — важный процесс в разработке ИТ решений. Он нужен не только для других разработчиков или аналитиков, но и вам: вернувшись к коду через месяцы, будет проще понять что делали и зачем. Большую часть документации можно вести прямо в коде, и для этого есть несколько удобных инструментов:
- Doxygen — генерация документации из комментариев в коде (поддерживает C++, Qt, просто C, Python, Java и др.)
- Sphinx + Breathe — для Python-проектов с возможностью подключения C++ кода
- Natural Docs — лёгкий генератор с простым синтаксисом
- CppDoc — минималистичный инструмент для C++
- MkDocs — генератор документации на базе md файлов.

И с наличием такого количества инструментов я удивлен, что некоторые компании не могут мне дать инструкцию к своему api. Я планировал переработать приложение подключения к приборам с новыми крутыми библиотеками, но “магии apple” не случилось. Грустно? Нет, это печально 🤦‍♂️ в конечном итоге отрефакторил свою библиотеку под qt, используя его нативные типы данных и сигналы и в целом пока хватит. Сейчас выясню через wireshark управление dts и полноценный аналог avrdude готов (хотя прототип на python уже работает).
Please open Telegram to view this post
VIEW IN TELEGRAM
🤷‍♂11
На короткий отпуск у меня были грандиозные планы, но я успел переключиться и отдохнуть. Единственное, что сделал: выложил ядро arduino для своей отладочной платы. Думаю, в будущем сделать аналогичное для 32битной МК. Также в планах допилить упрощенный загрузчик и собрать релиз под все платформы (даже windows, но через mingw)(да, под Аврору тоже, но до 5.2)

Как происходит подготовка платформы и ядра под arduino ide? Мой друг говорит, что для этого надо быть «жестким прогером», но в целом хватает понимания архитектуры микроконтроллеров и чтение кода: переписать регистры, протестировать функции и собрать загрузчик из исходников 🤷‍♂️ Схема, распиновка и интерфейсы у меня все есть - сам же плату рисовал. Для i2c надо будет немного пострадать, т.к. стандартный wire крайне прожорлив и избыточен (для трекпада уже приходилось его реверсить)

Но над заменой avrdude пришлось поработать: сначала найти описание stk500v1, затем тестовый код на python и тут столкнулся с проблемой на уровне железа. После этого уже довольно быстро переписал на родных плюсах и отладил. Осталось прокомментировать функции и пушить релиз 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22
Затягивает ли вас разработка решений так же, как и меня? Вчера прокомментировал объекты класса stk500 и наткнулся, что Doxygen может сделать MAN page (но это не тот самый man).

Есть во всех linux классная команда - man. Она выдает справку о том, как работает приложение, что оно делает, какие есть флаги, примеры использования и всю остальную информацию, которую хочет указать разработчик. И эта система справочного руководства имеет свой формат. В целом, он не сложный, но не очевидный. Забавный факт: формат не меняется с 2002 года. За часик накидал для своего решения полноценную справку. Теперь могу считать завешненным некоторый этап в разработке программ в linux. Осталось "причесать" репозиторий и сгенерировать релиз (ну и протестировать)
3
Не так давно накидал небольшой плагин для flutter разработки для Аврора ОС. Сам плагин доступен для установки в Visual Studio Code
Он реализует простенький менеджмент устройств, а также сборку и установку приложения на девайс. Вы можете внести свои доработки через pr в git
Подробне о том, как плагин разработан — читайте в статье на хабр
🔥11
В 2017 году на кафедре проходили обучение среде разработки LabVIEW. Тогда для меня это был настолько прорывной инструмент, что в 2019 году уже подготовился (на сколько помню, на уровень CLAD) и искал центры сертификации. Забавный факт: до EV3 были блоки NXT, для них как раз разработка была на labview. Раньше находил модули (в контексте этой среды) и для EV3 — эффективно, эффектно, но детям не объяснить.

С помощью этой среды успел написать несколько программ для управления манипулятором, алгоритмы обработки разных сигналов (в том числе — электромиографии) и какие-то тестовые драйвера. Скомпилированный софт был очень тяжелый (формально это не компиляция исходного кода, а сборка решения + интерпритатор), но работал быстро. Последнее, с чем успел поработать — модули myrio.

Так вот я почему вспомнил про эту прекрасную среду: это то же программирование обработки сигналов, и у него есть модуль экспорта в FPGA. Кто-нибудь пробовал?

Да, скоро займусь консолью, просто вот вспомнил
2🤯1