Вы уж простите,может, сейчас так уже не принято, но статья написана полностью руками и без помощи LLM.

Как я уже писал в своей прошлой статье, дурная голова рукам покоя не даёт. Так что не прошло и месяца после завершения работы над звонком, как руки уже начали чесаться. И занятие им нашлось достаточно быстро...

Я пользуюсь MAD CATZ S.T.R.I.K.E. 7, которая всем чудо как хороша, кроме того, что вышла больше 10 лет назад, её производитель обанкротился в 2014 и её софт на Win 11 уже надо ставить с бубном. Все мы смертны, клавиатуры - тем более, так что я стал задумываться над заменой. Но проблема в том, что я привык к россыпи макроклавиш, которые позволяют одним нажатием, не задействуя мозг, переключать ветки гита, исправлять криво введённые команды или вбивать пароли в окошки по 15 раз за день (о боги хаоса, как я "люблю" параноиков-безопасников). А современные клавы имеют в лучшем случае 4-5 макроклавиш (что вдвое меньше, чем нужно), а некоторые ещё и стоят как приватный остров. И тут в унынии я наткнулся на это...

Прям мечта идиота...
Прям мечта идиота...

Искра, буря, желание... Не купить - нет, я старый пират и не знаю слова "заплати". А что если сделать нечто похожее, но чисто для себя и свои нужды? И я сел формулировать требования.

Требования к агрегату

  1. Во-первых, очевидно, программируемые макроклавиши. На которые можно назначить любое сочетание кнопок любой длины!

  2. То есть, железка должна уметь прикидываться клавиатурой, чтобы сыпать символы в любое поле ввода, где стоит курсор

  3. Впрочем, в "кошке" мне понравился тачскрин, который может использоваться для быстрого запуска экзешника, в который ему ткнули носом. Не то чтобы часто используемая функция, но почему бы и нет?

  4. ЭКРАНЫ НА КНОПКАХ!!! Потому что если уж я готовлюсь вбухать деньги, время и нервы в неизвестно что, оно обязано обладать вау-фактором, хотя бы для меня

  5. Профили. Клавиш мало, а команд много - надо иметь возможность их переключать за конечное время.

  6. Профили было бы неплохо хранить в памяти железки, да не оперативной - а постоянной, чтобы от драйвера на компе не зависеть полностью.

  7. Кстати, там же надо хранить и картинки для экранов.

Окей, тут плюс-минус понятно. Логично, что, кроме самого агрегата, мне нужна будет ещё и прошивка для него, и backend - как-то же надо ему клавиши программировать... Тут я слегка приуныл, но твёрдо решил, что в жизни надо попробовать всё, тем более если есть LLM!

Первые шаги

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

Окей, берём в оборот Gemini (почти полностью я пользовался им как ассистентом, лишь в конце спалил IP и попал в бан; пришлось перейти на DeepSeek) и начинаем подбирать части железки. И сразу выясняется, что кнопка с экраном стоит совершенно невменяемых денег, да ещё и хрупкая, как хрустальная ваза. Значит, кнопки и экраны разносим. Мозги мне посоветовали взять ESP32-S3-DevKit, так как ног много и, что очень важно, там два входа USB: классика с CH340 и прямой USB-OTG от чипа ESP. То есть устройство сможет прикинуться двумя разными USB устройствами одновременно: USB HID клавой, чтобы слать команды, и чем-то ещё, чьи сигналы от HID RAW я смогу читать с помощью софта бэка и обрабатывать (например, запускать что-то настроенное). Звучит как план, не так ли?

Итоговый BOM (Bill of Material) на этом этапе получился примерно таким:

  • ESP32-S3

  • Kailh Box White Owl Switch - 10шт (посоветовал ИИ вместо тактовых кнопок)

  • прозрачные капы под кнопки - 10шт

  • TZT 0,71-дюймовый круглый TFT LCD - 10шт (экранчики, достаточно небольшие, чтобы не раздувать габариты железки)

  • rotary encoder - 1шт (по задумке им можно будет переключать профили, крутя голову)

Вот такие вот экранчики

Схемотехника

Дальше надо было собрать саму плату. Так как опыта у меня в этом было немногим больше нуля, да и то - в теории (в ВУЗе было, я знаю правила разводки, про паразитные ёмкости-индуктивности и т.д.), а настоящего софта я руками ни разу не трогал, то мне было абсолютно всё равно, с чем начинать страдать обучение. ИИ посоветовал KiCad и там я реально прочувствовал всю кривую обучения.

