Okay, let's talk about that USB switch [1], because I was looking for one a few days ago and discovered something ghastly about the majority of the ones available on Amazon:
Most of them use a USB Type-A to Type-A cable for the link between the switch and PC.
This cable violates the USB spec, and is the moral equivalent of an electrical cord with prongs on both ends. It should never, ever be made or used, because plugging one of the ends into the wrong receptacle can destroy both USB ports.
The correct cable to use here would be a standard Type-A to Type-B or Type-A to Micro-B cable, but for some reason a very small minority of these switches do that [2].
I'm generally not a fan of supporting trademarks, but with respect to USB specifically, if the product doesn't have a trademarked USB logo[1], then the default consumer assumption should be that it's dubious wank which hasn't passed independent compliance testing.
And if the product under consideration does brandish a trademarked USB logo but clearly doesn't satisfy some observable aspect of the spec, then it's liable to be a counterfeit and you should seriously be questioning the integrity of your source.
I've used this one [1] for the last four years. The cables from device to the PCs are hard wired, so I have no idea if it conforms to spec. I do know I have had zero problems with it.
I once had a wall wart style power adapter whose output side was a standard coaxial cable (like for TV).
The reason was that the signal amplifier it came with was built into the housing of a 2-way coaxial cable splitter, presumably because said housing was inexpensive and readily available. One of the ports that would normally have a second TV attached was instead repurposed to provide power to the amplification circuits.
I shudder to think what it would have done if I'd run this directly to a TV, though.
This is why I plug new USB devices to a USB Hub always and never directly to the USB port of the computer, if the device manufacturer pulls off some BS like this, it will be only the Hub's port which goes in smokes(i.e. if the Hub is done right).
I have a Hub to every port, some of them powered and advantage of using non-powered Hubs are that they can be easily used for isolating EMC(e.g. to prevent buzzing noise on speakers etc.).
It’s always about the money. USB A ports are either really cheap, or manufacturing the enclosure with the same port on both sides is cheaper. Could also be that the enclosure is a reused enclosure...
I have a Pluggable brand switch which shares a single A via two B to A cables, I have one going to my gaming PC, and the other my Mac Mini, then I cheat a bit and have a compact 4-port hub plugged into the one shared A, which has mouse, kbd, webcam, and DAC in it. Works pretty smoothly, once in a while one machine or the other won't see one of the devices, but toggling the switch, or re-plugging the hub always perks things back up.
I know this isn’t the same but if you don’t need to switch the monitor inputs and only need mouse / keyboard support. I’ve been using https://github.com/debauchee/barrier for the last few years.
It works surprisingly well, no noticeable lag even when gaming.
Would somebody like to help me understand why KVM switches are so sophisticated? A DisplayPort cable has 20 pins, so why can't it just be a 20 pole switch? (Or 30 pole for two USBs and a headphone jack, etc.)
The disadvantage of this arrangement, which may not be obvious until you try it, is the delay in switching time. You have to wait for the monitor to re-sync on the new signal and for the USB to enumerate on the new host. I guess most people can tolerate this? For me that delay is intolerable. Quality KVMs (ConnectPRO is the one I remember off the top of my head) maintain both connections at all times and switching is instantaneous.
I bet it's a lot shorter than the delay involved in me using the touch sensitive not-buttons on the front of my monitor to switch inputs, which is what I do now. :P
By the way, I have that same USB switch. I have tried a number of them, and that is the fastest I've found. The only major flaw is the status lights -- they are too hard to see from far away.
To fix that issue, I drilled a hole in the top of the case, over the lights, about the same size as the adjacent power button. I put a small piece of foam inside to separate the two lights, and covered it with tape. It works perfectly now and it's so much easier to see the status from a typical usage angle.
The whole modification took maybe 15 minutes, and I didn't even bother disassembling it first.
This is perfect. The software competent is exactly what I was missing from my setup. I use a USB switch to switch my peripherals but I've been manually changing the input on my monitor like a caveman.
I'll have to have a go at this DDC/CI stuff as well. I too have a USB switch that just works (click button, two seconds later other computer has keyboard and mouse, and whatever else is on it, click again, back to the other one). It's simple, it's foolproof, and I can do it with my eyes closed if I so wanted to.
Now, switching the monitor however…
This involves clicking the six buttons on the rear of the monitor in an arcane sequence (your fingers sort of curl around the side, the buttons have labels on the front of the monitor on the right-side bezel, and yes, that works as well as you can imagine). Which then switches the monitor:
* Button 1: activate menu
* 1 again: select input
* 2: move down list of three inputs
* 2: move down list of three inputs
* 3: select mini display port
A somewhat similar sequence exists for going back to its HDMI input.
But hold on! It gets better if you turn off the computer you have live at the moment. The monitor then goes blank, and until it throws its 'no signal found' message, it won't respond to anything. If you are lucky, you can switch inputs before the current computer is shut down completely and the monitor blanks itself.
100K switches is switching your input 4 times a day for 68 years. You'll probably want a new fancy 32K monitor by then anyways. ;)
Also, if your monitor stores the current input in EEPROM, changing it via the OSD will also write to EEPROM, so it's not like you're saving the EEPROM by doing it manually (buying a real KVM is another story, obviously).
Hah, I use a low tech solution: I have a HDMI extension cable that reaches the front of the monitor that I just plug the device I want active into (and a usb splitter similar to what he uses for keyboard and mouse). It’s not quite as seamless as the solution described here but it took no time to set up.
I have another solution to the same problem using a monitor which has both HDMI and DVI. The HDMI port is used for the 'main' machine which the DVI is connected through a DVI-HDMI connector to any secondary machine which I may want to connect. Switching between the two is either automatic - when there is no signal on the DVI input - or through the monitor source selector. The monitor also has a few analog inputs which I have used on occasion with older laptops, extending the scheme even further. Of course this only switches the monitor, not the keyboard so it is not a complete replacement for a KVM switch.
Offtopic: I wanted to buy this USB switch, but it's hard to get on the current market in my country (or available for an absurd price). So I started trying to build my own... which was fun, but then I understood I need a some USB/MAX chips that are also hard to find, and started to cause me frustration instead of fun, because I'm not really that good with low-level electronics, university was a long time ago. And I was still without my switch/hub. So at the end I just chose a 3-pole double-throw toggle switch and a couple of USB connectors and wired them up. I only need to switch my keyboard, because my mouse is multi-device. If I need more, I'll just wire a hub to it. Work is in progress, but it can't get simpler than that.
If you're wondering what got complicated, well as far as I read and understood, actually breaking a USB connection with solid state logic is kind of a pain in the neck if you want to stay within the USB parameters, at least for an inexperienced designer like me. And you need to build the power supply for the circuit, and I didn't want to introduce an external power supply, I wanted to piggyback of the USB source. Something this ugreen product does not do. So I left this project for another time, when I freshen up on my perished knowledge. A mechanical switch just switches the lines and that's it.
I opened the same ugreen switch up and plan to attach some wires from the button pins to my RaspberryPI. This way I will be able to use my RaspberryPI to switch between the two USB hosts and use the RaspberryPI's built-in CEC support to switch between video inputs.
The Dell U3219Q monitor has a (rather rare) feature that gets rid of the need for a KVM switch for me entirely.
It has both an USB-C input and an USB3 upstream that can be combined with either DisplayPort or HDMI. It also has signal auto detection.
When I'm starting up my PC, it will use the USB connection from my PC via USB3 upstream. When I power up my work laptop, it will take USB from its USB-C connection.
That even eliminates the need to push a button to switch. I'm really happy with this setup.
Another option is the Aten CS1944DP - 4 input dual 4K60 USB3 KVM switch - I have it and it's rather wonderful given I now have my work laptop here due to covid - not cheap, but it's really, really good.
Haha, this is clever and I like it. You turned what is usually solved on the physical layer to something solved on the logical layer - which is almost always better because you can express conceptual changes much better when you don't need hardware.
It's a small taste of the stuff that software-defined networks have added to networking.
I have an MX Keys keyboard that can connect to up to three devices (with three special keys). Unfortunately, the operating system does not see the key pressed. But if it was, I could activate the display input switching using your app (thanks!). I have filled a support request at Logitech, maybe one day...
Are other keys (e.g. Fn) mappable to the special keys? Maybe you could work around it by setting e.g. F1-3 to F1-3 + Special1-3, and then input switching on F1-3.
The Headline hit me right in the stomach because it was just yesterday that I was pondering whether to build or to order a USB Switch. With much to do currently, I wussed out and just ordered it. I didnt pay 38$ though: https://de.aliexpress.com/item/1005001274095928.html USB 2 is more than enough for mouse and keyboard and it has the additional advantage of having an extension button to switch.
I don't always trust tech from Aliexpress but sometimes it's worth a gamble. I had a look at that brand and they also do a KVM (HDMI, 2 USB ports for K/M) for USD $16. That seems way too cheap but I don't really understand the tech enough to know for sure.
DDC/CI seems like an absolute crapshoot - I've got some 10 year old Dell monitors that don't seem to support it at all, but someone with the same monitors reported brightness control.
I just checked my 2019 Acer XB27HU, which reports brightness control but it doesn't seem to work - it then got stuck in Factory Test mode. It doesn't support input selection and doesn't do any kind of hotplug detection. I've never seen a monitor review mention these kind of features, either.
Agreed, I was also looking into DDC/CI for input switching my 2017 XB271HU, and mine works for brightness but definitely not input switching. Meanwhile my 2019 HP Z27 supports the full protocol, so I had to drop the idea
I have similar setup without the software to automatically switch inputs. I use the physical buttons on the monitor to switch input. Not efficient but I get a better resolution than pushing display through a cheap KVM switch. Will be trying software in article. Anyone know of software that runs on Linux to switch display the input? OP lists Windows and Mac OS support.
There are full software solutions that just show the screen over the network and relay your mouse/keyboard to whichever machine is on focus.
It worked well enough that I'd forget which pc the kvm s were actually connected to.
But I was only programming, not gaming, so maybe the 60Hz would be a problem. no hurt to try. It was free and there were a couple software solutions.
The latency would probably make it a shitty experience. I got a displayport switch when I started working from home this year and the thing works so well I forget it exists. There is no latency at all and it automatically switches inputs based on which one is active so I never have to touch the thing.
Did something similar a while back in C#. Registers itself as a system service so it can even switch displays when no user is logged in (i.e. you're on the Windows login screen). Also has a web GUI for configuration.
Since working from home I've had the exact same use case. I thought a KVM would be perfect, but was really surprised that they are incredibly expensive and don't really seem very good anyway. It's odd because switching the keyboard/mouse seems easy, while switching the monitor inputs is something that is done by AVR receivers which can be found for less than a KVM.
I've resorted to having both machines plugged into my monitors and switching inputs using the monitor front panel. Not ideal. For the keyboard/mouse I currently just have two of each on my desk. Also not ideal, although I must admit it provides some semblance of work/life separation. I'm going to look into one of the software solutions for switching the keyboard/mouse.
I use a similar setup where I literally have a single USB cable that gives me access to everything: monitor, keyboard, mouse, lighting, camera, microphone.
I just need to plug the cable in the computer I want to use. However, I do need to change the input on the monitor as one of the them is connected via HDMI.
USB connectors have a terrible plug/unplug lifespan.. I have a few computers where the USB ports can't be used because they have been unplugged too often.
Might just be USB-A, I haven't looked at the other specs
[+] [-] ohazi|5 years ago|reply
Most of them use a USB Type-A to Type-A cable for the link between the switch and PC.
This cable violates the USB spec, and is the moral equivalent of an electrical cord with prongs on both ends. It should never, ever be made or used, because plugging one of the ends into the wrong receptacle can destroy both USB ports.
The correct cable to use here would be a standard Type-A to Type-B or Type-A to Micro-B cable, but for some reason a very small minority of these switches do that [2].
WTF is going on here?
[1] https://www.amazon.com/gp/product/B01N6GD9JO/
[2] https://www.amazon.com/gp/product/B083JKDNRJ/
[+] [-] metaphor|5 years ago|reply
And if the product under consideration does brandish a trademarked USB logo but clearly doesn't satisfy some observable aspect of the spec, then it's liable to be a counterfeit and you should seriously be questioning the integrity of your source.
[1] https://www.usb.org/logo-license
[+] [-] vidanay|5 years ago|reply
[1] https://www.amazon.com/gp/product/B00BD8I3EI
[+] [-] amalcon|5 years ago|reply
The reason was that the signal amplifier it came with was built into the housing of a 2-way coaxial cable splitter, presumably because said housing was inexpensive and readily available. One of the ports that would normally have a second TV attached was instead repurposed to provide power to the amplification circuits.
I shudder to think what it would have done if I'd run this directly to a TV, though.
[+] [-] dddddaviddddd|5 years ago|reply
How would this happen?
[+] [-] Abishek_Muthian|5 years ago|reply
I have a Hub to every port, some of them powered and advantage of using non-powered Hubs are that they can be easily used for isolating EMC(e.g. to prevent buzzing noise on speakers etc.).
[+] [-] adamhearn|5 years ago|reply
[+] [-] blacksmith_tb|5 years ago|reply
[+] [-] ElCapitanMarkla|5 years ago|reply
It works surprisingly well, no noticeable lag even when gaming.
[+] [-] zachrose|5 years ago|reply
[+] [-] zargon|5 years ago|reply
[+] [-] jwalton|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] D13Fd|5 years ago|reply
By the way, I have that same USB switch. I have tried a number of them, and that is the fastest I've found. The only major flaw is the status lights -- they are too hard to see from far away.
To fix that issue, I drilled a hole in the top of the case, over the lights, about the same size as the adjacent power button. I put a small piece of foam inside to separate the two lights, and covered it with tape. It works perfectly now and it's so much easier to see the status from a typical usage angle.
The whole modification took maybe 15 minutes, and I didn't even bother disassembling it first.
[+] [-] nkrisc|5 years ago|reply
[+] [-] Freak_NL|5 years ago|reply
Now, switching the monitor however…
This involves clicking the six buttons on the rear of the monitor in an arcane sequence (your fingers sort of curl around the side, the buttons have labels on the front of the monitor on the right-side bezel, and yes, that works as well as you can imagine). Which then switches the monitor:
* Button 1: activate menu
* 1 again: select input
* 2: move down list of three inputs
* 2: move down list of three inputs
* 3: select mini display port
A somewhat similar sequence exists for going back to its HDMI input.
But hold on! It gets better if you turn off the computer you have live at the moment. The monitor then goes blank, and until it throws its 'no signal found' message, it won't respond to anything. If you are lucky, you can switch inputs before the current computer is shut down completely and the monitor blanks itself.
I do feel like a caveman.
[+] [-] doctorhandshake|5 years ago|reply
[1] top comment - https://news.ycombinator.com/item?id=24344045
[+] [-] jwalton|5 years ago|reply
Also, if your monitor stores the current input in EEPROM, changing it via the OSD will also write to EEPROM, so it's not like you're saving the EEPROM by doing it manually (buying a real KVM is another story, obviously).
[+] [-] dkersten|5 years ago|reply
[+] [-] Yetanfou|5 years ago|reply
[+] [-] hinkley|5 years ago|reply
[+] [-] abiogenesis|5 years ago|reply
https://www.aliexpress.com/item/4000177777648.html
[+] [-] evanweaver|5 years ago|reply
[+] [-] salex89|5 years ago|reply
Offtopic: I wanted to buy this USB switch, but it's hard to get on the current market in my country (or available for an absurd price). So I started trying to build my own... which was fun, but then I understood I need a some USB/MAX chips that are also hard to find, and started to cause me frustration instead of fun, because I'm not really that good with low-level electronics, university was a long time ago. And I was still without my switch/hub. So at the end I just chose a 3-pole double-throw toggle switch and a couple of USB connectors and wired them up. I only need to switch my keyboard, because my mouse is multi-device. If I need more, I'll just wire a hub to it. Work is in progress, but it can't get simpler than that.
If you're wondering what got complicated, well as far as I read and understood, actually breaking a USB connection with solid state logic is kind of a pain in the neck if you want to stay within the USB parameters, at least for an inexperienced designer like me. And you need to build the power supply for the circuit, and I didn't want to introduce an external power supply, I wanted to piggyback of the USB source. Something this ugreen product does not do. So I left this project for another time, when I freshen up on my perished knowledge. A mechanical switch just switches the lines and that's it.
[+] [-] deorder|5 years ago|reply
What the board looks like: https://imgur.com/lX1uZ7Q
[+] [-] Fannon|5 years ago|reply
It has both an USB-C input and an USB3 upstream that can be combined with either DisplayPort or HDMI. It also has signal auto detection.
When I'm starting up my PC, it will use the USB connection from my PC via USB3 upstream. When I power up my work laptop, it will take USB from its USB-C connection.
That even eliminates the need to push a button to switch. I'm really happy with this setup.
[+] [-] oblio|5 years ago|reply
[+] [-] Jaruzel|5 years ago|reply
Added bonus, it's quite a good monitor!
[+] [-] justaguy88|5 years ago|reply
[+] [-] stoobs|5 years ago|reply
[+] [-] D13Fd|5 years ago|reply
[+] [-] renewiltord|5 years ago|reply
It's a small taste of the stuff that software-defined networks have added to networking.
[+] [-] dasloop|5 years ago|reply
[+] [-] OJFord|5 years ago|reply
[+] [-] bijant|5 years ago|reply
[+] [-] hnick|5 years ago|reply
[+] [-] voltagex_|5 years ago|reply
I just checked my 2019 Acer XB27HU, which reports brightness control but it doesn't seem to work - it then got stuck in Factory Test mode. It doesn't support input selection and doesn't do any kind of hotplug detection. I've never seen a monitor review mention these kind of features, either.
[+] [-] bohuim|5 years ago|reply
[+] [-] X-Cubed|5 years ago|reply
DDC works fine from my desktop over DisplayPort from an nvidia GPU, but I can't seem to get it working from my laptop over HDMI from an Intel GPU.
[+] [-] mmsimanga|5 years ago|reply
[+] [-] pedrocr|5 years ago|reply
http://www.ddcutil.com/
[+] [-] cellular|5 years ago|reply
It worked well enough that I'd forget which pc the kvm s were actually connected to. But I was only programming, not gaming, so maybe the 60Hz would be a problem. no hurt to try. It was free and there were a couple software solutions.
[+] [-] Polylactic_acid|5 years ago|reply
[+] [-] Bedon292|5 years ago|reply
[+] [-] PiMaker|5 years ago|reply
https://github.com/PiMaker/DDCKVM
[+] [-] globular-toast|5 years ago|reply
I've resorted to having both machines plugged into my monitors and switching inputs using the monitor front panel. Not ideal. For the keyboard/mouse I currently just have two of each on my desk. Also not ideal, although I must admit it provides some semblance of work/life separation. I'm going to look into one of the software solutions for switching the keyboard/mouse.
[+] [-] vaillancourtmax|5 years ago|reply
I use a similar setup where I literally have a single USB cable that gives me access to everything: monitor, keyboard, mouse, lighting, camera, microphone.
I just need to plug the cable in the computer I want to use. However, I do need to change the input on the monitor as one of the them is connected via HDMI.
[+] [-] bluGill|5 years ago|reply
Might just be USB-A, I haven't looked at the other specs
[+] [-] harikb|5 years ago|reply