Open and inexpensive DIY IP-KVM based on Raspberry Pi

A very simple and fully functional Raspberry Pi-based KVM (Keyboard-Video-Mouse) over IP that you can make with your own hands. This device helps to manage servers or workstations remotely, regardless of the health of the operating system or whether one is installed. You can fix any problem, configure the BIOS, and even reinstall the OS using the virtual CD/DVD or Flash Drive.
The website: pikvm.org. Also check out the documentation and join the Discord Community Chat for news, questions and support! Also you can visit our Support Forum.
Features
- Can be made based on Raspberry Pi 2, Pi 3, Pi 4, Pi 5 and Zero2W;
- FullHD video using advanced HDMI-to-CSI bridge or USB dongle;
- Proven lowest 35-50ms H.264 latency among all KVMs on the market;
- WebRTC, H.264-over-HTTP and MJPEG video;
- Bootable Virtual CD/DVD and Flash Drive, ability to store images on NFS;
- USB Keyboard and mouse (with leds and the wheel), Bluetooth HID, Mouse jiggler, full support of PS/2;
- Control the server power using ATX functions;
- Access via Web UI or VNC;
- Ability to use IPMI BMC, IPMI SoL, Redfish and Wake-on-LAN to control the server;
- The ready-made OS with read-only filesystem;
- Extensible authorization and HTTPS out of the box;
- Health monitoring of the Pi;
- Control GPIO ports and USB relays;
- 100% Open Source!
Variants
PiKVM supports several different hardware configurations, referred to as platforms.
All of them uses our common open source software stack.
PiKVM V3 & V4 - Now with web camera!
-
PiKVM V4 and V3 are our own plug-and-play, fully assembled, industrial grade, robust devices.
Supports H.264 video, audio, microphone and web camera transmission, host power management, mass-storage emulation and much more.
They are really well-made, reliable things which you can use yourself or provide to your clients.
V4 and V3 also have more features than DIY builds.
-
PiKVM V2 and V1 devices are DIY so you can make it with your own hands.
If you don't know where to put your old Raspberry Pi, here's a great goal.
Look at what Tech Bloggers are saying about us :)
NEW PRODUCT! PiKVM Switch will help you to transform PiKVM into a multiport device!
<a href=https://docs.pikvm.org/switch>
| ⭐ ⭐ ⭐ CORE SYSTEM ⭐ ⭐ ⭐ | V4 Plus | V4 Mini | | V3 | | DIY V2 | DIY V1 |
|---|
| | | | | | | |
| Plug and Play out of box! | ✅ | ✅ | | ✅ | | DIY | DIY |
| Base Raspberry unit | CM4Included! | CM4Included! | | RPi4Included! | | RPi5RPi4Zero2W | RPi3RPi2Zero2W |
| | | | | | | |
| | | | | | | |
| ⭐ ⭐ ⭐ VIDEO ⭐ ⭐ ⭐ | V4 Plus | V4 Mini | | V3 | | DIY V2 | DIY V1 |
| | | | | | | |
| Video passthrough to local display | ✅ | ❌ | | ❌ | | ❌ | ❌ |
| HDMI 1920x1200@60Hz supportfor big displays | ✅ | ✅ | | ❌ | | ❌ | ❌ |
Fully-featured and modern IP-KVM
- Cheaper, but better than commercial solutions
Costs between $30 and $100 depending on the features desired. Even the most expensive configuration will be cheaper than a $500 commercial IP-KVM.
- Easy to build - For the V1 variant
A ready-to-use OS that can be created just by running make build and installed to an SD-card using make install. The hardware can be made in half an hour and without soldering.
- The widest hardware support
There are many ways to build a PiKVM. Video capture devices can be attached using the CSI-2 or USB interfaces. Raspberry Pi models 2, 3, 4 or Zero2W may be used. Any combination of hardware is supported, and PiKVM implements the maximum possible set of features.
- Very low latency
~35-50 milliseconds of video latency. This is the smallest delay of all existing solutions.
- Extra lightweight and fancy Web UI
No weird proprietary clients. No ugly Java applets. Just use your favorite browser to connect to the PiKVM. No flash plugins either!
- Keyboard and mouse
Mouse usage works directly in the browser. The keyboard emulator supports displaying the state of the keyboard LEDs.
- Mass Storage Drive
On the Raspberry Pi 4, 5 and Zero2W, PiKVM can emulate a virtual CD/DVD or Flash Drive. A live image can be uploaded to boot the attached server.
- ATX power management
With a very simple circuit that can be assembled on a breadboard, the power button of the attached server can be controlled using the ATX button headers on the motherboard.
- Security
PiKVM can be opened to the Internet and no one will get access without the password. SSL is used to protect traffic from being intercepted by third parties.
- Local monitoring
PiKVM monitors the health of the Raspberry Pi board and will warn you if it's too hot or is not receiving enough power.
- GPIO management
You can control GPIO and USB relays via the web interface. The extensible interface allows you to make anything out of it.
Production-ready
- Linux-based embedded OS
The PiKVM OS is based on Arch Linux ARM and can be customized for any needs. Thousands of pre-built binary packages are at your service and can be updated with a single command!
- Read-only filesystem
By default the OS runs in read-only mode, as an embedded system should. This prevents damage to the memory card due to a sudden power outage.
- VNC server
The managed server and its BIOS can be accessed using a regular VNC client which supports JPEG compression.
- IPMI BMC and Redfish
Use ipmitool, ipmiutil or any existing network infrastructure that supports IPMI to monitor and manage the server's power. Redfish and redfishtool supported too.
- Wake-on-LAN
PiKVM can be configured to power up a managed server using WoL. This will be available in the Web menu.
- Extensible authorization methods
Multiple PiKVMs can be configured to use a common authorization service. PAM and its rich authorization mechanisms can also be used to integrate PiKVM into your existing authentication infrastructure.
- Macro scripts
If repetitive actions must be performed on the attached server (or on several different servers), a macro can be recorded with keyboard & mouse actions and can be played back multiple times.
Open Source
- Community & support
PiKVM has a large community. Join the discord chat or Forum if you have any questions.
- Extensible
PiKVM was designed as a set of microservices with a plug-in architecture. It's very easy to modify and maintain.
- Comprehensive API
Everything that can be done via the user interface can also be done via a powerful HTTP API.
- Know-how
We created our very own MJPG video server written in C with multi-threading support and GPU video encoding - the fastest streaming solution available to provide the best video quality for PiKVM. We also tested a lot of hardware configurations so that you can be sure devices you assemble will work reliably.
DIY Getting Started
PiKVM supports several different DIY platforms. Now available: V2 and V1.
- Recommended: V2 is the most powerful implementation for Raspberry Pi 4, Pi 5 and Zero2W supporting all of the features of PiKVM including the Mass Storage Drive. It's also the easiest to make.
- V1 was designed to work with Raspberry Pi 2 and 3 that do not have USB emulation port and requires a few more components for a basic implementation. It also does not support the Mass Storage Drive feature.
The full list of parts is at the very beginning according to the assembly instructions for the corresponding platform.
You can review both options to decide which one is most suitable for you.
So, again, in short:
-
DIY PiKVM V2:
-
DIY PiKVM V1:
- Here are the instructions and a complete list of components.
- Requires Raspberry Pi 2 or 3.
- Requires Raspberry Pi Pico for the keyboard/mouse emulation.
- Requires extra wiring and little bit more parts.
- Supports H.264 (for recommended CSI capture).
- Doesn't support CD/DVD and Flash Drive (mass storage) emulation.
Donate
This project is developed by Open Source enthusiasts. If you find PiKVM useful or it has saved you a long trip to check on an unresponsive server, you can support us by donating a few dollars on Patreon or Paypal or buying our devices. With this money, we will be able to buy new hardware (Raspberry Pi boards and other components) to test and maintain various configurations of PiKVM, and generally devote significantly more time to the project. At the bottom of this page are the names of all the people who have helped this project develop with their donations. Our gratitude knows no bounds!
If you wish to use PiKVM in production, we accept orders to modify it for your needs or implement custom features you require. Contact us via live chat or email the lead developer at: mdevaev@gmail.com
Special thanks
These kind people donated money to the PiKVM project and supported work on it. We are very grateful for their help, and commemorating their names is the least we can do in return.
- A. Isenring
- Aaron Graubert
- Aaron Heise
- Aaron Stein
- Accalia
- Adam Goodbar
- Adam S
- Adam Stuart
- AdamBomb
- adipisicing
- Adrian Basham
- Adrian Popescu
- Ahmed Syed
- Alberto Bassi
- alejandro
- Aleksei Brusianskii
- Alessio Curri
- Alex T
- Alex Z
- Alexander Karmanov
- Alexander Lahuerta
- Alexander Martin
- Alexander Pankov
- Alexandre Jablonski
- Alexey Kamenskiy
- alm0241
- Alok Anand
- Alucard
- Ananthaneshan Elampoornan
- Andreas Grundler
- Andreas Marufke
- Andreas Schmid
- Andrew Brant
- Andrew Melton
- Andrew Reusch
- Andrew Ruan
- Andrzej V
- Andy
- Andy Keys
- Anish Patel
- Anix
- Anonymous
- Anthony Junk
- Anton Kovalenko
- Armen
- Aron Green
- Aron Perelman
- Artem Simonov
- Arthur Mayer
- Arthur Woimbée
- Ashlesh Chaudhari
- Asim Shakour
- Augusto Becciu
- AVS Computer
- awkspace
- Badal Patel
- baddog
- Bao Tin Hoang
- Bean Co.
- Bela Bargel
- Belf Igor
- Ben Gordon
- Ben Scott
- Benedikt Heine
- Benedikt Meier
- Benjamin Frewert
- Benjamin Melancon
- Benjamin Schwartz
- Benjamin Stegmann
- Benni Stauder
- Bernhard Fitzke
- Beu
- bikmaek
- bitjoe
- Bits and Bytes Computers LLC
- Bjoern Petsch
- Blair Hasler
- Blindside
- Blue Frog LLC
- Bootstrapper - Programmierung erklärt
- Bosco
- Bradford King
- Brainspore Networks
- Branden Shaulis
- Brandon Daniels
- Brian
- Brian Moses