What is a double action keyboard?

A double action keyboard has double action switches that have two independent functions that can be triggered without pressing any modifier keys. The first action can be accessed by pressing the switch one step down, and the second action by pressing the switch two steps down.

After having used this keyboard for a while, it has proven to be very useful. Typing of special characters is significantly easier than before and the layout makes the overall usage more comfortable.



Double action switches



The double action switches are an essential part of the double action keyboard. Currently there are no suitable ready-made double action switches available, thus, they had to be constructed out of modified MX switches and tactile switches.

The MX switches are modified so that the 'plunger' can actuate a tactile switch. This is achieved by removing the cap of the centering 'pin' of the switch. The MX switches have an actuating force of 0.5 N and the tactile switches which have an actuating force of 1.3 N. The value of the tactile switch was chosen so that the force difference between the first and second position is significant but not too large.

The construction of a double action switch is visualized in the following picture. As can be seen, the tactile switches are soldered upside down on the PCB below the Cherry switches, to allow the plunger of the Cherry switch to actuate the tactile switch.



Firmware



Because of the unusual operation principle of the double action keyboard, a custom firmware was developed for the double action keyboard. The firmware is written in Arduino and targeted for Teensy microcontrollers.

The double action keys have two different functions, so there are some challenges how the functions are triggered. The keyboard firmware works in the following way: if a key is pressed two steps down the secondary function is triggered immediately, however, if the key is pressed only one step, the keyboard must not send the key press immediately since the user might still press also the second step, this could lead to a situation where both actions are triggered instead of only the one that was intended to be triggered. This is solved by triggering the first action only when the key is pressed one step down and then released or when the first step is held down for the duration of a delay time.

Thus, to type the first action, you have to press the key one step down and release it (this gives one character) or keep it pressed longer than the delay time (if many characters are desired). To trigger the second action, the key just needs to be pressed down faster than the delay time.

Also, modifier keys need special treatment. As mentioned, when typing a “first action” character, the character is typically sent when the key is released (i.e. falling edge). This causes problem for key combinations, this is because for normal key combinations to work “normally”, the modifier needs to be held down longer than the normal key. To solve this, the modifier keys are programmed so that they lock down when a non-modifier key is pressed while a modifier is held down and they are released after the non-modifier key is released. This makes key combinations work as with normal keyboards.



The firmware can be found on GitHub: DAK-FW

Layout



A typical keyboard has about 104 keys. The double action keyboard has only 66 physical keys, all of which are double action, and a 5-directional joystick. This means that the keyboard has 66*2+5=137 individual switches, which is more than what a typical keyboard has while taking less physical space making the keyboard more compact and comfortable to use.

The arrangement of the keys is also very unusual. As shown in the picture, enter, backspace, shift, delete and the arrow keys are all in the middle of the keyboard so they can be operated with both hands easily. The numbers are arranged to...