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 MergePoint Unity, 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 (1080p50 (~25 fps) 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 1080p50 capture (encoded at ~25 fps) with hardware H.264 encoding via WebRTC, 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 around $80–$90 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
docs.pikvm.org/v3/(the V3 HAT quickstart) — 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:
- Change the SSH root password:
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:
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 1080p50 (~25 fps) with hardware H.264 encoding via WebRTC 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:
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:
- 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:
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.
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
