← All boards

ESP-KVM is free, open-source firmware that turns the Waveshare ESP32-P4-ETH into an IP-KVM: the screen, keyboard and mouse of another computer in your browser, from the BIOS up. Add an HDMI capture board, flash it from the browser, and it runs with no Linux, no app and no cloud. What it does → Try the demo →

Waveshare ESP32-P4-ETH
The device - the one this project is built on

Waveshare ESP32-P4-ETH

ESP32-P4 with 100M Ethernet, a 22-pin camera connector, USB OTG and a microSD slot.

StatusRun on hardware
FamilyAll Waveshare parts
ChipESP32-P4, rev 1.x or rev 3.x (an image for each)
Memory32 MB PSRAM, 32 MB flash
Size78 x 21 mm
Network100M Ethernet
To the targetUSB 2.0 OTG on an MX1.25 connector
Capture connector22-pin 0.5 mm camera connector (the Pi 5 / Zero kind)
microSDyes
Measured1080p MJPEG 20 fps; 720p 45 fps

Which revision? Read the chip: ESP32-P4NRW32X, with an X at the end, is rev 3.x; ESP32-P4NRW32 without it is rev 1.x. The product code does not tell. Or plug the board in and read it in the browser: it shows the revision, the flash and the PSRAM.

Install from the browser Waveshare product page Compare

The board ESP-KVM was written on, and the default image: the flasher offers it first. Ethernet only, no Wi-Fi.

Wiring

  • The USB-C port is the flashing and console bridge (CH343), not the target's port.
  • The USB 2.0 OTG that goes to the target is on the MX1.25 connector, so the lead is MX1.25 to USB-A.
  • The target's 5 V comes back down that lead: pulling it at the target's end restarts the KVM.
  • The camera connector is the narrow 22-pin one. The C790 has a 22-pin connector on its back and a 22-pin ribbon in the box, so they join directly. A capture board with only the wide 15-pin connector, like Waveshare's adapter, needs a 15-to-22-pin ribbon (sold as a Raspberry Pi 5 camera cable).

Measured

MJPEG at quality 70, rev 1.3 chip:

ModefpsBitrate
1920x10802017.5 Mbit/s
1280x72045.516.8 Mbit/s
1024x7685617.6 Mbit/s

A still screen costs nothing, since unchanged frames are skipped. H.264 on this chip runs at 5-7 fps at 1080p and 17 fps at 720p, but an idle desktop costs 170 kbit/s against MJPEG's 8.5 Mbit/s: it is for narrow links, not for smoothness. A rev 3.x chip does 22-24 fps at 1080p.

Good to know

  • The BOOT button (GPIO 35) is also an Ethernet pin, so the device reads it once, early in start-up. For the password reset: press reset, release, then hold BOOT.
  • The microSD writes at 40 MHz because the slot's power comes from the chip's LDO 4.
  • Waveshare ships rev 1.3 today, and the product code does not tell the revision. The boot log prints chip revision:.

Another ESP32-P4 board with Ethernet and the same camera connector can run it too. The pins are set in menuconfig, not in the code.

Capture boards

Cases for it