Background: I'm investigating an AV project that requires large touchscreen panels driven by a media PC. The design calls for a redundant PC that can be switched to in the event of the primary failing. This is achievable in the sense that the screens input can switch from one source to another (e.g HDMI1 to HDMI2) however I am hitting a roadblock when it comes to how to switch the touchscreen (HID) output from PC1 to PC2.

Other Investigations: I've exhausted a number of avenues looking into "mirroring" the USB signal between both machines and found this inst feasible. A possible alternative would be a USB / KVM switch however this is impractical and adds another possible point of failure into the design.

Potential Solution: What id like to know is, is it possible to create a touch screen panel with two identical USB outputs (literally two USB cables sending the exact same signal to two independent PCs). My knowledge on the topic is sketchy but to my mind it would work something like this> Analog input from user touching screen > touch screen controller converts signal to digital > controller "splits" signal > controller serializes data > controller sends 2 separate USB outputs (one to each PC)

The touch panel overlays are being custom build so hardware isn't an issue I'm just trying to find out if I'm some how breaking some basic fundamental law of physics here or if I'm on the right track. All help / feedback / suggestions greatly appreciated!

  • \$\begingroup\$ USB devices don't really "send" as we think of; the host asks if there's an update and the device responds. \$\endgroup\$ Commented Apr 27, 2017 at 2:29
  • \$\begingroup\$ Adding any kind of circuitry like this seems more likely to cause failure of both at the same time in the event of a glitch in it. \$\endgroup\$
    – SDsolar
    Commented Apr 27, 2017 at 6:57

1 Answer 1


Use a USB switch. These are purpose designed devices that allow one usb device to be shared among multiple computers. Basically like a KVM. There are dedicated ICs you can use for this.

Alternatively, run two usb cables.

But your proposed solution will work okay. All USB hid is is just a response to the host with the position data (the slave does not send data randomly, only in response to a host update request). If your controller can responds to two independent 1 MHz , independent clocked requests set the same time, it will work fine. Keep in mind that the unused computer may see unwanted user input.

An easier solution, still not as simple as a USB switch or two cables and manual switching, is use two USB controllers. Easier to implement. Just tie the analog data input into both controllers. They can even have the same exact firmware. Cost wise your looking at 2 simpler microcontrollers instead of 1 powerful complicated one. The time you save coding and testing would be worth the design change.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.