Building And Flashing A New Firmware With QMK

After just setting up a QMK environment and creating and flashing a firmware for my Hotdox keyboard, I decided to write the steps down because I will inevitably forget something the next time I need to change something.

Installing the tools on macOS

The official docs are good, but the current Brew version of avr-gcc is broken and needs to be manually built from source after setting up QMK:

brew uninstall --ignore-dependencies avr-gcc@8
brew install --build-from-source avr-gcc@8

Creating a new layout

qmk new-keymap -kb hotdox

Building the firmware

qmk compile -kb hotdox -km anttti

Flashing the firmware

Once the keyboard is built, the .hex file is found in ~/qmk_firmware/.build and it can be flashed with QMK Toolbox.


My Spacemacs Cheatsheet


  • SPC f e d: Open .spacemacs
  • SPC f e R: Reload .spacemacs



  • SPC 0: Open/focus file tree
  • SPC f t: Toggle file tree



Setting up Spacemacs on macOS Big Sur

1. Install Emacs

Spacemacs is actually just a premade set of configurations for Emacs, thus the first step on installing Spacemacs is to install Emacs. An easy way to install Emacs on a Mac is to use Homebrew:

brew install --cask emacs

2. Install Source Code Pro font

Source Code Pro is the suggested font for Spacemacs. You can of course change the font later on, but to make things simple, install the free & open source font from GitHub.

3. Clone Spacemacs configuration

To install the actual Spac part of Spacemacs, git clone the repository either directly to ~/.emacs.d if you don’t have an existing Emacs installation, or to some other place and then copy/merge things over:

git clone ~/.emacs.d

4. Run the wizard

Start Emacs and the Spacemacs wizard should pop up, prompting you for your preferences regarding some of the most common options.

5. Bump up the font size

The default font size of Spacemacs is painfully small 10. To bump it up, hit SPC f e d, search for dotspacemacs-default-font and increase the :size prop to a more comfortable one. It should be possible to reload the config by hitting SPC f e R, but for me setting the font side required restarting Emacs.

6. Draw the rest of the owl

Navigate to your preferred search engine and search for Spacemacs tutorials to continue your journey!

DIY Music Production

My Stratocaster setup

“Upgraded” my old Strat by changing the Suhr V60LP bridge mic to a no-name single-coil sized humbucker.

  • Vol 500 kohm logarithmic
  • Tones 500 kohm linears
  • Tone pots have a single 0.022uF capasitor

Wiring was according to the great Seymor Duncan diagram:


Installing Zoom without running the installer

Zoom is popular and does video & audio streaming very well, but everything else about it stinks big time.

@zachary on Twitter found a way to install Zoom on the Mac without running the installer:


Ä, Ö and QMK

So turns out keyboards don’t emit characters per se, instead they emit key codes which then in turn the operating system resolves into characters. Therefore, if one wants to use the EN-US ANSI layout but still be able to write ä or ö, things get tricky. I’m still figuring out the best way to do it, but here are my ideas:

  • Use AutoHotkey or similar to bind Alt-A to ä, Alt-O to ö. Works, but it’s no fun to have to rely on a utility.
  • Use EN-Intl layout and get ä and ö via Alt Gr. Works great, but makes the ” key behave frustratingly (if I just want to output a “, I have to first press ” and then space).
  • Remap all keys in a funky german layout in ANSI style, like done here. More explanation in a Reddit thread.

Still on my TODO to try out the last one.


Woodworking project ideas

My scratchpad of ideas:

  • Floor lamp to our livingroom
  • A narrow shelf between the back of our bed and the wall
  • A case for a keyboard
    • 304 x 95 mm PCB KBD67
    • Also, a carrying case?
    • 29,4 x 10,7 x 3-4 cm Idobo
    • Case vinyl cover is called ”Tolex”.
  • Hanging lamp to our kitchen
  • Watch storage box
  • Pendants cut with a scroll saw
  • Laptop stand
  • Electrical & USB plugs mounted on a nightstand
  • Plywood & plexi case for the Disney castle
  • iPhone stand
  • Support for wireless charging
    • A “cradle” of sorts that houses an Ikea charger at the bottom
    • Should automatically make sure the phone lays in a correct position to get charged
    • Could even be vertical?


My own keyboard -project

It makes zero sense but I really would like to build my own handwired keyboard. One that’s mine and no-one else’s. I’m in the research phase at the moment and here I’ve collected a bunch of resources for mostly my own convenience.

Guides & articles



Printing/cutting in Finland

Printing/cutting in EU


AliExpress links

Gear Keyboards

Programming Vortex Race 3

  1. Switch to a programmable (=non-default) layer by hitting Fn+ Right Shift
  2. Hit Fn + Right Cmd (or Ctrl)
  3. A white LED switches on under the space bar, that means we’re now in programming mode
  4. Press the key to be re-mapped (a red LED starts flashing)
  5. Hit the target key (or key sequence)
  6. Commit by pressing the Pn key
  7. Exit the programming mode by pressing Fn + Right Cmd (or Ctrl)

Let’s have an example. In my ISO Nordic version of the Race 3 for some reason the § and < keys are mapped just the opposite as what’s printed on the keycaps. Here’s the exact keys I press to change them vice versa:

  1. Fn + Right Shift
  2. Fn + Right Cmd
  3. §
  4. <
  5. Pn
  6. <
  7. §
  8. Pn
  9. Fn + Right Cmd

If I mess up and need to reset the current layer, I can do so by pressing and holding Fn + R for 5 seconds.

Gear Keyboards

Configuring Dual Action keys with BootMapper Client

One of the cooler features of BootMapper Client (BMC) is that it can be used to make keys work double duties – act as one key when pressed alone, and act as another when pressed in combination with another key. Unfortunately by default BMC can only do a couple of keys (for instance, it’s not possible to map Caps Lock to act as both Esc and Control), but it’s quite easy to extend the selection of keys that are available.

In order to do this we need to edit a JSON file from under the json directory whereever BMC is installed. As the functionality is called “dual action”, search for a file called dualaction.json.

The file contanis two lists of mapping objects: compoundKeys and aloneKeys. In order to do the aforementioned Caps Lock configuration we see that while Left Control is already listed under compoundKeys, Esc is nowhere to be seen in the aloneKeys. In order to add it, we need it’s BMC key code. That can be found from this Google sheet.

The key code for Esc is 41, so we add the following to the JSON file:

  "label": "Escape",
  "index": 41

Now when we launch BMC the next time, Escape should be possible to be selected in the Dual Action menus.