When working in the enterprise space you become accustomed to remote access to systems be it via your usual remote access tools or through some form of out-of-band management equipment (i.e, DRAC/iLO), however non-enterprise hardware typically lacks this functionality which can be a real pain when there is a requirement to remote manage systems that have gone offline. Thanks to a successful Kickstarter project there is a new approach that helps reduce the headaches of needing to travel to a site to fix broken systems. As I backed this project and have built/tested the final product, lets get into the details.
Details of the Kickstarter project can be found here, but in short it was created to create a method of remote access to systems where you couldn't use the typical RDP/VNC to connect to them / needed lower level access to the system itself (i.e., BIOS manipulation). The project was centred around the use of a Raspberry Pi due to its flexibility and price, though you can use different boards providing they are pin-compatible with the RPi. Thanks to successful funding a metal case was also available for backers, which I believe takes the device to the next level. It no longer looks like a bundle of boards and wires that may catch fire if you look at it the wrong way, but looks like a solid-built system that could be left in the back of a rack cabinet without issue. This isn't to say there aren't issues with it (covered later), but it does improve the overall look/feel.
The PiKVM requires self-assembly which proved to be a little fiddly overall due to a few areas that didn't quite meet the mark. One of the first things that I discovered was that the included stand-offs and screws didn't mate quite right in some cases due to poor threading. While wasn't a deal breaker for me as I had better spares to hand, for someone without spares picking this up (or someone building hundreds for a large organization) this would result in a lot of frustration. The lack of assembly instructions in the packaging was also somewhat disappointing, and while I appreciate having the instructions online is better for multiple reasons, the online assembly instructions weren't that great either. Attaching a fan to metal case is easy enough, but when the provided nuts/bolts don't fit into the existing nut cavities and the fan doesn't indicate the direction of air travel, its an undesirable situation to be in.
Tolerances and the lack of instructions aside, the device was built with relative ease. A careful use of force is required to get the I/O board to fit within the connector holes of the metal case, but once in it feels secure and isn't likely to move anywhere. When everything was fully assembled it did look smart (especially the OLED screen on the top) and did feel secure. Hopefully the issues I encountered are ironed out in the next release of the device.
Once built and powered the device is quickly available for use (and I suspect the time to boot will be further improved later), however it does then require configuration via the CLI (or via a web terminal) to set common parameters (i.e., system timezone) and operation mode. The OLED screen isn't enabled by default which is disappointing, though I suspect that the detection of the screen is not an easy task hence requiring it to be manually enabled. Once fully configured using the device is quick and simple, with a clean video capture and low-latency response. I found that WebRTC didn't work when I tried and more CLI configuration was required (following steps in the docs), however once sorted it burst into life and seemingly had no further issues.
Updating the device is simple enough (using pacman), and the 'read-only by default' configuration is very beneficial for a multitude of reasons. Credit to the virtual keyboard which looks great, especially in comparison to its equivalent in the Supermicro IPMI (the days of square boxes should be long over). I haven't tested the ATX control yet as the system I have it connected to doesn't have the pins for this, however I suspect it works without much issue. Being able to power-control systems directly is a really nice touch, though the lack of a blanking plate/bracket to house the RJ45 connector is a let-down.
Overall I was impressed with both the image quality and the speed/latency. I tested it against my laptop to measure the latency as close to real-time as possible and I wasn't disappointed. You can see the developers have spent a lot of time here (which they have documented) reducing the latency as much as possible. While I wouldn't try to game on it (which they don't recommend, especially as 1080p@50Hz is the maximum input capture rate) it does make for a pleasant experience. As someone who has used KVM-based solutions with 4-5 seconds of lag, the PiKVM definitely helps reduce operator stress/frustration over long periods.
Personally, I really like this device and despite a few niggles and desired improvements I can see it being of benefit both to myself and to others who need to manage hardware of the older / non-enterprise variety. While I still expect large organizations to go the standard enterprise KVM route (which makes sense given space/sizing constraints), for smaller organizations who use white-box hardware and need some form of remote-hands for when things break, and for people providing IT support at a distance, this device could be a valuable asset in the toolbox.
- Nice size package
- Cost (including using commodity hardware)
- OS is fast/clean (and read-only by default)
- Case is solid / looks good
- OLED screen is very useful when using the device on the move
- Web UI is simple and effective
- Support as far back as Windows 98 is a nice touch and useful for some admins
- Assembly issues (tolerances / screws / fan)
- No included FH/HH blanking plate for the ATX control board
- Lack of native VGA/DisplayPort input
- Lack of easy web configuration for simple options (i.e., disabling power control)
- No built-in POE support, and the standard POE controller conflicts with the fan controller
- Documentation could do with being reorganized to make it easier to follow / better flow
Currently the device is connected to one of my non-enterprise servers as I do need access to it periodically and RDP/VNC isn't viable. As the software for the device matures / functionality is improved, I will likely get a second one to trial deploying remotely to aid in broken system diagnostics (as it can easily be hooked up to the target system as required).