Для тех, кто не в курсе: KiCad - это бесплатная программа "полного цикла" для разработки печатной платы. Там можно накидать элементы в принципиальную схему, соединить выводы, потом перенести это на саму плату и там подвигать элементы и провести дорожки, а особым бонусом идёт 3D модель устройства, на которой можно что-то прикинуть. И, как любая программа, близкая к профессиональной, она крайне недружественна к новичкам. Тут я чётко понимаю: если бы не терпеливый контекстный справочник в виде ИИ - я бы её не осилил и бросил проект.

В итоге я, с помощью Gemini, остановился на таком варианте:

  • два ряда по 5 экранов, под ними по 5 кнопок

  • под каждой кнопкой, в специальном вырезе - многоцветный адресный светодиод

  • сбоку от кнопочного блока - контроллер, снизу от него - энкодер

  • и где-то там на плате - два дешифратора (для выбора экранов. Вкратце: по 3 входам кодируются 8 выходов, экономит ноги)

Ну и дальше я начал накидывать принципиальную схему. Это оказалось просто - бери себе блоки из большой библиотеки да шлёпай на лист, да тяни между ними соединения. Или даже лучше - можно не тянуть, а просто поставить на коннектор лейбл, и KiCad будет считать всё соединённым без этих ужасных дорожек!

Вот примерно так это выглядит на принципиальной схеме
Вот примерно так это выглядит на принципиальной схеме

Ад начался позже. Как у наркодиллеров первая доза бесплатно, так и у меня после лёгкой части "накидай конструктор" началась фаза "сделай так, чтобы работало".

Чуть подробнее о схемотехнике

Осторожно, огромная страшная схема
Это скрин с рабочего, непричёсанного варианта
Это скрин с рабочего, непричёсанного варианта

У меня есть один контроллер с ограниченным набором ног. Памятуя борьбу за них с прошлым устройством, тут я применил мозги и пару хаков:

  • Экранов у меня 10, они управляются по интерфейсу I2C, который в обыкновении 4 пиновый. Хорошо то, что I2C по сути не точка-точка, а шина данных - то есть я могу повесить на неё все экраны, а выбирать, какой конкретно получает текущий пакет данных, путём обращени к специальному пину CS (Chip Select). Плохо то, что 10 CS пинов всё ещё надо откуда-то взять. И тут мы используем следующий пункт

  • Дешифраторы-демультиплексоры. Это микросхемина, которая позволяет превратить 3 выхода в 8. Точнее, N выходов в 2^N, просто в данном случае N=3. У неё три входа, по комбинации 0 и 1 на которых она однозначно понимает, какую из 8 выходов ей надо поднять. Это три входа (2 ряда по 5 экранов) и 3 управляющих сигнала на каждую микросхему... То есть 12 вместо 10. Вайб-инженеринг какой-то. Однако - тут есть лайфхак, который мне очень понравился своей хитростью.

  • Окей, у меня три линии, которыми задаётся адрес конкретной ноги дешифратора. И нужен выбор микросхемы. Но постойте! Экраны могут слушать СТРОГО по одному. То есть в каждый отдельный момент времени должна быть поднята СТРОГО одна нога из 10 выводов всех микросхем. Окей, разбираем даташит: входы управления - это элемент "И", причем один из входов инвертирован. Е1 и Е2 должны быть в 0, Е3 на 1 - и тогда и только тогда чип включается. Дальше просто: первая микруха с землёй на Е1 и Е2 и входом от ESP на Е3. Вторая микруха с Е1 на ESP, Е2 на земле, Е3 на VCC. Схема работы оригинальна:
    Три линии на задание номера ноги я привожу к обеим микросхемам сразу. Управляющий вывод с ESP тоже веду одной линией - тогда при 0 на нём работает одна микросхема, при 1 - вторая. То есть я элегантно сжал 12 линий до 4.

  • Второй лайфхак - на адресных светодиодах. Под каждой кнопкой стоит такой, WS2812 - потому что могу. Однако они требуют 5В питания (ну, то есть, можно и меньше, но не сильно), и порог считывания "единицы" по шине у них - 0.7 VCC. Что совсем немного, но превышает те несчастные 3.3В, которые может выдать на ногу ESP32. Городить конвертер уровней мне очень не хотелось, и тут ИИ подсказало отличное решение. Следим за руками:
    - питание на первый светодиод можно подать через диод. Который сожрёт свои 0.7 Вольта и отдаст дальше чуть меньше. По даташиту WS2812 такое проглотит.
    - у нас понизился VCC -> понизился порог детекции единицы. Диод видит команды от ESP
    - так как светодиоды адресные, команды подаются последовательно по цепочке. И - что важно - ретранслятором работает сам светодиод. То есть он дальше пошлёт "единицу" уже с напряжением своего VCC - то есть 4.3В. То есть дальше порог детекции мы перешагиваем автоматически.

  • Посмотрели на экраны, там, судя по всему, есть микруха, которая понижает напряжение до комфортных экрану 3.3В за счёт нагрева Вселенной. Решили, что можно чуть сколхозить и поставить отдельный DC-DC преобразователь 5В в 4В на TLV62569DBV - чтобы понизить тепловыделение каждого экрана. Там свои, достаточно жёсткие, требования по обвязке, а уж тому идиоту, который проектировал расположение ног микросхемы, вообще хотелось гвоздь в голову забить, но в итоге, надеюсь, игра стоила свеч

