Skip to the content
4 layers120 × 92 mmKehvm, the printed circuit board in 3D

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.

Size
120 × 92 mm
Copper layers
4
Thickness
1.6 mm
Parts
70
Nets
64
Pads
472
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 0.1 (file 20240108)
Created
26 May 2026
Updated
26 May 2026

Overview

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.

Main components

7

README

README.md

KVM Board

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):

ComponentPartPurpose
Main SBCMilk-V Duo S (SG2000)KVMD daemon, video capture, networking
HID ControllerESP32-S3USB keyboard/mouse emulation
HDMI CaptureTC358743XBGHDMI 1.4 → MIPI CSI-2 bridge
USB HubUSB2514BCombines HID + mass storage into single cable
ATX Control4x PC817Optocoupler-isolated power/reset control

Estimated BOM cost: ~$62/unit (qty 5), ~$40-45 (qty 50+)

bash
# Open KiCad project
mise run kicad hardware/kvm-carrier.kicad_pro

Software Stack

  • KVMD (software/kvmd/) — Python asyncio daemon with aiohttp web server
  • ESP32 Firmware (firmware/esp32-hid/) — ESP-IDF + TinyUSB USB HID composite device
  • Protocol (software/sim/protocol.py) — Shared UART protocol (Python + C)

Testing

bash
cd software/sim && python -m pytest -v      # Protocol tests
cd software/kvmd && python -m pytest -v     # KVMD tests

Project Status

  • Design spec and BOM
  • ESP32-S3 HID firmware
  • KVMD daemon with web UI
  • QEMU VM simulation mode
  • KiCad 10 project structure
  • Schematic component placement
  • PCB layout
  • Duo S Linux image / device tree overlay
  • Hardware prototype

License

TBD

Parts

70
QtyValueFootprintReferences
17100nC_0402_1005Metrichdmi.C16, hdmi.C17, hdmi.C18, hdmi.C19, hdmi.C20, hdmi.C21, hdmi.C22, hdmi.C24, pwr.C4, pwr.C7, pwr.C10, pwr.C13, usb.C23, usb.C25, usb.C31, usb.C32 +1
810uC_0805_2012Metricpwr.C2, pwr.C3, pwr.C5, pwr.C6, pwr.C8, pwr.C9, pwr.C11, pwr.C12
410kR_0402_1005Metricatx.R12, atx.R13, hdmi.R6, usb.R9
4PC817SOP-4_4.4x2.6mm_P1.27mmatx.U7, atx.U8, atx.U9, atx.U10
210nC_0402_1005Metricusb.C41, usb.C42
210pC_0402_1005Metrichdmi.C26, hdmi.C27
220pC_0402_1005Metricusb.C38, usb.C39
2330R_0402_1005Metricatx.R10, atx.R11
24.7kR_0402_1005Metrichdmi.R4, hdmi.R5
25.1kR_0402_1005Metricpwr.R1, pwr.R2
2600RL_0603_1608Metrichdmi.FB1, hdmi.FB2
112kR_0402_1005Metricusb.R8
11kR_0402_1005Metricpwr.R3
124MHzCrystal_SMD_3225-4Pin_3.2x2.5mmusb.X2
127MHzCrystal_SMD_3225-4Pin_3.2x2.5mmhdmi.X1
12kR_0402_1005Metrichdmi.R7
147uC_1206_3216Metricpwr.C1
1AMS1117-1.2SOT-223-3_TabPin2pwr.U3
1AMS1117-1.8SOT-223-3_TabPin2pwr.U2
1AMS1117-2.5SOT-223-3_TabPin2pwr.U4
1AMS1117-3.3SOT-223-3_TabPin2pwr.U1
1ATX_FPPinHeader_2x05_P2.54mm_Verticalatx.J5
1CSI_FPC_15Hirose_FH12-15S-0.5SH_1x15-1MP_P0.50mm_Horizontalconn.J10
1ESP32-S3-Header1PinHeader_2x20_P2.54mm_Verticalesp32.J3
1ESP32-S3-Header2PinHeader_2x20_P2.54mm_Verticalesp32.J4
1HDMI_AHDMI_A_Amphenol_10029449-x01xLF_Horizontalconn.J6
1MilkV-DuoS-Header1PinHeader_2x13_P2.54mm_Verticalduos.J1
1MilkV-DuoS-Header2PinHeader_2x13_P2.54mm_Verticalduos.J2
1PWRLED_0805_2012Metricpwr.D1
1RJ45RJ45_Amphenol_RJHSE538Xconn.J9
1TC358743XBGcsBGA-64_5x5mm_Layout8x8_P0.5mmhdmi.U5
1USB2514BQFN-36-1EP_6x6mm_P0.5mm_EP3.7x3.7mmusb.U6
1USB_AUSB_A_Molex_67643_Horizontalconn.J7
1USB_CUSB_C_Receptacle_HRO_TYPE-C-31-M-12conn.J8

