Shironeko - Learning QMK

I had no clue keyboards went so deep!

Table of Contents

Looks like a whole lot of letters…

Quantum Mechanical Keyboard (better known as QMK) is a sort of “abstraction” library for writing custom firmware for supported keyboards. The list of devices is too long to even list. For the purposes of writing, I will will be speaking only of the GMMK v2 unless otherwise specified.

With that out of the way, it’s basically a way to customize your keyboard beyond the manufacturer’s software. Custom RGB patterns and “programs”, key layouts, unicode support, even audio on supported models. There’s even examples of people playing the DOOM theme with a built-in speaker.

Why am I talking about this?

I’ve started trying to use it! As stated above, I use a GMMK v2 65% ANSI keyboard. It’s quite compact and portable, with a nice heft to it. It feels fantastic to type on and will probably outlive me. I grew tired of the horrible Glorious CORE software. It was slow, buggy, liked to uninstall itself somehow, and was an all around horrible experience. I didn’t use it all too often, but whenever I did, I found myself hating the experience.

All of the negativity about Glorious CORE aside, I’m grateful that the v2 was one of the three models that support. QMK (PRO/numpad being the other two.)

Truly a learning process…

There’s been some hitches. I’m using the “external userspace” method from the QMK documentation… The problem is that it doesn’t support overlaying all of the files I modify. When pushing my firmware to GitHub, the final firmware binary file size is much larger than ones I build on my local machine. This is due to the fact that I cannot disable RGB effects during CI unless I fork the entire QMK codebase. As of writing, it ends up being about a 10KB difference in size.

Shironeko?

I’m very into a clean white aesthetic when it comes to electronics and computer hardware. My keyboard is the white model, it has white keycaps (Hatsune Miku accented), and light colored RGB unless indication of layer/caps is needed.

I’ve dubbed this keyboard “Shironeko (白猫)” or “White Cat”.

shironeko

White for obvious reasons. I derive the “neko” from how fast and lean I’ve made the keyboard feel through firmware modification. N-key roll over, 1000hz polling rate, 2ms debounce, etc.

You can find all of my code and modifications for Shironeko here. Most of the code will be found in keymap.c, with other minor configuration being found in config.h and rules.mk.

Final thoughts

I’ve got a new hobby now… I intend to take both the firmware and the hardware of this keyboard as far as I can. I might even get into building my own hardware and using QMK to control it.

#hardware   #keyboards   #qmk