Zeljko's Blog

Split Keyboard Temper

Created: 2024-08-04
Last Modified: 2025-02-22

It’s this time of the year again. Building a new keyboard. A classic thing to do for nerds. As if a Corne and Rollow are not enough. This time I build with a friend together the Temper. A split-ergo keyboard made by GitHub user raeedcho. After using it now for about month I have to say that I am very happy with it.

Before I jump into the building process of the keyboard, I would like to share some backstory. Perhaps this way, I can justify why I have yet another keyboard.

The main reason I switched the Corne keyboard to the Rollow keyboard is that the six columns on each half were too much for me. It was simply uncomfortable to reach the outer column with my pinky finger. Another annoyance was the column stagger. I wanted the row for the middle finger to be shifted a little more upwards and the pinky finger column a little more downwards. This is when I received the Rollow from a friend because he didn’t have any use for it. I saved it from just laying in a box and giving it purpose!

In terms of size, the Rollow was a miniature keyboard compared to my previously used Corne. It is very compact, with five columns on each side and only two thumb keys, plus a rotary encoder wheel on each side. To be honest, I never got comfortable using the encoder, so it became my resting position for my thumbs, and I disabled it in the software. You can compare the sizes in the next picture.

Corne and Rollow Corne and Rollow

After four months of usage, I realized that three thumb keys are the way to go for me; two thumb keys were not enough. That’s when I ventured into the depths of /r/ErgoMechKeyboards and quickly learned about the Chocofi keyboard and the Temper keyboard. I decided on the Temper because I liked the wireless-only aspect of it and the interesting PCB design with the jumper pads.

The ordering process for the PCBs was straightforward on JLCPCB. Upload the Gerber file from the repository, enter your address, pay, and wait 1 or 2 weeks. That’s it. The cost for the PCB was also cheap, around 15 Euros including shipping from China and taxes.

On the other hand, organizing the parts for building the keyboard took more effort. Here’s a breakdown:

All these parts cost around 80 Euros for four keyboards (two left and two right).

Regarding the cost, I already have a soldering kit and the necessary gear to build it. This is why I didn’t include it in the final cost and the list of items above. Additionally, I had Kailh Choc v1 switches left over, which I wanted to use with the Temper, along with keycaps.

The keyboard was assembled over one evening with some beer, Peruvian beverages, cursing, and a lot of fun. In the end, we had two working pairs of the Temper. Here is a picture of my Temper keyboard.

Temper0 Temper1 Temper2

The journey of this keyboard didn’t end there. The hardware and soldering were done, but the software part was still left. With this opportunity, I wanted to address one issue with wireless keyboards using ZMK firmware.

Usually, split keyboards use two microcontrollers, one for each side. One side acts as both sender and receiver, while the other side is just a sender. This means the left side typically does more work because it receives signals from the right side and then sends both signals to the connected device. As a result, the left half does double the work compared to the right half, which impacts battery life. The battery life of the left half is much shorter compared to the right half.

To solve this issue, you can use a Bluetooth dongle, for example a third microcontroller. You configure both keyboard halves to send signals to this third central dongle, which can be directly connected to your PC. This solution has two additional benefits: you don’t need Bluetooth on your PC to use the keyboard, allowing you to access, for example, the BIOS or other environments where Bluetooth is unavailable. Additionally, it saves energy on the device that would otherwise be running Bluetooth.

The configuration with and without dongle is in my GitHub repository, and I am using it already. The configuration is not perfect at the time of writing, but I plan to contiuosly to improve it. This includes setting parameters for sleep time and such. Another issue is the input lag of one half. This is why I switched back to the non-dongle mode for the time being. My goal is to get it working.