Устройство собирается из двух небольших плат: платы с ESP32-P4 и платы захвата на чипе TC358743, которая переводит HDMI цели в MIPI-CSI. Дальше картинка кодируется аппаратными кодировщиками самого микроконтроллера — H.264 или MJPEG — и отдаётся в браузер. Клавиатура и мышь подаются целевой машине через USB OTG, то есть она видит обычные устройства ввода и никаких драйверов ей не нужно. На эталонной плате получено около 20-24 кадров в секунду при 1920×1080 и до 45 при 1280×720.
Из возможностей:
- Чтение текстового экрана как текста, а не картинки: содержимое консоли BIOS, загрузчика или Linux-консоли распознаётся по знакогенератору и передаётся символами — экран занимает пару килобайт вместо мегабайт, а серийный номер или код ошибки можно выделить мышью и скопировать.
- Наблюдение за экраном по заданным фразам с оповещением, когда за устройством никто не следит.
- Управление питанием цели через оптопару (кнопки питания и сброса, чтение индикатора), Wake-on-LAN и пробуждение спящей машины по USB.
- Встроенные WireGuard и Tailscale, включая работу с собственным управляющим сервером Headscale.
- Интеграция с Home Assistant через MQTT: датчики, кнопки, сущность обновления прошивки и камера со снимком экрана цели.
- HTTPS с сертификатом, который устройство выпускает само, вход по паролю и физический сброс пароля кнопкой на плате; можно загрузить и свой сертификат.
- Обновление прошивки по сети с двумя слотами и автоматическим откатом, аварийный образ во внутренней флеш-памяти и точка доступа с порталом, если сети нет.
- Небольшой статусный экран (I2C OLED или круглый GC9A01) с адресом, состоянием линка и температурой.
- Виртуальные носители: образ диска с карты microSD отдаётся цели как загрузочный USB-накопитель, что позволяет установить систему на машину с пустым диском.
Прошивка собирается для десяти вариантов плат, среди которых Waveshare ESP32-P4-ETH, ESP32-P4-NANO и ESP32-P4-WIFI6, Espressif ESP32-P4 Function EV, Guition ESP32-P4-M3-Dev и M5Stack Unit PoE-P4. Сообществом создано несколько корпусов для самой популярной платы Waveshare ESP32-P4-ETH. Прошить плату можно прямо из браузера, без установки инструментов.
В выпуске 0.45.0 добавлена поддержка двух плат — Waveshare ESP32-P4-Module-DEV-KIT и DFRobot FireBeetle 2 ESP32-P4 — и опубликован разбор того, какие платы на ESP32-P4 для такой задачи не подходят и почему.
Источник: http://www.opennet.ru/opennews/art.shtml?num=66252
