Skip to the content
PCBKitNew board
4 layers100 × 100 mmKvm switch, the printed circuit board in 3D

Four-layer HDMI/USB KVM design with STM32 firmware, supply supervision, and verification evidence

Size
100 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
170
Nets
239
Pads
1,051
Tracks, vias
4,399, 387
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Sep 2026
Updated
14 Oct 2026

Overview

Kvm switch is an open-source printed circuit board by Rithvik-Vadlamani, from the Rithvik-Vadlamani/kvm-switch repository on GitHub. It is a 4-layer board of 100 × 100 mm with 170 parts on 239 nets, routed with 4,399 tracks and 387 vias.

It is built around the STM32F030C8T6, HD3SS215IRTQT and USB2514B-AEZC-TR, with the TPD4E02B04DQAR, TPD4E05U06DQAR and TPS2051CDBVR among its other parts. Its parts include 54 capacitors, 48 resistors, 36 ICs, 5 diodes and 4 connectors. It belongs with the interfaces and adapters boards and the STM32 boards of this library.

Main components

12

README

README.md

HDMI/USB KVM switch

A four-layer board and STM32F030 firmware for sharing two HDMI displays and a four-port USB 2.0 hub between two computers. I designed the switching hardware and firmware, including supply supervision, hub reset control, and a timed disconnect sequence.

Start here

Current published design: A2, September 2026. It uses external regulated 12 V power. The USB-C host connectors carry USB 2.0 data; they do not provide USB-C video or USB Power Delivery.

The firmware switches with a 150 ms disconnect interval followed by 100 ms of settling, handles host detection, debounces the selection button, and uses watchdog recovery. The verification package contains state exploration and mutation results, plus PCB checks.

Build and test

The firmware needs GNU Make and the GNU Arm toolchain. Run make -C firmware to build the STM32 image. The firmware README describes the host-side checks.

This is a prototype design. Firmware/model tests and static PCB checks do not establish USB enumeration, HDMI interoperability, signal integrity, or physical operating limits. The board has not been qualified on assembled hardware.

Parts

170
QtyValueFootprintReferences
26100nFCapacitor_SMD:C_0402_1005MetricC3, C21, C22, C25, C27, C28, C29, C31, C34, C35, C36, C37, C38, C39, C40, C41 +10
18100kResistor_SMD:R_0402_1005MetricR17, R18, R19, R20, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34 +2
12TPD4E02B04DQAKVM_Custom_Footprints:USON-10_2.5x1.0mm_P0.5mm_AssemblyU4, U5, U7, U11, U12, U13, U14, U15, U16, U17, U18, U19
1110kResistor_SMD:R_0402_1005MetricR2, R3, R4, R13, R39, R40, R41, R42, R43, R45, R49
8TPD4E05U06DQARKVM_Custom_Footprints:USON-10_2.5x1.0mm_P0.5mm_AssemblyU24, U25, U26, U27, U28, U29, U30, U31
60.1uFCapacitor_SMD:C_0402_1005MetricC10, C11, C12, C13, C14, C15
6Fiducial_1mm_Mask2mmFiducial_1mm_Mask2mmFID1, FID2, FID3, FID4, FID5, FID6
51uFCapacitor_SMD:C_0603_1608MetricC24, C26, C32, C49, C50
4220uFCapacitor_SMD:CP_Elec_6.3x7.7C43, C44, C45, C46
422uFCapacitor_SMD:C_1206_3216MetricC1, C4, C51, C52
447kResistor_SMD:R_0402_1005MetricR6, R14, R15, R16
45.1kResistor_SMD:R_0402_1005MetricR7, R8, R9, R10
4TPS2051CDBVRPackage_TO_SOT_SMD:SOT-23-5U20, U21, U22, U23
4USBLC6-2SC6usblc6:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLD1, D2, D3, D4
310uFCapacitor_SMD:C_0805_2012MetricC2, C5, C23
3M3 mountingMountingHole_3.2mm_M3H1, H2, H3
210uFCapacitor_SMD:C_1206_3216MetricC16, C30
2150kResistor_SMD:R_0402_1005MetricR35, R37
218pFCapacitor_SMD:C_0402_1005MetricC19, C20
2210kResistor_SMD:R_0402_1005MetricR47, R48
24.7kResistor_SMD:R_0402_1005MetricR11, R22
2HD3SS215IRTQRPackage_DFN_QFN:QFN-56-1EP_8x8mm_P0.5mm_EP4.5x5.2mm_ThermalViasU6, U8
2TPS2553DBVRPackage_TO_SOT_SMD:SOT-23-6U32, U33
2USB4105-GF-A-120Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1, J2
1100nFCapacitor_SMD:C_0603_1608MetricC18
110kKVM_Custom_Footprints:Assembly_R44R44
110kKVM_Custom_Footprints:Assembly_R46R46
112.4kResistor_SMD:R_0402_1005MetricR12
112V DC center-positiveConnector_BarrelJack:BarrelJack_Wuerth_694106106102_2.0x5.5mmJ3
1150pFCapacitor_SMD:C_0402_1005MetricC33
11kResistor_SMD:R_0402_1005MetricR50
124MHz 12pFKVM_Custom_Footprints:Assembly_Y1Y1
153.6kResistor_SMD:R_0402_1005MetricR1
16.8uHKVM_Custom_Footprints:Bourns_SRP7050TAL1
1600R@100MHzInductor_SMD:L_0805_2012MetricL2
1AP2112K-3.3TRG1Package_TO_SOT_SMD:SOT-23-5U2
1AP63301WU-7Package_TO_SOT_SMD:SOT-23-6U1
1HDMI_A_1.4KVM_Custom_Footprints:Assembly_J_HDMI_C2_MON1J_HDMI_C2_MON1
1HDMI_A_1.4KVM_Custom_Footprints:Assembly_J_HDMI_MON2J_HDMI_MON2
1HDMI_A_1.4KVM_Custom_Footprints:Assembly_J_HDMI_MON1J_HDMI_MON1
1HDMI_A_1.4KVM_Custom_Footprints:Assembly_J_HDMI_C1_MON2J_HDMI_C1_MON2
1HDMI_A_1.4KVM_Custom_Footprints:Assembly_J_HDMI_C2_MON2J_HDMI_C2_MON2
1HDMI_A_1.4KVM_Custom_Footprints:Assembly_J_HDMI_C1_MON1J_HDMI_C1_MON1
1SN74LVC1G97DBVRPackage_TO_SOT_SMD:SOT-23-6U36
1SS34Diode_SMD:D_SMAD20
1STM32F030C8TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU3
1SWDConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ4
1SW_PushButton_Switch_THT:SW_SPST_Omron_B3F-40xxSW1
1TPS3808G33DBVRPackage_TO_SOT_SMD:SOT-23-6U34
1TPS3808G50DBVRPackage_TO_SOT_SMD:SOT-23-6U35
1TS3USB221RSERPackage_DFN_QFN:Texas_UQFN-10_1.5x2mm_P0.5mmU9
1USB1046-GF-0190-L-B-AKVM_Custom_Footprints:Assembly_J_USB4J_USB4
1USB1046-GF-0190-L-B-AKVM_Custom_Footprints:Assembly_J_USB2J_USB2
1USB1046-GF-0190-L-B-AKVM_Custom_Footprints:Assembly_J_USB3J_USB3
1USB1046-GF-0190-L-B-AKVM_Custom_Footprints:Assembly_J_USB1J_USB1
1USB2514B-AEZC-TRPackage_DFN_QFN:QFN-36-1EP_6x6mm_P0.5mm_EP3.7x3.7mm_ThermalViasU10