Инженерная боль
Знакомьтесь, микросхема. VIN и EN должны быть закорочены, это вход питания и ENABLE чипа
Знакомьтесь, микросхема. VIN и EN должны быть закорочены, это вход питания и ENABLE чипа
А это - футпринт микросхемы, где на одном слое ну никак нельзя провести дорожки между 1 и 4, не сломав какие-то другие (например, обратную связь или вывод). Пришлось делать с переходом между слоями, на ровном месте.
А это - футпринт микросхемы, где на одном слое ну никак нельзя провести дорожки между 1 и 4, не сломав какие-то другие (например, обратную связь или вывод). Пришлось делать с переходом между слоями, на ровном месте.

Футпринты

Те, кто работает с KiCad, знают о чём я. Те, кто не знают - счастливые люди. Если просто, то каждая деталь может быть выполнена в нескольких размерах (для поверхностного монтажа или для ТНТ - сквозь дырки), а также в разных форм-факторах. При таком раскладе плату с дорожками собрать нельзя - хрен знает, куда дорожки вести-то. То есть каждой детали на принципиальной схеме надо назначить этот самый футпринт - это её "физический отпечаток", на который ориентируется программа, где уже рисуется физическое расположение деталей. И мало того, что это достаточно муторно из-за количества этих самых электрических элементов - так и самих футпринтов немереное количество!

Шок-контент
Это малая доля футпринтов, фильтрованных по Button
Это малая доля футпринтов, фильтрованных по Button

И дальше начинается увлекательнейшее совещание с ИИ по каждому элементу - какой футпринт выбрать, а точно ли подойдёт, а вот скрин детальки из магазина, а посмотри. И ИИ включается в игру - "подойдёт, компилятором клянусь", "бери этот", "ой, хорошо, что ты внимателен, потому что я ошибся". Бонусом идёт потеря контекста из-за длительных бесед и необходимость следить за ним самому и напоминать, что мы тут вообще делаем. Забегая вперёд, скажу, что ИИ тут, с одной стороны, хорошо помог, с другой - его стало не по детски клинить - он по 3-4 раза отвечал на один вопрос, повторяя ответ в каждом следующем посте, пока я его не прерывал. Ну и постоянно меня подгонял в работе. Конечно, это не "шершавый кабан", но давление я ощущал.

Примерно в этот момент ИИ сказал, что можно вместе с изготовлением платы заказать и монтаж элементов. Мне понравилась эта идея: я с ТНТ могу сам справиться, а вот с SMD опыта нет, ещё пережгу всё да и потеряю половину. То есть футпринты мелочи меняем на SMD, заодно и размер плат уменьшится. Сплошные плюсы! То есть прошлый абзац повторяем ещё раз.

Естественно, такое изменение потянуло за собой другое: если я хочу купить детали, мне надо указать какие. Слава Кхорну, есть общая база LCSC, которой пользуются китайские изготовители. Там ищешь подходящую деталь, копируешь артикул и... К каждой детали добавляешь кастомное поле LCSC и туда его вставляешь. Предварительно обсудив с ИИ, конечно. Ещё минус пара дней.

