Boot Mode Keyboard Support

I have an issue where my keyboard is not recognized by my KVM switch when using the remapper. I tried it on the Adafruit Feather RP2040 board and the KVM will not recognize any of the outputs. I was able to get the KVM to see the keyboard by using an Arduino Leonardo. In order for that to work, I had to load a library called “HID-Project” which supports Boot Mode for keyboards. This essentially strips away all the advance keyboard function (multimedia keys, etc) and just emulates a simple keyboard, similar to how a BIOS interacts with a keyboard on a PC.

Is there any way you can add Boot Mode Keyboard support in the remapper project? Suggest a setting “Boot Mode Keyboard” in the emulation drop down.

Thank you.

HID Remapper already supports the boot protocol for keyboard.

OK. I was hoping it had the ability to ONLY be seen as a keyboard with Boot Mode. I understand the Boot Mode is built into remapper, but it appears in my case that if the keyboard is not seen solely as a Boot Mode keyboard (i.e. is has multiple possible modes to communicate), it is not recognized by my KVM. I validated this with an Arduino Leonardo loaded with a library that only communicates via Boot Mode and the Arduino cloned keyboard is recognized by the KVM. It also works with a USB Host Shield attached with an external USB keyboard. Based on this, it seems the KVM just wants to see a Boot Mode keyboard and anything else confuses it and prevents it from being recognized. Was hoping that option could be added or at least provide me a test version to try out. Thank you.

Nothing will surprise me, but that would also prevent the KVM from working with a lot of real keyboards.

You can easily try it by replacing the contents of our_report_descriptor_kb_mouse in our_descriptor.cc by the contents of boot_kb_report_descriptor.

You can make a custom build using GitHub without having to set up local dev enviroment. We have a video:

Or by just changing boot_protocol_keyboard in globals.cc from false to true I guess?

Thank you for the reply. I will try that out when I get some time. Appreciate your insight.

I’m also using the Adafruit board with HIDRemapper connected to my KVM–a TESmart 4x3 matrix–which at first I too didn’t think was compatible but later figured out it was something else. Granted, these aren’t the same as your scenario but hopefully they’ll be helpful to others having problems using it with their KVMs.

In the first case, for years I had been successfully using a Logitech Unifying Receiver plugged into my KVM’s keyboard input so I could use both my MX Master mouse and MX Keys keyboard. (TESmart is one of the only KVMs that passes thru proper USB identifiers so Logi Options+ properly ‘sees’ the dongle even when connected to the KVM’s ‘keyboard’ input. Most don’t and only emulate a basic HID keyboard to the host OS which Logi Options+ doesn’t recognize.)

Anyway, I wanted to switch from my Logitech MX Keys to a HIDRemapper-based keyboard but I still needed the receiver for the mouse, so I grabbed a small 2-port hub, plugged it into the KVM’s keyboard input, connected the Logi receiver, then connected the HIDRemapper. When I did, the Logitech devices both still worked as before, but HIDRemapper’s keyboard seemed ‘dead’. Moving it to a standard USB port showed it working fine making me think HIDRemapper just didn’t work with my KVM’s keyboard input.

However, while experimenting/triaging the issue, the reverse suddenly came true… HIDRemapper’s keyboard started responding but both Logitech’s devices stopped. That’s when I realized the issue wasn’t HIDRemapper at all, it was the hub/KVM combo. Since the KVM only expects one device to be connected to the keyboard input port, it stops scanning for other devices after the first one is found, meaning whichever device I connected first, ‘won’ and the other sat dormant. The solution: Move the dongle to a regular USB port on the KVM (since I didn’t need it for the keyboard anymore), then connect HIDRemapper to the keyboard input port directly, and boom! Worked like a charm!

Well, almost! The second issue is when I tried using HIDRemapper’s macros to trigger the KVM’s hot-key switching feature, it didn’t work. Confusingly, key-press monitoring software on the mac showed the correct keys were being pressed in the correct order, again making me think HIDRemapper must be doing something unusual/incompatible.

The more I thought about it though, the less sense that made. Again, macOS was seeing the correct keys. That’s when I figured out the real issue: HIDRemapper was sending the key sequences much too fast for the KVM’s shortcut-sensing logic to catch, as it was designed only for human-typing speeds. Going into HIDRemapper’s settings page and increasing the ‘macro step duration’ to slow it down addressed the issue.

Side-note: It would be nice to have per-macro timing so I could slow down the KVM macros, but leave the rest as fast as possible.

Anyway, those are two cases where I thought HIDRemapper wasn’t compatible with my KVM but digging in showed the real issue was something else. Again, not quite related to your issue, but if someone else comes here trying to find out why their HIDRemapper isn’t working with their KVM, hopefully this will help.