You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pikvm/docs/pico_hid_bridge.md

90 lines
3.2 KiB
Markdown

7 months ago
# The Pico HID - PS/2 Bridge
7 months ago
7 months ago
The Pico HID Bridge is a special version of the [generic Pico HID](pico_hid.md).
It is a PS/2 keyboard and mouse emulator that connects to PiKVM via USB-A.
Unlike generic [Pico HID](pico_hid.md) and legacy [Arduino HID](arduino_hid.md),
it doesn't require SPI wiring with GPIO.
It is suitable for all devices except V4 Mini and DIY based on Zero 2 W board.
7 months ago
At one end it connects to USB-A on PiKVM, on the other side it has two PS/2 connectors for keyboard and mouse:
<a href="pico_hid_bridge_ps2.jpg"><img src="pico_hid_bridge_ps2.jpg" width="500"/></a>
In addition, on PiKVM V2+, the use of Pico the HID Bridge does not exclude the use of a regular USB OTG port with Mass Storage emulation.
Thus, on V2+ you will be able to use PS/2 and USB Mass Storage at the same time, and even switch between OTG HID and [Pico HID](pico_hid.md).
-----
## Making the Bridge
* *x1* [Raspberry Pi Pico board](https://www.raspberrypi.com/products/raspberry-pi-pico/) with soldered pins.
* *x1* USB-A to Micro-USB cable.
* *x1* 3.3V/5V bi-directional logic level shifter [like this](https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide/).
* *x2* PS/2 cable with male connector.
* *x2* Small dip jumpers.
Make sure that the level shifter pinout matches the scheme, and connect everything according to the [Pico pinout](https://pico.pinout.xyz).
```
_________________
| |
Pico GP11 ______| LV1 HV1 |______ PS/2 keyboard data
Pico GP12 ______| LV2 HV2 |______ PS/2 keyboard clock
Pico GP13 ______| LV HV |______ PS/2 5V
Pico GND ______| GND GND |______ PS/2 GND
Pico GP14 ______| LV3 HV3 |______ PS/2 mouse data
Pico GP15 ______| LV4 HV4 |______ PS/2 mouse clock
|_________________|
```
You can take the 5V power line from one of the PS/2, for example from the keyboard,
or from both at once, but use a multimeter to make sure that both PS/2 female
connectors have the same line.
<img src="../pico_hid/ps2_pinout.png" />
PS/2 female socket pinout on the motherboard is the same for the keyboard and the mouse.
A purple socket usually corresponds to the keyboard, and a green one to the mouse.
If your motherboard only has one port, it's probably universal and can be used for both
the keyboard and the mouse. Most likely, it will be painted both colors.
Use a multimeter to determine the purpose of the wires in your PS/2 cables.
A good idea is to mount the level shifter on top of the Pico, as in this photo:
<img src="../pico_hid/ps2_level_shifter_soldering.png" width="300" />
Finally, install DIP jumpers to soldered pins of the Pico to enable PS/2 and Bridge modes:
* `GP2 <-> GND`
* `GP5 <-> GND`
Like this:
<a href="pico_hid_bridge_ps2_jumpers.jpg"><img src="pico_hid_bridge_ps2_jumpers.jpg" width="500"/></a>
-----
## Flashing the firmware
7 months ago
{!_pico_hid_flashing.md!}
7 months ago
-----
## The final steps
Connect the Pico HID to the target host using PS/2 cable and USB to USB-A port on PiKVM.
Add following lines to the PiKVM configuration and reboot it:
* `/etc/kvmd/override.yaml`:
```yaml
kvmd:
hid:
type: serial
2 months ago
device: /dev/kvmd-hid-bridge
reset_pin: -1
7 months ago
```