Гладко было на бумаге...

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

Потом оказалось, что у меня везде разные напряжения, надо согласовывать уровни. Потом посчитали токи - выяснили, что DevKit банально сгорит от такого количества экранов, надо отдельный вход питания и DC-DC преобразователь для железа. Которому тоже нужна обвязка, которой нужны футпринты, которым нужны LCSC... Сказка про белого бычка, которая заняла у меня ещё кучу времени. Отдельным весельем было то, что для модулей TZT готовых футпринтов нет, пришлось колхозить и собирать их самому. Потому что иначе вполне был вариант получить плату, в которую элементы просто не влезут...

Внешний вид самой платы

Итог: под каждым экраном стоит фильтрующий конденсатор на 100нФ, который сглаживает фронты и чуть режет наводки. Под кнопками - WS2812, на кнопках там специальное углубление и стекло сверху, чтобы красиво световодить на колпачки. Левый верхний угол: сверху посадочное место ESP32, снизу - USB-C для питания от 2А блока.Обратите внимание на диаметр дорожки, она рассчитана на большой ток - под 2А обычные дорожки долго не протянут. Точнее, такое токи - это пиковые, когда все экраны с яркостью 100% постоянно что-то отрисовывают, диоды горят и всё моргает как ярмарка на карнавале. В реальной жизни у дисплеев есть свой контроллер, который поддерживает последний отданный им кадр (тут и далее - со слов Gemini) и в покое это ест куда меньше тока.

Сразу под ESP стоит мегабанка конденсатора в 470мкФ, который работает буфером по входу питания - такой ёмкости вполне хватит, чтобы сглаживать пульсации по питанию, если таковые будут. Рядом с ним тот самый DC-DC с обвязкой, а совсем внизу - поворотный энкодер, шапка которого будет торчать и который я буду постоянно задевать руками при работе. Между рядами экранов стоят дешифраторы. Стоят криво, т.к. я пытался уменьшить количество переходов со слоя на слой, но в какой-то момент этот тетрис меня добил и я сдался, оставив так. Наверняка можно было сделать лучше, но я сломался.

Физический слой

Когда, наконец, я закончил с принципиальной схемой, пришло время того, что я считал интересной частью - расстановка элементов на физической модели платы. Тут как раз уже ключевая роль футпринтов - они моделируют физические размеры элементов. И тут были свои подводные камни и своя часть KiCad, к которой я был не готов и которую тоже пришлось изучать с нуля. Всплыло много нюансов физического расположения: те же конденсаторы (которые нужны для фильтрации помех) нужно располагать максимально близко к деталям, а у DC-DC вообще жесткие требования к обвязке - например, ему нужна индуктивность, которая стоит вплотную к ногам, не далее 2мм, а то он будет глючить. То есть началась игра в пятнашки - как расположить это всё на маленьких пятачках, да так, чтобы ещё и дорожки к этому не превратились в спагетти. Параллельно я пытался расположить экранно-кнопочный блок максимально компактно, не превратив его в аэродром - благо, в программе есть возможность распечатать плату в размере 1:1. Первые ревизии были размером с А4, что было откровенно многовато. Но мне было страшно двигать вслепую, так что я таки дождался, пока ко мне приедут экраны и кнопки и, расположив их на распечатанной плате, примерялся уже на реальных физических обьектах. В итоге плату я сжал до 17см х 13см, что вполне уже можно назвать "компактной" - даже двух ручек для переноски нет. Но в процессе сжатия я допустил типичную ошибку новичка: сначала развёл половину платы. Как потом оказалось, KiCad не умеет при переносе элемента менять геометрию проложенных дорожек. А то, что умеет - лучше бы не умел, так как получается лапша и пересечения. Пришлось всё удалять и разводить снова, когда элементы были уже зафиксированы на местах.

Я умный, я у мамы инженер. Я учился проектировать микросхемы на кафедре микроэлектроники, где нам с придыханием рассказывали про автотрейсеры, которые по оптимальным алгоритмам разводят дорожки на девайсах. Конечно, я решил, что поищу такой - ибо ручной труд есть зло великое, и вообще, кто из нас не отлаживал 8 часов скрипт, который за 5 минут делает то, на что без скрипта ушло бы 4 часа? Так вот, автотрейсеры - крутая штука. С ними ты понимаешь, что работы-то не так и много было. Примерно 70% они разводят круто. Остальное - как получится, с пересечениями с другими дорожками, о чем, конечно, признаются и просят поправить руками... чего я и хотел избежать. Не знаю, может, это мне так не повезло, но после двух дней попыток я плюнул и дальше всё раскидывал руками. Этот процесс занял у меня около двух недель периодической работы по вечерам.

