I have been using a Matias Mini quiet Pro keyboard at work for a while now. I recently decided to replace it with a KB Paradise V80 (also with Matias quiet switches) to match the TKL layout of the keyboard I use at home. This was mainly because the different key placement between my home and office keyboard was driving me crazy. Using the standard TKL layout is nice, but the thing I miss the most about the mini quiet pro is the stealth space bar, which has to be the least noisy spacebar I have ever used. I should post a comparison video/audio of it someday.
By inspecting the photos posted on a review of this keyboard I realized that the keyboard controller daughter board was replaceable. So I decided to make a Teensy based replacement controller board so that I can make custom key mappings to fix some of my issues with this keyboard:
- Change page-up, page-down to home and end
- Change F12 to default to insert, and Fn+F12 to F12
- Change caps-lock to Fn
Opening the keyboard involved removing two screws on the back (thankfully without any warranty void stickers) followed by using plastic cards to push in the 7 tabs holding the top plate to the bottom plate. The plastic tabs are fairly sturdy but I somehow managed to break one of them the second time I opened the case, so do be careful about not pulling apart the top half till all the tabs are released.
The key switches are mounted on a metal plate and soldered on to the two layer FR4 PCB. The daughter board with the 1×4 USB hub chip (Genesys logic GL852G) and keyboard controller (Weltrend WT6522, uses one of the 4 hub ports) mount on a daughter board which connects to the main board via 2mm header pins. The keyboard scan matrix is wired up to the two 17 pins sockets, which for some reason are offset by 1.5 pin width (1.5 * 2mm = 3mm). The other two sockets are used for the three USB hub ports.
After some googling I came across this post about reverse engineering the keyboard scan matrix. I mostly followed the directions from that post but with the following important additions:
- Since one of the keyswitch terminals is connected to the scan row/column via a diode the polarity of the multimeter probes matters. I placed the black/common probe on the keyswitch terminals and scanned the pin headers with the red probe.
- The left terminal seems to have a diode on most keys – and I named it pin 2, and the right terminals as pin 1 for each switch.
- The pin with the diode made a blip sound vs. continuous beep sound for the pin without the diode.
- As you scan though the keys remember to make note of which key blips vs. beeps
- Build a table and use rows for pins that go blip and columns for pins that go beep, and add the PCB screen print label at the intersection of the row and column
Scanning through all the keys took somewhere between 2 to 3 hours with multiple breaks taken in between. And then another hour to analyze and compile the data and find measurement bugs/typos.
Google drive spreadsheet with scan matrix details here.
Next I need to figure out how to make a PCB for this in Eagle/KiCAD and then map the pins to a Teensy 2.0++ board.