# DIY PiKVM V2 Instructions

!!! tip "So many choices!"
    There are many different options with sub-items, so you can choose what will suit you.<br>
    However, we marked the recommended way by sign **`✮ ✮ ✮`**


-----
## Required parts

1. **MicroSD card minimum 16Gb class 10.**

2. **Raspberry Pi board:**
    * **[✮ ✮ ✮ Raspberry Pi 4 2Gb](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)**.<br>
      *It makes no sense to buy a Pi 4 with more memory than 2Gb, since PiKVM software uses very few resources.*
    * ... or [Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/).<br>
      *Compact and cheap, but not so reliable solution because of lack of the wired Ethernet.*

3. **Video capture device:**
    * **[✮ ✮ ✮ HDMI-CSI bridge based on TC358743 chip](https://www.amazon.de/Waveshare-Raspberry-Supports-Backward-Compatible/dp/B092HVP926/)**.<br>
      *Supports H.264 video encoding, automatic resolution selection and the lowest possible latency.*
    * ... or [HDMI-USB dongle](https://www.amazon.com/Capture-Streaming-Broadcasting-Conference-Teaching/dp/B09FLN63B3) (not available for Pi Zero 2).<br>
      *Only heavy MJPEG video, no resolution detection, big latency compared to HDMI-CSI.
      Some users report hardware problems: the dongle may not work in the BIOS or simply stop working after a while.
      It's a black box, and no one knows what's inside it. If you have problems with it, it will not be possible to fix them.*

4. **Board-specific: Power supply, USB connectivity, etc.**

    ??? success "✮ ✮ ✮ Raspberry Pi 4"

        On a Raspberry Pi 4 only the USB-C port that receives power is capable of acting as a USB Device.
        The other USB ports are capable only of acting as USB Hosts.
        Therefore a special cable must be used on the USB power port that it can simultanously act as USB Device
        for the target host and receive external power from an power supply.

        ??? success "✮ ✮ ✮ Variant #1: Power supply + ready-made Y-splitter module"

            * *x1* USB-C/Power Splitter Module ([US](https://www.pishop.us/product/usb-c-pwr-splitter/)/[UK](https://www.tindie.com/products/8086net/usb-cpwr-splitter)/[CA](https://www.buyapi.ca/product/usb-c-pwr-splitter/)).
            * *x1* USB-C to USB-C cable (male-male) for connecting the Raspberry Pi to the splitter.
            * *x1* USB-A to USB-C cable (male-male) for connecting the target host to the splitter.
            * *x1* [Official USB-C Power Supply](https://www.raspberrypi.com/products/type-c-power-supply/).

        ??? note "... or Variant #2: Power supply + Y-splitter based on power blocker"

            * *x1* USB-A to USB-A cable (male-male).
            * *x1* [USB splitter](https://www.amazon.com/dp/B08C5FWQND).
            * *x1* [USB Power Blocker](https://www.amazon.com/gp/product/B092MLT2J3) - Will go into the USB-A end towards the target host.
            * *x1* [Official USB-C Power Supply](https://www.raspberrypi.com/products/type-c-power-supply/).

        ??? note "... or Variant #3: Power supply + DIY Y-splitter for soldering"

            * *x1* USB-A to USB-C cable (male-male).
            * *x1* Another cable USB-A to *any* (male-*any*).
            * *x1* Any 5V 3A power supply with USB-A socket.

    ??? note "... or Raspberry Pi Zero 2 W"

        * *x1* USB-A to USB-Micro cable (male-male).
        * *x1* [Raspberry Pi Zero Camera Cable](https://www.amazon.com/Arducam-Raspberry-Camera-Ribbon-Extension/dp/B085RW9K13). *Not compatible with Auvidea B101*.
        * *x1* [Official USB-Micro Power Supply](https://www.amazon.com/Capture-Streaming-Broadcasting-Conference-Teaching/dp/B09FLN63B3).

5. **Optional features:**

    ??? success "✮ ✮ ✮ ATX controller to manage the target host's power"

        {!_diy_parts_atx.md!}

    ??? note "VGA video capture"

        If you want to capture VGA from your server instead of HDMI,
        buy the [VGA-to-HDMI converter](https://aliexpress.com/item/3256801728005613.html).
        Some converters have issues with not supporting all resolutions and refresh rates.

*Kit parts suitable for assembly are also on [sale in Poland](https://3mdeb.com/shop/open-source-hardware/pikvm/).*


-----
## Setting up the hardware

1. **Video capture device:**

    ??? success "✮ ✮ ✮ HDMI-CSI bridge"

        {!_diy_setup_video_csi.md!}

    ??? note "... or HDMI-USB dongle"

        {!_diy_setup_video_usb.md!}

2. **USB cable and power supply**

    ??? success "✮ ✮ ✮ Raspberry Pi 4"

        ??? success "✮ ✮ ✮ Variant #1: Power supply + ready-made Y-splitter module"

            <img src="../v2/v2_splitter_module.jpg" width=500>

        ??? note "... or Variant #2: Power supply + Y-splitter based on power blocker"

            <img src="../v2/v2_splitter_cable.jpg" width=500>

        ??? note "... or Variant #3: Power supply + DIY Y-splitter for soldering"

            It is assumed that if you have followed this path, you know how to handle a soldering iron and a multimeter.

            The Y-splitter can be soldered from two suitable USB cables. Check the attached diagram.
            The appropriate USB pinout(s) can easily be found on Google.

            Please note that if you make a Y-cable from two no-name cables, the colors of the wires may not match those shown.
            Use a multimeter to make sure the connections are correct.

            <img src="../v2/v2_splitter_soldering.png" width=500>

            **Video How-To: [Making a USB Y-splitter cable](https://www.youtube.com/watch?v=uLuBuQUF61o)**

    ??? note "... or Raspberry Pi Zero 2 W"

        This board has two USB micro connectors: one for power supply (marked as `PWR`) and the second for emulating
        a USB gadget (marked as `USB`). Both connectors have a common power line, so to prevent Raspberry power from entering
        the USB port of the target host, it is required to make a special USB A-to-Micro cable without power line.

        One way is to physically cut the power wire inside the USB cable.

        An easier way is to stick a piece of duct tape, as shown in this picture:

        <img src="../v2/v2_tape_off.jpg" width=500>

        Connect the power supply to the `PWR`, and your magic cable to the `USB`. The magic cable will be used
        to connect the device to the target host.

3. **✮ ✮ ✮ Optional feature: ATX controller**

    Connect all the parts according to this scheme:

    ??? example "Simple wiring diagram"
        <img src="../v2/v2_atx_breadboard.png" />

    ??? example "Electrical schematic diagram for advanced users"
        <img src="../v2/v2_atx_scheme.png" />


-----
## Wiring with the target host

1. Connect the HDMI video capture device to the video output port on the target host.

2. Using the Y-cable, connect the PiKVM to the USB on the target host.

3. ??? example "Connect the ATX controller if you built it"

        {!_diy_wiring_atx.md!}


-----
## First launch and usage

{!_diy_first_launch.md!}
