5

Imagine for a moment with a 4 port USB hub. Normally how this would work is the hub has one plug that goes to the computer, then 4 ports that you can plug in other things to (thumb drive, keyboard, mouse etc). I am wondering if I can use it in reverse. So I would have 1 keyboard going in to the hub, and then plug in male to male usb cables from the 4 ports to 4 different PCs, my aim is that when a key is pressed on the keyboard all 4 PCs will receive it as if the keyboard were plugged in to them.

Does anyone know if this would work? And if not does anyone have any ideas how I could get the same effect?

EDIT: So I am looking for more of a KVM switch type device rather than a USB hub. However all of the KVM switches I've found use some sort of mechanism to select which computer you'll be using. (some are physical switches / buttons, others do it via software "automatically" some how)

However I need to have 1 keyboard hooked up to 2 computers and when I press a key on the keyboard I want the keypress to be sent to both computers simultaneously, not to one or the other. Does anyone know if KVMs with this feature exist?

7
  • The hub works because the computer still recognizes the (individual) keyboards as seperate devices (which is why you can plug in both keyboards and mice, and have them both work) - I'd imagine that the USB protocol handles this (although I don't know how). For your request... how would you handle something like turning CapsLock/ScrollLock/NumLock on/off? Keep in mind that NumLock can be set pre-OS from the BIOS menu, and is reported (and displayed) from the keyboard. You'd likely need a special keyboard for this, not a hub. Dec 12, 2011 at 20:08
  • For my purposes I won't be dealing with any special keys. I need to send only a small subset of the keys on the keybard. And they will all be normal letters.
    – FoamyGuy
    Dec 12, 2011 at 20:13
  • 3
    Why do you want a broadcasting keyboard? Typing the same thing on multiple devices at one time isn't usually a useful thing to do - what's your actual application? Perhaps with that info, we can come up with a more appropriate solution. Dec 12, 2011 at 20:54
  • 1
    I don't think this exists off the shelf, unless you are willing to use a software solution. It would be fairly practical to build by connecting a number of usb-slave-enabled micro-controllers (one per PC) to a usb-host-enabled one (for the keyboard) using their serial ports; if you want to look into building that, then it would be appropriate to ask such a question back on electronics.stackexchange. Dec 12, 2011 at 23:44
  • 3
    @Tim: are the devices networked? Because you could install a VNC server in each one (there are VNC servers for Android too) and then a single PC with all the client windows. Then you could use e.g. AutoHotKey to multiplex a single keypress to all the VNC windows. It's hacky, but it should work. Dec 13, 2011 at 0:33

5 Answers 5

19

No. Definitely not.

What you want is a USB KVM switch - Keyboard/Video/Mouse switch. It shares one screen, keyboard and/or mouse between multiple computers.

Alternatively it can be done through a network using Synergy.

1
  • I've thought about using one of those kvm switches and I've done a little research into Synergy and one other software based solution. I don't think software will work, because one of my PC devices is actually an android tablet. Do you know if any of the KVM type switches work such that the input is routed to all of the 'slave' machines at once? i.e. It shouldn't go to only 1 at a time, it should go to all simultaneously without having to flip any switch.
    – Tim
    Dec 12, 2011 at 19:41
5

You indeed need a KVM switch.

You should understand the concept of USB. Your computer is a host, a USB hub is a device + host. It's device on the computer side, but once again a 'host' for the subdevices. The way you have drawn up picture 2 is suggesting that the PC would be an USB device and the keyboard a host, which neither can do.

This is a reason USB B, mini-B and even micro-B are invented. They are mostly used for connecting a host (normal USB plug) to a device (normal/mini/micro B connector).

2
  • Are there KVM switches that support outputting to both machines simultaneously? I need to be able to press 1 key on the keyboard and have it be sent to both computers at the same time. So far all the KVM switches i've found use some kind of mechanism to select which device you want to send to.
    – FoamyGuy
    Dec 12, 2011 at 20:12
  • I'm afraid USB is designed that a device can only have 1 host, so only 1 PC to talk to your keyboard. I don't think you will find a KVM with that. I don't know what other solutions there are other than software solutions (although I wouldn't know what is up for the job).
    – Hans
    Dec 12, 2011 at 20:15
2

What you are looking for is a USB "splitter". Such a thing does not exist. Although this is conceivable to do in the keyboard example, where information is being passed only in one direction, it would fall apart with other types of USB devices that want to have a conversation with the computer, because it would be ambiguous which of the two computers would respond to the device. You can do splitting with something like a VGA signal because you don't get this sort of conversation going on (even though there is bi-directional signaling going on, it can be handled by a splitter).

4
  • If it is conceivable that it would work for a keyboard does such a thing exist that is meant specifically for this purpose? I don't need it to support any USB peripherals other than a standard keyboard that will only be sending info one way. And It will not need to make use of any special keys such as NUM LOCK, or SCROLL LOCK. It just needs to work with sending single letter keystrokes to multiple PCs such as: "a", "b", "e" etc
    – FoamyGuy
    Dec 12, 2011 at 22:24
  • There's no question it could be done, designed for a very limited application (e.g. keyboard, mouse) but I'm not aware of such a product existing - there probably isn't enough of a market to make it cost effective to produce.
    – Rob Reuss
    Dec 12, 2011 at 22:39
  • 1
    "in the keyboard example, where information is being passed only in one direction" - that's an incorrect assumption: data passes both ways, at the very least on power-up/plug-in ("Hello, I'm a device" "Okay, what are you?" "I'm a keyboard" "Okay then"). Dec 13, 2011 at 10:00
  • 1
    @Piskvor Exactly correct - I said it that way only to simplify my point. But that is exactly the kind of simple signaling protocol that a hardware implementation could mimic. That is, the splitter cable/box would have circuits that would handle the computer side of that conversation as a mimic. It's doable - but again, not marketable.
    – Rob Reuss
    Dec 13, 2011 at 18:30
1

A standard USB hub will not work in reverse.

I suspect it may be possible to adapt the Synergy software to do what you want to do, entirely in software.

It may be possible to splice together pieces of several USB hardware projects to do what you want to do -- connect USB keyboard to Arduino; have Teensy Arduino send keypress information to a host PC ( a and b and c ); and somehow combine them ( d ).

1

It is possible to run a sync with 2 keyboards, it would just be a matter of wiring in the keyboard before the serial port, I would not know how to do that today.

Hardware Broadcast with PS2 http://www.vetra.com/844text.html (costly box) USB also http://www.vetra.com/wow.html (really costly box)

And "multiBoxers" are using some macro type software to play with themselves (umm in the MMORPG of course :-) . http://www.dual-boxing.com/index.php?s=f878d26303fdb85d450c7b4633accb38 I would ask there, especially if it was for that purpose. Multiplicity http://forums.stardock.com/354453 probably similar to other small tool items, and VNC style KVMs.

With enough time in a search like this Google search term You could probably find a way to broadcast a keystroke with the least ammount of load on the pc.

1
  • The keyword you're looking for is multiboxing. This should yield lots of hits on Google. Dec 13, 2011 at 19:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .