Motion-Controlled KVM Switch

Once upon a time, [hardwarecoder] acquired a Gen8 HP microserver that he began to toy around with. It started with ‘trying out’ some visualization before spiraling off the rails and fully setting up FreeBSD with ZFS as a QEMU-KVM virtual machine. While wondering what to do next, he happened to be lamenting how he couldn’t also fit his laptop on his desk, so he built himself a slick, motion-sensing KVM switch to solve his space problem.

At its heart, this device injects DCC code via the I2C pins on his monitors’ VGA cables to swap inputs while a relay ‘replugs’ the keyboard and mouse from the server to the laptop — and vice-versa — at the same time. On the completely custom PCB are a pair of infrared diodes and a receiver that detects Jedi-like hand waves which activate the swap. It’s a little more complex than some methods, but arguably much cooler.

Using an adapter, the pcb plugs into his keyboard, and the monitor data connections and keyboard/mouse output to the laptop and server stream out from there. There is a slight potential issue with cables torquing on the PCB, but with it being so conveniently close, [hardwarecoder] doesn’t need to handle it much.

[hardwarecoder]’s post is an impressively detailed breakdown and how-to for those of you who dare to dive into a similar endeavour. When managing larger computer systems, KVM switches are convenient solution, but can be an insidious vulnerability if left unchecked.

7 thoughts on “Motion-Controlled KVM Switch

  1. i wish monitors (or gpu’s?) wouldn’t take so long to switch to another source. I imagine back in the VGA days the monitor would probably need to scan a few fields to average some signal threshold levels etc., and the CRT would need some time to setup and settle new amplifier settings and signal timings or whatnot. But i cannot imagine there’s an excuse nowadays for it to take a full 2-3 seconds to switch to another high speed digital link.

    1. Hi Bill,

      About iLO, it wont give me much since I’m using VGA passthrough on this microserver.

      Additionally I can use any hardware I like, so e.g. I can switch screens between laptop and raspberry pi, hp gen8 and laptop with windows … so anything that has vga/hdmi/dvi output and supports usb keyboard+mouse.


Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.