More from knewter/kvm-board

8
  • 6 layers102.7 × 91.4 mmBoard r2.turbocase, the printed circuit board in 3D

    Board r2.turbocase

    knewter/kvm-board

    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.

    57 parts2
  • 2 layers100 × 90 mmGreenhouse ctl r4.turbocase, the printed circuit board in 3D

    Greenhouse ctl r4.turbocase

    knewter/kvm-board

    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.

    28 parts2
  • 2 layers80 × 65 mmRelay4 r4.turbocase, the printed circuit board in 3D

    Relay4 r4.turbocase

    knewter/kvm-board

    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.

    21 parts2
  • 2 layers90 × 80 mmRobocar r2, the printed circuit board in 3D

    Robocar r2

    knewter/kvm-board

    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.

    19 parts2
  • 2 layers80 × 100 mmDoor sec r1.turbocase, the printed circuit board in 3D

    Door sec r1.turbocase

    knewter/kvm-board

    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.

    17 parts2
  • 2 layers55 × 38 mmUsb c esp32-12v relay driver.turbocase, the printed circuit board in 3D

    Usb c esp32-12v relay driver.turbocase

    knewter/kvm-board

    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.

    15 parts2
  • 2 layers35 × 25 mmPd trigger.turbocase, the printed circuit board in 3D

    Pd trigger.turbocase

    knewter/kvm-board

    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.

    14 parts2
  • 2 layers25 × 18 mmUsb c led blinker button.turbocase, the printed circuit board in 3D

    Usb c led blinker button.turbocase

    knewter/kvm-board

    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.

    13 parts2

Similar boards

  • 2 layers101.6 × 147.3 mmKarabas pro revER, the printed circuit board in 3D

    Karabas pro revER

    andykarpov/karabas-pro

    FPGA based retrocomputer with FDD and HDD controllers

    223 parts37MIT
  • 4 layers68 × 45 mmAntmicro hdmi mipi bridge hw, the printed circuit board in 3D

    Antmicro hdmi mipi bridge hw

    antmicro/hdmi-mipi-bridge

    Antmicro's open hardware HDMI into MIPI CSI-2 converter

    121 parts123Apache-2.0
  • 6 layers132.1 × 107.9 mmZx50 MemoryCard RevC1, the printed circuit board in 3D

    Zx50 MemoryCard RevC1

    mmosko/Zx50

    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.

    235 parts
  • 4 layers52 × 72 mmRISCV SoC Board, the printed circuit board in 3D

    RISCV SoC Board

    Umer-Haseeb/RISCV_SoC_Board_PCB

    91 parts
  • 2 layers95 × 55 mmDolbyDecoder, the printed circuit board in 3D

    DolbyDecoder

    duanestorey/hifi-amplifier

    A Custom 5.1 LM3886 Based Custom Amplifier

    134 parts3
  • 2 layers78 × 60 mmIce viz, the printed circuit board in 3D

    Ice viz

    muni-works/vcad

    BRep CAD kernel in Rust/WASM

    44 parts442Apache-2.0
  • 2 layers104.1 × 71.1 mmMinifp, the printed circuit board in 3D

    Minifp

    eigenco/frankenpi

    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.

    69 parts139
  • 2 layers94.5 × 74.4 mmAx58100-stm32-ethercat, the printed circuit board in 3D

    Ax58100-stm32-ethercat

    MetalMusings/MyOwnEtherCATDevice

    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.