This is just a short guide to compiling and uploading the PIKVM Arduino HID onto other boards. I will be using the Arduino Leonardo as an example.


  • The boards that you are compiling must be supported by HID-Project since this is a library that PiKVM uses
  • I do not believe that boards using Hoodloader2 firmware are supported


Follow the official wiring
Mine is wired like so:

RasPi ->  Arduino
5V    ->  5V
5V    ->  HV
3V3   ->  LV
GND   ->  GND
TX -> TXI -> RX
RX -> RXO -> TX
GND   ->  Pin 1 2N2222
GPIO4 ->  Pin 2 2N2222
Pin 3 2N2222 -> RST


  1. Follow the official steps for the TTL Firmware on Flashing the Arduino HID but stop after cd ~/hid
  2. Find you board for PlatformIO here
  3. Open platformio.ini (You can do this with nano platformio.ini)
  4. Under [env] change the platform and board to match step 2.

    Leonardo example:

     platform = atmelavr
     board = leonardo
  5. Save (Ctrl + X, then Y) and contine the official steps.

Additional Notes

  • My Logic Level converter or RPi TTL pins didn’t seem to work so a USB to TTL serial adapter was used.