One of the great things about building a custom keyboard is being able to configure the keymap in any way that you want. If you want something super straightforward and just like a laptop keyboard, that’s perfectly possible, or if you want the flexibility of macros and custom keys that have one action when you tap and another action when you hold the key, then that’s perfectly possible too. It’s possible to do all of these and more when building your own board.
What software do I use?
One of the most popular ways of configuring mechanical keyboards is with a tool called QMK. QMK is open source software for ARM, Atmel AVR and Raspberry Pi microcontrollers that enables almost limitless customisability with a wide range of mechanical keyboards.
It’s possible to download QMK, configure the layout of your dreams and flash it onto your controller to power your board. And this is a really great way to understand how all the hardware and software fit together.
But there’s a couple limitations of doing it this way:
- You have to write a little code to configure your keymap. It’s not hard to learn, but it can be daunting if you don’t know where to begin
- If you want to make changes then you need to update the keymap, compile it and then flash it to your controller or board. Again, it’s not too hard, but if you’re just starting out and trying a bunch of different layouts then it is one more step to go thru
But don’t worry! There are ways around all of these challenges!
Three different ways to configure your keyboard (from easiest to hardest)
1. Using Vial / Via
The easiest way to configure your board is to use a tool like Via or Vial (Vial is the open source version of Via and is ultimately gives the same functionality). These tools sit on top of QMK and allow you to configure your board on the fly via a graphical interface (that is now also available on the internet without downloading anything).
All STHLM kb boards are compatible with Vial, and, best of all, we have precompiled Vial firmwares that you can use right away. All you have to do is flash your controller with one of these Vial compatible firmware files, open Vial (either the web app or download the desktop app) and you can figure everything right away.
You can configure a whole multitude of different things with Vial (see the manual here), and for most people it’s the perfect option.
✅ Advantages: Easy to use, no coding required, keymap changes are applied immediately
🛑 Disadvantages: Takes up slightly more space on the micro controller, limited OLED customisation
But there are other ways of configuring your board, so read on…
2. Using QMK Configurator
QMK Configurator is an online tool used for easily creating firmware files for keyboards supported in qmk_firmware. This neat web tool allows you to configure your board from your web browser and then download a firmware file that you can then flash to your keyboard. And best of all the Litl and Lagom keyboards are built in and available within the configurator tool.
It addresses the need to edit code in order to configure your keymap, and solves this through a nice web interface. However it doesn’t solve the requirement to flash new firmware every time you make a change (i.e. no updating on the fly) and it gives fewer configuration options than Vial, so for most users there is not much reason to use it.
✅ Advantages: Easy to use, no coding required, smaller firmware size (compared to Vial)
🛑 Disadvantages: Keymap changes are not applied instantly and require reflashing, limited OLED and encoder customisation
3. Using QMK
The final and most functional way of editing and configuring your board is to configure it in QMK directly. This requires a little knowledge of writing simple code, but if you can do this, you’re rewarded with the maximum amount of flexibility. There are some great getting started tutorial guides available in the QMK docs.
The biggest advantage of making changes directly in QMK is that you can have more control over the OLED screen display. In the other 2 options you are limited to what is contained in the precompiled hexes, but this way you can configure the OLED any way that you want (as long as there’s enough space on the micro controller).
In general if you want to go down this route you will want to clone the QMK repository from Github, find the board that you want to edit (all of our boards are included in the main repo), duplicate one of the existing keymaps for it and then edit it to make it your own. Then you will need to use the Terminal command line interface to compile the keyboard and keymap that you just made (resolving any errors in the process) and flash it your keyboard.
You can even use the Vial fork of QMK to compile a Vial compatible hex file that you can flash. Then you get maximum flexibility in terms of OLED and other config options and ease of configurability with the Vial web or desktop tools.
✅ Advantages: Maximum flexibility and customisability, generally smaller firmware size (unless you’re using Vial)
🛑 Disadvantages: Slight learning curve and harder to use, changes not applied instantly and require reflashing (unless you use vial-qmk)
Overall, there is no right or wrong way to configure your keyboard. It’s up to you and how much flexbility you want and how much tinkering you are prepared to do.
Each of the ways above have their advantages and disadvantages, so try some of them out and see how you get on! Most of all, have fun!