Арт-объект хакспейса Xecut — экран в корпусе микроволновки, отображающий медиа из Telegram-чата в реальном времени.
Отображает фото, видео и GIF, присланные в xexecut_chat. Кнопки на панели микроволновки работают как USB-клавиатура, а 4-разрядный дисплей показывает текст.
Этот девайс раньше был ноутбуком, но у него умерла клавиатура после чистки. Тогда он стал харддверью (harddver — от слов hardware и дверь) и висел на двери в спейс.
Потом у харддвери умер аккумулятор — она стала вырубаться от щелчка замком и переехала на стеллаж. Затем умерла подсветка экрана — тот был заменён. Теперь снова в строю во фрейме от микроволновки.
Харддверь — самый часто перерождавшийся в хакспейсе артефакт.
Работает максимально просто: Alpine Linux в RAM + Chromium в режиме киоска + статическая HTML-страница.
Никакого бэкенда — браузер напрямую long-poll'ит Telegram Bot API и отображает медиа. SSD на устройстве барахлит, поэтому система работает в эфемерном режиме (всё в RAM, диск почти не трогается).
Текущая версия в продакшене: wave-v1
hardwave/
├── wave-v1/ # Веб-страница (текущая версия в продакшене)
├── wave-v2/ # Новая версия (в разработке)
├── keyboard/ # Прошивка микроконтроллера (CircuitPython)
├── linux/ # Системные конфиги Alpine Linux
├── harddver/ # [АРХИВ] Старая версия на Python/Selenium
└── docs/ # Фото проекта
Standalone HTML, который напрямую работает с Telegram Bot API. Отображает фото, видео, GIF и видеозаметки. По умолчанию растягивает изображения на весь экран.
Параметры URL:
| Параметр | Обязателен | Описание |
|---|---|---|
api_key |
Да | Токен Telegram-бота |
chat_id |
Да | ID чата для фильтрации |
admin_ids |
Да | ID администраторов через запятую (могут использовать /killswitch) |
respect_aspect_ratio |
Нет | Сохранять пропорции (по умолчанию растягивает) |
require_username |
Нет | Показывать медиа только от пользователей с username |
Возможности:
- Отображение фото, GIF, видео и видеозаметок
- Имя и username отправителя в левом верхнем углу
- Автовоспроизведение видео (без звука, зацикленное)
- Игнорирование медиа со спойлерами
- Нажатие Enter переключает режим сохранения пропорций
- WebHID интеграция с клавиатурой (синхронизация времени, команда
/display <текст>) - Команда
/killswitchдля остановки бота
Deploy: https://hardwave.tgr.rs/
Следующая версия системы.
Блокеры:
- Ловит реконнекты (нестабильное соединение)
- Проблемы с WebHID интеграцией
Прошивка на CircuitPython для микроконтроллера, превращающая панель управления микроволновки в USB HID-устройство.
Маппинг кнопок:
| Кнопка | Клавиша |
|---|---|
| COOK | C |
| DEFROST | D |
| REHEAT | R |
| START | Enter |
| STOP | Esc |
| PLUS/MINUS | Numpad +/- |
4-разрядный дисплей принимает текст по кастомному HID-интерфейсу.
Подробнее: keyboard/README.md
Конфигурация Alpine Linux для режима киоска:
- Эфемерный режим (работа в RAM)
- Автологин пользователя
kiosk - Автозапуск X11 + Chromium
| Компьютер | Бывший 16.5" ноутбук (материнка + экран) |
| ОС | Alpine Linux (эфемерный режим) |
| Микроконтроллер | nRF52840-based (CircuitPython) |
| Корпус | Панель от микроволновки |
Энергопотребление: idle 8.5-9W, под нагрузкой 15-18W
- Telegram-чат: https://t.me/xecut_chat
- Хакспейс Xecut: https://xecut.me
- Локация: Google Maps
Старая версия системы на Python + Selenium. Не используется — оставлена для истории.
Включала Telegram-бота с командами /display, /screenshot, /deploy и управление Chromium через Selenium. Сейчас всё это не нужно, т.к. браузер сам справляется.
Подробнее: harddver/README.md


