A few years ago I scored a great deal on several HP Elite Desk 600 Mini PC’s. Purchasing in bulk $165, each machine cost me only $33.
I upgraded the ram in all of them, sold two for $120, and kept the rest to make a Kubernetes cluster. I was all in for about $200, minus the $120, or should I say $104 after eBay’s cut, I was pretty happy with my sub $100 cluster.
The idea was I’d set them all up with Proxmox and use them for some of my own hosting needs via a kubernetes cluster.
The time came to set them up. I have a small house and a lot of kids, six :). Not a great combination, computers, flashdrives, monitor, mouse, and keyboard; cables were everywhere..
It was an annoying process, switching the monitor, keyboard and mouse between them. It reminded me how annoying using a Raspberry PI was if you didn’t have networking setup with it so you could SSH in right away.
I kept thinking to myself the entire time, “How is it there is no simple KVM cable that I can just plug in and use my laptop as Keyboard, Mouse, and Display for these machines I’m working on?”
As it turns out, there was, they are called crash karts, and they were around $500.
I reeled at price, I couldn’t believe it. A little more looking around, and I came across several Raspberry PI projects for network KVMs as well.
They were a little better priced, but even these options were hundreds of dollars, and came with a decent amount of setup complexity.
How hard could it be to just have a single cable on the controlling side, and a display cable with mouse/keyboard cable on the other.
As I looked into the issue more, I started thinking seriously, maybe this was something I would have to create myself.
I had some cheap HDMI USB2.0 capture cards I had purchased, they were a little latent, but for the price pretty good. I also knew the RP2040 PICO and some Arduino variants could be configured as a HID device, to be a mouse or keyboard. How hard could it be to put these together into simple KVM solution?
And so the idea was born, if I could combine a cheap capture card, and a cheap MCU with reasonable software, I could create the tool I always wanted but didn’t have. And If I was looking for it. Maybe others were too.
It was the summer of 2022, and by the end of August I had the HDMI capture card working with OpenCV-Python and had a working Python script for capturing keystrokes. The key stroke capture worked perfectly, but the mouse and video performance, were pretty lack luster. It was usable, but needed refinement.
It was clunky, but as a POC, it was a success!