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.


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


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 the second layer in a number pad configuration. In addition to that the rows of the keyboard are not staggered, which makes typing easier.

In the following picture key legends in black are primary actions, legends in red are secondary actions and legends in blue are FN-actions that can be accessed by pressing one of the FN-keys.

Electrical design

Electrically the double action keyboard is similar to normal keyboards. A matrix configuration is used to measure the state of the switches. The only diffrence to a typical keyboard is that each physical key row has two electrical rows in the matrix, because one double action key has two switches. The double action keyboards (V1.0 and V1.1) have a keymatrix size of 11x14.

Keyboard versions

So far there are three versions of the double action keyboard. The first one (with the completely wooden case) is a prototype and it was fabricated by milling a PCB and a case with a CNC router. It is based on the Teensy 3.2 microcontroller and it has a 9x14 matrix for reading the state of the switches.

The second version (V1.0) has different layout than the first one. The layout is symmetrical, and the backspace is more easily accessible. Also, the joystick has been changed to a more robust one. This version is based on the Teensy LC microcontroller, because of its cheaper price and adequate features. The case is built out of wood and sheet metal parts.

The third version (V1.1) is electrically almost identical to the V1.0, however, the mechanical design has been updated significantly. The case is manufactured out of sheet metal parts and the keyboard is wider and it has a fixed wrist rest. The wrist rest has a foam core to make it softer and more comfortable compared to the wooden wrist rest of the V1.0. Also, the joystick is mounted slightly higher than in the previous versions. The LEDs (for caps lock and FN-layer) have been positioned to the middle for better visibility. This keyboard has also an USB type-C connector.