How can you keep all your computers hidden away in a rack room, while making them accessible in studios, auditoriums, control rooms and other spaces? Typically you’d use a KVM Matrix. However, commercial solutions can be prohibitively expensive. This is why James and I designed an IP KVM system using cheap IP KVM extenders, Cisco Switches, and QSC Q-Sys for control.
Last year, I undertook an AV Integration project for The Salvation Army’s new venue in Parramatta. In the main auditorium, we wanted to have all AV computers housed safely in the rack room but accessible from the technical desk in the body of the hall – as well as being able to make computers available in different locations. However, budget was a big factor.
James and I put our heads together and came up with an IP KVM Matrix system based on cheap IP KVMs, a Cisco Switch, and Q-Sys as a user interfaces to control it. Twelve months on, we’re still really happy with this solution. This article explains what we did, and provides some open source code so you can replicate the same solution.
We designed this solution to be used in a church, but there’s no reason this can’t be used in broadcast studios, and all sorts of other venues.
What does a KVM Matrix do?
KVM stands for ‘Keyboard Video Mouse’ – the three essential user interface devices for a desktop computer.
A KVM Matrix lets you switch one or more computers to one or more keyboard/video/mouse combos. You could, for example, let your graphics computer be controlled near the audio console, and then at the next minute move it into the control room, and then later that day move it into the office. You could even have it active in two or more locations at once. All at the press of a button!
By implementing a KVM Matrix, we have these advantages:
- Computers are all physically secure in another room, with 24/7 air-conditioning
- We can switch operator positions around at the tech desk, so if we wanted our audio person to also control graphics, we can do that easily. This has come in handy especially when we have smaller teams, or COVID has placed restrictions on who can be where
- Computers can be extended to any other part of the building so long as Cat6 is available
- Fan noise isn’t a concern in the auditorium – everything noisy is kept in another room
- We don’t need any special cable to the tech desk – all computers are extended via a single Cat6 run. The SDI breakouts for video computers are kept on short patch leads in the rack room, along with any other local patching
Commercial solutions from ATEN, Blackbox and others exist – however these are often proprietary and expensive. We wanted something very cheap, and preferably controllable via our existing QSC Q-Sys AV control system.
Our solution uses the following components:
- TESmart IP KVM Transmitters and Receivers
- Cisco 3750 switch
- QSC Q-Sys AV Controller with a custom plugin
Each pair of KVM Transmitters & Receivers cost us less than AU$100 on eBay. They’ve since gone up to AU$150, which is still a bargain. This is a bit of an unknown brand, but the quality turned out to be great. They can also be found on Alibaba, sometimes under the brand ‘Tesla Smart’ (Before you ask, no I don’t think Elon Musk is running a side business).
The Cisco 3750 was chosen as a cheap 1RU switch throughout this project. Although they are very old now, we happened to find these more-than-good-enough for our mid-size Dante and AES67 AoIP network, as well as all the general IT needs around the building. We purchased one of these as a dedicated KVM switch.
Finally, we wrote some custom software for the QSC Q-Sys which allows end-users to control the IP KVM. This is really the ‘secret sauce’ of the solution.
I must stress that this solution isn’t completely dependent on Q-Sys – you could write a UI for any other AV control platform, or even just as a standalone Windows app if you wanted! We used Q-Sys because it was already handling all our audio, video, lighting, and other AV control and processing. It makes sense to keep it all on the one system.
TESmart KVM – Out of the box
Out of the box, these TESmart KVMs aren’t designed to be used as a matrix. They run over real IP (not just their own signal over RJ45 like many other KVM extenders). However, they use a series of dip-switches on the side to set the send & receiver channels. These channels correspond to IP Multicast addresses, which are displayed on screen when they first boot.
We haven’t found any IP protocol in them to adjust the send/receive channels, although if the manufacturer is looking for suggestions – this would be a great addition!
You can plug these in together with a direct cable, or run them through your network switch.
They appear to use Motion JPEG compression, which is ‘good enough’ for our needs. Each one runs at <100Mbps.
They extend HDMI, and two USB ports for a Keyboard and Mouse. They are truly plug-and-play. Very little fiddling around was involved in setting these up.
I estimate the latency at about 1 frame. The mouse has the tiniest lag feeling to it, which would make it unsuitable for gaming, but for production uses they are great!
Although the ads all say ‘120m’ – these aren’t typical point-to-point KVMs. These will work as far as IP/Ethernet works.
They are small and don’t emit any discernible heat, so we happily screwed all the receivers into the underside of the desk so the cable runs to the keyboard, monitor and mouse were very short. This keeps our tech desk wiring incredibly neat and tidy.
They are also cheap enough to keep some spares lying around – ‘just in case’.
DIY KVM Matrix
You might be wondering how we turned these simple KVM boxes into a Matrix. No, we didn’t wire relays onto the dip-switches. The magic lies in the Cisco Switch and its VLANs.
Cisco gives you a very simple TCP/IP protocol for configuring the switches. Anyone who’s touched a Cisco Catalyst Switch would be familiar with it.
We wrote custom software to change the assigned VLAN for all the ‘receiver’ ports. Each transmitter gets assigned one VLAN, and then the receivers are assigned the corresponding VLAN based on the computer they are supposed to connect to.
Our Q-Sys software is really just swapping VLAN port assignments around on the switch in realtime.
The KVM Transmitters and Receivers always stay on ‘Channel 1’ via their dip-switches, but the connect to each other by being placed onto the correct VLANs.
There is only ever one Transmitter on a VLAN, and these stay static. When a user wants to connect to a computer, they pick it from the dropdown and the Cisco changes the Receiver VLAN assignment so it can see the Transmitter.
If multiple receivers all connect to the same VLAN – that’s okay! In fact, we do this constantly so our video director can watch the computer from one of our graphics operators. It’s all multicast, so the Cisco doesn’t care!
James did a lot of the hard work to turn my crazy idea into a working Q-Sys Plugin (they’re written in Lua, in case you were wondering).
Our AV system is setup so there are two modes in the main auditorium – Simple and Advanced.
The ‘Simple’ mode recalls a snapshot to setup the tech desk with one computer only – the main graphics computer. They needn’t be burdened with Wireless Workbench, LSC Clarity, or anything else like that.
The ‘Advanced’ mode recalls another snapshot to put all the computers in their default position, but then the user has the option of moving them around via the touchscreen.
We’ve had this running in an active building since October 2020. While we have been shut down for COVID these last two months, prior to this we were very happy with the stability and performance of this system.
I have never had to reach for a KVM box and reboot it. I’ve never had to dig into the config and wonder why something wasn’t working. Several times a week the system has been started, everything loads correctly, and then we switch computers around based on the team for each particular event.
This is significantly more reliable than some much more expensive VGA and DVI extenders I’ve used over the years. I would happily install more of these in venues and studios whenever I do more integration projects.