Functions
- PS/2 keyboard key detection (US layout) (2 keys are not supported: Pause/Break, PrintScreen)
- Print key info via serial (UART, with TX pin 0, RX pin 1)
- LED flashing depending on USB connection.
Setup
- Connect the Pico to your computer in BOOTSEL mode (connect while holding the button)
- Copy the ps2_macro_keyboard.uf2 file to the RPI-RP2 drive
- Connect the PS/2 socket (mini-DIN 6P) pin 1 (data) to GP17 and pin 5 (clock) to GP16.
- Connect the PS/2 socket pin 3 (ground) to any ground on the Pico.
- Connect the PS/2 socket pin 4 (vcc) to Pico physical pin 36. It is important to NOT connect it to 5 volts, else it will fry your Pi (The keyboard works perfectly with 3.3 volts as well!)
- The onboard LED should start flashing, indicating a connection.
- Optional: To see serial output, connect USB to TTL adapter RX pin to GP0 and TX pin to GP1 (this is not reversed, TX goes to RX, and RX goes to TX)
- Optional: Connecting an OLED SSD1306 module: GND to any GND, SCL to GP13, SDA to GP12 and VCC to GP11
RPi Pico Pinout
Wiring: see folder 'wiring'
Build
0 - Pico SDK installed and set up - see raspberrypi/pico-sdk
1 - Clone this repo. Run git submodule init
and git submodule update
2 - Create a new build directory.
3 - Run cmake ..
and make
4 - Copy the .uf2 file to the Pico in BOOTSEL mode
Additional build info found in the ps2_macro_keyboard.cpp file and on the main page.
See supported PS/2 keys on main page.