PiKey
Introduction
PiKey is a wired USB keyboard and Atari-style joystick adapter intended to improve usability of retrocomputer systems by providing an avenue by which a user may add a full-sized wired USB keyboard or 9-pin Atari joysticks or Sega joypads.
The version of the kit most recently designed is called the PiKey-10 which supports the TRS-80 MC-10 Micro Color Computer.
Jay Mundy, A.K.A. Spriteworx, has posted an informative video regarding installation, use, and firmware upgrade of the PiKey-10.
Tim Holloran has also posted a nice, brief PiKey-10 demo video.
Shown below is an example PiKey-10 prototype board:
How It Works
The PiKey board hosts a Raspberry Pi Pico microcontroller and an MT8808 8x8 analog switch matrix. Using the Tiny USB protocol stack and an OTG adapter, the Raspberry Pi Pico interfaces with the user's wired USB keyboard and 9-pin Atari joysticks or Sega joypads and provides the proper protocol to the MT8808. The MT8808, in turn, is connected to the retrocomputer in place of or electrically in parallel to the original keyboard to emulate the opening and closing of keyswitches.
Keyboard Compatibility
Through experimentation, it has been found that around 75% of wired USB keyboards work well with PiKey. Wireless keyboards as well as multimedia keyboards with numerous controls for audio or video often don't work well with basic HID (Human Interface Device) drivers, such as the one that is available as part of the Tiny USB protocol stack used by PiKey.
Please share any information about keyboards which operate (or fail to operate) with PiKey via the contact page. The PiKey software is under continuous development and it is possible for the end user to upgrade the firmware on the onboard Raspberry Pi Pico without special hardware other than a PC and standard USB A to USB micro B cable as updates become available.
Working wired keyboards
- Acer M/N: KB36211
- Acer Model: KBCR21
- Dell Model: KB212-B
- Dell Model: KB216p
- Generic (unbranded) USB keyboard
- HP Model No.: SK-2085
- HP Model No.: 664R5AA
- Insignia Model No.: NS-PNK8001
- Kegol (no model listed) USB keyboard
- Lenovo Model No.: SK-8825 (L)
- Logitech K120 M/N: Y-U0009
- Logitech K120 M/N: Y-U0042
- Macally Model: SLIMKEYC
- Microsoft Natural Ergonomic Keyboard 4000 v1.0 KU-0462 MS PART NO. X802610-001
- WASD Keyboard
Non-working wired keyboards
- Apple Model: A1243
- Dell M/N: Y-U00003-DEL5
- Dell Model: SK-8115 (Hangs and requires occasional hot-unplug-replug)
- HP Model: KBAH21 (Issue with Verbose mode)
- MSI Model Number: KU-0902
- Raspberry Pi Official Keyboard
Joystick/Joypad Compatibility
All tested Atari-style 9-pin joysticks have been proven to be compatible as well as 9-pin Sega Genesis controllers. Note that not all buttons on the 9-pin Sega controllers are functional. In addition to the 4 directions of the D-pad, only the "B" button is recongized by PiKey.