С габаритами железки тоже были приключения. Стандартные штыревые разьёмы торчат почти на сантиметр, мне этого не хотелось. Посовещался с ИИ, решил брать цанговые - это очень низкие с пружинным зажимом внутри. В теории - хороший контакт при компактных габаритах. Я специально спросил, подойдёт ли в "маму" стандартная гребёнка, получил ответ, что да. Конец немного предсказуем. Ну и бонусом поймал биполярку от нейросети:
(Я): С цангой не вышло, надо папу цанговую брать.
(ИИ): Нет, это очень плохая идея, ужаснее быть не может, ни в коем случае не делай этого!
(Я): Но у меня компоненты пока не распаяны, я им ноги любые могу присобачить
(ИИ): Это самая лучшая идея, которую ты мог придумать, срочно патентуй и обязательно делай именно так!
(Я): Значит, займусь пайкой цанг
(ИИ): Нет, ты что, пайка опасна, не вздумай!..
и так далее.

Заказ платы

Проектирование - это хорошо и весело, но мне нужно было железное устройство в руках. Ранее можно было заказать напрямую в Китае, на заводе - но в 22 году что-то случилось и с РФ они более не работают - хотя у некоторых даже страницы на чистейшем русском языке сохранились. Я выделил несколько вариантов изготовления:

  • заказ у российских изготовителей (они, конечно, есть, мало ли - вдруг будут нормальные условия)

  • заказ у авитовских "посредников" и "решал"

  • заказ в Китае напрямую (чем чёрт не шутит)

Результатами калькуляций я был не то чтобы ошарашен, но достаточно сильно удивлён. Конечно, я не буду приводить никаких имён и названий, просто приложу несколько скриншотов с комментариями, которые говорят сами за себя. Да, этот раздел будет очень короткий и грустный.

Расчёт отечественного производства

Первыми откликнулись отечественные производители. Тут всё очень не демократично:

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

То есть это было уже 11 килорублей, без учёта (пока) стоимость самой SMD рассыпухи. Дальше я диалог с ними продолжать не стал - это кардинально выходило за рамки хобби-проекта.

Посредники

Посредников на Авито достаточно много, есть из чего выбирать. Однако квалификация их вызывает некоторые вопросы. Например, общеизвестно, что JCLPCB требует в файле с картой расположения деталей определённых имён колонок и эти имена отличаются от стандартной выгрузки из программ проектирования. Поправить это - минута, но нет - один из посредников предпочёл 15 минут общения о том, что ничего не загружается на сайт, а не минутную правку хедера CSV файла.

Тот самый посредник. Самое весёлое в том, что тут мы договорились о том, что с монтажом и элементами будут только 2 платы из 5 (минимальный заказ), т.е. я получаю 2 устройства и 3 голых платы. Шоб я так жил!
Тот самый посредник. Самое весёлое в том, что тут мы договорились о том, что с монтажом и элементами будут только 2 платы из 5 (минимальный заказ), т.е. я получаю 2 устройства и 3 голых платы. Шоб я так жил!
Второй посредник был интереснее, как и его КП. Интересно было то, что КП я получил примерно через неделю ожидания, хотя первоначально срок был 1-4 дня. Но стоимость всё равно не очень, это почти 15.5к рублей по курсу. Впрочем, на фоне аппетитов других ребят с этим уже можно жить.
Второй посредник был интереснее, как и его КП. Интересно было то, что КП я получил примерно через неделю ожидания, хотя первоначально срок был 1-4 дня. Но стоимость всё равно не очень, это почти 15.5к рублей по курсу. Впрочем, на фоне аппетитов других ребят с этим уже можно жить.
Прямой выход на Китай

Оказалось, что китайцы как бы и не работают с нами, но как бы и бабло терять неохота, потому на Алиэеспрессе есть обьявления о создании печатных плат. По паре таких я и пробежался. Один из вариантов меня не устроил тем, что они не смогли в BOM и предложили голые платы, хоть и дёшево. Второй же продавец задал один уточняющий вопрос про изготовление и сам же на него ответил. Вот его предложение:

