Нажимайте кнопки A, B, C — или кликните и жмите ← ↓ →

Стасик.

Маленький квадратный гаджет на M5Stack: экран, три кнопки и динамик. Размером с печенье — 54 миллиметра в ширину.

Я написал для него свою прошивку: меню-карусель, игры, кубики для настолок, часы и таймер лимитов Claude. То, что сейчас на экране модели, — настоящая прошивка: тот же код на C++, собранный в WebAssembly. Нажмите на кнопки.

Железо.

Внутри — ESP32 на 240 МГц и 520 КБ памяти. Ни видеокарты, ни дополнительной памяти: на целый кадр 320×240 её просто не хватает. Поэтому экран рисуется полосами по 40 строк, и каждая полоса уезжает на дисплей по SPI, пока рисуется следующая.

54×54×17миллиметров
320×240экран 2″, IPS
240 МГцдва ядра ESP32
~110 КБсвободно после старта

Скорость.

Первые кубики крутились на 14 кадрах в секунду — заметно дёргались. Я замерил каждую часть кадра и переписал самое дорогое: скругления рисуются построчно, а не толстыми линиями, а полосы уходят на экран через DMA — процессор в это время уже рисует следующую.

  • Кадр целиком78 → 20 мс
  • Кубики14 → 38 к/с
  • Скруглённые фигуры50 → 6 мс
  • Пересылка на экран12,7 → 0,6 мс

Плавность.

Стандартные дуги и треугольники библиотеки рисуются «лесенкой». Сглаживание пришлось написать самому: кольца, дуги и скруглённые многоугольники считают покрытие только на краях, поэтому остаются дешёвыми.

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

Приложения.

Всё нарисовано под экран 320×240 и три кнопки. Скриншоты сняты прямо из эмулятора на этой странице.

Пульт.

Стасик живёт в домашнем Wi-Fi: прошивка обновляется по воздуху, а Android-приложение работает как пульт и настройки. Когда Claude Code заканчивает задачу, Стасик звенит и показывает карточку с итогом, а ссылки присылает QR-кодом — открыть с телефона.

Wi-Fi, Bluetooth и уведомления работают только на настоящем устройстве. Настройки эмулятора сохраняются в браузере.

Все проекты