Repurposing an old Psion MC400 laptop keyboard with Teensyduino & USB

I’ve collected a few Psion MC400s over the last few years that are in a less than perfect condition and one of the things I’d considered for a long tine was re-using the machine’s excellent 61-key G60-1600 Cherry mechanical keyboard which uses vintage MX clear switches.

Old (1989) vintage Cherry keyboard – MX clear witches and 61 keys!

Electrically this keyboard uses the classic matrix of rows & columns to signal which key has been pressed. If we want to use this as a USB keyboard we need a little help translating the row/column signals into USB messages. I discovered Frank Adams’ detailed instructable a while ago, and in 2021 I’d bought the parts and had the PCBs made but it wasn’t until June 2022 that I got around to actually putting it all together – and voila! I’m typing this on an MC400 keyboard right now, hooked up via USB to my ASUS laptop 😉

The process wasn’t entirely straightforward for this keyboard as it uses an unusual matrix configuration due to the architecture of the machine it came from: the Psion SIBO machines are all completely solid state/SSD with instant suspend/resume and as such the “ESC” key also functions as the “On” key and has 2 dedicated lines to the ASIC that controls both the keyboard matrix decode and the system power. Although the 18 pins in the keyboard’s FPC connector form a 9×9 matrix there are 2 pins just for the On/Esc key so the other 60 keys are served by an 8×8 matrix.

Key Matrix added to Teensy LC code

Once the hardware is assembled the process should be relatively straightforward:

  • Load the continuity tester sketch to the LC
  • collect all the key –> row/column translations by pressing all the keys one by one, the continuity tester outputs which rows/columns are connected
  • Either use Marcel’s python or manually produce the key matrix files
  • load the matrices into your favourite Arduino IDE, re-programme the Teensy and off you go!

Teensy LC microcontroller
PCB – Keyboard_Scanner_LC_thruhole.brd from Frank’s repo
18-pin FPC connector

Teensy LC Arduino sketch available here

Teensy LC, custom PCB and 18-pin FPC connector await to make Psion’s MC400 keyboard type over USB!
61 keys on the Cherry keyboard + 8 buttons mounted above to the right

The case-mounted supplementary keypad on the MC400 (Task/Del/Home/End/PgUp/PgDn/LCD/Rec) is wired to share 4 of the main keyboard’s rows with 2 extra columns of its own directly to ASIC2.

full matrix


Published by zedstarr

Chilled out human being, doing techy stuff.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: