2016 Keyboards CK3,4 ⌨️

    • C++➕, Electronics📱, Firmware⚙️, Forks, Keyboards⌨️, Modding🛠️, New, Open Source

⏱️Overview

The newer two of my heavily modified keyboards. This time having Teensy 3.1 (or 3.2) as microcontroller with a tiny 1″ monochrome OLED display. Firmware was based on Kiibohd, it was a fork with my extensions. I added display support (with a library), menu for editing e.g. macros/sequences, few demos and a game.
I did improve them further in my newer firmware, with bigger display.

🛠️Modifications

The first operation I did, was cutting off most of all rubber domes. This makes the keys much softer to press, so needs less effort or fatigue. The result is minimized pressing (actuation) force and distance. Simply more pleasant and comfortable. Also healthier, since the risk of keyboard injuries decreases. I already did that earlier on my two oldest keyboards in 2005 and 2006.

✍️Motivation

Originally most keyboards need about 50 gram force needed to press keys, and probably 4 mm distance. After cutting, the distance is about 1-2mm, the force is at 23 gram for CK3 (top), 33g for CK4 (bottom) and 9-18g for CK5. This can also be varied per key (more detail can be seen on pictures (galleries below), but ultimately the lowest value depends on keyboard’s foil thickness.

⌨️Additional keys

For CK4 there are also few small extra keys. Which were present already in my earliest keyboards CK1 and CK2. Those are glued on top and are made from lightest 0,5N switches available. The row above numpad is used for my audio player control. Rest is custom. This part is optional and I didn’t do it for CK3. The disadvantage is the difference in pressing those switches and much lighter normal keyboard keys. They are smaller so you can fit more, but are less convenient to press. Lastly, regular keys can be used to switch layers instead.

⚙️Microcontroller (MCU)

The second step was replacing the keyboard controller board, with my own. The hardware is composed of Teensy 3.1 (or 3.2) with a tiny 1 inch OLED display (SSD1306, monochrome, 128×64) and a bunch of wires to connect to the original keyboard’s matrix.

The reason for this was to take advantage of already made open source Kiibohd controller allowing any imaginable keys assigned and layers. Also possible are macros, key combinations and even mouse buttons and movement simulation. But changing any of this required rebuilding controller software and uploading to controller, through already present USB.

It was a bit simpler to start at the time, instead of writing my own later.

📊Features

After getting it to work, I implemented my own menu where you can edit sequences, stored in memory (remembered after power off). The sequences are very useful for not typing passwords or simply binding some useful macro combinations or commands dynamically. Which needed a display and menu for entering.

Once I’ve done the useful stuff, I got carried away and implemented several demos on display and even a falling blocks game.
I also wrote about it in this forum post.

📂Sources

The code is in my fork here with some more detail.

📷Galleries

There are picture galleries below, also from assembly and videos.

All galleries up to now, from my keyboards are as follows (newest first):

Most pictures have some description text (explaining what I did there).

  1. CK4 final (18 Apr 2016)
  2. CK4 assembly (Apr 2016)
  3. CK3 final (11 Apr 2016)
  4. CK3 assembly (Apr 2016)
  5. CK3 rubbers cut and glued (Apr 2016)
  6. CK5 / Ultra light press mod 9-18g (2015)

And the older ones:

  1. CK2 final (2008)
  2. CK1 and 2 making of (2005 and 2006)

✅Summary

For reference, here is a table with current status of all my keyboards, since start until present day:

NameAssembly yearOriginal keyboardKeys actuation
[gram force]
Notes
CK3 > CK6 > CK92016 > 2018 > 2020A4 Tech KX-10023 gCheaper, bit wobbly, but more keys
CK2 > CK4 > CK72005 > 2016 > 2018Logitech Ultra X Flat33 gStiff foil, old, extra keys
CK5, CK5b2015, 2020A4 Tech KV-300H9-18 gThe lightest foil
CK12004Logitech Ultra X Flat25 gFirst, old, had extra keys,
now only for testing, 1 row dead 💀