An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
Kehvm is an open-source printed circuit board by knewter, from the knewter/kvm-board repository on GitHub. It is a 4-layer board of 120 × 92 mm with 70 parts on 64 nets.
It is built around the TC358743XBG, USB2514B/M2 and AMS1117-1.2, with the AMS1117-1.8, AMS1117-2.5 and AMS1117-3.3 among its other parts. It belongs with the ESP32 boards of this library.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
Features
1080p30 HDMI capture via TC358743 bridge
USB HID emulation (keyboard + mouse + absolute pointer) via ESP32-S3
USB mass storage for remote ISO mounting
ATX power control (power on/off, reset, LED status)
Single USB cable to target (on-board USB hub)
Web UI with live video, keyboard/mouse capture, ATX controls
Ethernet + WiFi connectivity
DIN-rail mountable 3D-printed enclosure
Architecture
text
Target HDMI ──► TC358743 ──► Milk-V Duo S (KVMD) ──► Browser
Target USB ◄── USB Hub ◄── ESP32-S3 (HID) ◄── Duo S (UART)
Target ATX ◄── Optocouplers ◄── Duo S GPIO
The ESP32-S3 handles USB HID emulation, the Duo S runs the KVM daemon (web server, video streaming, HID dispatch), and a custom carrier PCB ties everything together.
Quick Start (Simulation)
No hardware needed — simulate the full KVM pipeline against a QEMU virtual machine:
bash
# Install dependencies
pip install aiohttp asyncvnc pillow
# Run full simulation (boots Alpine Linux in QEMU)
mise run kvmd:vm
# Open http://localhost:8080 in your browser
Hardware
Designed in KiCad 10 as a 6-layer carrier PCB (120x92mm):
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
An open-source KVM-over-IP device built with a Milk-V Duo S (RISC-V) and ESP32-S3. Remotely control any computer's keyboard, video, and mouse over your network — at the hardware level, independent of the target's OS.
This is the primary CPU board for the Zx50 8-slot passive backplane system. It hosts the Z80 microprocessor (running at 5 MHz to 10 MHz) and acts as the master controller for the primary bus.
This is an experimental project to connect Raspberry Pi with the help of cheap Cyclone IV FPGA board to 8-bit ISA bus to act as multiple different devices.
Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.
184 parts93
Questions
How big is the Kehvm PCB?
It measures 120 × 92 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Kehvm use?
70 parts, built around the TC358743XBG, USB2514B/M2, AMS1117-1.2 and AMS1117-1.8. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Kehvm KiCad files?
From the knewter/kvm-board repository on GitHub, at the commit this page was made from: the board is hardware/kehvm.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Kehvm design in my own project?
Its repository states no licence, so its author keeps all rights: ask knewter before reusing the design.