Понадобилось тут использовать эту плату для некоторого функционала и надо на ней веб-сервер замутить, но чтобы работала как АР. Так вот оно не хочет- то как АР не видится, то авторизоваться(подключиться) по wifi к ней невозможно. Даже ардуиновский пример WiFi server не работает, а выдает в консоль E (3369) phy_init: store_cal_data_to_nvs_handle: store calibration data failed(0x1105) или просто зависон платы непонятно где. Гуглеж по этой теме ведет глубоко в использование Esp-IDF, esp_phy_erase_cal_data_in_nvs() и снижение мощности передатчика, я там несколько закопался и выплыть с рабочим результатом не могу. Что б такое сделать, чтобы она таки заработала в качестве АР из среды ардуинки?
#define ESP32_WIFI_TX_POWER WIFI_POWER_8_5_dBm прописывал - не помогло. Спасибо за советы, коли такие будут.
5 месяцев назад я начал делать кубик с экранами. В итоге получилась целая платформа для игр с уникальными механиками и планами на годы вперёд.
Снял большой обзор на 50+ минут, где показываю всё: железо, игры, концепции и идеи на будущее. Для тех, кто не готов к такому формату — ниже краткая выжимка.
Что внутри
Железо:
ESP32-S3 с 8 МБ PSRAM памяти
6 экранов 240×240 (1.55 дюйма каждый)
Две батареи по 900 мАч
SD-карта на 32 ГБ
Акселерометр для управления
Габариты: 58×58×58 мм, вес ~180 грамм. Помещается в карман куртки.
Что уже работает
Змейка 6D — классика, но на всех гранях куба. Управление наклоном. Когда змейка занимает 3-4 грани — начинается настоящий хардкор.
Слот-машина — трясёшь куб, картинки крутятся. Резкий рывок — останавливаешь нужную линию. Можно выбивать редкие комбинации своим скиллом, а не чистым рандомом.
Алхимия — та же слот-машина, но иконки соединяются по формулам. Например, вода + огонь = пар.
Генератор картинок — для настолок. Потряс куб — показались локации, персонажи или артефакты. Вместо скучных цифр на кубике.
Главная идея
Это не замена телефону. Телефон — это вся жизнь: звонки, мессенджеры, всё отвлекает. Куб — как Nintendo или Steam Deck, только для другого опыта.
Управление жестами даёт то, чего нет на сенсорном экране: ты физически влияешь на результат. Например, потряс сильнее — раскрутил барабан быстрее. Наклонил точнее — поймал нужный момент.
Что дальше (некоторые из идей)
Лаунчер — система выбора игр, как на обычной консоли.
Блочная система — модули, из которых собираются игры. Также можно настраивать игры через простое редактирование файлов на карточке памяти. Хочешь свою змейку с драконом вместо квадратиков? Закидываешь картинки в папку и готово.
Wi-Fi связь между кубами — PvP, совместные мини-игры, синхронные действия.
Тамагочи — шесть комнат, питомец перемещается по кубу, мини-игры на кормление и уход.
Bluetooth-контроллер — куб как руль, джойстик или устройство для 3D-моделирования.
Коротко — как я уперся в потолок железа на 20 FPS, снова обломался с зарубежными знаменитостями, внезапно получил репост от AlexGyver и оформил основу своего рендер движка.
В октябре была собрана первая партия из 10 кубов, изучены конкуренты и реализована первая рабочая концепция. Ноябрь же стал месяцем глубокого погружения в программную часть, битвы за каждый FPS, некоторого разочарования в нейросетях и неожиданного успеха.
Пристегнитесь, это был тот еще месяц.
Глава 1. Погружение в оптимизацию и битва за каждый FPS: фризы, гонка данных и потолок железа.
1-11 ноября.
Начало месяца прошло под знаком войны за производительность. Каждый шаг в разработке кубика упирается в нужду в глубокой оптимизации. Вроде бы в ESP32 есть целых 8MB "быстрой" памяти (PSRAM), но ее реальная скорость — всего около 20MB/s при стандартных настройках. Когда нужно на 6 экранов протолкнуть данные (а это по 112 КБ на каждый кадр, итого почти 700 КБ каждую долю секунды), мощный процессор вместо полезных вычислений начинает заниматься тупым переливанием байтов.
Поначалу я пытался решить это с помощью нейросетей, объясняя им свои идеи про параллелизм. Но как спросишь, так и получишь — ИИ выдавал полурабочий код, и стало ясно: придется самому, по старинке, разбираться с семафорами и мьютексами.
И это дало первые результаты. Сделал класс для перелива данных в фоне и запустил имитацию тяжелых расчетов : последовательное выполнение (перелив + математика + рисовка) дало 15 FPS. А вот параллельное (заливка в фоне + математика + ожидание) — уже 18 FPS на ВСЕХ шести экранах. Уже что-то. Процессор чилил и ждал, пока зальются буферы, а значит, в это время он мог делать что-то полезное.
Следующим шагом стало копание в настройках железа. Оказалось, что можно поднять скорость копирования памяти почти вдвое, с 18 до 40 MB/s! Это был прорыв. Судя по замерам, показ на всех 6 экранах теперь выдавал 25 FPS. Забавно, что этот микроконтроллер для DIY-поделок превращается в карманную игровую машину.
Прикрутил чтение PNG-файлов для фонов и спрайтов с хромакеем и запустил тест с бегающими картинками.
Но радоваться было рано. Появились небольшие фризы и вообще началась “гонка данных” — некоторые экраны, похоже, получали не те данные, показывая артефакты. Вдобавок, один из экранов начал подтормаживать, видимо из-за длинного сигнального провода. Пришлось снижать настройку размера пакетов данных на экраны.
Да, я знаю, что “стабильные 20 FPS” в 2025 году звучит как начало плохого анекдота. Но для микроконтроллера ESP32, который в реальном времени перезаписывает картинку на шесть экранов, это та самая маленькая инженерная победа. А для экспертов по Crysis на калькуляторах — отличная тема для комментариев =)
Глава 2. От хаоса к системе… и обратно. Архитектура, сложность математики и рождение основы рендер движка.
7-26 ноября.
Пока шла борьба за FPS, я параллельно пытался превратить хаос в коде в осознанную систему. Начал разделять код по файлам, выносить константы, все по фэн-шую. Добавил обработку TTF-шрифтов, которые библиотека сама переводила в 4-битный растр.
И в какой-то момент я понял, что то, что начиналось как драйвер для железа, превратилось в нечто большее. После долгих мучений с архитектурой, конечными автоматами (привет, универ!) и руганью с нейросетями, я наконец-то собрал рендер-движок v0.1. Это уже полноценная система на десяток классов.
Вот первая анимация на полном движке. Не особо зрелищно, но оно работает.
Но путь к движку был тернист. На нем меня поджидала «Змейка»… и ее проклятая математика. Прикрутить текстурки к змейке было легко, а вот заставить их правильно поворачиваться на изгибах — оказалось не простой задачей. Я, понадеявшись на ИИ, раз 20 получал от него разные формулы поворота, и каждый раз получал какую-то дичь. Придется снова, как в старые добрые времена, обклеивать куб бумажками и выводить все формулы вручную.
А потом, проверяя, сколько RAM жрет “Змейка”, увидел, что на некоторых этапах съедается почти вся память! Ее всего-то 270 КБ в сумме. Оказалось, PSRAM нельзя напрямую отправлять на экраны, данные все равно сначала копируются в основную RAM память. Пришлось снова переписывать ядро драйвера экранов.
Еще поколдовал с паралелелизмом. PSRAM конечно прям достанется =) Все функции в коде её хотят и дерутся за неё. В общем, всё та же цифра в 18-20 фпс это потолок.
Глава 3. Маркетинг: погоня за звездами и неожиданный успех
5-20 ноября
Иногда от программирования ядра тошнит. Хочется не на буковки и циферки смотреть на экране компьютера, а делать шоу. В ноябре продолжил свой принципиальный квест: достучаться до Viva La Dirt League. Reddit забанен, мейл они не читают. Пришлось делать не по изначальному плану: создал комиксы про них и начал бомбить сторисами с отметками всех актеров. Результат: один из топов глянул и… промолчал.
Провал с VLDL меня не остановил. Я переключился на Critical Role, у которых как раз намечалась премьера нового сериала. План тот же: комиксы, видео с кубиком, отметки. И снова — полная, оглушительная тишина. Никто из топов даже не посмотрел.
НО, внезапно, алгоритмы соцсети бустанули мой пост с комиксом))
Поняв, что пока что стучаться к зарубежным миллионникам - не лучшая стратегия, я решил найти своих звезд здесь. Переключился на ту аудиторию, которая говорит со мной на одном языке — на DIY-сообщество.
План был простой:
Сделать контент, который поймут и оценят именно гики и инженеры. Так родилась идея “гача-игры”, из которой выпадают не мечи и щиты, а провода, электронные модули и тд.
Доставить это в комментарии к главному в ру-сегменте DIY-блогеру, AlexGyver.
Расчет оправдался на 100%. Ему зашло, и он репостнул видео к себе в канал.
На этой волне я завел блог на DTF и начал перезаливать старые посты. Результаты скромнее (пост про змейку набрал 2.8к просмотров против 35к на Пикабу), но радует, что в комментариях писали: «У Гайвера видел такой кубик». Узнаваемость работает =)
Глава 4. Маркетинг: партизанские идеи, провалы и халявные канапешки
21-24 ноября
Кроме онлайн, надо выбираться на живые встречи с людьми. Впереди Игрокон Lite 2026.
Я написал организаторам с предложением о сотрудничестве — описал свой уникальный проект, и предложил сделать что-то крутое с их брендинком. В ответ пришла отписка, суть которой сводилась к простому: “С вас 15 000 рублей за стол и стул на ярмарке”. Что ж, это было ожидаемо. Видимо, инди-разработчик с уникальным железом менее интересен, чем продавец акриловых дайсов.
Чтож, будет партизанский маркетинг =) Я приду как обычный участник с тремя кубами, в гавайской рубашке Томми Версетти и с кучей 3D-печатных сувениров (и не только). При тряске куба можно будет получить подарок. Посмотрим, кто соберет больше внимания — стол за 15к или энтузиаст с горящими глазами =)
А вот другая выставка, на которую случайно попал в ноябре, стала отличной тренировкой перед Игроконом. Тренировкой провала. Я со своими технологиями абсолютно не вписался в тусовку художников и фотографов (выставка была о народном творчестве в нашем городе). За весь вечер подошло всего пара человек. Но есть и плюсы: я понял, насколько важно правильно выбирать целевые мероприятия, и объелся халявными канапешками. Опыт, пусть и такой.
Глава 5. Рождение игровых механик: от “гачи” к “Алхимслоту”
15-29 ноября
Весь месяц не только боролся с железом, но и пилил то, ради чего все затевалось — игровые механики. Началось все с переделки “гача-игры” (показ случайных картинок при тряске). И тут же я столкнулся с багом: датчик движения срабатывал через раз. Ни одна нейросеть не смогла найти ошибку в логике. Пришлось снова вспоминать универ и переписывать класс акселерометра на конечном автомате. Теперь все заработало как часы.
Вот так теперь выглядит “гача”: при тряске — “рубашки”, после — анимация смены картинок. Для красивых роликов даже собрал целый натюрморт с игральными костями, бусами и перьями.
Перенос “гачи” на новый движок открыл простор для экспериментов. Так родилась слот-машина: пока трясешь — барабаны крутятся. Можно даже останавливать их резким наклоном. Куб учит обращаться с ним аккуратно: от легкой тряски все медленно движется, а можно раскрутить и пытаться остановить в нужный момент. Это уже не просто “потряс-посмотрел”, а тактильный игровой процесс.
Не "лимонные" картинки ниже, это идея тематики под Utopia Show. Чуть позже планирую доработать стиль иконок, и также отправить как и для AlexGyver.
А потом я пошел дальше и сделал “Алхимслот”: барабаны не просто крутятся, а картинки на центральной линии могут смешиваться, образуя новые. Из этой механики можно придумать кучу игр, начиная с классической «Little Alchemy 2». Вот где кубическая форма начинает раскрываться по-настоящему =)
И вот тут я прямо слышу, как эксперты из комментариев уже набирают сакраментальное: “Автор, все это можно сделать на телефоне! Зачем этот куб?”. И знаете что? Они абсолютно правы. Конечно, можно. На телефоне можно сделать и змейку, и слот-машину, и алхимию.
Более того, они добавят: “В телефоне тоже есть гироскоп, его тоже можно наклонять и трясти!”. И снова будут правы! А теперь, ради эксперимента, попробуйте взять свою 6-дюймовую “лопату” и начать ее резко дергать в руках, как я это делаю с кубом на видео. Попробовали? Чувствуете, как этот стеклянный бутерброд за 50+ тысяч рублей так и норовит вылететь из руки и разлететься на атомы?
В этом и есть разница. Телефон — это прямоугольный, плоский и хрупкий инструмент для связи, который можно заставить делать что-то еще. А куб изначально спроектирован, чтобы его крутили, трясли и даже роняли (он уже летал со стола, все работает). Это как сравнивать езду на городской малолитражке по бездорожью и на специально подготовленном багги. Обе машины поедут, но опыт, комфорт и результат будут совершенно разными.
Этот проект — не про “сделать то, чего нет на телефоне”. Это про “сделать то же самое, но получить совершенно другой, физический и тактильный опыт”. Про то, чтобы держать игру в руках, а не бояться уронить свой основной инструмент для жизни, пытаясь им играть).
Итоги месяца
Ноябрь получился месяцем контрастов: отчаяние от ограничений железа сменялось эйфорией от успешной оптимизации, а оглушительная тишина от мировых звезд — неожиданным признанием в родном DIY-сообществе.
Что получилось:
Выжать максимум из железа: Стабильные 19-20 FPS на 6 экранах — это мой личный потолок для этой версии железа. Больше — только с новой архитектурой или другим контроллером.
Создать фундамент: Рендер-движок v0.1 — это огромный шаг вперед. Теперь вместо набора разрозненного кода у меня есть основа системы, на которой можно строить игры.
Получить “знак качества”: Репост от AlexGyver — это не просто хайп. Это подтверждение от авторитета в индустрии, что идея интересна целевой аудитории.
Нащупать новые механики: Слот-машина и “Алхимслот” — это не просто тесты, а уже почти готовые концепции игр, которые родились из экспериментов.
Открытия месяца (или то, что я снова понял):
ИИ — не волшебная палочка. Он хорош для рутины, но когда дело доходит до сложной логики (как с поворотом текстур у змейки) или архитектуры, он тупит и выдает дичь. Думание своей головой и бумажка в клетку все еще надежнее.
Прямой штурм крепости не работает. Погоня за VLDL и Critical Role была похожа на кавалерийский наскок на стены замка. Я получил ценные данные: этот канал коммуникации с ними не работает, по крайней мере, пока. Это не значит, что дверь закрыта навсегда. Это значит, что для следующего штурма понадобится осадная башня, а не просто громкие крики под стенами. Либо удача // обходной лаз в замок.
Персональный подход бессилен, если цель недосягаема. Усилия по созданию кастомного контента для зарубежных миллионников ушли в пустоту, потому что достучаться до них почти невозможно. Тот же подход сработал с Гайвером, потому что он — часть живого комьюнити, а не закрытая корпорация. Вывод: выбирать нужно не только метод, но и реалистичную цель.
Тщательно выбирать правильные мероприятия. Провал на выставке художников — отличный урок.
Ноябрь был месяцем, когда проект перестал быть просто “железкой с экранами” и начал превращаться в игровую платформу. Впереди декабрь, Игрокон и, надеюсь, первые полноценные играбельные прототипы.
P.S. Спасибо, что дочитали! Каждый ваш комментарий, даже самый гневный, помогает проекту двигаться вперед. Следить за разработкой в режиме реального времени можно в моем TG-канале, там я появляюсь каждый день.
Коротко — как я изучал конкурентов, собрал партию из 10 кубиков, придумал гача-игру, подал заявку на американский фестиваль Alt.Ctrl.GDC 2026 и обломался с Reddit и знаменитостями.
В сентябре была первая рабочая игра и неожиданный хайп на Пикабу. В октябре решил поизучать, кто ещё делает электронные кубики. И конечно же продолжил дорабатывать свои устройства.
В этот раз пропустил «актуальный» постинг дневника в конце месяца. Казалось, что не так много интересно произошло за октябрь и хотел объединить в одну статью за 2 месяца. А когда начал писать, понял, что всё таки лучше разделить.
Изучение конкурентов: инженерное безумие
“Я уже говорил тебе, что такое безумие? Безумие — это точное повторение одного и того же действия раз за разом в надежде на изменение”.
3-4 октября — WOWCUBE. Это кубик с 24 экранами, который крутится как кубик Рубика. Сделал исследование через Кракена (нейросеть - поисковик platform.parallel.ai), перечитал все источники и погрузился в настоящее инженерное безумие.
Техническая архитектура: WOWCUBE состоит из 8 отдельных модулей с 3 экранами в каждом. Это означает восемь процессоров, которые должны синхронизироваться между собой. Большое количество сборных элементов создаёт множество потенциальных точек отказа.
Система связи между модулями — самая сложная часть. Подпружиненные патентованные шарики-контакты (по последним данным — магниты). Механизм испытывает износ при каждом прокручивании, плюс риск попадания пыли под контакты.
Особенность управления: игры которые у них увидел, работают с дискретными движениями под 90/180 градусов. Хочешь переместить персонажа? Прокрути грань до щелчка. Ещё шаг? Ещё один поворот до щелчка. Плавного управления нет — только шаговое. При этом устройство весит 320-400 грамм.
Проекту уже почти десяток лет, но продукт не стал массовым. Изучив обещания компании, статьи и отзывы, складывается впечатление, что в центре разработки была инженерная задача сама по себе, а не конкретная потребность пользователя.
Вывод: важно не влюбляться в техническое решение, а фокусироваться на том, какую ценность оно даёт людям.
5-6 октября — The One Dice. Электронный кубик для настольных игр, собравший почти полмиллиона долларов на BackerKit.
Концепция: за ~200$ предлагается совместить физический бросок D20 с цифровыми анимациями на встроенном экране. Анимации длятся 5-8 секунд на бросок. Создатели добавили "быстрый режим" на 2-3 секунды — видимо, получили фидбэк о темпе игры.
Что интересного на BackerKit:
Три цвета корпуса из "luxury" пластика плюс множество дополнительных наборов. При 2000+ заказах это означает частую смену настроек производства и усложнение логистики.
Международная доставка электроники — требуются сертификаты ROHS, CE и другие. У каждой страны свои требования к соответствию.
Масштабирование производства — сделать несколько прототипов и наладить выпуск нескольких тысяч единиц это разные задачи по сложности.
Ценообразование на этапе рендеров — без готовых прототипов сложно точно оценить итоговую себестоимость.
Главный вывод: не обещай того, что не можешь 100% выполнить. Когда тысячи людей поверили в проект и вложили свои деньги — это большая ответственность.
UPD из 12'2025: Когда писал эту статью, то случайно выяснил, что у компании «Wild Earth Dice» были предыдущие краудфандинг-кампании с обычными смоляными кубиками (2023-2024 год). Судя по комментариям бекеров, доставка затянулась на 1.5-2 года с момента обещанных сроков. И теперь эта же команда взялась за электронное устройство со встроенными экранами и процессором.
Похоже видео ниже будет пророческим (сделано еще в октябре).
6 октября — теперь кубиков двое. Всё сходится и работает.
Если смотреть на проект в этой стадии — оно работает, но производить в таком виде будет дорого. Косы проводов с разъёмами — производственный ад.
Мой предполагаемый подход к разработке: 10 кубов первой версии → 10 с исправлениями → потом ещё 20-50. Когда всё будет идеально собираться за пару минут с минимумом деталей почти на автоматике — тогда можно думать о «тысячных» партиях и каких-нибудь кикстартерах.
7 октября — все детали для кубов спаяны. Осталось дождаться печати корпусов.
8 октября — кубиков уже 4.5 штуки. Экраны не идеально ровно располагаются в окошке, но корпуса печатные — можно сделать под каждое положение свой.
И главное — даже с этими ПРОВОДАМИ оно собирается терпимо. Но больше провода не хочу.
9 октября — почти собрал 9 кубов. Осталось установить в корпуса.
Иногда хочется отклоняться и сразу моделить будущие оптимизации. Новая версия 3D - модели: 50×50×50мм вместо 58×58×58. Почти минус 15% объёма.
Прошивка и неожиданные ограничения
14 октября — игры играми, а надо знать сколько устройство проработает на одном заряде. Замерил потребление системы.
Экраны линейно потребляют при PWM-яркости. При яркости 50% потребляют в 2 раза меньше. Появилось много идей, как экономить энергию в текущей и будущей версии.
Грустный инженерный факт: текущий понижающий преобразователь из 5V в 3.3V похоже выдаёт КПД 60-70% вместо заявленных 90%. Желательно входное напряжение в 2-3 раза больше выходного — тогда по графикам всё хорошо (если судить по datasheet).
15 октября — чем дальше в ядро, тем больше “веселья”.
Карточка памяти внутри устройства, добраться сложно. Узнал, что ESP32 умеет работать как USB-устройство. Сделал так, что подключаясь кубик выдает себя как карточка памяти.
Сначала закинул пару мелких текстовых файлов и думаю — всё, ура, можно закидывать картинки, видео для тестов. Пробую закинуть картинку с котом… и вижу скорость чтения/записи 1000/300 КИЛОБАЙТ в секунду. И это очень грустно.
С такими скоростями передача больших игр займет очень много времени.
Гача-игра: концепция
16 октября — идея: гача-приложение на кубик.
Система простая — трясёшь кубик, ставишь на стол, показывается персонаж в разных позах и локациях. В уголке опционально цифра для D&D.
Развиваем идею:
Персонажи не открываются сразу, а по вероятности или уникальному жесту
Все картинки имеют свою редкость
МЕМЫ — кроме серьёзных картинок выпадают абсурдные и смешные с тем же персонажем
Персонализированные картинки на заказ
Генерация стоит копейки
И сложные дополнения:
Прокачка персонажей — каждый бросок с выбранным персонажем его качает
Wi-Fi связь между кубиками и виртуальный гвинт на основе раскачанных персонажей
17 октября — ради рекламы и повышения известности проекта, решил сделать контент с Viva La Dirt League (5+ млн подписчиков на ютуб). Они только закончили 5-летнюю D&D-кампанию “Adventures in Azerim”.
Через Кракена проанализировал все их игры, выделил знаковые моменты. На 4 персонажей - нашлось около 200 уникальных историй. Идея - всё это сгенерировать в виде картинок и показывать на кубе.
Заставить ИИ сразу нарисовать то что нужно в 6 кадрах сложно, но понадёргать кадров с разных попыток — норм. Даже случайно комикс вышел.
И картинки на кубе работают. Всё читаемо, узнаваемые персонажи, сочные цвета.
Пришлось урезать гачу до минимума, ещё полдня разбирался с куском библиотеки акселерометра. Там была борьба с физикой и математикой.
Корпуса куба что на столе, хоть на вид хорошие, но все неправильные. Думал сдвинул чтобы идеально совпал экран и отверстие, в итоге сделал хуже. Придется всё перепечатать.
Это была не игротека, а что-то вроде дня открытых дверей — несколько столов с мастерами, которые рассказывали о разных играх.
Ходил между столами, показывал кубики. Показ “случайных” малоизвестных персонажей мало кого впечатлил. Змейка больше понравилась.
Пока нет меню выбора разных игр — людям кажется, что каждый кубик это одна игра. Приходилось объяснять будущие концепции.
Некоторые гейммастера были против концепции показа текстовых действий для новичков в RPG - “тогда мастер не нужен” 😱
Интересная идея с игротеки: “idle-рогалик” — персонаж автоматически качается на одной грани, когда зачистил — нужно повернуть на следующую.
Reddit, Пикабу и провалы
20 октября — это фиаско, братан.
Потратив несколько часов на идеальный пост для Reddit с видео VLDL, после нажатия “запостить” — аккаунт перманетно банится.
В инете пишут: не факт что получится зарегиться без блокировки. Одни рекомендуют ждать пару недель, другие — региться не со своего IP. Пришлось писать напрямую VLDL на почту.
Самое печальное — весь сценарий с шоу для фанатов провалился.
Непонятно что послужило причиной. Может тег “арт нейросетей”, может слишком простая концепция, может нейросетевые картинки воспринимаются как проходняк и труд с минимальными вложениями.
22-23 октября — мне посоветовали подать заявку на Alt.Ctrl.GDC 2026 — фестиваль уникальных консолей и игр. Кубик туда отлично залетит… но это всё в Америке.
Всё равно сделал заявку. Будет видео, которого они точно не ожидают: небольшая экскурсия по Твери (не только по красивым достопримечательностям), таймлапс сборки куба, работа 10 кубов и в конце “From Russia with love”.
Как минимум должны запомнить.
Изучив видео участников прошлых лет — там никто такого артхауса не снимал. Обычно по большей части контент на телефон, веселенькие позитивные ролики. Моя заявка точно вызовет новые эмоции у жюри.
28 октября — решил вернуться в запрещённую соцсеть. Набросал в отложку постов.
Всё ради того, чтобы красиво зацепить VLDL. Упоминание от аккаунта, заброшенного 3 года назад, выглядит не очень.
ВК окончательно разочаровал. Просмотры упали на такое дно, которое я еще никогда не видел. 170 просмотров клипа при ~1.2k подписчиков..
На Пикабу даже «незалетающие» посты набирают 2-3k просмотров и десяток лайков.
Работа с текстом на кубе
28-30 октября
Основная идея — универсальность и минимизация усилий при загрузке новых шрифтов.
На кубике собственный драйвер рисовки на экранах и систему растеризации шрифтов надо делать с нуля. ESP32 - не мощный комп, чтобы моментально показывать векторные TTF - шрифты.
Сначала решил перегонять TTF в PNG с параметрами, потом парсить в растровый файл для ESP32.
Начав работать с идеей чтения картинки, понял что масштабирование из большой картинки будет так себе.
Оказывается, есть библиотека работы с TTF напрямую. И она работает. Можно с файла получить подготовленные буквы без масштабирования, и всё получится ровненько.
Но ESP32 не настольный компьютер, для которого перегонять кривые Безье в пиксели — быстрое дело. Поэтому алгоритм тот же: сохраняю несколько размеров шрифта в виде пикселей и вывожу потом на экран как картинки.
Определил читаемые размеры: 12, 16, 24, 32, 40pt.
ЧТО ПОЛУЧИЛОСЬ ЗА ОКТЯБРЬ
✅ 10 кубиков собраны
✅ Гача-игра — концепция с редкостью, мемами и прокачкой
✅ Заявка на Alt.Ctrl.GDC — артхаусное видео из Твери
✅ Анализ конкурентов — WOWCUBE и The One Dice
✅ Новая 3D-модель — 50×50×50мм
✅ Система вывода текста — TTF работает на ESP32
❌ Reddit — пермабан при первом посте
❌ VLDL — не ответили
❌ Игротека — не та аудитория
Открытия месяца
Про конкурентов:
Не влюбляйся в инженерное решение — думай что оно даст пользователю
Не обещай того, что не можешь 100% выполнить
Рендеры продают воздух — это опасный путь
Про маркетинг:
Разные площадки — разная отдача
Нейро-арт воспринимается аудиторией очень плохо
Живые демонстрации работают лучше постов
ВК мертв как нативная площадка для продвижения продукта
И модуль со спаренными датчиками BMP280 + AHT20 которые показывают атмосферное давление, температуру и влажность.
Теперь как это все работает у меня работает и что мне пришлось изучать.
Поехали...
Чтобы работать с микроконтроллером нужна платформа разработки от производителя плат ESP-IDF https://github.com/espressif/esp-idf, с помощью этого инструмента происходит компиляция, тестирование прошивка самой платы.
Чтобы работать с платой было комфортно необходимо выбрать IDE это такой инструмент который позволяет писать код, проверять его, отлаживать находить ошибки. и предоставляет дружественный интерфейс для работы ESP-IDF. Тут есть выбор. Я использую VSCode https://code.visualstudio.com/ с официальным расширением для ESP-IDF (https://marketplace.visualstudio.com/items?itemName=espressi...)
Имея настроенные эти два инструмента уже можно попробовать поиграться с платой. Для того чтобы плата делала то, что ты от нее хочешь ей нужно написать программу на понятном тебе языке которую компилятор переделает в программу понятную контроллеру. Тут тоже есть выбор, но пока довольно однобокий большинство программ для этих контроллеров пишется на языке СИ (язык очень древний, серьёзный и крутой, но для комфортной работы с ним нужно достаточно углубиться в архитектуру работы ЭВМ в целом), поэтому есть попытки использовать Blockly, MicroPython, TibyGo и прочие языки и параметризаторы которые генерируют код в зависимости от заданных вами параметров. Но все это пока не очень серьезно с точки зрения производительности и сопровождения по сравнению с СИ.
Датчик (BMP280 + AHT20) и микроконтроллер (esp32c3) обмениваются данными по шине I2C (это такой способ подключения устройств при котором для обмена данными используется два контакта один отвечает за передачу данных и еще один за синхронизацию, и у каждого типа подключаемого устройства есть свой адрес)
Подключив датчик и считав данные нужно их отправить сервису который их собирает. На борту у платы есть встроенный модуль работы с wifi. Нужно инициировать работу модуля в режиме клиента и немножко понимать как работают устройства в сетях TCP/IP. Тут нужно знать буквально что у каждого устройства есть свой адрес и что существует такой сервис как DNS который из понятного нам адреса pressure.pyah.online умеет переделывать в понятные машинам адреса 82.202.140.217 и то что потоки данных идут по портам, те моя плата и сервер обмениваются данными не по одной трубе а по нескольким.
Плата и сервер обмениваются данными определенным образом. по протоколу HTTPS это текстовый протокол, плата шлет серверу текстовые сообщения подготовленные определенным образом и получает такие же ответы.
Чтобы передать данные их необходимо предварительно завернуть в формат чаще всего это JSON (JavaScript Object Notation) это такой язык разметки который позволяет удобно размечать данные чтобы указать где в этих данных что именно. Тогда их удобно передавать между устройствами.
Плата по нашей программе считала, подготовила данные, подключилась к сети и готова отправить данные.
Для того чтобы эти данные получить нужен сервис которые будет этим заниматься, и то как он это будет делать есть множество различных вариантов. Вариант который использовал я это REST API это такой тип сетевого приложения который обменивается информацией с клиентами по протоколу HTTP/HTTPS в виде определенных запросов дай данные, возьми данные, измени данные.
API сервис принимает от платы данные по сети, и складывает их в базу данных, это тоже программа которая занимается тем, что принимает и отдает информацию, почти так же как и API сервис, но API сервис нам нужен в этой схеме для того чтобы все приложения которые будут работать с данными делали это одним и тем же образом, как к примеру сервисы маркетплейсов работают однотипно и с телефона и через браузер и через приложение.
Сервис написан на языке GO, база данных Postgres.
Все это работает на виртуальном сервере под управлением операционной системы CentOS.
Для того чтобы отобразить эти данные в вашем браузере, на этом сервере работает еще одна программа Nginx(веб сервер), ее задача из текстовой информации по определённым правилам сформировывать страницы.
Подготовкой этой информации занимается еще одна программа Веб приложение, оно забирает данные обращаясь к API серверу когда вы вводите адрес в браузере и подготавливает эти данные для веб сервера который и передает информацию вашему браузеру для отображения Вам.
Для разработки веб приложений используется свой стек технологий React, JavaScript, CSS, HTML, SVG.
Плюс еще промежуточные знания по работе системы контроля версий (git), и систем развертывания (CI/CD)
Вот такой непростой путь сигнала от датчика в ваш браузер.
Обычно когда я что-то разрабатываю, я совсем забываю о маркетинге, рекламе и остальном продвижении своих изделий. Потому что я больше творец, чем продажник. Но сейчас с нейросетями становится проще - если описать продукт и попросить маркетинговый план - получится хотя бы некоторая базовая инструкция куда двигаться, чтобы про изделие узнало больше людей.
Как я понимаю, внутри это очень мощная аналитика (что-то на уровне Google Gemini) + система поиска по всему интернету (perplexity ai на мощных стероидах). Нейросеть разбивает запрос на смысловые части, ищет актуальную информацию по каждому пункту, и потом составляет практически дипломную работу / исследование (средние ответы от этого ИИ ~ 10-15 страниц текста)
Кстати, рекомендую попробовать этот сервис. Регистрация через почту и несколько запросов бесплатно.
И среди различных маркетинговых советов из отчета, увидел рекомендованные мероприятия для участия.
В списке оказалось большинство зарубежных событий.. И решил попробовать податься куда - нибудь. Как минимум заявить о себе за рамки России было бы интересно. И просто удивить зарубежную аудиторию, это тоже очень восхищающая затея. Очень люблю видеть эмоции и обратную связь людей от того что я делаю =)
Сначала написал письмо на Independent Games Festival. Там не поняли мою заявку, но порекомендовали податься на alt.ctrl.GDC 2026. Изучив описание конкурса на сайте, понял, что куб как раз подходит под конкурс (там идея в уникальных игровых консолях / приставках и тд).
Для заявки надо было снять видео, описать концепцию устройства и загрузить дополнительные материалы по желанию. Чтож, как творцу, мне захотелось сделать это красиво =)
Начнем с видео. Делать простенький контент с демонстрацией кубика на фоне студии точно не хотелось. Таких заявок, я прям уверен, жюри видели сотни. Нужно было что-то более оригинальное.
Пришла идея показать само окружение, где куб был сделан. Изначальный сценарий был этакой советской отсылкой про разработку куба в гараже с ретро тачками (но это требовало много времени, сил, договоренностей и тд).
Поэтому решено было сделать всё своими силами. То есть показать небольшую экскурсию по городу на велике + сборку куба + демонстрацию текущих игр. Возможно, для тех кто живет в России все эти начальные кадры не новы. Но вот для жюри из США, мне кажется это будет неожиданная заявка.
И "вишенкой на торте" монтажа ролика оказалась музыка. Получилось в Suno сделать идеально подходящую мелодию под настроение видео (очень надеюсь вы смотрели видео с включенным звуком).
P.S. и кстати, в ролике не просто так показано несколько устройств и фраза про 2 месяца. Как я понимаю, в конкурсе очень ценятся устройства сделанные с нуля, причем серийность должна добавить удивления от заявки =)
Кроме видео, в котором и так многое понятно, добавил десяток разных фотографий с кубом:
Фоточки это хорошо, арт видео это тоже классно.
Но игры про змейку и тряску показаны слишком скомканно в основном ролике. Докинул в заявку полные видео, которые сюда уже постил:
Концепция устройства по прежнему остается той же - это тактильная компактная игровая консоль.
Для жюри составил вот такой текст:
Альтернативность The One Cube заключается в полном отказе от традиционных способов ввода. В нём нет кнопок, нет джойстиков — только шесть экранов и гироскоп. Это создаёт уникальную физическую и непосредственную связь с игровым миром. Ощущения особенные, потому что вы не просто управляете персонажем, а держите в руках и буквально манипулируете целым игровым миром.
Простейшая демонстрация — это «6D Змейка»: вы не нажимаете «вправо», а физически наклоняете саму реальность.
Эта простая, интуитивная механика — основа для нового класса тактильных игр, и она открывает целое пространство для геймдизайна: от Diablo-подобных RPG с видом сверху, где вы ведете героя, наклоняя мир; до игр, где физическое встряхивание становится вашим броском кубиков; и головоломок, где вы переливаете симулированную жидкость между гранями.
Видение простирается и дальше: тамагочи нового поколения, живущий на всех шести экранах, кооперативные головоломки, основанные на синхронизации положения в пространстве, и даже превращение куба в универсальный Bluetooth-контроллер для ПК, который может стать чем угодно: от штурвала самолёта до магического меча.
Надеюсь им понравится =)
И напоследок, как в меме, надо сверху еще посыпать специями =) В одном из пунктов заявки была задача схематично показать, как будет выглядеть стенд на выставке.. Раз уж работаем с нейросетями, то идем до конца. И теперь в заявке красуется не простая схема, а визуализация стенда =)))
Зачем я всё это здесь пишу..
Во - первых, хочется показать сам ролик, над которым старался. И сам проект в сумме конечно же. Во - вторых, возможно кого-то вдохновить на креатив или хотя бы на использование нейросетей в своей жизни. И в третьих, этот пост же тоже маленький маркетинг =)
Спасибо что дочитали до конца =)
Подписывайтесь мой тг канал, там пишу не только о кубике:
Коротко - как месяц работал над прошивкой ядра куба, сделал первую игру, неожиданно хайпанул на Пикабу, бился с ИИ и открыл для себя нейросеть - Кракена.
Куб среди кубиков =)
В августе собрал прототип с проводками и разными техническими сложностями. В сентябре пришло время сделать что-то действительно играбельное. Спойлер: получилось, но с приключениями и очередной порцией борьбы с ИИ.
Первые шаги: борьба с экранами и производительностью
1 сентября — у кого день знаний, а у кого день куба =)
В августе был колхоз с проводками, и здесь он продолжается. Но теперь более аккуратный. И придется паять не 5, а 6 проводов, потому что напутал и с подключением второго SPI.
Хотя бы 2 экрана завелись. Правда квадраты бегают медленно.
2 сентября — Не зря в универе учился на прогера. Вспомнил идею распараллеливания задач на ядрах компьютера. История повторяется, но теперь попытка выжать максимум из двух ядер Esp32.
Использовал все известные мне ИИ для кода claude, grok, deepseek. Каждый из них косячит по разному.
Но в итоге получил 17FPS на всех экранах. Выжал почти максимум с рисования — если исходить из 80МГц частоты и полной заливки 240×240px (измерялось время отрисовки каждого кадра в цикле при отправке данных на все экраны).
3 сентября — можно сказать, что в этот день я выдохнул, поняв что все hardware системы работают: карта, дисплеи, датчик, микросхема повербанка, проц. Да, с проводками, но уже работают же =)
Открыл для себя систему задач (FreeRTOS) в микроконтроллере ESP32. За счет внутреннего планировщика и еще пары сотен строк кода удалось вытянуть около 24FPS на всех дисплеях (при этом у нас еще тратится время на создание каждый раз новых буферов 240*240 для экранов).
4 сентября — кроме поста с дневником за предыдущий месяц, понемногу допаивал разъемы. На столе платы для еще 9 кубиков.
Первая сборка
9 сентября — первый куб собран. Ну почти, где-то не сходится и не защелкивается. И вот только думал показать бегущую радугу вместо квадратиков… А она не работает. На одном экране градиент показывается, на других дублируется. Хотя код одинаковый.
10 сентября — технические замеры собранного куба. Вес 180 грамм — ощутимый, как телефон в другом формфакторе. Температура вообще никакая при 2 часах работы. Потребление 330мА из батареи.
Итого: ~5 часов работы при обычном использовании. Первая версия, она такая.
Нашел косяк с градиентами. Мучился с ИИ в поиске бага — оказалось просто порядок байт для отправки на дисплей не тот. Вот такое программирование с нейросетями — поиск одних багов по кругу.
12 сентября — день улетел на разработку главного программного сердца.
Класс управления почти дописал. Не понятно почему простая задача заняла столько времени. Может ИИ тупил, может я оверинжинирил.
Придумал систему абстрактного интерфейса из клетчатых страниц — с ней можно легко прогить интерфейсы игр.
13 сентября — Hello Snake! Первая игра на кубе. После кружочков захотелось сделать что-то сразу прикольное и рабочее. Засиделся до 4 ночи, но оно того стоило.
14 сентября — теперь понял зачем нужно было учили такому количеству математики на ИТ-факультете. Все эти координаты, геометрия и формулы сейчас понадобились. Сделал полную бесшовную модель координат для граней куба и довел змейку до красивого состояния.
Снова посетило чувство успокоения — закончил сложный этап. Можно отдохнуть. А то со своим умением уходить в поток сильно залип. От идеи до рабочего устройства и первой игры прошло всего 1.5 месяца.
Играть навесом через штатив неудобно — смотреть и на поле и на фотик.
Пикабу-хайп
14-15 сентября — Пост на пикабу прям неожиданно залетел. Такого охвата мне ни одна соцсеть не давала.
Огромное спасибо Пикабу за такую поддержку! Это реально мотивирует продолжать разработку и делиться прогрессом.
Радует, что получилось создать проект, который понятен и интересен широкому кругу людей. А не предыдущие световые устройства, где и конкуренция огромная и сложно как-то выделиться.
Кроме ответов на комментарии занимался программированием. Всё таки не зря придумали объектно ориентированное программирование и разбивку задач на небольшие подзадачи. А с нейросетями прям иногда хочется это форсировать, а в итоге получается ерунда.
И еще заставить ИИ нарисовать бесшовные фоны и тайловую графику сложно. Придется как то выкручиваться.
17 сентября — не всегда получается попадать в нужную аудиторию при живых встречах. Когда встречаешься с серьезными людьми на бизнес завтраках, им такие игрушки не интересны.
Планирую использовать куб для настолок, но конечно на фоне обычных игральных костей он смотрится огромным. Но функционала во много раз больше.
Основные платы спаяны. Осталось поставить аксели к главным платам и заняться самым страшным — пайкой проводов.
Рутина, генеративный ИИ и разочарования
18 сентября — на столе будущие 9 кубиков. Когда с кодом не получается, пайка точно пойдет без проблем.
От управления зарядником в этой версии придется отказаться — передача данных работает через раз. Уровень батареи через проц показываться будет, система повербанка работать будет даже без I2C управления.
Идея: анимировать известных персонажей через генеративный ИИ и использовать видосики при “броске” куба. Как в газетах в фильме "Гарри Поттер" небольшие анимации.
А самая интересная идея — персонализированные герои на основе фото. Кем видит себя игрок — магом, воином — такая анимация на кубе.
19 сентября — сложности видео-генераций. Поверил в нейросети и думал что простые задачи по анимированию портретов легко решатся. Ощущение что ИИ заточены делать что-то киношное с движениями камеры.
Спустил кучу токенов на бестолковые генерации. Попробовал все нейросети в агрегаторе. Самый адекватный результат — Seedance, самая дешевая модель. Но ей всё равно хотелось подвигать персонажа.
Думал сэкономить и генерить сразу несколько эмоций — вообще ни в какую. Либо эмоции одинаковые, либо слайдшоу.
19 сентября — столкнулся с тем, что нейросети не могут работать с тем материалом, о котором у них инфы мало в базах данных.
Задача была в написании полного класса распознавания жестов от акселя и отделения его от управления экраном. Но почти все нейросети вообще не понимали что от них хотят и терялись в классах. Особенно если им прислать ТЗ и старый код, они возьмут многое из старого кода, а не переработает его на основе задания.
Самое печальное — если писать самому код, то будет еще медленнее чем ругаться с ИИ. Из двух зол меньшее, как говорится.
причем название One Cube вообще свободное. В инете под таким именем только давно закрывшийся сервер майнкрафта.
27 сентября — день Кракена. Всё началось с идеи: а что если написать патент на куб? Чтобы спокойно проектировать и никто бы не сделал такой же по закону.
Врубил все сети:
Perplexity — поиск в инете
Claude Opus глубокий поиск — выдал отчет что вроде всё хорошо
Кракен не просто ИИ. Это исследователь, сборщик и аналитик огромных массивов актуальных данных.
Он взял мою заявку на патент, разобрал на части и выдал 10+ страничный юридически грамотный разбор. При этом нашел древнющий патент от 2007 года с такой же формулой полезной модели (US 20070247439A1).
С одной стороны грустно — не получу бумажку. С другой — никто не сможет защититься патентом, потому что уже не подходит под НОВИЗНУ.
Конкурируем только по самому устройству — дизайну, удобству, играм.
Потом задал другой запрос: построй маркетинговую стратегию для куба с минимальными вложениями. Кракен выдал много полезной информации. Предложил мероприятия, издания и ресурсы чтобы охватить наиболее релевантную аудиторию.
И вдумайтесь: такие исследования в КРАКЕНЕ стоят 2.4 доллара. А это работа больших маркетинговых агенств. И кстати, советую попробовать. При регистрации на иностранный емейл дают 20 долларов на тесты.
30 сентября — 45 проводочков и серийный колхоз. Теперь проводочки для оставшихся 9 кубов на месте. Не красиво, но работает.
ЧТО ПОЛУЧИЛОСЬ ЗА СЕНТЯБРЬ
✅ Первая полноценная игра — "Змейка 6D" с бесшовной системой координат ✅ Железо доведено до ума — 17-24 FPS на всех экранах, всё стабильно работает ✅ Первые игроки и живая обратная связь — людям интересно и нравится идея ✅ Хайп на Пикабу — 48000 просмотров и 345 плюсов ✅ Измерены характеристики: 180г, ~5ч работы, 17-24 FPS рендер всех экранов ✅ Программное ядро — система управления акселерометром, модульная архитектура ✅ Серийная партия — 10 кубиков в процессе сборки ❌ Проводки (надеюсь в следующей партии больше таких косяков не будет) ❌ Генерация видео через ИИ сложнее ожидаемого ❌ Патент не получится (но никто не защитится тоже)
Открытия:
Железо:
Выжал максимум с SPI
RGB565 — неизбежный компромисс между качеством и скоростью
TASK-система ESP32 творит магию с асинхронностью
Управление акселерометром работает независимо от положения в пространстве
ИИ и нейросети:
Генеративный ИИ для видео видимо заточен под кино, а не генерацию типовых вещей
Для нестандартных задач (например, система управления акселем) ИИ тупит сильно
Parallel AI (КРАКЕН) — мощнейший инструмент за 2.4 доллара (может за минуты изучить 5000+ страниц релевантных источников)
P.S. Подписывайтесь на TG-канал, если интересно следить за разработкой куба в реальном времени.
P.P.S. Еще раз огромное спасибо Пикабу за поддержку поста про змейку! Без вашей реакции мотивация была бы совсем другой. Это реально помогает продолжать 🙏
В цифровой электронике часто приходится соединять между собой микросхемы, работающие от разных напряжений питания и имеющих различные Логические Уровни.
Казалось бы, что тут сложного — «логический ноль» это ноль, а «логическая единица» это единица. Но на практике всё не так просто.
Несогласованность уровней может привести не только к сбоям в работе, но и к выходу из строя дорогостоящих модулей.
Самый простой вариант для сигналов в одну сторону (5 В → 3.3 В). Формула простая: Vout=Vin⋅R2R1+R2V_{\text{out}} = V_{\text{in}} \cdot \frac{R2}{R1+R2}Vout=Vin⋅R1+R2R2
Например, при R1 = 2 кОм и R2 = 3.3 кОм из 5 В получаем примерно 3.3 В. Минус
— не всегда это работает
– плохо подходит для высоких частот (SPI, I²C).
2. Специальные микросхемы-переводчики уровней
Существуют готовые чипы (например, TXB0108, 74LVC245), которые умеют переводить уровни в обе стороны и на высоких скоростях. Это надёжный вариант для «серьёзных» проектов.
3. Транзисторные согласователи
Можно собрать схему на MOSFET или даже на биполярных транзисторах (например, на советских КТ315 или современных BC547). Такой преобразователь работает быстро и позволяет согласовывать линии в обе стороны, включая шину I²C.
Ниже представлен пример схемы на биполярном транзисторе обратной проводимости. Транзисторы можно использовать различные.
Схема — это дублируется в зависимости от того сколько вам ножек одной микросхемы нужно согласовать с другой
Для этих целей также кроме биполярных микросхем очень хорошо а можно сказать даже идеально подходят и mosfet.
Вот очередной пример такой схемы
Пример из практики
В одном из моих проектов я подключал дисплей на контроллере ST7789, работающий от 3.3 В, к Arduino Nano на 5 В. Сначала я сделал соединение напрямую – результат: один из дисплеев вышел из строя.
После этого я собрал плату согласования уровней на старых советских транзисторах КТ315. Несмотря на возраст этих деталей, схема заработала отлично, и теперь дисплей работает стабильно.
Это хороший пример того, что согласование уровней – не формальность, а необходимость.
Выводы
Никогда не соединяйте напрямую микросхемы, работающие на разных напряжениях.
Для односторонних медленных сигналов можно использовать резистивный делитель.
Для двусторонних и быстрых шин лучше ставить транзисторные согласователи или специализированные микросхемы.
Даже простая самодельная схема на старых транзисторах может спасти ваш модуль от поломки.