VOGONS


HIDman - USB to PS/2 converter (Open Source)

Topic actions

Reply 560 of 582, by M95D

User metadata
Rank Newbie
Rank
Newbie

Are there any plans to make a KVM switch (without the video part)?

I suspect many of us don't have the space to keep a separate keyboard and mouse for our DOS machines, so we use a KVM switch. As I read here, there are problems with KVMs. So it would be great if you could make a keyboard+mouse switch for 3-4 machines where one of them uses PS/2.

It would be even better if it could accept a PS/2 keyboard, such as the old IBM ones, and output either direct PS/2 pass-through for old machines or emulated USB keyboard for newer PCs (when PS/2 cable isn't connected on that port).

Reply 561 of 582, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
M95D wrote on 2025-12-18, 18:12:

Are there any plans to make a KVM switch (without the video part)?

I suspect many of us don't have the space to keep a separate keyboard and mouse for our DOS machines, so we use a KVM switch. As I read here, there are problems with KVMs. So it would be great if you could make a keyboard+mouse switch for 3-4 machines where one of them uses PS/2.

It would be even better if it could accept a PS/2 keyboard, such as the old IBM ones, and output either direct PS/2 pass-through for old machines or emulated USB keyboard for newer PCs (when PS/2 cable isn't connected on that port).

I think old IBM ones should be fine with basic PS/2 KVMs, and there are plenty of PS/2-to-USB converters that allows connecting them to boards that don't offer PS/2 ports.

It's only the newer USB keyboards that can be a headache to use with KVMs. Switchable "dumb" USB hubs (with no emulation logic) normally works, but if it involves some console logic (like hotkeys to switch active output) then it's a different story.

ATEN has a few models that can accept both PS/2 and USB input devices and can output to either, but they are very, very expensive.

Reply 562 of 582, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie

I think once I have better hub support more KVMs will work. I have been working on it. Hopefully early next year.

Reply 563 of 582, by KVM Nerd

User metadata
Rank Newbie
Rank
Newbie
rasteri wrote on 2025-12-19, 12:05:

I think once I have better hub support more KVMs will work. I have been working on it. Hopefully early next year.

How many hub levels would this include? I am asking for a friend.

Why not hook it up to a KVM switch?

Reply 564 of 582, by KVM Nerd

User metadata
Rank Newbie
Rank
Newbie
LSS10999 wrote on 2025-12-19, 01:57:

ATEN has a few models that can accept both PS/2 and USB input devices and can output to either, but they are very, very expensive.

The CS1754 and CS1758 support both PS/2 and USB on the "CPU" side and USB on the "Console" side and are quite cheap when used. If you use USB keyboards/mice with a properly implemented HID Boot Protocol Mode (aka BIOS Mode), they work quite well. You can even use PS/2 hardware with a USB converter when plugged to the keyboard port of the console side. Only downside is that you need to buy extra (proprietary) cables for those switches.

If you use special gaming USB hardware without HID Boot Protocol Mode, you will have no luck, but that applies to most if not all KVM switches which can convert to PS/2 afaict.

Why not hook it up to a KVM switch?

Reply 565 of 582, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
KVM Nerd wrote on 2025-12-19, 13:40:
LSS10999 wrote on 2025-12-19, 01:57:

ATEN has a few models that can accept both PS/2 and USB input devices and can output to either, but they are very, very expensive.

The CS1754 and CS1758 support both PS/2 and USB on the "CPU" side and USB on the "Console" side and are quite cheap when used. If you use USB keyboards/mice with a properly implemented HID Boot Protocol Mode (aka BIOS Mode), they work quite well. You can even use PS/2 hardware with a USB converter when plugged to the keyboard port of the console side. Only downside is that you need to buy extra (proprietary) cables for those switches.

If you use special gaming USB hardware without HID Boot Protocol Mode, you will have no luck, but that applies to most if not all KVM switches which can convert to PS/2 afaict.

Some Corsair keyboards may not work correctly unless explicitly switched to operate in HID Boot Protocol Mode (usually labeled as "BIOS Mode"), if such a switch exists on the model (e.g. K70).

ATEN KVMs do work with Logitech Unifying receiver for wireless keyboards and mice, but from my experience I need to set the mode for USB hosts to "SUN" instead of "WIN" in order to work. In "WIN" mode, the KVM tries to pass through the receiver to the host system as-is across the USB but it's incomplete and nonfunctional. In "SUN" mode the inputs would be emulated by the KVM so the host sees a generic USB keyboard and mouse which works correctly. For PS/2 hosts, however, nothing needs to be changed.

By the way, I've been thinking about this idea: Use a simple USB sharing switch for connecting USB keyboards/mice to share among different hosts, and for hosts that need to connect the inputs using PS/2 instead of USB, connect a HIDman in between.

The main concern, however, would be whether the hub portion of the sharing switch you're using could properly cooperate with HIDman.

Reply 566 of 582, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie
KVM Nerd wrote on 2025-12-19, 12:31:

How many hub levels would this include? I am asking for a friend.

Theoretically infinite, although we'd be limited by RAM space. Certainly 3 levels, which should be enough for most KVM setups.

If you use USB keyboards/mice with a properly implemented HID Boot Protocol Mode

Unfortunately *lots* of devices don't support boot mode properly. Even some fairly well-regarded brands.

I was hoping that boot mode would be a good default for HIDman but honestly it seems to cause more problems than it solves. I might default to report mode in future revisions now I have a reasonably stable HID report parser.

Reply 567 of 582, by M95D

User metadata
Rank Newbie
Rank
Newbie

I'm using an ATEN CS84U right now, with an old PS/2 multimedia keyboard (~2003), USB gaming mouse (also presents itself as a keyboard for macro buttons) and connected to 3 PCs via PS/2 keyboard and USB. The CS84U has keyboard and emulation mode which emulates USB devices from PS/2 physical ones. Firmware is very buggy. Multimedia keys are dead in both modes, power management buttons work only in non-emulation mode, it sometimes it gets stuck in a weird mode (not documented) where right shift acts as ALT-GR and left shift won't work in combination with selection arrows, resetting via shortcut doesn't work, etc.

I also have an Avocent Switchview MM1. Keyboard gets completely stuck if no PS/2 mouse is connected, multimedia buttons also won't work, has audio but it's very noisy, etc.

And I have a Rose Vista PS/2 only KVM which worked fine, but I'm unable to use my USB mouse with that one and it only has 2 ports - I need 3, sometimes 4.

I looked at CS1754 / 8. I already have the cables - the proprietary connector looks very much like my current Aten cables. Is it really capable of PS/2 mouse emulation from USB mouse? Any bugs?

Reply 568 of 582, by KVM Nerd

User metadata
Rank Newbie
Rank
Newbie
rasteri wrote on 2025-12-19, 16:03:
KVM Nerd wrote on 2025-12-19, 12:31:

How many hub levels would this include? I am asking for a friend.

Theoretically infinite, although we'd be limited by RAM space. Certainly 3 levels, which should be enough for most KVM setups.

My setup has 4 levels (3 for a USB matrix + 1 for extenders). If that would would be supported, it would be great!

I am working on a similar project based on the HID-Remapper (Dual Pico version) which only forwards HID Boot Protocol Mode but removes hub complexity, so you can connect multiple input devices accross multiple hub levels to devices with a limited USB stack, so KVM switches mostly.

I am thinking about extending the device part to PS/2 keyboard/mouse and serial mouse. How did you resolve the problem of PS/2 report rate conversion? Do you ignore rate changes from the host and send with the USB report rate, or do you do a full rate conversion?

Does the HIDman accept inputs from multiple connected devices simultaneously?

rasteri wrote on 2025-12-19, 16:03:
KVM Nerd wrote on 2025-12-19, 12:31:

If you use USB keyboards/mice with a properly implemented HID Boot Protocol Mode

Unfortunately *lots* of devices don't support boot mode properly. Even some fairly well-regarded brands.

I was hoping that boot mode would be a good default for HIDman but honestly it seems to cause more problems than it solves. I might default to report mode in future revisions now I have a reasonably stable HID report parser.

I managed to fix the protocol for a Logitech K400r which completely ignores the expected order of keyboard scancodes.

Why not hook it up to a KVM switch?

Reply 569 of 582, by KVM Nerd

User metadata
Rank Newbie
Rank
Newbie
M95D wrote on 2025-12-19, 16:44:

I looked at CS1754 / 8. I already have the cables - the proprietary connector looks very much like my current Aten cables. Is it really capable of PS/2 mouse emulation from USB mouse? Any bugs?

You better check the cable compatibility on the Aten website. I don't know if they are compatible, but I guess so.

Yes, the models are really capable of emulating PS/2 keyboard and mouse from connected USB devices. The cable decides whether PS/2 or USB devices are emulated.

The keyboard/mouse emulation works quite well from my experience, although it might happen every now and then that a key "hangs".

Edit: Added comment about emulation stability.

Last edited by KVM Nerd on 2025-12-19, 20:12. Edited 1 time in total.

Why not hook it up to a KVM switch?

Reply 570 of 582, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie
KVM Nerd wrote on 2025-12-19, 17:22:

I am thinking about extending the device part to PS/2 keyboard/mouse and serial mouse. How did you resolve the problem of PS/2 report rate conversion? Do you ignore rate changes from the host and send with the USB report rate, or do you do a full rate conversion?

It has the ability to do rate conversion (in/out are async and accumulate movements, required for serial output and high DPI mice) but we currently ignore host rate changes anyway. So it effectively sends at USB report rate. Host rate changes would be trivial to implement though.

Does the HIDman accept inputs from multiple connected devices simultaneously?

Yeah. Mouse inputs accumulate.

Reply 571 of 582, by nanun

User metadata
Rank Newbie
Rank
Newbie

I'm using well the HIDman with 2K + 2M.

A keyboard and an unifying dongle (for mouse) are connected to usb kvm, and the usb output of kvm is plugged to HIDman.
and a keyboard and a mouse are connected to usb hub, and it is plugged to another usb port of HIDman.

I had no problem, Thanks!

My friend wants to use this, so I made and gave it to him.
But my friend has a problem.

A Keyboard and a logibolt dongle (for mouse) are connected to USB kvm and to HIDman.
Suddenly, the mouse doesn't work.
HIDman seems to work well. because the keyboard works well. and the led of HIDman blinks when the mouse is moving.

The following is the ps2 mouse status at that time.
F4 03 E8 64 F3 F2 50 F3 C8 F3 C8 F3 F2 50 F3 64
F3 C8 F3 03 E8 E9 E6 E6 E6 00 E8 F2 FF FF F4 02

and the status looks quite different. following is the status when works fine.
F4 03 E8 64 F3 F2 50 F3 C8 F3 C8 F3 F2 50 F3 64
F3 C8 F3 03 E8 E9 E6 E6 E6 00 E8 F2 FF 00 00 00

I changed some connections.
mouse and logibolt are connected to HIDman, and connected ps2 kvm , and connected to a pc.
it looks ok.
but the mouse has lag. when I move the mouse then the pointer is moving after about 0.5 second.
(keyboard works still well)
There is no lag when the mouse is connected directly to ps2 of KVM.

I tried to test firmwares both v1.1.6 and the latest version of github.
and also swapped HIDman with mine, but same.

please let me know someone has same or similar experience.
thank you.

Reply 572 of 582, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie
nanun wrote on 2025-12-20, 14:21:
I'm using well the HIDman with 2K + 2M. […]
Show full quote

I'm using well the HIDman with 2K + 2M.

A keyboard and an unifying dongle (for mouse) are connected to usb kvm, and the usb output of kvm is plugged to HIDman.
and a keyboard and a mouse are connected to usb hub, and it is plugged to another usb port of HIDman.

I had no problem, Thanks!

My friend wants to use this, so I made and gave it to him.
But my friend has a problem.

A Keyboard and a logibolt dongle (for mouse) are connected to USB kvm and to HIDman.
Suddenly, the mouse doesn't work.
HIDman seems to work well. because the keyboard works well. and the led of HIDman blinks when the mouse is moving.

The following is the ps2 mouse status at that time.
F4 03 E8 64 F3 F2 50 F3 C8 F3 C8 F3 F2 50 F3 64
F3 C8 F3 03 E8 E9 E6 E6 E6 00 E8 F2 FF FF F4 02

and the status looks quite different. following is the status when works fine.
F4 03 E8 64 F3 F2 50 F3 C8 F3 C8 F3 F2 50 F3 64
F3 C8 F3 03 E8 E9 E6 E6 E6 00 E8 F2 FF 00 00 00

I changed some connections.
mouse and logibolt are connected to HIDman, and connected ps2 kvm , and connected to a pc.
it looks ok.
but the mouse has lag. when I move the mouse then the pointer is moving after about 0.5 second.
(keyboard works still well)
There is no lag when the mouse is connected directly to ps2 of KVM.

I tried to test firmwares both v1.1.6 and the latest version of github.
and also swapped HIDman with mine, but same.

please let me know someone has same or similar experience.
thank you.

Can you get me a HID log? Advanced menu, option 2. Start it logging then connect the mouse and move it around a bit/press buttons.

Reply 573 of 582, by nanun

User metadata
Rank Newbie
Rank
Newbie
rasteri wrote on 2025-12-21, 11:07:
nanun wrote on 2025-12-20, 14:21:
I'm using well the HIDman with 2K + 2M. […]
Show full quote

I'm using well the HIDman with 2K + 2M.

A keyboard and an unifying dongle (for mouse) are connected to usb kvm, and the usb output of kvm is plugged to HIDman.
and a keyboard and a mouse are connected to usb hub, and it is plugged to another usb port of HIDman.

I had no problem, Thanks!

My friend wants to use this, so I made and gave it to him.
But my friend has a problem.

A Keyboard and a logibolt dongle (for mouse) are connected to USB kvm and to HIDman.
Suddenly, the mouse doesn't work.
HIDman seems to work well. because the keyboard works well. and the led of HIDman blinks when the mouse is moving.

The following is the ps2 mouse status at that time.
F4 03 E8 64 F3 F2 50 F3 C8 F3 C8 F3 F2 50 F3 64
F3 C8 F3 03 E8 E9 E6 E6 E6 00 E8 F2 FF FF F4 02

and the status looks quite different. following is the status when works fine.
F4 03 E8 64 F3 F2 50 F3 C8 F3 C8 F3 F2 50 F3 64
F3 C8 F3 03 E8 E9 E6 E6 E6 00 E8 F2 FF 00 00 00

I changed some connections.
mouse and logibolt are connected to HIDman, and connected ps2 kvm , and connected to a pc.
it looks ok.
but the mouse has lag. when I move the mouse then the pointer is moving after about 0.5 second.
(keyboard works still well)
There is no lag when the mouse is connected directly to ps2 of KVM.

I tried to test firmwares both v1.1.6 and the latest version of github.
and also swapped HIDman with mine, but same.

please let me know someone has same or similar experience.
thank you.

Can you get me a HID log? Advanced menu, option 2. Start it logging then connect the mouse and move it around a bit/press buttons.

ESC main menu
ESC to stop R to redetect
I0 L8- 00 00 00 00 00 00 00 00

reenumerating all ports
port 0
gdd len8
mps 8
addr ok 0
gddfull ok 18
Device Descriptor
12 01 10 01 00 00 00 08 83 04 37 51 00 00 01 02
03 01

0x0483 0x5137 0x0000
Config Descriptor
09 02 5B 00 03 01 00 A0 FA 09 04 00 00 01 03 01
01 04 09 21 10 01 00 01 22 41 00 07 05 83 03 08
00 01 09 04 01 00 02 03 00 00 05 09 21 00 01 00
01 22 27 00 07 05 82 03 40 00 0F 07 05 01 03 40
00 03 09 04 02 00 01 03 00 00 06 09 21 10 01 00
01 22 A1 00 07 05 84 03 0F 00 01

gcd ok 91

Interface 0
InterfaceProtocol 1

Interface 0 Report Descriptor -
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
75 01 95 08 81 02 95 01 75 08 81 01 95 05 75 01
05 08 19 01 29 05 91 02 95 01 75 03 91 01 95 06
75 08 15 00 26 FF 00 05 07 19 00 2A FF 00 81 00
C0

set report mode - 1 - 1
Report 0 usage 6 length 64
startbit 56 it 4 ip 0 chan 0 cont 0 size 8 count 6
startbit 48 it 4 ip 0 chan 0 cont 0 size 8 count 6
startbit 40 it 4 ip 0 chan 0 cont 0 size 8 count 6
startbit 32 it 4 ip 0 chan 0 cont 0 size 8 count 6
startbit 24 it 4 ip 0 chan 0 cont 0 size 8 count 6
startbit 16 it 4 ip 0 chan 0 cont 0 size 8 count 6
startbit 8 it 4 ip 0 chan 0 cont 0 size 8 count 1
startbit 0 it 5 ip 0 chan 0 cont e0 size 1 count 8
SetReport

Interface 1
InterfaceProtocol 0

Interface 1 Report Descriptor -
05 8C 09 01 A1 01 09 03 15 00 25 FF 19 01 29 08
75 40 95 08 81 02 09 04 15 00 25 FF 19 01 29 08
75 40 95 08 91 02 C0

Interface 2
InterfaceProtocol 0

Interface 2 Report Descriptor -
05 0C 09 01 A1 01 85 01 19 00 2A 3C 02 15 00 26
3C 02 95 01 75 10 81 00 C0 05 01 09 80 A1 01 85
02 19 81 29 83 15 00 25 01 75 01 95 03 81 02 95
05 81 01 C0 05 01 09 06 A1 01 85 03 05 07 19 E0
29 E7 15 00 25 01 75 01 95 08 81 02 19 00 29 67
95 68 81 02 05 08 19 01 29 05 15 00 25 01 75 01
95 05 91 02 75 03 95 01 91 01 C0 05 01 09 02 A1
01 85 04 09 01 A1 00 05 09 19 01 29 03 15 00 25
01 75 01 95 03 81 02 75 05 95 01 81 01 05 01 09
30 09 31 09 38 15 81 25 7F 75 08 95 03 81 06 C0
C0

Report 3 usage 6 length 120
startbit 16 it 5 ip 0 chan 0 cont 0 size 1 count 68
startbit 8 it 5 ip 0 chan 0 cont e0 size 1 count 8
Report 4 usage 2 length 40
startbit 32 it 3 ip 1 chan 1 cont 6 size 8 count 3
startbit 24 it 3 ip 1 chan 1 cont 5 size 8 count 3
startbit 16 it 3 ip 1 chan 1 cont 4 size 8 count 3
startbit 8 it 5 ip 0 chan 1 cont 1 size 1 count 3
port 1
gdd len8
mps 8
addr ok 0
gddfull ok 18
Device Descriptor
12 01 00 02 00 00 00 08 CF 1B 02 00 12 01 00 02
00 01

0x1BCF 0x0002 0x0112
Config Descriptor
09 02 22 00 01 01 00 A0 31 09 04 00 00 01 03 01
02 00 09 21 11 01 00 01 22 3B 00 07 05 81 03 07
00 0A

gcd ok 34

Interface 0
InterfaceProtocol 2

Interface 0 Report Descriptor -
05 01 09 02 A1 01 05 09 19 01 29 05 15 00 25 01
95 05 75 01 81 02 95 01 75 03 81 03 05 01 09 30
09 31 16 01 F8 26 FF 07 75 0C 95 02 81 06 09 38
15 81 25 7F 75 08 95 01 81 06 C0

set boot mode - 1 - 0
done reenumerating
I0 L5- 00 FD 0F 00 FD
I0 L5- 00 FE 0F 00 FD
I0 L5- 00 F9 0F 00 FB
I0 L5- 00 F3 5E 00 02
I0 L5- 00 02 00 00 03
I0 L5- 00 07 E0 00 02
I0 L5- 00 4F 41 00 01
I0 L5- 00 06 F0 00 00
I0 L5- 00 00 D0 00 01
I0 L5- 00 00 70 00 01
I0 L5- 00 25 70 00 00
I0 L5- 00 07 C0 00 00
I0 L5- 00 00 40 00 00
I0 L5- 00 00 50 00 00
I0 L5- 00 0A 70 00 00
I0 L8- 00 00 29 00 00 00 00 00

--
HGoodbygoodbye

** note
mouse moved left -> right -> up -> down.

the mouse works fine that connected to ps2 kvm. (before to connect HIDman)
but the mouse doesn't work when connects HIDman, (the led is blinking when the mouse is moving though, and keyboard works well)
the mouse works ok reconnect to ps2 of kvm after test.

Reply 574 of 582, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie
nanun wrote on 2025-12-22, 10:41:

ESC main menu
ESC to stop R to redetect
I0 L8- 00 00 00 00 00 00 00 00

The USB device isn't going into boot mode properly. Maybe it's buggy.

Try enabling advanced mouse mode in the mouse menu. Some devices just can't run in simple/boot mode.

Reply 575 of 582, by Bzzz

User metadata
Rank Newbie
Rank
Newbie

Is there a publicly known Paypal address or something from rasteri? I'm selling my surplus HIDmans in Europe (so not really competing with him in the UK due to shipping and VAT) and I'd like to send him a couple bucks per unit sold as recognition for his efforts, in addition to the kickback he got from the PCBway marketplace order. Unfortunately, Andy's not answering my PM directly...

Reply 576 of 582, by DangerMouse

User metadata
Rank Newbie
Rank
Newbie
Bzzz wrote on 2026-01-05, 09:36:

Is there a publicly known Paypal address or something from rasteri? I'm selling my surplus HIDmans in Europe (so not really competing with him in the UK due to shipping and VAT) and I'd like to send him a couple bucks per unit sold as recognition for his efforts, in addition to the kickback he got from the PCBway marketplace order. Unfortunately, Andy's not answering my PM directly...

Dude, you're awesome! It's the weekend now, he'll answer when he's done xD

Reply 577 of 582, by Bzzz

User metadata
Rank Newbie
Rank
Newbie

It's been three weeks, hence my public question.

Reply 578 of 582, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie

OK I've been working a lot on some new features.

Nested hub support is now finally a thing, I've tested up to 4 levels of hub but theoretically more should be possible.

USB devices are auto-detected when plugged into hub ports too.

Also media keys work, way more effort than it was worth but it's nice to have volume controls I suppose...

Also the light goes red when the device is busy or crashes

Latest beta - https://github.com/rasteri/HIDman/releases/tag/v1.1.7beta1

Reply 579 of 582, by TgamesFR

User metadata
Rank Newbie
Rank
Newbie
rasteri wrote on 2026-01-08, 01:00:
OK I've been working a lot on some new features. […]
Show full quote

OK I've been working a lot on some new features.

Nested hub support is now finally a thing, I've tested up to 4 levels of hub but theoretically more should be possible.

USB devices are auto-detected when plugged into hub ports too.

Also media keys work, way more effort than it was worth but it's nice to have volume controls I suppose...

Also the light goes red when the device is busy or crashes

Latest beta - https://github.com/rasteri/HIDman/releases/tag/v1.1.7beta1

Great news @rasteri !

Does it means that mouse not detected on a reboot is fixed too ?

Also will be great to support gamepad buttons reconfiguration, sadly many games not allow changing keys.
If we could for each buttons choose the corresponding keys it will be great.

Thanks for the great support on the device.