Contents
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.
Rubber domes reduction for minimized pressing (actuation) force and distance. Simply more pleasant and comfortable. Also healthier, since the risk of keyboard injuries decreases. I do it always for all my keyboards. Process with info shown here and in gallery below at end.
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.
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.
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.
The code is in my fork here with some more detail.
For reference, here is a table with current status of all my keyboards, since start until present day:
Name | Assembly year | Original keyboard | Keys actuation [gram force] | Notes |
---|---|---|---|---|
CK3 > CK6 > CK9 | 2016 > 2018 > 2020 | A4 Tech KX-100 | 23 g | Cheaper, bit wobbly, but more keys |
CK2 > CK4 > CK7 | 2005 > 2016 > 2018 | Logitech Ultra X Flat | 33 g | Stiff foil, old, extra keys |
CK5, CK5b | 2015, 2020 | A4 Tech KV-300H | 9-18 g | The lightest foil |
CK1 | 2004 | Logitech Ultra X Flat | 25 g | First, old, had extra keys, now only for testing, 1 row dead 💀 |
CK3 demos, CK4 demos – showing all demos on display, it is only 128×64 resolution
Plasma – uses dithering, since display is mono, 1 color only
Game – blocks falling, shortly played on each preset
Features – menu with all configuration possible back then and options, also keyboard view
Keyboard View CK4 – shows view at CK4 keyboard
Pictures from my keyboards are as follows (newest first) of final result and assembly for CK4 and CK3: