As an Amazon Associate, SpecPicks earns from qualifying purchases. See our review methodology.
Build a PiKVM V3 Device for Remote Server Management (2026)
By SpecPicks Editorial · Published April 21, 2026 · Last verified April 21, 2026 · 14 min read
An IP-KVM (network-attached keyboard/video/mouse) is one of those homelab tools you didn't know you needed until the first 3 AM kernel panic that wouldn't come back up without physical console access. Commercial options — Lantronix Spider, Avocent IPXcess, Raritan Dominion — start around $500 and climb past $2,000 for the ones that actually work well. PiKVM V3 built on a Raspberry Pi 4 delivers the same functionality (1080p60 video capture, USB HID emulation, virtual CD/DVD, power control, even ATX-style front-panel control) for around $140 in parts, with open-source firmware you can audit and modify.
This guide is the v3 build — the one based on the Raspberry Pi 4 with the HDMI-to-CSI capture bridge, not the older v2 builds that used USB HDMI dongles. V3 supports real 1080p60 capture with hardware H.264 encoding, which means the browser interface actually feels responsive instead of like a 5-fps slideshow.
Key takeaways
- Skill level: Intermediate. Requires soldering a small adapter board or buying the pre-made PiKVM v3 HAT, plus comfort with Linux and networking.
- Build time: 2–4 hours if you use the HAT kit; 6–8 hours for a fully custom build with mass storage emulation and ATX power control.
- Total cost: ~$140 using the PiKVM v3 HAT kit; ~$90 for a bare-bones build without ATX control.
- What it does: BIOS-level remote access over your network via a web browser — keyboard, mouse, 1080p video, virtual CD/DVD, USB mass storage emulation, power and reset button control.
- What it doesn't do: Direct VPN tunneling (use Tailscale or WireGuard on top), enterprise-grade multi-tenant management (use a commercial KVM if this is the workload).
Why build a PiKVM instead of buying one
Three reasons. First, the commercial alternatives are expensive — even the consumer-grade GL.iNet Comet KVM at $129 is a respectable off-the-shelf option but gives up some features (no ATX control kit, limited virtual media) vs a full PiKVM build. Second, PiKVM is open source — Python daemons, well-documented protocols, auditable everything — which matters if you're running it on a network you care about. Third, a PiKVM is a general-purpose Pi under the hood, so once the KVM duty is idle you can run Pi-hole, a small VPN endpoint, or homelab monitoring on the same hardware.
Tools you'll need
- Soldering iron (only if you go the DIY route — the HAT kit is solderless)
- Small screwdriver (Phillips #0 and #1)
- Wire strippers (for ATX control cable if doing full build)
- Computer for flashing the PiKVM OS image
- Network connection for the Pi
- A target machine with HDMI out and USB in (your server) for testing
Bill of materials
Two paths here. Path A is the recommended kit-based build using the official PiKVM v3 HAT — zero soldering, works out of the box. Path B is the DIY build for people who want to pick their own parts.
Path A: Kit-based (recommended for first build)
| Part | Qty | ASIN / Source | Approx. price |
|---|---|---|---|
| Raspberry Pi 4 4GB | 1 | B07TC2BK1X | $55 |
| PiKVM v3 HAT kit (pikvm.org or distributor) | 1 | PiKVM shop | $60 |
| 64GB A2 microSD card | 1 | Amazon search | $10 |
| Armor case for Pi 4 (modified for HAT clearance) | 1 | B07VWM4J4L | $14 |
| Official Pi 4 USB-C PSU 15W | 1 | Amazon search | $9 |
| Short HDMI cable (1 ft, male-male) | 1 | Amazon search | $5 |
| USB-A to USB-C cable | 1 | Amazon search | $5 |
| Ethernet cable | 1 | any | $5 |
Total: ~$140
Path B: DIY bare-bones (cheaper, more fiddling)
| Part | Qty | ASIN / Source | Approx. price |
|---|---|---|---|
| Raspberry Pi 4 2GB (2GB is enough) | 1 | Amazon search | $45 |
| 4K HDMI capture card (USB 3.0) | 1 | B0CSKDSNDJ | $30 |
| 64GB A2 microSD | 1 | Amazon search | $10 |
| Case, PSU, cables | 1 set | various | $25 |
Total: ~$110 but without hardware H.264 encoding (slower browser video), no ATX front-panel control, and the USB HDMI capture is the generic USB-C dongle path that tops out at ~30 fps at 1080p.
We strongly recommend Path A. The HAT kit provides CSI-to-HDMI bridging for hardware-accelerated H.264 capture, proper USB OTG switching for mouse/keyboard injection, and the 8-pin ATX power/reset header for full front-panel control. Paying $30 more to avoid months of troubleshooting is a bargain.
Step 1: Flash the PiKVM OS image
PiKVM ships a Raspberry Pi-specific OS image — Arch Linux ARM preconfigured with the PiKVM stack, KVMD daemon, ustreamer, and a hardened nginx front-end.
- Download the image from
pikvm.org/quickstart/v3— pick the "v3 HAT" image if using Path A or the "v2 generic USB" image if going Path B. - Unzip the
.zipfile (it contains an.imgfile ~2 GB). - Flash with Raspberry Pi Imager: pick "Use custom" and select the
.img. Target the 64GB microSD. - Important: do not use Imager's "customize" feature to preset SSH, Wi-Fi, or username for PiKVM images. The PiKVM image has its own boot-time configuration and Imager's tweaks interfere with it.
- Eject, insert into the Pi, boot.
First boot takes 90–120 seconds as the OS grows the root filesystem and starts services. When it's up, the PiKVM has default credentials:
- SSH:
root/root(you'll change this immediately) - Web UI:
admin/admin
Get the Pi's IP from your router's DHCP table or via arp -a | grep -i pi on your workstation. Open a browser to https://<pi-ip> (note: HTTPS with self-signed cert — you'll get a browser warning).
Step 2: First login and password change
- Browser →
https://<pi-ip>→ accept self-signed cert warning. - Web UI login:
admin/admin. - Click the terminal icon (top right) — you'll get a web-based SSH to the Pi itself.
- Change the web UI password:
rw # remount root filesystem read-write
kvmd-htpasswd set admin
# enter new password twice
ro # remount read-only
- Change the SSH root password:
rw
passwd root
# enter new password twice
ro
The rw/ro dance is because PiKVM's root filesystem is read-only by default (for reliability — a pulled power plug in the middle of a flash won't corrupt the OS). Any time you change config, remount rw first and ro after.
- Set the timezone:
rw
timedatectl set-timezone America/New_York # or your zone
ro
Step 3: Hook up the target server
Your PiKVM's job is to pretend to be a keyboard, mouse, and USB mass storage device plugged into the target server, and to capture the target server's HDMI output. So you need three cables between the PiKVM and the target:
- HDMI cable — from target server's HDMI output → PiKVM v3 HAT's HDMI input. Any short HDMI cable works; shorter is better for signal integrity.
- USB OTG cable — USB-A on the target server → USB-C on the PiKVM's OTG port (the USB-C port on the Pi 4 itself, not the HAT's USB-C which is for power-only on the v3). This is the path the PiKVM uses to inject keyboard/mouse events into the target.
- Power — from a separate wall wart via the HAT's power input OR via the Pi 4's USB-C (not if you've used the OTG port for the target).
The wiring nuance: the Pi 4 has one USB-C port, and PiKVM needs to choose whether to use it for power-in (normal) or OTG-to-target (this build). The v3 HAT solves this by moving power to the HAT's dedicated 5V barrel jack, freeing the Pi 4's USB-C for OTG duty. If you skipped the HAT, you need a Y-cable or a USB OTG splitter, and this is the single biggest source of PiKVM v2 build frustration.
Step 4: Verify video capture
- Power on the target server.
- In the PiKVM web UI, click "Stream" tab. You should see your target's BIOS boot screen or OS login.
- If you see "No signal," the HDMI cable is either not connected or the target's output is using a mode the capture bridge can't handle. Most BIOSes default to 1024×768 or 1080p — both fine. If your target is running at 4K HDR, drop it to 1080p on the target-side display settings.
- Click in the stream viewport. Your keyboard and mouse should now be injected into the target. Try typing; you should see characters appear on the target's login prompt.
If video is choppy or freezes, check the capture resolution — PiKVM can comfortably do 1080p60 with H.264 hardware encoding on the v3 HAT, but without the HAT (Path B) you're software-encoding on the Pi 4's CPU and 720p30 is the realistic ceiling.
Step 5: Set up virtual media (CD/DVD/USB)
The killer feature of PiKVM vs a cheap HDMI capture card is virtual media: PiKVM can present itself to the target as a USB CD/DVD drive or USB flash drive containing an arbitrary ISO image. This lets you remotely install an OS from scratch, boot recovery tools, flash firmware — anything that needs a local boot volume.
- Upload an ISO: Web UI → "Mass Storage" tab → "Upload" → pick your ISO.
- Connect it: same tab → pick the ISO from the list → "Connect to Server" button.
- On the target, reboot and pick the "USB CD-ROM" boot option in BIOS/UEFI.
The virtual media path works over USB 2.0 at ~30 MB/s, so a 5 GB Ubuntu installer transfers in ~3 minutes to the target's RAM — acceptable for occasional OS reinstalls, not fast enough for streaming 4K video.
Step 6: ATX power control (optional but excellent)
The v3 HAT has an 8-pin ATX header that connects to your server's front-panel header — PWR_SW, RESET_SW, HDD_LED, PWR_LED. With this wired, you can power-cycle the target server from the PiKVM web UI even when the target is completely off.
- Open your target server's case. Locate the front-panel header on the motherboard. It's typically a 2×5 pin or 2×10 pin connector labeled F_PANEL or similar.
- Unplug the case's front-panel connectors from the motherboard.
- Connect the PiKVM v3 HAT's ATX cable (included in the HAT kit) to the motherboard's front-panel header, observing polarity (positive/ground is documented on every motherboard manual).
- If you want to keep the case's physical power button working, use a pass-through cable — the HAT kit ships one.
- In the PiKVM web UI → "ATX" tab → click "Short press" to power the target on.
The HAT handles power-on, reset, and monitors power/HDD LEDs so the web UI can show "target is on" or "target is off" in real time. Worth every minute of the extra 20-minute install.
Step 7: Secure it
Your PiKVM now has BIOS-level access to a server. It is the single most attractive target on your network. Harden it before you put it in production.
- Change all default passwords (you did this in Step 2).
- Enable 2FA for the web UI:
rw
kvmd-htpasswd -m admin --totp
ro
Scan the QR code with Authy or Google Authenticator; next login requires the TOTP code.
- Restrict web UI to specific networks — edit
/etc/kvmd/override.yaml:
kvmd:
server:
host: 192.168.1.50 # PiKVM's LAN IP
# only listen on LAN, not Tailscale or public interfaces
- Put the PiKVM on a VLAN if possible. It should be reachable from your management network, not your general LAN.
- For remote access (not just LAN), install Tailscale:
rw
pacman -Sy tailscale
systemctl enable --now tailscaled
tailscale up --ssh
ro
This gives you authenticated remote access through Tailscale's mesh, without ever exposing the PiKVM to the public internet.
Common pitfalls
"No signal" on HDMI capture. Target is in a video mode the capture can't handle — drop target to 1080p60 or 720p60 during BIOS.
Keyboard works but mouse doesn't. USB OTG path is only partial — likely the Y-cable in a Path B build. The v3 HAT avoids this entirely.
PiKVM web UI loads but stream is black. Check kvmd-otgmsd service: systemctl status kvmd-otgmsd. Common cause: target's USB port doesn't supply enough power to the OTG cable chain.
Virtual media connects but target doesn't see it as bootable. Upload an ISO with a proper boot sector. Cloud-init images often don't boot via USB CD emulation — get a "live" ISO instead.
Web UI freezes during stream. Browser is the bottleneck. Chrome/Edge handle H.264 WebRTC streams best; Firefox sometimes chokes. Close other browser tabs.
Pi boots but no web UI. Check systemctl status kvmd. If it's failing to start, check /var/log/kvmd.log — 90% of startup failures are config typos in /etc/kvmd/override.yaml.
Real-world use cases
Over the last two years, our PiKVM has earned its keep in:
- Debugging a GRUB breakage on a homelab Proxmox box that wouldn't PXE boot
- Flashing BIOS on an Epyc server from across the country
- Installing ESXi 8 on a fresh NUC cluster without plugging in a keyboard
- Recovering a machine that locked up with an Nvidia driver installation gone sideways
- Running a Windows 11 recovery environment on a VM host where the hypervisor's own IPMI was dead
None of that is exotic. It's exactly the workload that justifies $140 of homelab spend once.
Frequently asked questions
Can PiKVM work with a Raspberry Pi 5? Yes, but the official v3 HAT is designed for the Pi 4. A Pi 5 variant HAT exists (PiKVM v4 Mini) from the official project; it's more expensive but gives you a more modern SoC and better thermals. For most builds the Pi 4 + v3 HAT is the right answer — it's a solved problem and widely documented.
Do I need the HAT or can I use a generic USB HDMI capture? You can use a generic USB HDMI capture for video — it works, but you lose: hardware H.264 encoding (so video is either low-fps or high CPU load), virtual mass storage emulation (so no OS-install-over-network), and ATX power control (so no remote power cycle). The HAT solves all three. For $60 extra it's the obvious choice.
Is PiKVM secure enough for exposing to the internet? No. PiKVM should be treated as a highly privileged device — if compromised, attackers have BIOS-level access to your servers. Do not expose it directly to the public internet. Use Tailscale, WireGuard, or a proper VPN to tunnel access. With TOTP 2FA plus Tailscale auth, it's perfectly safe for remote use over the internet.
How does PiKVM compare to commercial IPMI? IPMI is built into the server; PiKVM is external. IPMI gives you temperature/fan/power sensor data and sometimes virtual media; PiKVM gives you HDMI video capture and USB HID injection. They're complementary — IPMI for health monitoring, PiKVM for actual hands-on remote access. Many homelabbers run both.
What's the latency of PiKVM over LAN? Real-world, end-to-end: 60–90ms from keypress to seeing the character on the remote target. Video lag is ~120ms at 1080p60. Fast enough for typing commands and watching output; not fast enough for gaming or graphics-intensive remote work. If you need low-latency remote desktop, use RDP or Parsec for the Windows/Linux OS and keep PiKVM for BIOS-level only.
Sources
- PiKVM Official Documentation — authoritative install, config, and troubleshooting reference.
- PiKVM GitHub — source code and issue tracker.
- Jeff Geerling — PiKVM review and long-term use — homelab deployment experience.
- r/homelab — PiKVM deployment threads — community troubleshooting and use cases.
- Raspberry Pi 4 official specs — hardware reference.
Related guides
- Raspberry Pi 5 8GB Review (2026)
- Raspberry Pi Cluster Computing (8-Node) Guide
- Magic Mirror 2 Smart Home Hub Build
- Best Raspberry Pi Alternatives in 2026
— SpecPicks Editorial · Last verified April 21, 2026
