dorkhub

ps2pico

USB keyboard to PS/2 / AT / XT interface converter using a Raspberry Pi Pico

No0ne
C17232 forksMITupdated 1 year ago
git clone https://github.com/No0ne/ps2pico.gitNo0ne/ps2pico

ps2pico

USB keyboard to PS/2+AT or XT interface converter using a Raspberry Pi Pico

hw1 hw2 hw3 hw4

Keyboard + Mouse variant: https://github.com/No0ne/ps2x2pico

Additional excellent documentation by Ray: https://minuszerodegrees.net/keyboard/ps2pico.htm

Usage

  • Download ps2pico.uf2 or ps2pico-XT.uf2 from https://github.com/No0ne/ps2pico/releases
  • Copy ps2pico.uf2 or ps2pico-XT.uf2 to your Pi Pico by pressing BOOTSEL before pluggging in.
  • Afterwards connect a USB keyboard using an OTG-adapter and PS/2+AT or XT 5V to Pico VBUS.
  • Also works with wireless keyboards with a dedicated USB receiver.
  • 3.3V/5V conversion is done with two NPN transistors, two zener diodes and four resistors as shown below:
                 PS/2+AT / XT CLOCK
                       |           ____
                       |__________|10k |___________ GPIO 14
            ____       |          |____|     |
GPIO 15 ___|2k2 |____|/  BC547             __|__
           |____|    |\e                    / \  3V6
                       |                     |
                   ____|__GND________________|___


                 PS/2+AT / XT DATA
                       |          ____
                       |_________|10k |____________ GPIO 17
            ____       |         |____|      |
GPIO 16 ___|2k2 |____|/  BC547             __|__
           |____|    |\e                    / \  3V6
                       |                     |
                   ____|__GND________________|___

ps2pico

NuXTv2

If you have a NuXTv2 you can build an internal version of the ps2pico-XT! Replace U10 with the pico, remove RN13 and add two 4k7 pull-up resistors as shown below:

hw5 hw6 hw7

Build

export PICO_SDK_PATH=/path/to/pico-sdk
mkdir build
cd build
cmake ..
make

Resources

more like this

anne-key

Firmware for Anne Pro Keyboard written in Rust

Rust572

kurinji

Kurinji Input Map aims to decouple game play code from device specific input api. This is achieved by providing apis th…

Rust51

uchroma

An advanced driver for Razer Chroma hardware in Linux with multi-layer animation support

Python52

search

search projects, people, and tags