
Espion cam
azais-corentin/espion
Multi-camera IR marker tracking: ESP32-P4/C5 firmware, Rust host, KiCad hardware

Four-layer HDMI/USB KVM design with STM32 firmware, supply supervision, and verification evidence
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.
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.
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.
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.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 26 | 100nF | Capacitor_SMD:C_0402_1005Metric | C3, C21, C22, C25, C27, C28, C29, C31, C34, C35, C36, C37, C38, C39, C40, C41 +10 |
| 18 | 100k | Resistor_SMD:R_0402_1005Metric | R17, R18, R19, R20, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34 +2 |
| 12 | TPD4E02B04DQA | KVM_Custom_Footprints:USON-10_2.5x1.0mm_P0.5mm_Assembly | U4, U5, U7, U11, U12, U13, U14, U15, U16, U17, U18, U19 |
| 11 | 10k | Resistor_SMD:R_0402_1005Metric | R2, R3, R4, R13, R39, R40, R41, R42, R43, R45, R49 |
| 8 | TPD4E05U06DQAR | KVM_Custom_Footprints:USON-10_2.5x1.0mm_P0.5mm_Assembly | U24, U25, U26, U27, U28, U29, U30, U31 |
| 6 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C10, C11, C12, C13, C14, C15 |
| 6 | Fiducial_1mm_Mask2mm | Fiducial_1mm_Mask2mm | FID1, FID2, FID3, FID4, FID5, FID6 |
| 5 | 1uF | Capacitor_SMD:C_0603_1608Metric | C24, C26, C32, C49, C50 |
| 4 | 220uF | Capacitor_SMD:CP_Elec_6.3x7.7 | C43, C44, C45, C46 |
| 4 | 22uF | Capacitor_SMD:C_1206_3216Metric | C1, C4, C51, C52 |
| 4 | 47k | Resistor_SMD:R_0402_1005Metric | R6, R14, R15, R16 |
| 4 | 5.1k | Resistor_SMD:R_0402_1005Metric | R7, R8, R9, R10 |
| 4 | TPS2051CDBVR | Package_TO_SOT_SMD:SOT-23-5 | U20, U21, U22, U23 |
| 4 | USBLC6-2SC6 | usblc6:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BL | D1, D2, D3, D4 |
| 3 | 10uF | Capacitor_SMD:C_0805_2012Metric | C2, C5, C23 |
| 3 | M3 mounting | MountingHole_3.2mm_M3 | H1, H2, H3 |
| 2 | 10uF | Capacitor_SMD:C_1206_3216Metric | C16, C30 |
| 2 | 150k | Resistor_SMD:R_0402_1005Metric | R35, R37 |
| 2 | 18pF | Capacitor_SMD:C_0402_1005Metric | C19, C20 |
| 2 | 210k | Resistor_SMD:R_0402_1005Metric | R47, R48 |
| 2 | 4.7k | Resistor_SMD:R_0402_1005Metric | R11, R22 |
| 2 | HD3SS215IRTQR | Package_DFN_QFN:QFN-56-1EP_8x8mm_P0.5mm_EP4.5x5.2mm_ThermalVias | U6, U8 |
| 2 | TPS2553DBVR | Package_TO_SOT_SMD:SOT-23-6 | U32, U33 |
| 2 | USB4105-GF-A-120 | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J1, J2 |
| 1 | 100nF | Capacitor_SMD:C_0603_1608Metric | C18 |
| 1 | 10k | KVM_Custom_Footprints:Assembly_R44 | R44 |
| 1 | 10k | KVM_Custom_Footprints:Assembly_R46 | R46 |
| 1 | 12.4k | Resistor_SMD:R_0402_1005Metric | R12 |
| 1 | 12V DC center-positive | Connector_BarrelJack:BarrelJack_Wuerth_694106106102_2.0x5.5mm | J3 |
| 1 | 150pF | Capacitor_SMD:C_0402_1005Metric | C33 |
| 1 | 1k | Resistor_SMD:R_0402_1005Metric | R50 |
| 1 | 24MHz 12pF | KVM_Custom_Footprints:Assembly_Y1 | Y1 |
| 1 | 53.6k | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 6.8uH | KVM_Custom_Footprints:Bourns_SRP7050TA | L1 |
| 1 | 600R@100MHz | Inductor_SMD:L_0805_2012Metric | L2 |
| 1 | AP2112K-3.3TRG1 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | AP63301WU-7 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | HDMI_A_1.4 | KVM_Custom_Footprints:Assembly_J_HDMI_C2_MON1 | J_HDMI_C2_MON1 |
| 1 | HDMI_A_1.4 | KVM_Custom_Footprints:Assembly_J_HDMI_MON2 | J_HDMI_MON2 |
| 1 | HDMI_A_1.4 | KVM_Custom_Footprints:Assembly_J_HDMI_MON1 | J_HDMI_MON1 |
| 1 | HDMI_A_1.4 | KVM_Custom_Footprints:Assembly_J_HDMI_C1_MON2 | J_HDMI_C1_MON2 |
| 1 | HDMI_A_1.4 | KVM_Custom_Footprints:Assembly_J_HDMI_C2_MON2 | J_HDMI_C2_MON2 |
| 1 | HDMI_A_1.4 | KVM_Custom_Footprints:Assembly_J_HDMI_C1_MON1 | J_HDMI_C1_MON1 |
| 1 | SN74LVC1G97DBVR | Package_TO_SOT_SMD:SOT-23-6 | U36 |
| 1 | SS34 | Diode_SMD:D_SMA | D20 |
| 1 | STM32F030C8Tx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U3 |
| 1 | SWD | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J4 |
| 1 | SW_Push | Button_Switch_THT:SW_SPST_Omron_B3F-40xx | SW1 |
| 1 | TPS3808G33DBVR | Package_TO_SOT_SMD:SOT-23-6 | U34 |
| 1 | TPS3808G50DBVR | Package_TO_SOT_SMD:SOT-23-6 | U35 |
| 1 | TS3USB221RSER | Package_DFN_QFN:Texas_UQFN-10_1.5x2mm_P0.5mm | U9 |
| 1 | USB1046-GF-0190-L-B-A | KVM_Custom_Footprints:Assembly_J_USB4 | J_USB4 |
| 1 | USB1046-GF-0190-L-B-A | KVM_Custom_Footprints:Assembly_J_USB2 | J_USB2 |
| 1 | USB1046-GF-0190-L-B-A | KVM_Custom_Footprints:Assembly_J_USB3 | J_USB3 |
| 1 | USB1046-GF-0190-L-B-A | KVM_Custom_Footprints:Assembly_J_USB1 | J_USB1 |
| 1 | USB2514B-AEZC-TR | Package_DFN_QFN:QFN-36-1EP_6x6mm_P0.5mm_EP3.7x3.7mm_ThermalVias | U10 |
It measures 100 × 100 mm and has 4 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask Rithvik-Vadlamani before reusing the design.

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



embeddedos-org/eCAD-Hardware-Products
Hardware designs + EE docs + Board datasheets of Multiple products

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

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.

wiretap-retro/A2000-USB-Keyboard-Adapter-RP2040
A USB keyboard adapter for the Amiga 2000 based on the Pi Stamp RP2040

lightsource-nz/crossfire_mk5
crossfire: USB-MIDI forwarding agent for embedded USB-MIDI smart hubs