An open IP-KVM on the ESP32-P4 — a target machine's screen, and a USB keyboard and mouse, in a browser.
Website · Flash from the browser · Releases
Reach a machine that has no working operating system — a BIOS screen, a boot menu, a kernel that will not come up — from a device that costs a fraction of a commercial KVM-over-IP. It captures HDMI through a TC358743 bridge, presents itself to the target over USB as a keyboard and mouse it cannot tell from real ones, and serves the whole thing over HTTPS from a megabyte of firmware.
- Follows the target — a switch from an 800×600 firmware screen to a 1080p desktop is followed on its own.
- Clicks land where aimed — an absolute USB pointer, immune to the target's mouse acceleration.
- MJPEG or H.264, both encoded in hardware.
- HTTPS and a login, with a certificate the device issues itself and a password you can clear with the board button if you forget it.
- Updates itself over the network, into a spare slot, with rollback.
- Says what it cannot do — every feature reports whether the hardware supports it, so a control that cannot work is shown disabled with the reason.
| espkvm | The firmware and the web console. |
| espkvm.io | The project page and the browser flasher. |
ESP-KVM began as a fork of jrowny/p4kvm by Jonathan Rowny. The TC358743 bring-up and the direct MIPI_CSI_BRIDGE programming — the hard, weeks-of-reverse-engineering part — are still the foundation. Everything above them was rewritten. Thank you, Jonathan, for putting it in the open.
Apache-2.0. Not for the public internet: keep it on a network you trust, or behind a VPN.