Questions

How big is the Kvm switch PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Kvm switch use?

170 parts, built around the STM32F030C8T6, HD3SS215IRTQT, USB2514B-AEZC-TR and TPD4E02B04DQAR. 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 Kvm switch KiCad files?

From the Rithvik-Vadlamani/kvm-switch repository on GitHub, at the commit this page was made from: the board is KVM_Switch.kicad_pcb and its schematic KVM_Switch.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Kvm switch design in my own project?

Its repository states no licence, so its author keeps all rights: ask Rithvik-Vadlamani before reusing the design.

Similar boards

  • 4 layers64 × 64 mmEspion cam, the printed circuit board in 3D

    Espion cam

    azais-corentin/espion

    Multi-camera IR marker tracking: ESP32-P4/C5 firmware, Rust host, KiCad hardware

    188 partsApache-2.0
  • 8 layers134.5 × 107.2 mmArctic video, the printed circuit board in 3D

    Arctic video

    aerogull/arctic-video

    a wip pcie fpga card designed with video capture in mind

    265 parts1
  • 4 layers227.5 × 75.2 mmNehan42, the printed circuit board in 3D

    Nehan42

    skeletonkbd/Nehan

    Minimal 30% keyboard PCB and Case Project

    183 partsCERN-OHL-S-2.0
  • 4 layers90 × 80 mmEos cm4-base, the printed circuit board in 3D

    Eos cm4-base

    embeddedos-org/eCAD-Hardware-Products

    Hardware designs + EE docs + Board datasheets of Multiple products

    46 parts8MIT
  • 4 layers55.5 × 68.5 mmRov usb, the printed circuit board in 3D

    Rov usb

    samnadol/ROV_PCIe_USB_HUB

    up-to-16 port USB hub + PCIe host controller "hat" for Pi 5

    142 parts
  • 6 layers90 × 153 mmBlackpants, the printed circuit board in 3D

    Blackpants

    o7-machinehum/Blackpants

    Open blackpants.kicadpro for the active A523 schematic and PCB. It replaces the A33 hierarchy and uses AXP717C + AXP323 with 2GB LPDDR4.

    300 parts189MIT
  • 2 layers55.2 × 53 mmAmiga-2000-usb kb stamp, the printed circuit board in 3D

    Amiga-2000-usb kb stamp

    wiretap-retro/A2000-USB-Keyboard-Adapter-RP2040

    A USB keyboard adapter for the Amiga 2000 based on the Pi Stamp RP2040

    14 parts11
  • 4 layers100 × 49.8 mmCrossfire, the printed circuit board in 3D

    Crossfire

    lightsource-nz/crossfire_mk5

    crossfire: USB-MIDI forwarding agent for embedded USB-MIDI smart hubs

    110 parts1