И сверху ещё $5 за доставку. То есть самое дорогое тут - это пайка, сами компоненты можно даже не учитывать. То есть с комиссией самого алика у меня пять плат вышло порядка 10 килорублей. Всё ещё больно, но уже терпимо.

До этого я иногда задавался вопросом, зачем кормить китайские фабрики, если есть свои. Теперь все вопросы такого рода отпали. Простите, парни, если читаете тут о себе, но вы охренели.

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

My little PCB
Ну разве не милашка?
Ну разве не милашка?

Сказал, что ещё пара дней на пайку и всё будет отправлено. И, через четыре дня, Почта России обрадовала меня оповещением "Принято в отделении связи". В целом, общение с заводом оставило приятное впечатление, так что я, видимо, стану эпизодическим их клиентом.

Первое включение.

Думаю, все, кто читал статью, догадывались, к чему шло. Да, я получил персостатейный реальный нейрослоп - плата не стартовала. Где-то было КЗ между землёй и питанием. Это на всех пяти платах, то есть ошибка системная. Более того, две из пяти при включении выпустили волшебный дым и работать не стали совсем.

Вот тут и приходит отрезвление. Когда работаешь с нейронками с кодом, всегда есть мысль "осталось чуть-чуть, поправлю позже". При работе же с реальным железом приходится принимать, что вот сейчас - всё, отдаём в печать, все риски фиксируем. И проблемы - тоже фиксируем. И виноват в этом ты сам.

Вот тут и пригодилось то, что я устройство сам проектировал, своими руками. Проблема оказалась где-то в каскаде DC-DC преобразователя, который, по большому счёту, нужен как рыбе зонтик. Если аккуратно сдуть феном его компоненты и закоротить дорожки входа и выхода, пустив 5В там, где должно было быть 4В - то всё начинает работать. Да, и лайфхак с "диод на входе в светодиод" тоже не нужен - и без него всё прекрасно работает. Единственное, что пригодилось - это дешифраторы, они завелись с первого раза.

Вот так выглядит клавиатура в сборе без корпуса

Да, я капитально ошибся с футпринтом от ESP. Потому он стоит в форме отставного кавалериста.

Финал и выводы

Сейчас я держу в руках первую настоящую самостоятельно сделанную плату. Да, не совсем мною - мог бы и ЛУТ, например, использовать - но тем не менее. Ощущения непередаваемые. В айтишке, с бесконечными ямлами, двиганьем пробелов и фокусом на "код как код" постепенно пропало это чувство, когда делаешь что-то руками и потом этим гордишься. Штош, в случае, если волна увольнений доберётся до меня, я знаю, куда мигрирую.

Ну и по выводам: в отношении "не-кода" LLM сейчас не более чем слегка интеллектуальный справочник, который ещё и глючит напропалую. За которым ещё и перепроверять надо, если не хочется сюрпризов. Может, код он пишет и хорошо (лол, нет, я пробовал и об этом будет в следующих частях), но в проектировании ситуация ещё хуже. Хотя бустит он, конечно, сильно - из-за эффекта "низкого старта". Мне не пришлось сначала пару месяцев ковырять справочники, потом ещё полгода знакомиться с софтом - я сразу приступил к реализации идеи. Помогает не перегореть в процессе.

В следующей части будет о приключениях с написанием софтовой обвязки. Статьи писались kinda параллельно, так как с платой циклы ожидания долгие, да и переключаться хотелось иногда, так что возможны скачки и рваное повествование. Вас предупредили. Оставайтесь тунцом..

UPD: Уже не плату, а устройство. Печать корпуса - отдельная сказка для взрослых, но в итоге - вот оно. Ссылки на гитхаб проекта будут во второй статье.

Моя прелесссть...

Комментарии (2)


  1. Tomasina
    26.05.2026 07:08

    Задолго до SteamDesk был Оптимус от Лебедева, в различных вариациях клавиш. И они более функциональны.


    1. Cib0rg Автор
      26.05.2026 07:08

      О, воспоминание разблокировано, да. Идея-то, в целом, не нова ни разу. Но спустя столько лет они остались только на Авито и не ясно в каком состоянии.
      В любом случае - спасибо, что напомнили, что есть и такой вариант.