The release of the ESP-KVM project has been published, which develops open firmware that turns the debugging board based on the ESP32-P4 microcontroller into a full-fledged IP-KVM — a device that provides access to the screen, keyboard, and mouse of a remote computer via a browser. Unlike remote desktop tools, nothing is installed on the managed machine, and nothing is required from its operating system: the device connects to the video output and USB port and works even when the computer displays the BIOS interface, is booting up, is idle with an empty disk, or is turned off. The code is written in C and distributed under the Apache 2.0 license.
The device consists of two small boards: one with the ESP32-P4 and the capture board based on the TC358743 chip, which converts HDMI input into MIPI-CSI. The image is then encoded by the hardware encoders of the microcontroller — H.264 or MJPEG — and sent to the browser. The keyboard and mouse are provided to the target machine via USB OTG, meaning it recognizes standard input devices and requires no drivers. The reference board achieves around 20-24 frames per second at 1920×1080 and up to 45 at 1280×720.
Features include:
- Reading the text screen as text rather than an image: content from the BIOS console, bootloader, or Linux console is recognized by the character generator and transmitted as characters — the screen occupies a couple of kilobytes instead of megabytes, and serial numbers or error codes can be highlighted with the mouse and copied.
- Monitoring the screen based on specified phrases with notifications when the device is not being watched.
- Power control of the target through optocouplers (power button and reset, reading indicators), Wake-on-LAN, and waking the sleeping machine via USB.
- Built-in WireGuard and Tailscale, including integration with a custom controller proxy server Headscale.
- Integration with Home Assistant via MQTT: sensors, buttons, firmware update entity, and camera with a screenshot of the target.
- HTTPS with a self-issued certificate, password-protected access, and a physical password reset button on the board; you can also upload your own certificate.
- Network firmware updates with two slots and automatic rollback, a recovery image in internal flash memory, and a hotspot with a portal when no network is available.
- A small status screen (I2C OLED or circular GC9A01) indicating the address, link status, and temperature.
- Virtual media: the disk image from the microSD card is given to the target as a bootable USB drive, allowing the system to be installed on a machine with an empty disk.
The firmware is built for ten types of boards, including Waveshare ESP32-P4-ETH, ESP32-P4-NANO, and ESP32-P4-WIFI6, Espressif ESP32-P4 Function EV, Guition ESP32-P4-M3-Dev, and M5Stack Unit PoE-P4. The community has created several cases for the most popular board, Waveshare ESP32-P4-ETH. The board can be flashed directly from the browser without installing tools.
Release 0.45.0 adds support for two boards — Waveshare ESP32-P4-Module-DEV-KIT and DFRobot FireBeetle 2 ESP32-P4 — and published an analysis of which ESP32-P4 boards are unsuitable for such a task and why.


Source: opennet.ru
