What Is the BlueRiver SDK for KVM?
The BlueRiver Software Development Kit (SDK) for Keyboard, Video and Mouse (KVM) applications provides source code as well as fully compiled examples that can be used as a reference model to develop a BlueRiver KVM server, designed to manage USB device routing and connectivity using BlueRiver-based endpoint devices and the SDVoE™ Control Server. The most basic function of a KVM server is to allow control, switching and management of multiple remote PCs or USB hosts via a single keyboard, display and mouse using standard Ethernet networks.
Combined with the powerful BlueRiver AV Manager software tool, the KVM SDK takes Semtech’s available software solutions for Pro AV beyond just simple AV switching and distribution. With the feely available BlueRiver KVM SDK, software developers can quickly enable advanced KVM solutions for applications such as medical OR, control rooms and interactive learning. Semtech’s KVM software development kit, including source code and compiled examples is freely available for download via the mySemtech link below.
Switching and Routing
Collaboration
Dynamic Switching
Figure 1. Typical KVM applications.
Support for fully networked KVM switching allows powerful applications from basic switching and routing for thin client workstations (left diagram in Figure 1), to collaboration applications where multiple users control a single host (central diagram in Figure 1), and advanced single operator control of multiple computers with one set of USB peripherals, as illustrated in the diagram on the right of Figure 1.
Typically, two servers are running on the same AV network: the SDVoE server, which is responsible for the setup and control of connectivity between SDVoE endpoints, and a third-party KVM server. The SDVoE API is used to subscribe all USB traffic to the IP address of this KVM server, so the KVM server is essentially intercepting all USB device data on the network and determining how it is processed and forwarded to USB hosts.
Enabling Hotkeys
Hotkeys are dedicated combinations of keystrokes which enable a pre-defined behavior. For example, a hotkey could be defined to switch a single set of USB devices to control multiple USB hosts or PCs. As shown in Figure 2, a single 4K display is used to view four remote desktop PCs using the BlueRiver multiview function in a quad split. Four hotkeys are defined to switch the keyboard and mouse control between PCs one through four. Another hotkey is defined that allows the currently active desktop to be presented in full screen. Pressing this hotkey again will change the view back to the quad split configuration.
Hotkeys are fully user definable and there’s no limit to how many can be defined and their functionality, providing developers with flexibility to control all the advanced features of BlueRiver-based systems.
Enabling Mouse Roaming
As shown in Figure 1, advanced dynamic USB switching can be implemented to enable mouse roaming applications. The KVM server controls USB switching and routing based on the physical parameters of the system setup, such as the number of displays, the resolution of each display and their position with respect to each other. In the system illustrated in Figure 2, the KVM server detects the mouse position on the currently active desktop, and when the user moves the cursor to the edge of the active desktop, it will dynamically switch control to another USB host in the quad split. The user experience is as though the mouse cursor is “roaming” from desktop to desktop as it is moved across each source in the quad split display.
Figure 3. Dynamic switching between remote PCs in dual head multiview.
On top of mouse roaming within a multiview (single display), the KVM server can also be configured for multi-headed systems, as shown in Figure 3. In this example, not only is the mouse roaming across the quad split, but also between two displays (or heads), allowing the control of 8 remote PCs in this example. Using hotkeys, users can switch between different display combinations, such as full screen, picture in picture or even video wall (single source across multiple displays). Additionally, hotkeys can be defined to lock the USB mouse and keyboard control to the currently active desktop.