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 to Igor Cancel 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.