Skip to content

PiKVM V3 HAT

Installation requirements

If you have an assembly kit, you will need the following things
  • Raspberry Pi 4 with 1Gb RAM or more.
  • Heat sinks (Optional)
  • MicroSD card (at least 16Gb, class 10 recommended).
  • USB-C to USB-A cable.
  • HDMI cable.
  • Straight Ethernet cable (for the ATX board connection).
  • Power supply unit (5.1V 3A USB-C, recommended by the Raspberry Pi).

Before assembling

  • Please review the back of the box. All parts are required before the HAT is fully functional.
  • The USB-C bridge is located in with the ATX end which includes a pink foam spacer.
  • Please assemble the HAT onto the RPi and test all of the parts before installing in the case, it's easier to install in the case than to dissasemble it.
  • If going from a V2 to a V3, the splitter is no longer needed.
For pre-assembled V3
  • If going from a V2 to a V3, the splitter is built in and is no longer needed.

Basic setup

If you have a kit without a metal case, you can use our free 3D printing case drawing: V3.3 for the Kickstarter/Store model, V3.2 for the pre-release.

  1. Flash the memory card.. Please use the V3 image, V2 image is not compatible.

  2. Build PiKVM according to the video instruction or review the illustrated instructions:

    Video Guide: Metal case step by step

    NOTE: OLED will not light up till step 5 is performed, video was performed after it was already configured, heat sinks NOT included.

    Video Guide: Step by step with HAT device with or without the 3D-printed case

    Warning

    OLED glass can crack if force is used to install it, please handle with care and rock back and forth on the pins side to install.

  3. Connect PiKVM to the computer according to the diagram below:

    Back side Front side
    • HDMI input and USB emulation port must be connected to the computer. Optionally, the ATX port can be connected to control the power. There should be no USB hub between PiKVM and the computer, as some UEFI/BIOS cannot detect them at the boot stage. On the HDMI the HAT, like the CSI bridge, supports 1080p50Hz or 720p60Hz or lower.

    • Connect Ethernet to the network and USB power to the Raspberry Pi power supply.

  4. Carefully read and follow the "First steps" guide.
    It describes how to find PiKVM on the network, how to log in there, change passwords, and so on.
    Follow the steps described there and come back to this page.

  5. If your kit includes the OLED display and/or the fan, you'll need to turn them on (this is only needed for the older V3 image for the HAT, in the box image everything is enabled by default)

    Log in to PiKVM and run these commands:

    [root@pikvm ~]# rw
    [root@pikvm ~]# systemctl enable --now kvmd-oled kvmd-oled-reboot kvmd-oled-shutdown
    [root@pikvm ~]# systemctl enable --now kvmd-fan
    [root@pikvm ~]# ro
    
  6. Using Fahrenheit instead of Celsius on the OLED
    [root@pikvm ~]# mkdir -p /etc/systemd/system/kvmd-oled.service.d
    

    Create file /etc/systemd/system/kvmd-oled.service.d/override.conf:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/kvmd-oled --clear-on-exit --fahrenheit
    

    Then run systemctl restart kvmd-oled. In some cases, if you still do not see Fahrenheit being displayed, reboot the device.

  7. Just reminding again:

    ✮ ✮ ✮ CHANGE THE PASSWORDS! ✮ ✮ ✮

    PiKVM comes with the following default passwords:

    • Linux admin (SSH, console, etc.): user root, password root.
    • PiKVM Web Interface (API, VNC...): user admin, password admin, no 2FA code.

    These are two separate entities with independent accounts.

    To change passwords, you will need to use the console access via SSH or the Web Terminal. If you are using the Web Terminal, enter the su - command to get the root access (enter the root user password).

    [root@pikvm ~]# rw
    [root@pikvm ~]# passwd root
    [root@pikvm ~]# kvmd-htpasswd set admin
    [root@pikvm ~]# ro
    

    If you require additional user for the Web UI access, use the following:

    [root@pikvm ~]# kvmd-htpasswd set <user> # Set a new user with password or change of an existing one
    [root@pikvm ~]# kvmd-htpasswd del <user> # Remove/delete a user
    

    Optionally you can enable the two-factor authentication for more security.

    Changing the VNCAuth passkey and IPMI password at the first start of PiKVM is not required, since these services are disabled by default. But it is here just so that you remember their existence.

  8. Try to manage the computer using PiKVM with the Web Interface.
    Make sure that you get an image and both keyboard and mouse are working. If something doesn't work, check out our FAQ (it's really useful). If nothing helped, you can get support in our Discord chat.

  9. Check the HDMI backpowering problem. ONLY applicable under specific circumstances. NOT getting NO SIGNAL.

    Try restarting PiKVM using the reboot command executed in the terminal. If PiKVM hangs during boot (you can't get the Web Interface for a long time), then you are faced with this rare problem. Don't worry, it's easy to fix. Turn off the PiKVM, disconnect all cables from it, take a close look at the diagram of its ports and jumpers, and remove jumper #14 (it is to the right of the CSI connector). Then you can connect and power up PiKVM again. Now everything will be fine. If you are interested in the technical background, it is described here. Also, just for information: not a single case of negative consequences from the removal of the jumper has been recorded.

  10. IO ports and other things

    Before using GPIO pins to control a relay, KVM switch, or anything else, be sure to check the HAT pinout. Many ports are busy with internal functions. Before using them for your own use, you must disable them, otherwise you may damage the device.

  11. Enable audio forwarding if you want.

  12. Configure access to PiKVM from the Internet using port forwarding or Tailscale VPN, if you need it.

  13. Explore the features of PiKVM using the site's table of contents and have fun!

Video modes

PiKVM V3 supports maximum resolution 1920x1080@50Hz, 60Hz will not work. You can use any other resolution less than the specified one, for example: 1600x1200@60Hz, 1280x720@60Hz, etc. If you have problems with the video, follow this guide.

ATX connection

See here.

IO ports and jumpers

See the diagram

  1. ATX controller interface (power on/off, reboot control, PWR and HDD ACT LEDs).
  2. HDMI reset jumper. Connects GPIO 17 and RESET pin to HDMI capture chip. Currently not used, don't touch it.
  3. SPI and GPIO for the custom extension boards.
  4. Audio capture jumpers. Connects I2S pins 18, 19, 20 to HDMI capture chip.
  5. UART access jumpers. Connects GPIO 14 and 15 to the RJ-45 and USB console ports.
  6. Serial console port (default: /dev/ttyAMA0, RS232 input, outputs +6V/-6V, for the Raspberry Pi or server console access, use the Cisco/Mikrotik-style cable).
  7. USB-C console port (shared with #6 above, takes priority over RJ45).
  8. Power and activity LEDs. On the left of the LEDs the watchdog jumper is located. Don't touch it.
  9. USB-C power input.
  10. I2C display connector.
  11. Alternate +5V power input/output header pins.
  12. RTC clock supercapacitor (rechargeable).
  13. FAN connector - PWM controlled.
  14. CSI-2 interface and HDMI backpowering jumper, see Step 9 of the Basic Setup. Open: (jumper removed) diode will stop current from HDMI input (backpower will be fixed), closed: (jumper connected to both pins) will allow current from HDMI device.
  15. Built-in power splitter port.
  16. HDMI capture port (max 1080p @ 50Hz) with sound capture support.
  17. USB emulation pins for alternative access.
  18. USB-C emulation port - this port is doing the emulation of a USB keyboard, mouse, Virtual CD-ROM or USB Flash Drive, USB-Ethernet, USB-Serial port and a lot of other Linux-supported features.
  19. 1-Wire & Neo-pixel interface (under, advanced user feature).
GPIO pinout

Warning

Before proceeding, make sure that the mb you are using has normal ATX headers

  • ATX control
  • power led = GPIO 24 - Used for reading the host power state.
  • hdd led = 22 - Same for the HDD activity.
  • power switch = 23 - Used for pressing the power button of the host.
  • reset switch = 27 - Same for the reset button.

These pins can't be used for any other purposes even if ATX function is disabled.

  • I2C bus - GPIO 2, 3 - Can be used as I2C ONLY (OLED/RTC).

  • 1-Wire [19] - GPIO 4 - Also available under ATX RJ-45 port (point [19] on the above) as bi-directional buffered open-drain 5V for regular 1-Wire usage.

  • UART - GPIO 14, 15 - Can be used as UART only for the serial console. When jumpers [5] are removed, you can connect to pins 14 and 15 directly using GPIO header. Also you can remove jumper [5] and disable UART console in the /boot/config.txt and /boot/cmdline.txt to use this pins for any purpose. But it's not recommended.

  • Red activity led on the front [8] - GPIO 13 - Can be disabled in /boot/config.txt and available on the Neo-pixel port [19].

  • PWM fan controller - GPIO 12. Can be used for custom purposes if the fan disconnected and kvmd-fan service is stopped.

  • I2S HDMI sound - GPIO 18, 19, 20, 21. Can be used for custom purposes if the tc358743-audio overlay in /boot/config.txt is disabled AND jumpers [4] are removed.

  • USB breaker - GPIO 5 - Can't be used for any other purposes.

The standard Raspberry Pi HDMI output (marked as VIDEO OUT on the PiKVM case) displays its own PiKVM OS console.

Known issues and limitations

  • There may be compatibility issues with some motherboards (such as HP or DELL) which are the same as those that exist with PiKVM V2. Not everything is perfect, but if you have already used PiKVM V2 - our new V3 will work great and please you. If there is no image from the BIOS, you can fine-tune the HDMI settings, but it is possible that the Mass Storage devices will not be available in the BIOS.
  • Pre-release V3.2 board (NOT Kickstarter/Store edition) doesn't have HDMI backpowering workaround jumper.