Very old WinXP embeded PC with only PS/2 keyboard+mouse and VGA on PiKVM V3 HAT

Hi all,

My challenge is to remote control an old PC, which is built into a scientific measuring instrument, using PiKVM. It’s a challenge because the PC only accepts PS/2 input devices and has only a VGA port. The VGA issue was resolved to a reasonable extent using a VGA-to-HDMI converter: The image quality isn’t great, but it’s adequate.

The built-in PC does have a USB port, but when you connect a USB keyboard or mouse, it tries to load a driver and asks for an installation medium that doesn’t exist. With a “regular” version of Windows XP, this isn’t a problem because there’s a generic HID driver, but in this case it’s “Windows XP Embedded,” which is incomplete in many respects. The manufacturer no longer provides support, unfortunately.

So I was happy when I discovered the “Pico HID” subproject. I followed these instructions and assembled the hardware with the greatest possible care. Of course, you can never completely rule out wiring errors, but I’m pretty sure everything is correct.

Unfortunately, none of the input devices are working at all. The mouse and keyboard icons on the “KVM” screen are red. I don’t know of any way to test the functionality of the Raspberry Pi Pico.

Can someone please give me some tips on how I can narrow down the problem?

Thanks!

Thomas

Did you do the Pico HID or the Pico HID Bridge? The Pico HID - PS/2 Bridge - PiKVM Handbook

Actually, I followed these instructions—specifically the version where the RasPi (PiKVM) and Pico are connected using seven wires and a diode. That was the first thing I found.

Maybe I should try “The Pico HID - PS/2 Bridge” instead. Now that I see it, I think it’s simpler and sufficient for my needs. What are the advantages of “Pico HID“ in comparison? That you could connect “real” PS/2 input devices as well?

Actually, the instructions for “Pico HID” were really good. I can hardly imagine where I went wrong. The only thing is, I used a different diode. It’s not a Schottky diode, so the voltage at the Pico might be too low. But I’d have to measure it again carefully to be sure (I don’t have the setup handy right now).

The only thing that left me a bit unsure was the jumper settings in the “HID modes” table: do I need to connect both GP2 and GP6 to ground, or just GP2? I’ve already tried a few different options, but without success.

Thanks and best regards,

Thomas

The Pico HID PS/2 would be better for your use case where the USB on the system might complain about drivers or especially if the USB isn’t well supported in the BIOS and other screens. One thing you could try if you are connecting a PiKVM directly via USB is to update the VID:PID that it uses to identify itself to the system, if you match a simple device that the device already has drivers for and disable the mass storage and UAC (usb audio) endpoints, then it should work normally.

The Pico HID PS/2 would be better for your use case where the USB on the system might complain about drivers or especially if the USB isn’t well supported in the BIOS and other screens.

Why? The standard “Pico HID” seems more complicated to me, and in the end, I set it up exactly that way, but the thing just doesn’t work. And unfortunately, I don’t see any way to systematically narrow down the problem. At most, I can check the wiring again. I can’t tell exactly what the Pico is doing—or not doing. That was exactly my question: what options do I have for troubleshooting?

One thing you could try if you are connecting a PiKVM directly via USB is to update the VID:PID that it uses to identify itself to the system, if you match a simple device that the device already has drivers for

Unfortunately, that doesn’t work. I’ve already tried a very simple USB keyboard, as well as a basic USB mouse and a USB keyboard with a touchpad. The PC apparently only supports PS/2 input devices and doesn’t have any drivers for USB HID devices. Changing the VID:PID will most likely be of no use either. If even the simplest USB keyboard can’t be used, then the HID devices emulated by PiKVM certainly won’t work either. That’s exactly why I’m looking for a way to simulate the appropriate input devices on the PS/2 ports.

If I can’t get one of the Pico HID solutions to work, then PiKVM is unfortunately useless for this computer.

Thomas

I’m pretty confident the Pico HID PS/2 Bridge should be the solution to your issue. I’ve run into the same thing years ago with devices that I was working with, and I’ve still got a couple PS/2 keyboards around specifically for that reason. There are some tricky USB to PS/2 adapters, but those actually require the USB device to have a fallback firmware that can operate over the PS/2 protocol instead of USB HID.

I haven’t actually assembled a Pico HID or Bridge myself yet but I did pick up the parts as I have a couple side projects where it could be handy. I’ll see if I can find the parts and get one put together and see what kind of testing can be done from a non-PiKVM device, typically it would be using a Python script or similar to send the keystrokes to be translated to the target device. For the regular Pico HID you’d need to do this from a Pi3 or Pi4 that has the GPIO pins available, with the PS/2 bridge you could do it with any device with USB.