ESP-KVM – An open-source IP KVM solution based on ESP32-P4 RISC-V MCU

Earlier this month, the P4 KVM project was brought to my attention. It provides IP KVM functionality to a Waveshare ESP32-P4-WIFI6-POE-ETH board when paired with a Toshiba TC358743 HDMI-to-CSI adapter.

However, it doesn’t work with the new ESP32-P4 V3.x variants featuring a proper H.264 video encoding implementation, and the developer (Jonathan Rowny) says it’s just a proof-of-concept with many bugs and no security, so I decided to skip it. The good news is that he also encouraged others to fork the project, and Evgenij Spitsyn did just that with the release of the ESP-KVM project, which supports both MJPEG and H.264 encoding and a range of other features.

ESP-KVM ESP32-P4 IP KVM

ESP-KVM highlights:

  • Video capture, resolution changes, and MJPEG or H.264 encoding
  • Keyboard, absolute and relative pointer, media keys, copy/paste
  • Touch mode for phones and tablets (trackpad, on-screen keyboard)
  • Multiple viewers, one in control at a time with takeover
  • HTTPS, login, physical password reset
  • Firmware updates over the network, with rollback
  • Thermal protection
  • Virtual media — boot the target from a disk image (microSD card or on-chip flash)
  • Guessing the target’s OS from how it enumerates USB
  • User macros — replayable key sequences
  • Wake-on-LAN (no ATX wiring)
  • Static IP or DHCP
  • ATX power control (power/reset buttons, power-LED sensing)

Some caveats include that HDMI audio is not implemented yet, and the developer explains that apart from HTTPS login and TLS, the security of the solution has not been evaluated thoroughly. For the latter reason, it’s recommended to use it on a LAN or behind a VPN only.

ESP-KVM architecture
Just connect USB and HDMI cables to the target

Evgenij uses slightly different hardware, relying on a Waveshare ESP32-P4-ETH board ($20 on Amazon) or an ESP32-P4-Function-EV-Board, and a Geekworm C790 MIPI CSI-to-HDMI board ($23.90), as well as an optional 2-channel PC817 optocoupler module for power and reset buttons/status ($1.30 on AliExpress). The BoM cost is around $45, meaning you won’t save anything considering the price of entry-level IP KVMs these days, but it’s still an interesting project. It should also work with other ESP32-P4 boards with MIPI CSI, USB, and Ethernet or WiFi for connectivity.

Waveshare ESP32-P4-ETH Geekworm C970 PC817 2-channel module
Waveshare ESP32-P4-ETH, Geekworm C970, and PC817 2-channel module
ESP32-P4 PC817 wiring
ESP32-P4, PC817, and front panel header wiring

As I started wiring this article, I assumed boards based on the new ESP32-P4 V3.x microcontrollers were more common, and H.264 was properly implemented. However, the ESP-KVM project status is the same as the P4 KVM project: 20 FPS with MJPEG and 7 FPS with H.264. That’s because Evgenij still used a board with an ESP32-P4 V1.3 chip that requires an additional color space conversion step that won’t be required with V3.x. As a side note, I noticed that Wireless Tag offers an ESP32-P4 V3.2 module earlier today, so these are definitely coming very soon.

You’ll find all resources to get started with the ESP-KVM project on its website and a GitHub repository with the code and additional documentation. You don’t even need hardware to test it, since there’s a live demo to give you a feel for the user interface.

Via Hackaday

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Dragon Q8B Edge AI SBC with Snapdragon 8cx Gen3 SoC
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
4 Comments
oldest
newest
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC